RSA 2020創(chuàng)新沙盒盤點(diǎn)| ForAllSecure:融入DevSecOps的“下一代”模糊測試技術(shù)
2020年2月24日-28日,網(wǎng)絡(luò)安全行業(yè)盛會(huì)RSA Conference將在舊金山拉開帷幕。今天綠盟君將介紹創(chuàng)新沙盒十強(qiáng)初創(chuàng)公司之一:ForAllSecure。
一、公司介紹
ForAllSecure是由來自卡耐基梅隆大學(xué)的ForAllSecure安全研究團(tuán)隊(duì)于2012年創(chuàng)立的公司,工作地點(diǎn)包括賓夕法尼亞州匹茲堡、舊金山灣區(qū)和弗吉尼亞州水晶城。創(chuàng)始人David Brumley、Thanassis Avgerinos和Alex Rebert均來自卡耐基梅隆大學(xué)并擁有相關(guān)專業(yè)背景。公司在A輪融資中獲得1500萬美元,由New Enterprise Associates領(lǐng)投。其主打“下一代”模糊測試技術(shù),并基于此技術(shù)實(shí)現(xiàn)模糊測試系統(tǒng)Mayhem,憑借Mayhem的出色表現(xiàn)以大幅領(lǐng)先優(yōu)勢在美國國防部先進(jìn)項(xiàng)目研究局(DARPA)于2016年主辦的網(wǎng)絡(luò)超級(jí)挑戰(zhàn)賽(CGC)中一舉奪魁。ForAllSecure還在2017年被「麻省理工科技評(píng)論」選入“全球最聰明的50家公司”榜單(位列第35名)。
公司提供Mayhem模糊測試解決方案,將自動(dòng)化持續(xù)性安全測試融入DevOps流程,力求在早期發(fā)現(xiàn)漏洞、修復(fù)漏洞,以提高軟件安全性。與傳統(tǒng)模糊測試技術(shù)相比,該“下一代”模糊測試技術(shù)結(jié)合使用“符號(hào)執(zhí)行”技術(shù)和“導(dǎo)向型模糊測試”技術(shù),能夠針對測試發(fā)現(xiàn)的安全漏洞自動(dòng)化生成概念性驗(yàn)證(PoC)和補(bǔ)丁,在一定程度上避免傳統(tǒng)白盒測試的高誤報(bào)和黑盒測試的盲目性,具有很高的創(chuàng)新性和價(jià)值。
二、背景介紹
根據(jù)Cybersecurity Ventures的應(yīng)用安全報(bào)告顯示,應(yīng)用程序的攻擊面正在以每年1110億行代碼的速度增長,另外,0day漏洞利用程序被公布的速率已經(jīng)從2015年的“每周一個(gè)”增長到2021年的“每天一個(gè)”。
與此同時(shí),DevOps正在被越來越多的團(tuán)隊(duì)和組織接受和采用。然而,絕大多數(shù)應(yīng)用安全工具并不能跟上DevOps的腳步。例如,由于其居高不下的誤報(bào)率,“靜態(tài)代碼分析”工具大大限制了安全、開發(fā)和測試人員的生產(chǎn)力。
另一方面,企業(yè)級(jí)漏洞管理方案則是有限應(yīng)對策略。例如,“軟件組成分析”工具只能檢測那些已經(jīng)被公開并分配了CVE編號(hào)的漏洞。
面對這些限制和問題,F(xiàn)orAllSecure提供“下一代模糊測試”安全方案Mayhem,兼具導(dǎo)向型模糊測試的可靠性和符號(hào)執(zhí)行技術(shù)的創(chuàng)造力,幫助企業(yè)在軟件開發(fā)生命周期中更早地發(fā)現(xiàn)安全風(fēng)險(xiǎn)并快速消除。
三、產(chǎn)品介紹
Mayhem是一個(gè)幫助企業(yè)以機(jī)器級(jí)速度和規(guī)模測試軟件的輔助型智能行為測試解決方案。它結(jié)合使用符號(hào)執(zhí)行和導(dǎo)向型模糊測試技術(shù),通過監(jiān)控目標(biāo)程序的行為來動(dòng)態(tài)生成測試用例。
官方并未直接給出Mayhem的架構(gòu)組成。綠盟君根據(jù)官方公開資料整理出的大致架構(gòu)如下:
其中:
- Translator用于將二進(jìn)制程序翻譯為易于分析的中間表示;
- Offensive Tools用于尋找漏洞并構(gòu)建PoC或ExP;
- Defensive Tools用于生成補(bǔ)丁;
- Controller用于統(tǒng)籌整個(gè)流程;
Mayhem的工作流程如下:
我們可以看到,上述流程正是DevOps的一部分:
(1) 用戶向SCM(代碼倉庫)提交應(yīng)用代碼;
(2) 系統(tǒng)自動(dòng)基于SCM最新代碼構(gòu)建應(yīng)用;
(3) 系統(tǒng)自動(dòng)將構(gòu)建的應(yīng)用提交給Mayhem進(jìn)行測試,而Mayhem的測試又可分為三個(gè)相輔相成的邏輯模塊:
- 發(fā)送測試數(shù)據(jù)
- 監(jiān)視目標(biāo)行為
- 收集、分類并儲(chǔ)存結(jié)果
(4) 用戶與Mayhem交互,查詢應(yīng)用的風(fēng)險(xiǎn)情況并進(jìn)行下一步處理。
另外,Mayhem支持多種語言、平臺(tái)和DevOps環(huán)境,能夠滿足不同用戶的需求:
接下來,我們展示一個(gè)具體的應(yīng)用案例。借助這個(gè)案例,我們能夠真正觸摸到Mayhem,對其工作流程有深層次的理解;另一方面,也能夠在一定程度上體會(huì)到它的實(shí)力和價(jià)值所在。
開始測試
Mayhem提供了友好的用戶交互界面。初始化完成后,正式進(jìn)入測試階段,可以看到測試正在進(jìn)行:
查看基本測試結(jié)果
測試結(jié)束后,可以查看測試結(jié)果,了解應(yīng)用的脆弱點(diǎn):
值得注意的是,Mayhem根據(jù)CWE對脆弱點(diǎn)進(jìn)行了分類:
查看詳細(xì)測試結(jié)果
我們還可以查看具體測試用例的輸入輸出,從而精確定位問題(甚至可以看到反匯編后的代碼):
ForAllSecure強(qiáng)調(diào)Mayhem的優(yōu)勢之一是零誤報(bào)。那么如何做到零誤報(bào)呢?從上面的測試結(jié)果我們可以略知一二。Mayhem自動(dòng)構(gòu)建的測試用例等效于研究人員手工驗(yàn)證漏洞時(shí)編寫的PoC。一般來說,如果能夠?qū)е鲁绦虺霈F(xiàn)崩潰或其他異常(代碼邏輯預(yù)期之外的行為),我們便認(rèn)為PoC是有效的,同時(shí)認(rèn)為漏洞存在。
四、產(chǎn)品特點(diǎn)
- 持續(xù)性深度分析:隨著目標(biāo)程序知識(shí)的積累,Mayhem的分析將逐漸深入,代碼覆蓋率將逐漸提升。
- 零誤報(bào):Mayhem報(bào)告的所有缺陷均是準(zhǔn)確的(因?yàn)樗鼤?huì)自動(dòng)生成PoC去測試)。
- 自動(dòng)化生成測試用例:基于團(tuán)隊(duì)在卡耐基梅隆大學(xué)的專利技術(shù),Mayhem能夠利用目標(biāo)反饋在運(yùn)行時(shí)自動(dòng)化生成測試用例。
- 安全左移:在安全開發(fā)流程中,Mayhem將動(dòng)態(tài)分析、模糊測試及威脅建模等測試與驗(yàn)證步驟左移,幫助企業(yè)控制修復(fù)成本。它能夠直接插入到CI流水線中,將持續(xù)性測試作為DevOps工作流的一部分。
- 軟件供應(yīng)鏈管理:Mayhem能夠?qū)?yīng)用依賴的開源或第三方代碼進(jìn)行威脅評(píng)估,以減少軟件供應(yīng)鏈中存在的風(fēng)險(xiǎn)。
五、總結(jié)
在整個(gè)調(diào)研過程中,綠盟君能夠從各路媒體報(bào)道和ForAllSecure官方對Mayhem技術(shù)原理的概括性描述中感受到其團(tuán)隊(duì)擁有的深厚技術(shù)積淀。拋開立場不一的媒體,三個(gè)事實(shí)足夠證明他們的雄厚實(shí)力:
- 公司未立,技術(shù)先行:作為一支來自卡耐基梅隆大學(xué)的科研團(tuán)隊(duì),其技術(shù)的誕生時(shí)間比公司成立時(shí)間早很多年;
- 以絕對優(yōu)勢獲得DARPA CGC決賽第一名:挑戰(zhàn)賽集合了全球安全領(lǐng)域的頂尖團(tuán)隊(duì),F(xiàn)orAllSecure從104支隊(duì)伍中脫穎而出進(jìn)入七強(qiáng)殺入決賽、并獲得冠軍,這是硬實(shí)力的體現(xiàn);
- 獲得New Enterprise Associates領(lǐng)投的1500萬美元融資:這是資本的評(píng)估和認(rèn)可。
另一方面,F(xiàn)orAllSecure對當(dāng)前安全測試技術(shù)的痛點(diǎn)把握得十分到位。安全從業(yè)者往往會(huì)有這樣的感受:自動(dòng)化白盒測試(如靜態(tài)代碼分析等)具有不小的誤報(bào)率;自動(dòng)化黑盒測試(如漏洞掃描等)既有一定的誤報(bào)率,同時(shí)也有自身的局限性——受限于漏洞知識(shí)庫;人工滲透測試雖然效果顯著,但自動(dòng)化的缺失導(dǎo)致其無法融入DevOps流程;而傳統(tǒng)模糊測試技術(shù)的主要玩家通常是職業(yè)或半職業(yè)的漏洞獵人。
在此形勢下,F(xiàn)orAllSecure給出了一個(gè)支持DevOps的企業(yè)級(jí)模糊測試方案,并在一定程度上證明了該方案的有效性(DARPA CGC),這無疑是令人振奮的。
然而,我們也要提出問題:Mayhem是否真如ForAllSecure描述的那么優(yōu)秀?他們是否在把握住痛點(diǎn)的同時(shí)較好地解決了難點(diǎn)?
符號(hào)執(zhí)行和模糊測試本身并不是新技術(shù),人們對兩者的優(yōu)勢和缺陷也都早有研究。符號(hào)執(zhí)行技術(shù)更多地具有理論上的先進(jìn)性,但是在應(yīng)用到復(fù)雜程序時(shí)往往會(huì)遇到路徑爆炸等問題;模糊測試的結(jié)果則與輸入集的數(shù)量和質(zhì)量有著密切的關(guān)系。
通過DARPA CGC,我們看到了Mayhem在漏洞檢測和驗(yàn)證上的有效實(shí)力,但是我們也注意到,在比賽中Mayhem需要大量的水來進(jìn)行冷卻(CGC決賽為七支隊(duì)伍配備了180噸水進(jìn)行水冷)和大規(guī)模的算力、能源支持,這些都是前述技術(shù)局限性在具體實(shí)現(xiàn)上的客觀反映。有時(shí)候,產(chǎn)品和方案的優(yōu)秀并不完全由技術(shù)上的優(yōu)勢決定。安全行業(yè)的特點(diǎn)決定了成本與效果——也就是性價(jià)比往往才是最重要的。因此,Mayhem的成本和市場定位也許是需要初創(chuàng)團(tuán)隊(duì)考慮的問題,也是客戶關(guān)心的問題。
滾滾長江東逝水,浪花淘盡英雄。ForAllSecure真的能夠推動(dòng)DevSecOps發(fā)展,還是僅僅曇花一現(xiàn)?Mayhem到底是學(xué)術(shù)界的玩物,還是真的能夠成為業(yè)界一大殺器?這些都需要時(shí)間的檢驗(yàn)。然而,就本次創(chuàng)新沙盒競賽而言,綜合考慮技術(shù)實(shí)力與團(tuán)隊(duì)背景,綠盟君認(rèn)為ForAllSecure具有極強(qiáng)的競爭力,同時(shí)看好他們的后續(xù)發(fā)展。讓我們拭目以待。
· 參考文獻(xiàn) ·
[1] Mayhem, the Machine That Finds Software Vulnerabilities, Then Patches Them
[2] MIT Technology Review Reveals 50 Smartest Companies List in Annual Business Issue
[3] ForAllSecure
[4] ForAllSecure: About us
[5] DARPA網(wǎng)絡(luò)超級(jí)挑戰(zhàn)賽情況及思考
[6] 符號(hào)執(zhí)行技術(shù)總結(jié)(A Brief Summary of Symbol Execution)- wcventure
注:第3節(jié)引用了來自VDA Labs的資料Using-Next-Generation-Fuzzing-Tools.pdf;第4節(jié)參考了ForAllSecure官方資料FY19 DS Mayhem General v3.7.pdf。