軟件所在漏洞挖掘與分析方面取得系列進展
文章來源: | 發布時間:2023-10-09 | 【打印】 【關閉】
軟件所可信計算與信息保障實驗室軟件智能分析團隊,聚焦數據流分析及應用,解決了現實場景中復雜軟件漏洞挖掘與分析的系列關鍵難題,多篇成果論文被領域頂會錄用。
論文AirTaint: Making Dynamic Taint Analysis Faster and Easier被IEEE S&P 2024錄用,第一作者為博士生桑倩。論文針對指令級污點傳播規則冗余及冗余插樁引入的額外開銷等問題,提出將指令級污點傳播計算提升到基本塊級,并利用匯編指令層靜態插裝代替動態插裝實現的方案。
團隊設計實現原型工具AirTaint,重點解決了基本塊級污點傳播規則快速提取、內存操作數的處理、精準插裝優化等關鍵難題。經實驗評估,AirTaint分析效率相比于libdft、SelectiveTaint、TaintRabbit最大可提升931.0x、5.97x、328.3x,能夠準確地檢測不同指令架構(X86、X86-64)、不同類型(Buffer Overflow、UAF等)的漏洞觸發情況。
AirTaint框架結構
論文AFGEN: Whole-Function Fuzzing for Applications and Libraries被IEEE S&P 2024錄用,第一作者為博士生劉昱瑋。針對現實場景中模糊測試代碼覆蓋率實際值低的問題,論文提出“全函數模糊測試”的概念,即對任意函數(特別是容易出現問題的函數)直接進行模糊測試,提升了深層次代碼的漏洞挖掘能力;同時提出反饋式“片段測試代碼”(類似FuzzDriver)修正和驗證方法,有效降低了直接模糊測試帶來的誤報問題。
研究團隊設計實現原型工具AFGen,重點解決了“片段測試代碼”生成中的數據依賴、數值初始化來源和漏洞觸發路徑約束問題。基于AFGen的全函數模糊測試實驗發現了24個0day,漏洞挖掘效果明顯優于通用模糊測試工具AFL、AFL++和定向模糊測試工具AFLGo、Parmesan、Beacon,Fuzz Driver生成效果也明顯優于Google的同類型工具FUDGE。
AFGen框架結構
論文VD-GUARD: DMA Guided Fuzzing for Hypervisor Virtual Device被IEEE/ACM ASE 2023錄用,第一作者為博士生劉昱瑋。DMA訪問是一類特殊但廣泛應用的數據傳遞方式,近幾年發現的虛擬設備漏洞中近80%的漏洞和DMA訪問相關。DMA數據訪問過程是從虛擬設備初始化到虛擬設備調用與回調函數、再到DMA操作具體實施函數的操作序列。論文認為,通過識別該操作序列并作為模糊測試的反饋,可以增強對不同DMA訪問代碼和邏輯狀態的探索,進而發現更多DMA相關的虛擬設備漏洞。
研究團隊設計實現原型工具VD-GUARD,首先通過對QEMU等被測虛擬機源代碼的預處理確定DMA相關的調用路徑,然后根據觸發DMA調用路徑構造初始化種子,再根據DMA訪問的觸發情況進行模糊測試反饋。經實驗評估,VD-GUARD發現了4個0day漏洞,相比于最新的虛擬設備模糊測試工具MorPhuzz可以發現更多漏洞。
VD-GUARD框架結構
論文One Simple API Can Cause Hundreds of Bugs: An Analysis of Refcounting Bugs in All Modern Linux Kernels被SOSP 2023錄用,第一作者為和亮研究員。論文認為,Linux Kernel代碼中存在很多UAF漏洞的主要成因之一是引用計數錯誤。為進一步解釋引用計數錯誤的產生原因并更好地指導內核代碼開發,研究團隊對Linux Kernel中的引用計數錯誤(數據來源于2005年-2022年753個版本,包括超100萬次提交記錄)進行收集,統計分析了引用計數錯誤的安全危害、錯誤分布和修復情況,并從漏洞潛在的安全影響角度分類總結出四大類引用計數錯誤發生的根本原因。
研究團隊進一步設計實現了基于靜態語義模板的漏洞主動挖掘工具,在新版本Linux Kernel中發現bug 351個,其中已確認240個,相關補丁已被合并至主線版本。該論文還公開了容易發生引用計數錯誤的API調用等。
bug發現情況統計
軟件所可信計算與信息保障實驗室蘇璞睿研究員帶領的軟件智能分析團隊,長期專注于軟件漏洞分析與防治研究,相關工作得到了國家自然科學基金重點項目、國家重點研發計劃項目、中國科學院先導項目等科研任務的支持,團隊中多名青年骨干入選中國科學院青年創新促進會。