Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 電機資訊學院
  3. 資訊網路與多媒體研究所
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/94320
標題: 利用ARM指標認證與棧回溯技術以保護系統呼叫及控制流
Utilize Arm Pointer Authentication and Stack Unwinding to Protect System call Usage and Control Flow
作者: 許智凱
Chih-Kai Hsu
指導教授: 黎士瑋
Shih-Wei Li
關鍵字: 系統呼叫,棧回溯,指標認證,控制流完整性,
System Call,Stack Unwind,Pointer Authentication,Control Flow Integrity,
出版年 : 2024
學位: 碩士
摘要: 現代系統為應用程式提供各種服務,這些服務主要通過系統調用訪問。系統調用經常被利用於嚴重攻擊中,例如控制流劫持攻擊。因此,與安全相關的系統調用(如 mprotect、mmap 和 execve)在整個攻擊鏈中起著關鍵作用。另一方面,ARM 處理器現在越來越多地部署在桌面和數據中心。雖然先前的研究已經構建了保護 x64 架構上系統調用使用的防禦機制,但我們提出了一種新穎的框架,以確保內存不安全編程語言(C/C++)在 ARM 架構上的系統調用使用的安全性。
我們確保合法的系統調用使用具有以下屬性:系統調用調用的控制流完整性。首先,我們在 Linux 內核中引入了一個基於堆棧回溯的監控器。其次,我們利用 ARMv8.3 處理器中可用的指針驗證(PA)功能來保護控制流敏感的指針,如函數指針和 C++ 虛表指針。通過這些防禦機制,我們可以有效地破壞攻擊鏈,防止攻擊者達成他/她的目標。
我們的框架由兩個主要組件組成:1)可加載內核模塊(LKM)和 2)定制的 LLVM 編譯器。我們的安全案例研究表明,我們可以有效地擊敗所有攻擊,包括真實世界的漏洞利用。我們使用三個常見的系統調用密集型程序(Lighttpd、NGINX 和 SQLite)以及 SPEC CPU2017 基準套件來評估性能。結果顯示,Lighttpd 的性能開銷為 0.68%,NGINX 為 0.45%,而 SPEC CPU2017 基準套件的平均開銷為 2.95%。我們在 Section 6.2.3 中解釋了 SQLite 開銷較高的原因。
Modern systems provide various services to applications, primarily accessed through system calls. System calls are frequently utilized in serious attacks, such as control-flow hijacking attack. Therefore, security-related system calls, such as mprotect, mmap and execve play a pivotal role in the entire attack chain. On the other hand, ARM processors are increasingly deployed on desktops and in data centers nowadays. While previous works have built defense mechanisms to protect system call usages on x64 architecture, we propose a novel secure properties for system call usages for memory-unsafe programming languages (C/C++) on ARM architecture.
We ensure a property for legitimate system call usage: the control flow integrity of system call invocations. Firstly, we introduce a stack unwinding-based monitor in the Linux kernel. Secondly, we utilize the Pointer Authentication (PA) feature available in ARMv8.3 processors to protect control-flow-sensitive pointers, such as function pointers and C++ Vtable pointers. With these defense mechanisms, we can effectively corrupts the attack chain, preventing the attacker from achieving her goals.
Our framework consists of two main components 1) a loadable kernel module (LKM) and 2) a customized LLVM compiler. Our security case study demonstrates that we can effectively defeat all attacks, including real-world exploits. We evaluate the performance using three popular system call-intensive programs: Lighttpd, NGINX, and SQLite, as well as the SPEC CPU2017 benchmark suite. Our results indicate an overhead of 0.68% for Lighttpd, 0.45% for NGINX, and an average of 2.95% for the SPEC CPU2017 benchmark suite. We explain the reasons for the higher overhead on SQLite in the Section 6.2.3.
URI: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/94320
DOI: 10.6342/NTU202402925
全文授權: 同意授權(全球公開)
顯示於系所單位:資訊網路與多媒體研究所

文件中的檔案:
檔案 大小格式 
ntu-112-2.pdf1.01 MBAdobe PDF檢視/開啟
顯示文件完整紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved