RSA 2020創新沙盒盤點| ForAllSecure:融入DevSecOps的“下一代”模糊測試技術
作者:星期五, 二月 21, 20200

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。

 

關鍵詞:

申明:本文系廠商投稿收錄,所涉觀點不代表安全牛立場!


相關文章