亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

找到最奇怪的錯誤:10款頂級模糊測試工具

在創(chuàng)建應(yīng)用程序時,程序員會花費大量時間預(yù)測用戶將如何使用他們的軟件以及這些操作會產(chǎn)生什么樣的效果。優(yōu)秀的程序員不僅有著簡潔、高效的編碼質(zhì)量,還要考慮到發(fā)生意外的情況。但沒有人能夠預(yù)測用戶所有的可能操作,尤其是非常規(guī)性的操作(比如黑客攻擊,安全人員尤其關(guān)注這一點),這時就需要模糊測試(fuzzing)。

什么是模糊測試?

模糊測試(以下簡稱模測)是一個自動化的過程,在這個過程中,測試引擎嘗試向應(yīng)用程序發(fā)送大量意外的、錯誤的或隨機的輸入,以觀察程序的反應(yīng)。然后,再根據(jù)情況編寫合適的響應(yīng)代碼,盡可能的保證應(yīng)用程序的穩(wěn)定性和安全性。

例如,如果一個電子商務(wù)網(wǎng)站用戶訂購了200億件緊腰夾克,會發(fā)生什么?網(wǎng)站會崩潰嗎?會打折嗎?或者拿它當(dāng)正常訂單處理嗎?再比如,如果用戶輸入了有效的優(yōu)惠券代碼,但輸錯了地方會發(fā)生什么?回到網(wǎng)絡(luò)安全上,如果惡意用戶輸入命令行功能、加密內(nèi)容、操作系統(tǒng)命令或原始代碼,應(yīng)用程序?qū)⑷绾畏磻?yīng)?

一個好的模測引擎可以回答所有這些問題,甚至更多。

模測工具如何工作?

由于模測的價值,有相當(dāng)多的商業(yè)工具售賣,也有數(shù)百個優(yōu)秀程序員在GitHub等平臺上共享的免費工具。有不同類別的模測工具,如以發(fā)送大量隨機信息為特色的,再比如,通過非常規(guī)輸入來檢測運行中的程序,還有專門用于測試可編程接口(API)的工具。

在大多數(shù)情況下,模測的目標(biāo)是生成一些有效的意外數(shù)據(jù),當(dāng)然,至少是能夠被測試軟件解析器接受的數(shù)據(jù)。然后,提交應(yīng)用程序?qū)Ψ钦]斎胨a(chǎn)生的結(jié)果,最為典型的,如程序崩潰。

模測工具可以支持各種編程語言進行測試,主流的如C、C++、Go、Rust、Python、Java、Kotlin、Scala和Swift。還有些測試工具只使用單一語言的應(yīng)用程序測試。如,Python程序員的特定工具。但不管是哪種語言,合適的才是最好的。

本文嘗試推薦一些頂級的模測工具。商業(yè)工具來自O(shè)WASP網(wǎng)站上的列表,免費工具則是在GitHub上搜索“fuzz”,按“打星”的人氣數(shù)量排序,同時也兼顧另一個衡量受歡迎程度的指標(biāo),即該項目被分叉(fork)的次數(shù)。

四款商業(yè)模測

1. beSTORM

Beyond Security出品的beSTORM是商業(yè)市場上最通用的模測之一。無需訪問源代碼即可執(zhí)行測試,幾乎可與任何應(yīng)用程序、協(xié)議、語言乃至硬件一起工作,甚至還可以測試為特定行業(yè)和特種應(yīng)用設(shè)計的設(shè)備和程序。比如物聯(lián)網(wǎng)、過程控制應(yīng)用、與can總線兼容的汽車應(yīng)用、航空工具和低耗能藍牙設(shè)備。

多功能性是beSTORM的最為突出的價值所在,程序員只需學(xué)習(xí)使用單個界面,就可以針對幾乎無限數(shù)量的設(shè)備或應(yīng)用程序發(fā)起模測。beSTORM測試平臺預(yù)置了250個測試模塊,并且還能輕松地添加新的模塊,以覆蓋另類或?qū)S械膽?yīng)用程序。

此外,beSTORM還可以作為云服務(wù)訪問。通過這種方式,一個大型機構(gòu)可以購買該平臺,然后向不同地點的多個用戶提供模測工具的使用。

2. CI Fuzz

該工具內(nèi)置在一個Ubuntu虛擬機中,在本地或云端均可部署。將CI Fuzz集成到CI/CD(持續(xù)集成和持續(xù)交付)管道中,就可以在每次“pull Request”時自動運行。由于它是CI/CD過程的一部分,所以能夠防止程序在有了新的更改時,無意中增加漏洞或破壞程序。如果發(fā)生問題也能很快被標(biāo)記,從而很容易確定何時引入的程序錯誤。

每當(dāng)CI Fuzz檢測到錯誤時,它立即開始發(fā)送該輸入的不同組合,以嘗試映射問題的范圍。然后生成一份詳細(xì)的報告,以消除誤報,并能夠幫助程序員在修復(fù)代碼時手動重現(xiàn)這些錯誤。

CI Fuzz引擎需要直接訪問被測程序或應(yīng)用程序的源代碼,因此它只支持某些語言和框架,主要為C、C++、Java和Go。但該工具正在努力集成其他框架,如.Net Core和Python。

3. 新思模測套件(FTS)

與大多數(shù)產(chǎn)品相比,新思的模測產(chǎn)品有著不同的做法。FTS是一整套測試工具,每一個工具都針對于特定的語言、協(xié)議或用例,而不是一個測試工具去匹配盡可能對的應(yīng)用程序。這種做法的好處在于,用戶可以購買他們所需要模測工具,而無需購買他們可能永遠(yuǎn)不會需要的額外功能。

