AI News HubLIVE
站內改寫2 分鐘閱讀

用AI代理強化stb庫

本文介紹如何使用AI代理(基於LLM)來發現、驗證和修復stb庫中的安全漏洞。作者設計了一個三階段流程:發現(透過網頁搜尋、模糊測試和靜態分析)、驗證(透過自動化測試確認漏洞真偽)和修補。在多個stb庫中發現了134個潛在bug,其中115個被確認為有效漏洞並修復,效能影響大多可忽略。

來源Hacker News AI作者: mrunix

stb是一組單標頭檔案的C語言庫,用於解碼影像、字型、音訊等多種任務。然而,這些庫歷史上存在大量安全問題,且很多問題未能得到及時修復,因此不適合處理不可信輸入的環境。

近期,關於使用大型語言模型(LLM)進行安全研究的討論日益增多,尤其是在Anthropic推出Claude Mythos以及隨後的Claude Mythos 5之後。儘管作者無法使用Mythos,但仍認為現有的LLM可用於安全研究與加固,並嘗試用其強化stb庫。

作者設計了一套智慧代理流程,能夠發現並修復安全漏洞。該流程包含三個階段:

階段1:發現 代理透過三種技術搜尋潛在安全問題:網頁搜尋(查詢已知漏洞如GitHub issues和CVE)、模糊測試(使用工具或指令碼測試惡意輸入)、靜態分析(讀取原始碼標記可疑部分)。

階段2:驗證 由於LLM可能產生幻覺,報告不存在的漏洞,因此需要透過自動化測試(單元測試或整合測試)驗證已標記的bug是否真實存在。

階段3:修補 確認漏洞後,代理以最小改動進行修補,並重新執行測試以驗證修復效果。

作者測試了多個AI代理和模型,包括Opencode、Codex、GitHub Copilot和Hermes,結果均令人滿意。截至目前,在stb庫中發現並修復的漏洞數量如下:

| 庫 | 總髮現bug數 | 網頁搜尋 | 模糊測試 | 靜態分析 | 有效漏洞 | | --- | --- | --- | --- | --- | --- | | stb_c_lexer.h | 12 | 7 | 2 | 3 | 12 | | stb_easy_font.h | 5 | 0 | 1 | 4 | 5 | | stb_hexwave.h | 12 | 5 | 4 | 3 | 12 | | stb_image.h | 30 | 21 | 5 | 4 | 21 | | stb_image_resize2.h | 17 | 13 | 1 | 3 | 13 | | stb_image_write.h | 9 | 4 | 2 | 3 | 7 | | stb_truetype.h | 36 | 13 | 15 | 8 | 34 | | stb_vorbis.c | 13 | 8 | 2 | 3 | 11 | | 總計 | 134 | 59 | 34 | 41 | 115 |

效能影響 作者對修補後的效能進行了基準測試,除stb_truetype.h外,其餘庫的效能迴歸可忽略不計。具體資料如下:

  • stb_image.h:大部分解碼操作有輕微提升或下降,如PNG解碼512x512 RGB耗時從1.930ms降至1.894ms(-1.9%),HDR解碼512x512 RGB從2.259ms升至2.438ms(+7.9%)。
  • stb_truetype.h:部分操作效能下降較明顯,如128px點陣圖渲染從0.880ms升至1.162ms(+32.0%),48px圖集打包從0.343ms升至0.429ms(+25.1%)。
  • stb_image_resize2.h:效能變化極小,大多在±2%以內。
  • stb_image_write.h:多數編碼操作效能變化在±3%以內,HDR編碼1024x1024 RGB上升8.2%。

總體而言,AI代理輔助的自動化安全加固方法在stb庫上取得了顯著效果,發現了大量真實漏洞並以極小效能代價進行了修復。