軟件所漏洞研究取得新進展
文章來源: | 發布時間:2017-05-13 | 【打印】 【關閉】
眾所周知,漏洞是在硬件、軟件、協議的具體實現或系統安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。內存破壞漏洞是眾多攻擊(包括APT攻擊等)的根源。棧溢出漏洞是一類經典的內存破壞漏洞,但是隨著一系列安全機制在系統中的大范圍應用,以及編譯器提供的安全檢查的默認開啟,傳統的棧溢出漏洞越來越少見。近幾年來,堆相關的漏洞,如堆溢出,逐漸取代棧溢出成為最流行的漏洞類型之一。根據微軟2013年的報告針對Windows7的攻擊中,25%利用的是堆溢出漏洞。由于發現漏洞既是攻擊者攻擊的前提,也是防御者修補或者防御的基礎。因而如何快速、準確的發掘堆溢出漏洞,一直是攻防雙方關注的重點問題。
近期,中國科學院軟件研究所軟件智能分析協同創新團隊,針對這一問題提出了一個新的基于執行路徑離線分析的方案,并構建了一套原型系統HOTracer,將有助提高軟件安全保障能力。
傳統的漏洞挖掘,主要基于模糊測試等手段進行。但由于軟件自身的復雜性、堆溢出漏洞觸發條件的復雜性,以路徑覆蓋率為導向的模糊測試技術及其他技術(如AddressSanitizer),在挖掘堆溢出漏洞方面有所欠缺。這些技術嚴重依賴于輸入樣本去執行有漏洞的程序路徑及觸發漏洞本身,同時可能遺漏同一路徑多個漏洞中的若干個。
軟件智能分析協同創新團隊針對這一問題展開了長期研究工作。HOTracer系統通過對代表性的程序動態執行路徑進行離線深入分析,深度挖掘路徑中可能存在的堆溢出漏洞。具體而言,通過對執行路徑中堆相關的操作即分配、釋放及訪問進行識別,并關聯相關的堆分配/訪問操作(即分配和訪問同一堆對象);同時跟蹤輸入對堆操作的影響,對堆溢出漏洞進行建模,找出潛在漏洞;進而構造樣本驗證潛在的漏洞。
HOTracer總體框架
HOTracer具有以下特點,一是漏洞挖掘過程避免了盲目嘗試,通過關聯相關的堆訪問操作,聚焦潛在的漏洞位置,并針對性地發掘漏洞,效率更高;二是挖掘過程不需要輸入樣本動態觸發程序異常,通過離線分析保證了對路徑的分析深度和全面性。比如在實驗過程中,我們在對Word軟件的已知漏洞CVE-2014-1761執行路徑深入分析之后,在同一條路徑上又發現了另外一個未知的堆溢出漏洞,影響所有版本的Word軟件。
基于HOTracer系統,在研究中團隊對Word、iTunes、RealPlayer、QQPlayer等常用軟件進行了分析,共發現未知漏洞47個,漏洞已通報相關廠商,部分已得到修復,并獲得CVE(公共漏洞和暴露)編號。對此,QQPlayer廠商騰訊公司對團隊的發現給予了獎勵。
該論文全體作者都是軟件所軟件智能分析協同創新團隊成員,全部來自可信計算與信息保障實驗室,包括團隊蘇璞睿研究員、馮登國研究員、張超副教授、楊軼副研究員、黃樺烽高級工程師、賈相堃博士。其中蘇璞睿是中科院軟件所研究員,協同創新團隊負責人,張超是清華大學副教授,協同創新團隊客座研究員。該成果是協同創新團隊協作的最新成果。
發掘的未知漏洞清單
目前該項成果已形成論文,并被USENIX Security 2017錄用。USENIX Security Symposium(USENIX安全論壇)是網絡與系統安全領域四大頂級會議之一。