小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

AI大模型用于Fuzzing測(cè)試

 沖天香陣 2024-11-25 發(fā)布于四川

這兩年,隨著大模型代碼能力的增強(qiáng),很多公司已經(jīng)在采用大模型編寫(xiě)代碼,大大提升效率。

大模型雖然代碼寫(xiě)得快,但寫(xiě)的代碼并不安全,很多甚至不如成熟程序員寫(xiě)的代碼。一方面,代碼生成速度大幅提升,另一方面,代碼質(zhì)量并不提高,結(jié)果就是對(duì)測(cè)試越來(lái)越大的挑戰(zhàn)。

怎么辦?用大模型對(duì)抗大模型是現(xiàn)在比較流行的方法。大模型在安全測(cè)試方面也有了很多的發(fā)展。Fuzzing就是一個(gè)比較重要的領(lǐng)域。

圖片

CI Spark

圖片

Code Intelligence是一家德國(guó)公司,他們的CI Spark利用生成式 AI 的代碼分析和生成功能來(lái)自動(dòng)生成模糊測(cè)試,這是 AI 驅(qū)動(dòng)的白盒測(cè)試的核心。

它的主要能力包括:

  • 識(shí)別接受用戶控制輸入的入口點(diǎn)

  • 識(shí)別有效的 API 序列及可觸發(fā)的行為

  • 識(shí)別 API 的有效參數(shù)

  • 處理數(shù)據(jù)流和控制流依賴關(guān)系

簡(jiǎn)單地說(shuō),它可以自動(dòng)識(shí)別模糊測(cè)試候選對(duì)象并自動(dòng)生成模糊測(cè)試的代碼。此外,CI Spark 提供了一種交互模式,允許用戶快速與之交互以糾正任何漏報(bào)并提高生成測(cè)試的質(zhì)量。嗯嗯,自然語(yǔ)言交互。

Code Intelligence的網(wǎng)站上提供了一個(gè)Demo,地址在https://www./product-ci-spark

在Demo中,體現(xiàn)了幾個(gè)特點(diǎn):

  1. 測(cè)試代碼生成直接整合進(jìn)IDE中。

圖片

IDE右邊的部分用于交互。

2. 自然語(yǔ)言交互的測(cè)試代碼生成能力

圖片

要求檢查生成的代碼里不能有”<script”,防止SQL注入。直接生成測(cè)試的Java代碼。

還可以更詳細(xì)的要求,增加一個(gè)有意義的輸出:

圖片

看上去生成的測(cè)試代碼還可以。

3. 測(cè)試代碼可以直接保存到項(xiàng)目中,測(cè)試結(jié)果可以直接在IDE中運(yùn)行

圖片

準(zhǔn)確地找到了相關(guān)代碼的位置??瓷先y(cè)試效果還可以。

圖片

更多調(diào)查

圖片

有一篇論文專門研究了大模型用于模糊測(cè)試的情況:

圖片

https:///html/2402.00350v1

文章對(duì)眾多的大模型Fuzzing測(cè)試的工具做了調(diào)查:

圖片

