999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自動化漏洞利用研究進展

2019-11-30 17:44:44靳憲龍黃雅娟
現代計算機 2019年31期
關鍵詞:程序利用分析

靳憲龍,黃雅娟

(1.四川大學計算機學院,成都 610065;2.國防科技大學國際關系學院,南京 210012)

0 引言

近年來網絡空間攻防對抗態勢不斷升級,網絡空間安全的地位與作用進一步凸顯。軟件作為網絡空間的基礎之一,承載著網絡空間中的各項服務,同時也充當著網絡空間與現實世界之間的橋梁。在頻發的各類安全事件中,無論是基于利益驅動的網絡犯罪還是具有政治背景的APT行動,軟件漏洞始終是對抗雙方博弈的核心。

傳統的漏洞挖掘與利用主要通過人工來進行,安全專家依靠完善的專業知識及豐富的安全經驗,對軟件中潛在的缺陷進行挖掘,判斷其可利用性并制定修復方案。但隨著各種半自動、自動化漏洞挖掘技術的提出,使得漏洞挖掘的效率大幅提升,僅谷歌的OSSFuzz框架每月平均挖掘200個漏洞。相較自動化漏洞挖掘的效率,以人工的方式對漏洞的可利用性進行判定已無法滿足現實需求。

網絡攻防也對漏洞利用的自動化提出了迫切需求。2013年美國國防部高級研究計劃局(DARPA)發起了 CGC(Cyber Grand Challenge)項目[1],旨在建立高性能的具備自動化攻擊與防御能力的網絡推理系統。獲得CGC冠軍的網絡推理系統Mayhem,在2016年的DEFCON CTF[2]中與人類戰隊進行攻防對抗,雖最終落敗,但已體現出自動化漏洞利用在網絡攻防中的廣闊前景。

1 自動化漏洞利用概述

自動化漏洞利用是指,在無人工干預的基礎上,自動化挖掘軟件內部缺陷,并利用該缺陷使軟件實現非預期功能的能力。依據自動化漏洞利用的完整程度,可分為完整模式與受限模式。

完整模式,在自動化挖掘軟件漏洞并生成利用樣本的基礎上,使得樣本具備繞過現有安全機制的能力;受限模式,實現自動挖掘軟件漏洞并生成漏洞利用樣本,但不考慮安全機制繞過。完整模式的自動化漏洞利用難度較大,目前的研究主要集中在受限模式。

自動化漏洞利用主要包含以下環節[3]:

(1)漏洞挖掘。通過對軟件源碼或二進制代碼進行分析,采用模糊測試、補丁比對等技術,挖掘軟件內部潛在缺陷。

(2)漏洞分析?;谲浖毕荩ㄟ^污點分析、符號執行等技術,定位漏洞點、判明漏洞類型、澄清漏洞成因等關鍵信息。

(3)漏洞利用。在判明漏洞機理的前提下,利用該缺陷,使軟件實現非預期的功能,通過惡意利用對安全造成直接危害。

(4)安全機制繞過。結合代碼復用、信息泄露、堆風水等攻擊技術,實現對DEP、ASLR、CFI等安全機制的繞過。

2 自動化漏洞利用相關技術介紹

隨著軟件分析技術的發展,提出了模糊測試、符號執行、污點分析等技術,這些技術已在現實工作中發揮了重要作用。

2.1 模糊測試

模糊測試是指向待測程序提供大量特殊構造的或是隨機的數據作為輸入,監視程序運行過程中的異常并記錄導致異常的輸入數據,基于導致異常的輸入數據進一步定位軟件中漏洞位置[4]。

依據測試用例的生成方法,模糊測試可以分為基于變異的模糊測試與基于生成的模糊測試。基于變異的模糊測試,通過對現有數據進行變異以生成新的測試用例?;谏傻哪J綔y試通過對程序進行建模,從而生成新的測試用例。模糊測試已在漏洞挖掘領域發揮重要作用,但依然存在測試盲目性大、測試效率低、代碼覆蓋率不高等問題。

目前主流的模糊測試工具有 Peach[5]、Sulley[6]、AFL[7]等。

2.2 符號執行

符號執行是指采用抽象符號代替程序變量,依據程序語義遍歷整個執行空間,程序的輸出被表示為輸入符號值的函數[8]。

