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

分享

AI大模型用于Fuzzing測試

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

這兩年,隨著大模型代碼能力的增強,很多公司已經在采用大模型編寫代碼,大大提升效率。

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

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

圖片

CI Spark

圖片

Code Intelligence是一家德國公司,他們的CI Spark利用生成式 AI 的代碼分析和生成功能來自動生成模糊測試,這是 AI 驅動的白盒測試的核心。

它的主要能力包括:

  • 識別接受用戶控制輸入的入口點

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

  • 識別 API 的有效參數

  • 處理數據流和控制流依賴關系

簡單地說,它可以自動識別模糊測試候選對象并自動生成模糊測試的代碼。此外,CI Spark 提供了一種交互模式,允許用戶快速與之交互以糾正任何漏報并提高生成測試的質量。嗯嗯,自然語言交互。

Code Intelligence的網站上提供了一個Demo,地址在https://www./product-ci-spark

在Demo中,體現了幾個特點:

  1. 測試代碼生成直接整合進IDE中。

圖片

IDE右邊的部分用于交互。

2. 自然語言交互的測試代碼生成能力

圖片

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

還可以更詳細的要求,增加一個有意義的輸出:

圖片

看上去生成的測試代碼還可以。

3. 測試代碼可以直接保存到項目中,測試結果可以直接在IDE中運行

圖片

準確地找到了相關代碼的位置??瓷先y試效果還可以。

圖片

更多調查

圖片

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

圖片

https:///html/2402.00350v1

文章對眾多的大模型Fuzzing測試的工具做了調查:

圖片

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

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多