每個工具都有一組標(biāo)準(zhǔn)的功能,比如一組高度相關(guān)的現(xiàn)成測試用例、一個結(jié)果和報告分析組件、一個用于配置工具的圖形界面,以及如何使用它的說明文檔等。

FTS包括各種針對性的測試工具,從DNS服務(wù)器等常見組件,到CAN總線或IKEv2等很小眾、專業(yè)的應(yīng)用程序。用戶購買工具時,還可配送一定程度的支持。

4. Mayhem for Code

ForAllSecure的這款模測具備大多數(shù)模測引擎的優(yōu)點,并兼具額外的學(xué)習(xí)功能,因此可隨著使用時間的延長變得更加高效。該平臺可獨立運行,盡量減少人工干預(yù)。

Mayhem for Code在持續(xù)運行期間,可學(xué)習(xí)環(huán)境并挖掘利用系統(tǒng)的深度信息。它甚至可以根據(jù)所學(xué)到的知識動態(tài)生成測試用例。簡而言之,使用的次數(shù)越多、時間越長,它就能變得愈加高效和獨立。

該平臺目前可支持多種語言,如Java、Python、Ada、OCaml、Fortran、Jovial、C、C++、Go和Rust,且無需訪問源代碼。

六款免費/開源模測

1. PeachTech

PeachTech的模測在2020年之前一直都是商業(yè)付費產(chǎn)品,直到2020年被GitLab收購,并放出免費版本的PeachTech項目,但不再受支持或更新。

PeachTech投入了大量精力,具有高度可配置性,幾乎可以用任何語言或在任何操作系統(tǒng)上運行。然而,其說明文檔非常復(fù)雜,又取消了產(chǎn)品支持,用戶需要了解很多模測試的知識,以及使用的語言或框架,才能獲得該工具的益處。非專業(yè)人員不適用。

2. Google OSS-Fuzz

谷歌在為Chrome操作系統(tǒng)或瀏覽器開發(fā)新組件時,模測起到了很大的幫助作用,谷歌遂將其開源。

OSS-Fuzz適用于x86-64和i386版本,并利用了其他幾種模測引擎,包括AFL++、libFuzzer和Hongfuzz,并支持多種語言,包括C、C++、Rust、Go、Python和Java/JVM代碼。

OSS-Fuzz是目前GitHub上評價最高的項目之一,擁有一個很大的社區(qū),并在開源社區(qū)中得到很多支持。

3. FuzzDB

FuzzDB本身并不是一個模測引擎,而是一個復(fù)雜的攻擊載荷庫和注入技術(shù)庫(也許是世界上最大的庫),用于破壞或入侵未得到恰當(dāng)保護的程序和應(yīng)用。這些攻擊以各種方式進行分類,例如按平臺類型、已知問題、潛在源暴露,以及許多其他的分類。

FuzzDB庫的最佳利用方式,就是與可編程模測引擎結(jié)合。將FuzzDB中的攻擊模式加載在模測引擎中,配合模測的隨機輸入,可覆蓋很大范圍,從已知攻擊和漏洞到未知攻擊和未發(fā)現(xiàn)的漏洞。

4. Ffuf (Fuzz Faster U Fool)

Ffuf是一個用Go語言編寫的模測引擎。對于免費工具而言,它好用的出人意料。

它可以執(zhí)行最常見的模測功能,如檢查應(yīng)用程序?qū)ξ粗腉ET和POST請求的反應(yīng)。Ffuf沒有什么用戶界面,主要使用命令行功能。但一旦學(xué)習(xí)了這些功能,就會了解它的強大之處。

Ffuf在GitHub上有許多如何部署的示例,開發(fā)人員還會定期發(fā)布新的功能和特性。雖然它是免費的,但屬于贊助模式,新功能將優(yōu)先發(fā)布給那些付費贊助該工具進一步開發(fā)的人。30天后,其他才可以使用新功能。

5. Google ClusterFuzz

Google ClusterFuzz是用來檢查Chrome漏洞的模測引擎,它也是上述第二個免費工具OSS-Fuzz項目后端的一部分。但ClusterFuzz適用于任何程序或應(yīng)用,而不僅僅是開源領(lǐng)域的程序或應(yīng)用。

有了ClusterFuzz在后端的配合,OSS-Fuzz在谷歌產(chǎn)品中成功發(fā)現(xiàn)了超過2.9萬個bug,在開源項目中成功發(fā)現(xiàn)了2.6萬個bug。ClusterFuzz還設(shè)計成可在任何環(huán)境下運行,并具有高度可擴展性。該項目的GitHub頁面列出了ClusterFuzz與10萬臺虛擬機一起工作的一個項目,可以說滿足任何人所需要的可伸縮性。

6. go-fuzz

該平臺是一個有著高分評級的模測工具,針對性地測試go語言中的包。它主要用于解析復(fù)雜文本和二進制輸入的數(shù)據(jù)包。作者在Github的該項目頁面中的說明,go-fuzz對于加固系統(tǒng)尤其有用,這些系統(tǒng)解析來自潛在惡意用戶的輸入,例如通過網(wǎng)頁公開部署的任何內(nèi)容。

go-fuzz的說明文檔很好地描述了使用方法,同時,還附帶了一個存儲庫,包含了大量測試函數(shù)和和初始輸入設(shè)置的許多示例。

來源:數(shù)世咨詢

 

上一篇:CDCE積極開拓線上宣傳矩陣 賦力品牌更多營銷“轉(zhuǎn)機”

下一篇:勒索軟件不只是贖金,還有更多的隱性成本