得到如下結(jié)論:與傳統(tǒng)的fuzzer相比,基于大模型的fuzzer有以下優(yōu)點(diǎn)
1.更高的 API 和代碼覆蓋率:
CHATAFL 作為一種基于大型語(yǔ)言模型的網(wǎng)絡(luò)協(xié)議模糊測(cè)試技術(shù),與 AFLNET Pham等同類最先進(jìn)的模糊測(cè)試工具相比,具有更高的平均代碼覆蓋率 (2020)和NSFuzz  Qin等人(2023),這些工具沒(méi)有使用 LLM 技術(shù)。與 AFLNET 相比,CHATAFL 的分支覆蓋率平均高出 5.8%。與 NSFuzz 相比,這一數(shù)字上升到 6.7%。這表明 CHATAFL 的檢測(cè)范圍更廣,發(fā)現(xiàn)未知 bug 的幾率更高。
2.生成更高效的程序:
從整體代碼來(lái)看,TitanFuzz 在 PyTorch 和 TensorFlow 上分別實(shí)現(xiàn)了 20.98% 和 39.97% 的代碼覆蓋率,遠(yuǎn)超 DeepREL 和 Muffin。相比 DeepREL,TitanFuzz 在 PyTorch 和 TensorFlow 上的代碼覆蓋率分別提升了 50.84% 和 30.38%。雖然 TitanFuzz 的時(shí)間成本較高,但僅使用種子生成函數(shù)并針對(duì) DeepREL 覆蓋的 API 進(jìn)行測(cè)試的效果明顯優(yōu)于 DeepREL,并且耗時(shí)更少,這體現(xiàn)了直接使用 LLM 生成高質(zhì)量種子的優(yōu)勢(shì)。
3.發(fā)現(xiàn)更復(fù)雜的錯(cuò)誤:
傳統(tǒng)的模糊測(cè)試器通常根據(jù)給定的規(guī)則或方法隨機(jī)生成測(cè)試用例。此類方法缺乏對(duì)代碼結(jié)構(gòu)、邏輯和上下文的深入了解。因此,它們可能無(wú)法有效地探索復(fù)雜的編程模式或識(shí)別高級(jí)漏洞。此外,傳統(tǒng)的模糊測(cè)試器通常不會(huì)利用歷史錯(cuò)誤數(shù)據(jù)或編程模式。相比之下,LLM 可以從大量歷史代碼和錯(cuò)誤中學(xué)習(xí),從而能夠模擬過(guò)去的錯(cuò)誤模式并發(fā)現(xiàn)新的漏洞。在 FuzzGPT 的實(shí)驗(yàn)中,總共檢測(cè)到 76 個(gè)錯(cuò)誤,其中 61 個(gè)得到確認(rèn),包括 49 個(gè)已確認(rèn)為以前未知的錯(cuò)誤(其中 6 個(gè)已修復(fù))。更重要的是,F(xiàn)uzzGPT 檢測(cè)到 11 個(gè)新的高優(yōu)先級(jí)錯(cuò)誤或安全漏洞。這表明基于 LLM 的模糊測(cè)試器可以找到更深層次的編程漏洞。
例如,當(dāng)使用CHATAFL、NSFUZZ和AFLNET測(cè)試同一目標(biāo)時(shí),在相同的運(yùn)行次數(shù)和時(shí)間下,CHATAFL在測(cè)試目標(biāo)中發(fā)現(xiàn)了9個(gè)新漏洞。相比之下,NSFUZZ只發(fā)現(xiàn)了4個(gè)漏洞,而AFLNET發(fā)現(xiàn)了3個(gè)漏洞。
Fuzz4All 表現(xiàn)出色,已在 GCC、Clang、OpenJDK 等廣泛使用的系統(tǒng)中發(fā)現(xiàn) 76 個(gè)漏洞,其中 47 個(gè)漏洞已被確認(rèn)為未知漏洞。
4.提高自動(dòng)化程度:
傳統(tǒng)的模糊測(cè)試需要大量的時(shí)間、精力和人工。種子生成是模糊測(cè)試中不可或缺的一部分,創(chuàng)建多樣化且有效的輸入需要大量的人工和專業(yè)知識(shí)。此外,使用現(xiàn)有種子通過(guò)變異生成新輸入也非常耗時(shí)。使用大型語(yǔ)言模型自動(dòng)化模糊測(cè)試可以解決這些問(wèn)題。InputBlaster 利用 LLM 的自動(dòng)化功能根據(jù)輸入提示生成高質(zhì)量的種子。每次測(cè)試后,它會(huì)根據(jù)不同的提示對(duì)種子進(jìn)行變異,從而生成新的種子以供進(jìn)一步測(cè)試。實(shí)施自動(dòng)化模糊測(cè)試可以節(jié)省大量成本,預(yù)計(jì)這將是未來(lái)的一大趨勢(shì)。
圖片

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多