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