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