本論文介紹了一種基於大型語言模型 (LLM) 的 JSON 解析器模糊測試方法 JFuzz,旨在發現開源 JSON 解析器中的潛在錯誤並識別它們之間的行為差異。
JSON (JavaScript Object Notation) 作為一種簡單、通用的數據交換格式,在現代軟件開發中扮演著至關重要的角色。然而,隨著 JSON 的普及,有效解析和解釋 JSON 變得越來越重要。不正確或易受攻擊的 JSON 解析器可能導致軟件應用程序出現問題,從輕微的不便到嚴重的安全漏洞。
本研究旨在解決開源 JSON 解析器中潛在的未被發現的錯誤和漏洞。這些問題可能導致數據解釋錯誤、應用程序崩潰,甚至代碼注入等潛在安全威脅。
JFuzz 採用創新的提示工程技術,例如思維鏈和少樣本提示,來指導 LLM 生成各種測試用例。少樣本 JSON 示例來自互聯網上現有的 JSON 解析測試套件,以及 StackOverflow 或 GitHub 等平台上的用戶報告實例。此外,JSON 規範文檔也作為補充領域知識。
JFuzz 利用 LLM 生成的種子 JSON 文件作為多個解析器的輸入,進行差異測試。然後,它評估解析器輸出以確保符合 JSON 標準格式,並評估所有解析器輸出的 一致性。
為了區分這些差異中的潛在錯誤,JFuzz 提出了一種抽樣方法,旨在減少由假陽性(歸因於行為差異的不一致)產生的噪音。此方法使我們能夠專注於更有可能指示真正錯誤的不一致。
JFuzz 主要通過其在實際 JSON 解析器中發現的錯誤數量來評估其有效性。
本研究提出了一種基於 LLM 的 JSON 解析器模糊測試新方法,可以有效發現潛在錯誤並識別不同解析器之間的行為差異。
إلى لغة أخرى
من محتوى المصدر
arxiv.org
الرؤى الأساسية المستخلصة من
by Zhiyuan Zhon... في arxiv.org 10-30-2024
https://arxiv.org/pdf/2410.21806.pdfاستفسارات أعمق