符號執行可分為靜態符號執行、動態符號執行與選擇性符號執行。靜態符號執行并不真正的執行程序,而是通過符號值模擬程序執行;動態符號執行是對具體執行與靜態符號執行的整合,兼具了兩種方法的優點;選擇性符號執行可以對關鍵部分進行符號執行,其余部分采用真實執行。雖然符號執行技術具有較高的代碼覆蓋率,但面臨著程序狀態空間爆炸、復雜約束無法求解、資源消耗過大等問題。

目前,主流的符號執行工具有基于源碼的EXE[9]、KLEE[10]、DART[11]、CUTE[12],基于二進制的 angr[13]、SAGE[14]、Bitblaze[15]等。

2.3 污點分析

污點分析的核心思想是跟蹤并分析污點數據在程序中的傳播情況。污點分析可分為靜態污點分析與動態污點分析。靜態污點分析通過對源碼或字節碼中的語句進行分析,刻畫語句或指令間的依賴關系并以此為依據,判斷污點數據可能的全部傳播路徑。動態污點分析是在程序執行過程中,結合程序插樁跟蹤污點數據的傳播過程,相較于靜態污點分析能夠提供更精確的分析結果。雖然污點分析能夠提供精確的分析結果,但其同樣面臨著隱式流問題、污點清除、性能開銷過大等問題。

目前,主流的污點分析工具有TaintCheck[16]、Dytan[17]、libdft[18]等。

3 主流自動化漏洞利用系統

國內外研究團隊已針對自動化漏洞利用技術做了大量工作[19],本節按時間順序對十款主流自動化漏洞利用系統進行介紹。

3.1 APEG

2008年D.Brumley首次提出基于補丁比對的漏洞利用自動生成方法APEG[20]。該方法在實現過程中,首先通過補丁比對定位漏洞點;隨后分析補丁代碼,澄清漏洞機理并生成能夠觸發漏洞的異常輸入;最后,結合污點分析技術生成漏洞利用樣本。由于該方案可操作性強,因此得到了安全研究者的普遍認可。

APEG的不足主要體現在:首先,APEG同時需要原程序與補丁程序,該前提一定程度上限制了APEG的應用場景。其次,由于軟件復雜度的提升,簡單的指令比對已無法快速定位漏洞點,同時與漏洞無關的補丁也對澄清漏洞機理造成了干擾;再次,APEG所生成的漏洞利用樣本以DoS為主,對漏洞的利用程度有限。

3.2 AXGEN

2009年Sean Heelan首次提出基于異常輸入的自動化漏洞利用方案AXGEN[21]。該方法綜合使用數據流分析、動態污點分析等技術,針對緩沖區溢出類漏洞,生成利用程序。

在實現過程中,AXGEN首先對系統調用、線程創建、信號量等關鍵點進行Hook;隨后,采用污點分析對程序運行狀態進行監控,分析指令寄存器EIP中污點數據情況,判斷控制流是否被劫持;最后,生成約束條件,求解后得到漏洞利用樣本。在測試過程中,AXGEN對多個存在漏洞的應用程序成功生成漏洞利用樣本。

該方法的局限性主要表現在,首先,AXGEN不具備漏洞挖掘能力;其次,不適用于較為復雜的漏洞類型;最后,由于采用了污點分析技術,因此AXGEN存在污點分析所固有的不足。

3.3 AEG

2011年T.Avgerinos首次提出了基于源碼的自動化漏洞利用方法AEG[22]。該方法針對棧溢出、格式化字符串漏洞自動生成漏洞利用樣本,是首個完整實現從漏洞挖掘到漏洞利用樣本生成全流程的自動化解決方案。在實現過程中,AEG首先對源碼進行預處理,生成字節碼與二進制程序;其次,通過前向符號執行挖掘程序中潛在的漏洞。根據挖掘到的漏洞信息構造路徑約束并求解,生成能夠觸發漏洞的輸入;再次,結合異常輸入與動態分析,生成環境約束。最后,求解路徑約束、環境約束,生成漏洞利用樣本。在測試過程中,AEG針對14款應用成功生成16個漏洞利用樣本,其中包含兩個0 day。

該方法的局限性主要體現在:首先,依賴于程序源碼,限制了AEG的應用場景;其次,所針對的漏洞限于簡單的棧溢出與格式化字符串。

3.4 Mayhem

2012年S.K.Cha提出了基于二進制的自動化利用方案Mayhem[23],該方案可以看做AEG在二進制方向的拓展。在實現過程中,Mayhem運用在線符號執行、離線符號執行以及基于索引的內存建模技術,使用BAP[24]將匯編指令轉換為中間語言并構造約束條件,通過對約束求解,最終生成漏洞利用樣本。Mayhem在2016年舉辦的CGC決賽中取得冠軍。

