标题: 大模型助力代码审计 分类: 工具 创建: 2025-12-01 22:13 修改: 链接: http://0x2531.tech/tools/202512012213.txt -------------------------------------------------------------------------------- 以下项目为互联网上公开的大模型在代码白盒审计工作上的尝试,都取得了或多或少的成绩,按时间先后顺序记录之, 方便日后查阅。 ---------- 1、Project Naptime: Evaluating Offensive Security Capabilities of Large Language Models https://googleprojectzero.blogspot.com/2024/06/project-naptime.html https://paper.seebug.org/3187/(中文翻译) 2024年6月20日 提出了一系列指导原则,遵从这些原则,将充分发挥 LLM 在漏洞挖掘方面的能力,从而提高发现漏洞的概率。 这些指导原则基于模拟人类安全研究员工作流程这个想法提出: 1)推理空间 让 LLM 参与广泛推理过程至关重要。鼓励 LLM 提供详细和解释性的回答能带来更准确的结果。 2)交互环境 通过交互,让模型有机会调整和纠正失误。 3)专业工具 为 LLM 配备专业工具(如调试器和脚本环境)对于模拟人类安全研究人员的工作环境至关重要。例如,使用 Python 解释器可增强 LLM 执行精确计算的能力;调试器能让 LLM 在运行时精确检查程序状态,并有效处理错误。 同时,必须在功能和可用性之间取得平衡,避免让 LLM 不堪重负。 4)完美验证 由于漏洞发现任务可以被结构化,因而可以在绝对确定的情况下对漏洞进行自动验证。 5)抽样策略 采用抽样策略,让 LLM 在多个独立的路径上探索不同的假设。 Naptime 一大亮点是为 LLM 配备完成特定任务的工具(如:调试器、代码浏览器和Python解释器等),旨在模仿 人类安全研究员的工作流程,并能对结果进行自动验证。 2、Autonomously Uncovering and Fixing a Hidden Vulnerability in SQLite3 with an LLM-Based System https://team-atlanta.github.io/blog/post-asc-sqlite/ 2024年8月28日 介绍了 Atlantis CRS(网络推理系统),该系统基于 LLM 有能力自主发现和修复复杂系统(如:SQLite3)隐蔽的漏洞。 设计理念是带入人类安全研究员和黑客的想法以及模拟其行为,并增强高级程序分析的技能。 介绍了 Atlantis 在隔离环境发现了 SQLite3 一个off-by-one导致空指针解引用漏洞,以及对比了 Claude 3.5 sonnet、ChatGPT 4o、Atlantis和 SQLite3 官方给出的补丁,展示了 AI Agent 在 漏洞发现和修复方向上的潜力。 3、Winning the AIxCC Qualification Round https://blog.theori.io/winning-the-aixcc-qualification-round-7263d1cde9c8 2024年9月25日 也是在 AIxCC 比赛,Theori 团队的 CRS 系统专注于使用 LLM 提高传统的静态分析和动态调试技术的有效性。 包括:生成测试用例、编写或修改辅助模糊测试的工具(如:harness等)、删除源代码中影响模糊测试效率且 不影响漏洞发现的代码(如:sleep、random等)和分类发现的 bug 等。 由于人类和 LLM 对程序正常功能理解上的模糊性,以及 LLM 特有的幻觉问题,很难完全依靠 LLM 提供的补丁。 4、Vulnhuntr: Autonomous AI Finds First 0-Day Vulnerabilities in Wild https://protectai.com/threat-research/vulnhuntr-first-0-day-vulnerabilities https://github.com/protectai/vulnhuntr 2024年10月19日 逐一对处理网络请求文件进行两步分析:第一步,对单文件代码进行整体分析,发现潜在漏洞;第二步,针对每种漏洞类型, 根据 LLM 查看上下文代码的请求,使用静态分析工具获取到代码片段后放置在提示词上下文中,直至 LLM 能完整了解 从用户输入到结果输出的调用链,从而判断是否存在漏洞。 局限性: 1)只适用审计 Python 项目 2)覆盖漏洞类型有限 3)结果的不确定性 5、Attention Is All You Need for LLM-based Code Vulnerability Localization https://arxiv.org/abs/2410.15288 2024年10月20日 提出了一种新的基于自注意力机制的漏洞定位方法,LOVA。通过系统性跟踪和分析代码的注意力权重,LOVA能有效识别 复杂代码库中的潜在漏洞。研究结果表明,LOVA显著提高漏洞定位的准确性,展示其在软件安全领域的广泛应用潜力。 6、From Naptime to Big Sleep: Using Large Language Models To Catch Vulnerabilities In Real-World Code https://googleprojectzero.blogspot.com/2024/10/from-naptime-to-big-sleep.html 2024年11月1日 项目研究动机来自于 LLM 相较于传统方法更有机会发现漏洞变体,对 SQLite 进行测试则是受 Atlanta 团队在 SQLite 里发现的空指针解引用漏洞的鼓舞。相比传统的模糊测试方法,LLM 驱动的测试方法通过使用正确的工具可以取得意想不到的效果。 同时,通过提供高质量的根因分析、bug 分类和补丁代码等,为防守方带来优势。 7、DataCon晚自习:浅谈大模型辅助漏洞挖掘 https://mp.weixin.qq.com/s?__biz=Mzk0OTU2ODQ4Mw==&mid=2247486453&idx=1&sn=f76e05a668d87f353ec5666b63c38359& chksm=c2ee58ab577f6db2861c0f9fbf29cdc513b6f7fbfc85545551f7f13a8f296414a89d0856f77d&mpshare=1&srcid=11202ykphKvwtKl4bXceTdOq& sharer_shareinfo=17564cf6b4ea94e43f6ba1922579a9eb&sharer_shareinfo_first=17564cf6b4ea94e43f6ba1922579a9eb&scene=21#wechat_redirect 2024年11月20日 微调、提示工程和检索增强生成(RAG)是目前大模型辅助漏洞挖掘主要的三种方法。受限于大模型的上下文窗口和性能问题, 目前主要结合静态分析工具提取目标代码上下文添加到提示词中让 LLM 分析,通过循环提取和分析,完成从用户输入到结果输出完整代码调用链的审计。 此外,充分利用大模型使用工具的能力,让 Agent 模仿人类安全研究员的工作模式,这一方向也极具想象力。 简单介绍了 Multi-agents 方法,让多个 Agent 协同工作提高整体性能。 8、大模型应用实践(一):AI助力Code Review安全漏洞发现 https://security.tencent.com/index.php/blog/msg/210 2024年11月27日 LLM + CoT + 正则规则 + 静态分析 LLM:对自然语言、代码的理解能力、对漏洞的知识、推理能力以及输出结构化信息的能力 CoT:专家经验,增强 LLM 的性能 正则规则:提高准确率 静态分析:获取完整调用链,帮助 LLM 做判断 9、AI猎手:我们用大模型挖到了0day漏洞!【大模型应用实践系列三】 https://security.tencent.com/index.php/blog/msg/212 2025年01月03日 架构和 vulnhuntr 很像,应该是有所借鉴,支持 Java 项目的审计。 第一步: 寻找漏洞入口 先对项目代码进行筛选(main方法/public方法/框架的入口方法),来明确存在漏洞的项目文件入口。 当前主要通过正则找到存在远程攻击入口的文件。 第二步:根据入口,进行初步漏洞标记 为了进行漏洞的快速挖掘,避免问询资源的浪费, 通过调用大模型对代码入口文件进行初步的漏洞类型评估, 筛选出存在薄弱点的高危文件, 从而更聚焦在特定漏洞类型进行漏洞分析,提高准确性。 第三步:调用大模型进行代码深入分析 调用大模型进行多轮对话轮训,并根据轮训结果,结合上下文补充信息,逐步进行代码深入分析。 第四步:分析结束,输出漏洞报告 当出现以下几种情况的时候,工具会停止分析,并输出漏洞报告: 分析深度超过某个阈值; 大模型认为已经获得了漏洞点后返回结果; 分析到未知的开源组件代码,并完成漏洞特征推断后结束对话并返回。 10、【知道创宇404实验室】本地化 AI 审计工具落地小试牛刀 https://mp.weixin.qq.com/s?__biz=MjM5NzA3Nzg2MA==&mid=2649870976&idx=1&sn=532f0cf3ec728a9abfa1fecbfab03268&scene=21#wechat_redirect 2025年2月18日 利用大模型使用工具的能力,加速工作进程 11、基于污点分析的 AI 自动化漏洞挖掘尝试 https://paper.seebug.org/3283/ 2025年02月20日 从 sink 向前溯源找 source 12、启明星辰ADLab:使用DeepSeek-R1在固件漏洞挖掘领域的新实践 https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODUyOA==&mid=2247492030&idx=1&sn=66fbe3e56df4da5b793030467f7b0968& chksm=c27c165b14597abb54b1749d095516d7862b64f9397d33405d4be5fdef6d8e9d22046b7799c6&mpshare=1&srcid=0301DfD5Eotild1SNSsme4QM& sharer_shareinfo=ffffc85fb9ea425b8b65bb78c1202e9a&sharer_shareinfo_first=ffffc85fb9ea425b8b65bb78c1202e9a&scene=21#wechat_redirect 2025年2月24日 使用推理模型减少误报,典型的是存在漏洞特征但路径不可达的场景,降低人工复核成本。 Agent 理解安全研究员的意图,当需要使用工具时,则选择具备调用工具能力的模型,然后将调用工具前后的上下文告诉 R1 模型,让其可以继续推理。 13、当我们在谈论大模型辅助漏洞挖掘时,我们在谈论什么 https://mp.weixin.qq.com/s/KI8AOq3r8_SREPUtNhxSvw 2025年3月4日 将大模型辅助代码审计工具看做 AI Coding 工具。 P.S. 或许可以使用 Cursor + MCP,直接打造大模型驱动的代码审计工具。