軟件所在內嵌腳本解釋器的漏洞自動化挖掘研究中取得進展
文章來源:可信計算與信息保障實驗室 | 發布時間:2022-01-24 | 【打印】 【關閉】
近日,中國科學院軟件研究所可信計算與信息保障實驗室在內嵌腳本解釋器的漏洞自動化挖掘研究方面取得進展。該研究提出了基于關聯變異的漏洞挖掘方法,能夠有效地挖掘軟件與腳本引擎之間綁定代碼的漏洞,在大型商用文檔軟件的安全性測試中發揮重要作用。
近年來,像JavaScript這樣的腳本語言正在被集成到商業軟件中,以提供統一的接口。例如,Adobe Acrobat接受JavaScript來動態操作PDF文件。為了彌合高級腳本和實現軟件的低級語言(如C/C++)之間的距離,需要一個綁定層來進行數據的傳輸和轉化。但是,由于雙方的復雜性,綁定代碼容易出現語義不一致和實現錯誤,從而導致嚴重的漏洞。現有的測試綁定代碼的工作僅僅集中在腳本端,因此不能有效挖掘需要特殊內容對象輸入才能觸發的漏洞。
針對該問題,團隊提出了基于內容對象和腳本之間關系的關聯性變異方法,通過同時修改內容對象和腳本代碼,來觸發腳本解釋器中綁定代碼中的漏洞。團隊認為許多軟件中的漏洞都是由于程序初始狀態和動態操作之間的相互作用的不一致性造成的,而這種不一致性只能通過關聯性突變來觸發。團隊提出了3個方法來實現腳本語言與內容對象的關聯性變異:首先對內容對象進行語義相似性聚類,來減少內容對象的搜索空間;其次,基于大量原始樣本測試執行,通過統計學習的方法推測出腳本代碼與對象類之間的關聯關系;最后,利用推斷出的關系選擇合適的內容對象和相關聯的腳本代碼進行關聯性變異。基于該工作的原型系統COOPER應用于三個應用廣泛地集成了內嵌腳本語言的商業軟件中,包括Adobe Acrobat, Foxit Reader和Microsoft Word。COOPER系統成功發現了134個未知漏洞。該團隊已經將全部漏洞報告給了相關軟件產商。其中,56個漏洞已經被修復,33個漏洞已被分配了CVE編號,團隊多次被漏洞相關廠商公開致謝。
相關成果以“COOPER:Testing the Binding Code of Scripting Languages with Cooperative Mutation”為題被網絡安全領域頂級學術會議NDSS2022接受。該論文的作者為軟件所博士生徐鵬、奇安信技術研究院博士王衍豪、賓夕法尼亞州立大學助理教授胡宏、軟件所研究員蘇璞睿。該研究獲國家重點研發計劃等項目支持。
Cooper: 內嵌腳本解釋器的自動化漏洞挖掘框架