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