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