雖然在實際應用中Mayhem表現出色,但同樣存在以下局限:首先,僅完成了針對部分系統調用及庫函數的建模,因此無法處理復雜應用;其次,無法處理多線程應用;再次,由于使用了污點分析,因此具備污點分析所共有的不足。

3.5 CRAX

2012年Shih-Kun Huang等人提出了基于異常輸入的自動化漏洞利用方法CRAX[25]。該方法采用回溯分析獲取漏洞點的詳細信息,在實現過程中,首先基于異常輸入,在導致程序崩潰的路徑上進行符號執行;同時監測指令寄存器EIP及內存中符號變量情況,并生成相應的約束條件;最后,求解約束條件并生成漏洞利用樣本。在測試過程中,該方法針對16款小型應用、3款中型應用成功生成漏洞利用樣本。

該方法的局限性主要體現在:首先,不具備漏洞挖掘能力,漏洞利用樣本的生成依賴于異常輸入的質量;其次,面臨路徑選擇、符號求解等問題;最后,程序發生異常的位置往往滯后于真實錯誤的位置,雖然CRAX采用了回溯的方法,但部分信息的丟失將影響生成漏洞利用樣本的成功率。

3.6 PolyAEG

2013年M.H.Wang等人提出了自動化漏洞利用方案PolyAEG[26],側重于生成高質量、多樣性的漏洞利用樣本。在實現過程中,PolyAEG首先動態監控程序執行狀態,提取相關信息構建污點傳播流圖iTPG及全局污點狀態記錄GTSR;其次,分析潛在的控制流劫持點、可利用的指令、污點內存等,結合跳轉指令鏈與污點內存構建不同的約束條件;最后,對約束求解,生成漏洞利用樣本。測試過程中,該方案針對每個存在漏洞的應用程序均生成大量多樣性漏洞利用樣本,最高可達4724個。

該方法的局限性主要體現在污點分析所存在的誤報、漏報及性能開銷較大。

3.7 FlowStitch

2015年H.Hu首次提出了面向數據流的自動化漏洞利用方案FlowStitch[27]。該方案在不影響程序控制流的前提下,通過已知內存錯誤構造輸入數據,完成對原有數據流中關鍵變量的篡改,實現權限提升、信息泄露等功能。在測試過程中,針對8個存在漏洞的應用,自動生成19個漏洞利用樣本。所生成的漏洞利用樣本均能繞過DEP、CFI,其中10個漏洞利用樣本能夠對抗ASLR。

該方案主要局限于FlowStitch需要程序中存在已知的內存錯誤,該前提限制了FlowStitch的應用場景。

3.8 Mechanical Phish

2016年來自加州大學圣芭芭拉分校的安全團隊Shellphish提出自動化漏洞利用方案Mechanical Phish[28]。該系統在實現過程中,首先由基于AFL與動態符號執行的漏洞挖掘引擎Driller[29]進行自動化漏洞挖掘;其次,由基于angr的漏洞利用生成引擎Rex自動化生成漏洞利用樣本;最后,由補丁生成引擎Patcherex生成補丁程序。該方案在DARPA舉辦的CGC決賽中,取得了第三名。

該方案的局限性主要體現在:首先,方案的設計以CGC為背景,所使用的操作系統DECREE、針對的漏洞類型均與真實環境差距較大,因此該方案在現實環境中的表現有待完善;其次,Mechanical Phish使用angr作為符號執行引擎,因此無法處理大部分真實應用。

3.9 FUZE

2018年Wei Wu首次提出了基于內核UAF漏洞的自動化方案FUZE[30]。該方案綜合運用模糊測試、符號執行、動態追蹤等技術,針對內核UAF漏洞自動生成漏洞利用樣本。在實現過程中,首先結合KASAN[31]與動態追蹤技術,獲取生成利用程序所必須的信息,如釋放對象的基址、大小等;其次,通過內核Fuzzing識別引用懸垂指針(dangling pointer)的系統調用;再次,結合符號執行對可利用性進行判斷,并計算堆噴數據;最后,生成完整的漏洞利用程序。通過對15個內核UAF漏洞進行測試,FUZE成功生成漏洞利用并一定程度上繞過保護機制。

該方案的局限性主要體現在:首先,未考慮開啟KASLR的情況;其次,在使用符號執行時,對前置約束條件的設置使得FUZE存在漏報的可能性。

3.10 Revery

