對微軟開源的模糊測試平台OneFuzz的看法

2021-10-09 17:09:27 字數 1335 閱讀 3891

上週微軟開源了一款叫onefuzz的模糊測試平台,主要是由開發團隊驅動的可持續模糊測試平台,通過開發與整合專案對應的fuzzer工具,在ci構建中持續fuzz,自動化分析跟蹤崩潰,告警通知、遠端除錯與漏洞重現等功能。

按官方介紹的功能包括:

onefuzz依賴於microsoft azure雲服務,它利用虛擬機器規模集(virtual machine scale sets)可以建立出虛擬機器集群,從單一虛擬到上千核計算資源,並自動支援負載均衡。

同時利用 azure blob 儲存容器去儲存每個fuzz任務的上下文資訊,按容器作分類,包括目標程式及依賴、崩潰資訊、輸入樣本等。

在**倉庫中,你可以直接整合onefuzz去持續fuzz,比如利用github actions去自動部署:

也可以自己本地利用onefuzz本地命令去建立虛擬機器,建立任務去fuzz,執行效果:

如果發現崩潰可通過microsoft teams向團隊傳送通知:

對於崩潰會自動去重和分析,開發還可直接利用自帶命令遠端除錯:

最後聊點個人看法:

對於在cicd中實現持續fuzz的功能是相對比較完整的,與此前cifuzz思路類似;

對microsoft自身產品(azure、teams)依賴過重,且都是收費產品,對於其它企業有時比較難照搬使用,想要實現適合自己研發環境的ci fuzzer只能自己動手,思路上可以借鑑下;

google的clusterfuzz要比onefuzz功能更加強大;

平台預設採用afl、libfuzzer、honggfuzz、radamas工具進行fuzz,皆為主流的有效工具,能否挖到漏洞取決於你的目標(包括基於libfuzzer寫的目標程式)和樣本,跟onefuzz平台無關;

onefuzz對輸入樣本的處理功能支援較少,fuzzer也很少,估計後續可能會整合ossfuzz;

搭建成本不低,如果個人使用的話,可以自己寫個本地虛擬機器(vmware、hyper-v、qemu),docker容器對windows映象的支援有限,難以應用;

微軟對國際開源社群的承諾

2月21 日,微軟對國際開源社群正式表明態度 you win 你贏了 注 這是取自 web worker dairy 刊載的部落格欄目中的一種說法。實際上,微軟正式做出對開源開發者 不起訴的保證 covenant not to sue 如果他們的程式中間包含了微軟通訊協議的 專利要素 patente...

微軟的測試方法

首先介紹,在業界有兩種測試方法 第一類測試方法是試圖驗證軟體是 工作的 所謂 工作的 就是指軟體的功能是按照預先的設計執行的。第二類測試方法則是設法證明軟體是 不工作的 兩種測試方法的利與弊 第一類測試可以簡單的視為 在設計規定的環境下執行軟體的功能,將其結果與使用者需求或設計結果相比較,如果相符則...

微軟就像開源的過濾器

除了技術和實力上的比拼,微軟對開源一直實行正面競爭 背後分化的策略。秦勇說。但同時秦勇也認為這是開源運動蓬勃發展的必然結果,也從側面反應了開源力量的不斷強大。一方面微軟一直在挖 linux 和開源界的棟樑人物。包括曾經國內 linux 業界的重量級人物 拓林思總裁潘迪 曾擔任 linux 會的技術總...