演講嘉賓 | 張 超
回顧整理 | 廖 濤
排版校對 | 李萍萍
嘉賓簡介
張超,博士,清華大學(xué)網(wǎng)絡(luò)研究院副院長,長聘副教授,華為冠名教授,藍(lán)蓮花戰(zhàn)隊(duì)教練,CCF杰出會員。曾獲得清華大學(xué)學(xué)術(shù)新人獎(jiǎng)、國家級青年人才、MIT TR35 China、求是杰出青年學(xué)者、中國科協(xié)青托等獎(jiǎng)勵(lì)和榮譽(yù)。兼任中國青年科技工作者協(xié)會理事、中國指揮與控制學(xué)會理事、中國人工智能學(xué)會人工智能與安全專委會常務(wù)委員、中國計(jì)算機(jī)學(xué)會218Club執(zhí)行委員等。主要研究軟件和系統(tǒng)安全,尤其是智能漏洞攻防方向。主持承擔(dān)國家重點(diǎn)研發(fā)計(jì)劃等20多個(gè)項(xiàng)目。研究成果獲得騰訊安全探索論壇突破獎(jiǎng)、微軟BlueHat防御競賽特別提名獎(jiǎng)、華為優(yōu)秀合作獎(jiǎng),研發(fā)的自動(dòng)攻防系統(tǒng)獲得美國國防部DARPA CGC機(jī)器自動(dòng)攻防競賽初賽防御第一、決賽攻擊第二。
內(nèi)容來源
第一屆開放原子開源基金會OpenHarmony技術(shù)峰會——安全及機(jī)密計(jì)算分論壇
視頻回顧
打開 嗶哩嗶哩APP 搜索 OpenHarmony-TSC 視頻更清晰
正 文 內(nèi) 容
漏洞的存在給用戶帶來了嚴(yán)峻的安全風(fēng)險(xiǎn)。漏洞層出不窮,一個(gè)小小的安全漏洞卻足以攪動(dòng)整個(gè)軟件或互聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)生地震。目前,漏洞從被初始發(fā)現(xiàn)到被預(yù)警和治理仍存在較大空檔期,該空檔期為黑客攻擊提供了便利條件。系統(tǒng)軟件漏洞挖掘是保障網(wǎng)絡(luò)安全的重要一環(huán),目前有哪些挑戰(zhàn)和應(yīng)對方案呢?清華大學(xué)長聘副教授、博導(dǎo),藍(lán)蓮花戰(zhàn)隊(duì)教練張超在第一屆OpenHarmony技術(shù)峰會上分享了精彩觀點(diǎn)。
01?
網(wǎng)絡(luò)安全與漏洞挖掘
漏洞是網(wǎng)絡(luò)空間重要安全威脅,攻擊者可以利用漏洞來執(zhí)行各種攻擊,例如拒絕服務(wù)攻擊、遠(yuǎn)程執(zhí)行代碼攻擊、身份驗(yàn)證繞過攻擊等。比較著名的由漏洞造成的網(wǎng)絡(luò)安全攻擊事件有震網(wǎng)病毒 (伊朗核設(shè)施)、電網(wǎng)斷電(烏克蘭)、WannaCry (香菇勒索軟件,150+國家)、MIRAI 僵尸網(wǎng)絡(luò)、幽靈、熔斷(CPU)等。
漏洞挖掘技術(shù)的發(fā)展歷史可以分為4個(gè)階段:(1)人工審計(jì):通過人工進(jìn)行源代碼審計(jì)、逆向工程,基于經(jīng)驗(yàn)規(guī)則來挖掘漏洞,但是依賴經(jīng)驗(yàn)且無法擴(kuò)展;(2)規(guī)則掃描:通過靜態(tài)分析、符號執(zhí)行和模型檢驗(yàn)等手段,依據(jù)定制規(guī)則掃描漏洞,誤報(bào)概率高且可擴(kuò)展性差;(3)動(dòng)態(tài)測試:從攻擊者的角度出發(fā),通過隨機(jī)畸形測試?yán)?a href="http://www.1cnz.cn/analog/" target="_blank">模擬攻擊者構(gòu)造輸入等手段觸發(fā)漏洞,漏報(bào)概率高且覆蓋率低;(4)智能挖掘:通過知識與數(shù)據(jù)驅(qū)動(dòng)、遺傳進(jìn)化算法等手段,智能引導(dǎo)漏洞挖掘方向,能夠更好地應(yīng)對層出不窮的新型漏洞以及大型復(fù)雜軟件系統(tǒng)的應(yīng)用場景,并且可以減少人力的投入以及由于人工主觀性、分析不完備帶來的誤報(bào)和漏報(bào)。
02?
智能模糊測試方案
模糊測試作為一種自動(dòng)化動(dòng)態(tài)測試方法,向系統(tǒng)注入非法、畸形或非預(yù)期的輸入,以揭示軟件缺陷和漏洞。模糊測試是當(dāng)前漏洞挖掘的主要技術(shù),有助于發(fā)現(xiàn)系統(tǒng)中的未知漏洞和弱點(diǎn),防止?jié)撛诘牧闳展簟H欢瑑H靠模糊測試無法全面了解整個(gè)安全威脅或bug,且在漏洞隱藏較深的場景下模糊測試的效果并不好。
模糊測試過程可以看做一種搜索問題,目標(biāo)是在無窮的測試?yán)臻g中尋找符合條件的測試?yán)茨軌蛴|發(fā)漏洞的輸入),可以使用優(yōu)化算法來提升效率。其中,遺傳算法是一種基于生物進(jìn)化原理的優(yōu)化算法,模擬了自然界中的遺傳、變異、適應(yīng)和選擇等過程,通過不斷地迭代和優(yōu)化,尋找最優(yōu)解或次優(yōu)解。將遺傳算法與模糊測試結(jié)合的智能模糊測試方案,通過測試?yán)Y選、進(jìn)化,在漏洞挖掘上取得了很好的效果,也吸引了許多領(lǐng)域內(nèi)的專家學(xué)者進(jìn)行相關(guān)研究。
在智能模糊測試的研究上,張超教授所在團(tuán)隊(duì)從知識驅(qū)動(dòng)、數(shù)據(jù)驅(qū)動(dòng)以及混合技術(shù)三個(gè)維度進(jìn)行改進(jìn)設(shè)計(jì),具體如下:
2.1??
知識驅(qū)動(dòng)
模糊測試搜索測試?yán)龝r(shí)存在較大隨機(jī)性,例如通過隨機(jī)的方式對測試?yán)M(jìn)行變異,導(dǎo)致搜索過程具有一定的盲目性。基于專家知識進(jìn)行驅(qū)動(dòng),可以引導(dǎo)模糊測試往特定的方向搜索,可以有效提升測試過程的代碼覆蓋率,獲得更好的漏洞檢測效果。其中,專家知識包含控制流知識、數(shù)據(jù)流知識、測試接口知識、硬件外設(shè)知識、程序狀態(tài)知識以及漏洞知識等。
控制流敏感的模糊測試方法:CollAFL及CollAFL-bin。現(xiàn)有模糊測試方案代碼覆蓋率跟蹤存在哈希碰撞問題,導(dǎo)致覆蓋率(控制流信息)記錄不準(zhǔn)確;現(xiàn)有的種子選擇方案沒有充分考慮覆蓋率(控制流信息),導(dǎo)致測試過程中覆蓋率提升緩慢。該方法的主要策略為:基于控制流知識更新哈希公式和選擇種子進(jìn)行變異,優(yōu)先選擇未覆蓋分支數(shù)最多的種子。
數(shù)據(jù)流敏感的模糊測試方法:GreyOne。傳統(tǒng)模糊測試關(guān)注覆蓋率(控制流),忽略了程序的數(shù)據(jù)流約束(如校驗(yàn)和、幻數(shù)等檢查)。該方法的主要策略為:提取程序數(shù)據(jù)流知識(污點(diǎn)關(guān)系、分支約束匹配度),指導(dǎo)模糊測試變異、進(jìn)化方向。
測試接口敏感的模糊測試方法:FANS。Android系統(tǒng)服務(wù)通過IPC機(jī)制(binder)為用戶提供服務(wù),測試接口以及接口間依賴關(guān)系十分復(fù)雜,盲目fuzzing測試效率低。該方法的主要策略為:通過靜態(tài)分析Android源代碼AST,提取/推斷各服務(wù)的接口及接口間的依賴關(guān)系,指導(dǎo)測試?yán)伞?/p>
外設(shè)自動(dòng)模擬的驅(qū)動(dòng)模糊測試方法:PrIntFuzz。驅(qū)動(dòng)程序代碼量大、漏洞多,但是驅(qū)動(dòng)的執(zhí)行依賴于外設(shè)交互。實(shí)際測試環(huán)境下,缺少大量的外設(shè)。能不能自動(dòng)模擬大量的外設(shè)(惡意外設(shè)),與驅(qū)動(dòng)進(jìn)行交互并測試?該方法的主要策略為:從驅(qū)動(dòng)代碼中提取外設(shè)知識(數(shù)據(jù)約束、I/O模型、配置約定),基于提取的知識自動(dòng)模擬外設(shè)。
狀態(tài)敏感的模糊測試方法:StateFuzz。覆蓋率引導(dǎo)的模糊測試是主流方案,但是覆蓋率進(jìn)化指標(biāo)存在局限性,可以考慮其他進(jìn)化指標(biāo)。其中,程序是個(gè)狀態(tài)機(jī),其狀態(tài)可以作為重要的進(jìn)化指標(biāo)。該方法的主要策略為:從驅(qū)動(dòng)代碼識別動(dòng)作,進(jìn)而識別共享變量/狀態(tài),追蹤狀態(tài)覆蓋率,引導(dǎo)測試。
時(shí)序堆內(nèi)存漏洞的模糊測試方法:HTFuzz。時(shí)序堆內(nèi)存漏洞(如UAF)依賴于特定內(nèi)存操作序列,傳統(tǒng)的fuzzing技術(shù)并未跟蹤內(nèi)存操作序列,無法有效挖掘該類型漏洞。如何高效追蹤內(nèi)存操作序列、分析堆對象別名、引導(dǎo)測試方向?該方法的主要策略為:在內(nèi)存訪問點(diǎn),記錄當(dāng)前trace中最后N個(gè)對操作序列哈希值(類似在每個(gè)基本塊處記錄邊覆蓋率),以此為反饋信號,引導(dǎo)模糊測試過程更高效觸發(fā)時(shí)序堆漏洞。
2.2??
數(shù)據(jù)驅(qū)動(dòng)
基于歷史表現(xiàn)的智能變異調(diào)度方法:MOpt。變異算法(算子)眾多,不同算子對于不同的種子效率各不相同,如何選擇最優(yōu)變異算子?該方法的主要策略為:基于各變異算子的歷史表現(xiàn),評估各算子的最佳選擇概率,采用粒子群優(yōu)化PSO算法尋找動(dòng)態(tài)最優(yōu)解。
基于輸入格式智能逆向的模糊測試方法:AIFORE。如何識別程序的輸入格式,指導(dǎo)fuzzers生成符合程序預(yù)期的測試?yán)玫販y試目標(biāo)程序?該方法的主要策略為:每個(gè)字段有相應(yīng)的處理代碼,字段邊界/類型與代碼片段強(qiáng)相關(guān),通過構(gòu)建人工智能模型對代碼片段的功能進(jìn)行分類,來識別字段類型,從而識別輸入格式,進(jìn)而指導(dǎo)模糊測試。
2.3??
混合技術(shù)
除了模糊測試技術(shù)之外,還有一些傳統(tǒng)的漏洞挖掘技術(shù),其中一些技術(shù)可以與符號執(zhí)行技術(shù)進(jìn)行融合,這種混合技術(shù)也具有較好的漏洞挖掘效果。
基于堆溢出漏洞建模的漏洞挖掘方案:HOTracer。模糊測試方案主要關(guān)注程序路徑覆蓋率,難以滿足單條路徑中數(shù)據(jù)約束,忽略值空間覆蓋率。該方法的主要策略為:在模糊測試得到的程序路徑上,分析其可能的堆溢出漏洞,利用符號執(zhí)行求解。
基于污點(diǎn)分析的物聯(lián)網(wǎng)漏洞挖掘方案:SaTC。物聯(lián)網(wǎng)設(shè)備通常包括Web前端(管理功能)和二進(jìn)制后端(系統(tǒng)執(zhí)行),傳統(tǒng)fuzzing難以有效測試。該方法的主要策略為:前端與后端通常共享某些關(guān)鍵字符串(比如輸入字段名字),可以作為污點(diǎn)分析的source點(diǎn),進(jìn)而跟蹤其是否到達(dá)潛在的危險(xiǎn)操作(sink點(diǎn))來識別潛在漏洞。
03?
漏洞挖掘技術(shù)發(fā)展與展望
智能模糊測試是當(dāng)前最有效的漏洞挖掘方案,基于遺傳算法的灰盒模糊測試在實(shí)踐中取得了極大成功。除了在知識驅(qū)動(dòng)、數(shù)據(jù)驅(qū)動(dòng)以及混合技術(shù)輔助三個(gè)角度進(jìn)行模糊測試改進(jìn),未來在廣度目標(biāo)支持、測試效率優(yōu)化、遺傳進(jìn)化方向以及漏洞捕獲能力等維度仍有很大的提升空間。
期待更多人關(guān)注網(wǎng)絡(luò)安全領(lǐng)域相關(guān)技術(shù)發(fā)展,也歡迎感興趣的伙伴共同加入到漏洞挖掘技術(shù)的研究中來。
E N D
點(diǎn)擊下方閱讀原文獲取演講PPT。
關(guān)注我們,獲取更多精彩。
審核編輯 黃宇
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11229瀏覽量
105559 -
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
11文章
3295瀏覽量
61108 -
數(shù)據(jù)驅(qū)動(dòng)
+關(guān)注
關(guān)注
0文章
137瀏覽量
12540 -
OpenHarmony
+關(guān)注
關(guān)注
26文章
3820瀏覽量
18113
發(fā)布評論請先 登錄
新型銅互連方法—電化學(xué)機(jī)械拋光技術(shù)研究進(jìn)展
室內(nèi)顆粒物的來源、健康效應(yīng)及分布運(yùn)動(dòng)研究進(jìn)展
薄膜鋰電池的研究進(jìn)展
傳感器EMC的重要性與研究進(jìn)展
太赫茲量子級聯(lián)激光器等THz源的工作原理及其研究進(jìn)展
AlphaFuzzer漏洞挖掘工具的使用
聲頻定向揚(yáng)聲器的研究進(jìn)展
鋰離子電池合金負(fù)極材料的研究進(jìn)展
CMOS_Gilbert混頻器的設(shè)計(jì)及研究進(jìn)展
移動(dòng)互聯(lián)網(wǎng)QoS機(jī)制的研究進(jìn)展述評
物聯(lián)網(wǎng)隱私保護(hù)研究進(jìn)展
農(nóng)業(yè)機(jī)械自動(dòng)導(dǎo)航技術(shù)研究進(jìn)展

峰會回顧第28期 | openBrain開源漏洞感知系統(tǒng)

評論