演講嘉賓 | 凌 祥
回顧整理 | 廖 濤
排版校對 | 宋夕明
嘉賓介紹
OS安全分論壇
凌祥,中國科學院軟件研究所助理研究員,主要研究領域為基礎軟件與系統安全,主持及骨干參與多項省部級科研項目,在IEEE S&P、USENIX Security、INFOCOM、ASE、Black Hat Asia、TIFS、軟件學報等國內外重要會議和期刊上發表論文20余篇,擔任開放原子基金會開源漏洞共享平臺漏洞初篩工作組組長,以及《Cybersecurity》和《信息安全學報》學術期刊的青年編委。
視頻回顧
打開嗶哩嗶哩APP,觀看更清晰視頻
正文內容
API是實現開源操作系統等大型軟件系統功能模塊解耦以及開發效率最大化的基礎,而不規范的API使用會在一定條件下引發運行錯誤,產生異常的結果或行為,嚴重危害軟件安全。如何實現API誤用缺陷自動化檢測?中國科學院軟件研究所特別研究助理凌祥博士在第二屆OpenHarmony技術大會上進行了精彩分享。
API,即應用程序接口,具體指操作系統或者標準軟件庫對外開放的編程接口函數。在現代軟件開發過程中,軟件開發人員在不需要了解API內部具體實現細節的情況下,廣泛地通過調用各類API來復用現有軟件框架或者標準函數,從而達到節省軟件開發時間、提高軟件開發效率的目的。然而,當前API誤用已經成為對開源操作系統安全性造成嚴重威脅的關鍵因素。
? ?
由于API數量龐大、更新頻繁、自身的復雜性、文檔資料缺失等原因,軟件開發人員經常會誤用API,例如多余的API調用、遺漏的API調用、錯誤的API調用參數、缺少前置條件判斷、忽略異常處理等。API的誤用不僅會導致軟件系統出現功能性錯誤或者性能問題,也極易引發安全漏洞等代碼缺陷。以Linux內核代碼為例,研究團隊實際審計了2021年公開的92個CVE安全漏洞,發現其中有27個CVE安全漏洞都是由API誤用導致的,約占30%。因此,如何檢測出大型軟件系統中存在的API誤用缺陷,特別是實現開源操作系統中API誤用缺陷的大規模自動化檢測,對開源操作系統的安全至關重要。
基于在同一軟件中,相同的API通常會遵循相似的使用模式;且API的使用模式通常由與該API相關的數據操作所構成的啟發,作者本人及其所在團隊提出了一種基于API路徑模式挖掘的API誤用缺陷自動化檢測方法“APP-Miner”。該方法能夠從源代碼中自動挖掘API使用模式,無需安全專家手工定義API模版,且理論上可以適用于任何具備源代碼的大型軟件系統。
APP-Miner的整個系統架構主要包含API路徑生成、API路徑模式挖掘以及API誤用缺陷檢測三個模塊,其中:
API路徑是一種基于控制流圖的特殊圖結構數據,其中節點代表與該API具有數據關聯的操作,邊代表節點之間的執行順序流關系。API路徑生成主要利用Clang和LLVM編譯工具,將源代碼中每個函數都編譯成相應的控制流圖,然后利用數據流分析技術生成相應的API路徑。
API路徑模式挖掘利用頻繁子圖挖掘算法,從大規模的API路徑中挖掘出頻率高于預定義閾值的最大頻繁子圖,作為相應的API路徑模式。針對現有方案中頻繁子圖挖掘算法可能生成非連通圖問題,利用拓撲化和完全化技術,將API路徑從一般有向圖轉化為完全拓撲圖,從而保證頻繁子圖挖掘算法生成的是連通圖;針對頻繁子圖挖掘方法復雜度過高而難以適用于大型軟件系統問題,可建立面向API路徑的索引矩陣,并采用面向索引矩陣的Apriori關聯規則挖掘算法以有效地降低挖掘出最終API路徑模式的復雜度。
API誤用檢測利用構建的索引矩陣G,將一組API路徑圖與最大頻繁子圖之間的子圖匹配任務 轉換成索引矩陣G和API路徑模式P之間的二進制判別操作”&”,從而極大地提高大規模軟件系統中API誤用缺陷檢測的效率。
針對提出的基于API路徑模式挖掘的API誤用缺陷自動化檢測方法APP-Miner,作者本人及其所在團隊基于Linux kernel 5.15-rc7、OpenSSL 3.0.0、FFmpeg 5.0以及Apache httpd 2.4.52等大型開源軟件系統進行了實驗驗證。在實驗中,APP-Miner均成功檢測出了數量不等的潛在API誤用安全風險,驗證了方法的有效性。
目前,APP-Miner已經集成在中國科學院軟件研究所建設的開源軟件供應鏈重大基礎設施“源圖”中,希望能夠為OpenHarmony社區安全治理貢獻力量,共同推動開源軟件社區安全發展。
E N D
關注我們,獲取更多精彩。
審核編輯 黃宇
-
API
+關注
關注
2文章
1505瀏覽量
62183 -
自動化檢測
+關注
關注
0文章
20瀏覽量
8923 -
開源操作系統
+關注
關注
0文章
10瀏覽量
1534
發布評論請先 登錄
相關推薦
評論