2018年Yan Wang提出了針對堆漏洞的解決方案Revery[32]。該方案在實現過程中,首先分析漏洞位置和相關內存布局,建立異常對象內存布局圖、內存布局貢獻者圖;其次,以異常對象的內存布局為導向,采用定向Fuzzing探索替代路徑,并結合污點分析技術,在替代路徑中探索可利用狀態;最后,確定拼接點、拼接路徑,組合生成漏洞利用路徑。求解路徑約束、漏洞利用數據約束等約束條件,生成漏洞利用。在測試過程中,Revery以CTF賽題為樣本,成功生成多個針對堆漏洞的漏洞利用樣本。

該方案的局限性主要體現在:首先,Revery基于angr開發,因此無法處理大部分真實應用;其次,無法自動進行堆的原子化操作,不能自動化構造內存布局。

4 結語

自2008年首次提出APEG后,自動化漏洞利用歷經了十年的發展。所挖掘的軟件形式從源碼、字節碼擴展至二進制代碼,能夠處理的漏洞類型也逐漸復雜。雖然相關研究取得了明顯進展,但依然存在一些關鍵問題需要解決。如符號執行所面臨的瓶頸問題,使得自動化漏洞利用僅適用于小型軟件或代碼片段;其次,無法處理基于堆的復雜漏洞、邏輯漏洞、結合多個漏洞的漏洞鏈等;再次,目前的研究主要集中于受限模式,所生成的漏洞利用樣本無法繞過已有的安全機制。

從上述分析來看,自動化漏洞利用距離實用還存在一定距離,但現實中的迫切需求,已指明了今后的發展方向,并將進一步推動自動化漏洞利用的發展與完善。

猜你喜歡
程序利用分析
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
隱蔽失效適航要求符合性驗證分析
利用一半進行移多補少
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
利用數的分解來思考
Roommate is necessary when far away from home
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
電力系統及其自動化發展趨勢分析
主站蜘蛛池模板: 亚洲人成网18禁| 国产偷国产偷在线高清| 2021国产精品自产拍在线| 欧美色99| 午夜视频日本| 久久久四虎成人永久免费网站| 一级全免费视频播放| 精品国产aⅴ一区二区三区| 久久综合激情网| 国产成人精品在线| 久久精品丝袜| 在线色国产| 99re视频在线| 精品伊人久久大香线蕉网站| 亚洲天天更新| 九色综合伊人久久富二代| 人妻少妇乱子伦精品无码专区毛片| 成人国产一区二区三区| 爽爽影院十八禁在线观看| 无码啪啪精品天堂浪潮av| 国产成人乱无码视频| 日韩AV手机在线观看蜜芽| 超碰91免费人妻| 精品无码视频在线观看| 亚洲婷婷丁香| 欧美一级高清片久久99| 欧美日韩午夜| 国产一在线| yy6080理论大片一级久久| 国产手机在线ΑⅤ片无码观看| 9啪在线视频| 黑色丝袜高跟国产在线91| 亚洲中文久久精品无玛| 国产区人妖精品人妖精品视频| 2024av在线无码中文最新| yjizz视频最新网站在线| 亚洲毛片在线看| 国产成人综合欧美精品久久| 永久免费无码成人网站| 国产超薄肉色丝袜网站| 国产高潮视频在线观看| 欧美日韩成人在线观看| 亚洲第一精品福利| 欧美黑人欧美精品刺激| 青青草国产精品久久久久| 青青青伊人色综合久久| julia中文字幕久久亚洲| 国产成人亚洲精品色欲AV | 国内精品视频区在线2021| www.日韩三级| 精品欧美一区二区三区久久久| 亚洲天堂日韩在线| 青青极品在线| 在线欧美a| 成人无码区免费视频网站蜜臀| 日韩欧美中文字幕在线韩免费| 久久精品国产999大香线焦| 亚洲狼网站狼狼鲁亚洲下载| 国产在线一二三区| 欧美国产日韩一区二区三区精品影视| 免费亚洲成人| 动漫精品啪啪一区二区三区| 毛片视频网址| 国产精品网址你懂的| 专干老肥熟女视频网站| 无码中文字幕加勒比高清| 国产在线日本| 欧美在线三级| 欧美色伊人| 国语少妇高潮| 久久动漫精品| 日本精品影院| 亚洲国产精品日韩av专区| 蜜臀AVWWW国产天堂| 中国黄色一级视频| 强乱中文字幕在线播放不卡| 亚洲无码日韩一区| 免费国产一级 片内射老| 毛片手机在线看| 亚洲床戏一区| 久久大香香蕉国产免费网站| 国产三级国产精品国产普男人|