Vulnhuntr 是一款开源工具,用于查找可远程利用的漏洞。
它使用LLM和静态代码分析来追踪数据在应用程序中的移动过程,从用户输入到服务器输出。这有助于它发现传统工具经常遗漏的复杂且多步骤的漏洞。
Vulnhuntr 基本上是最早的 LLM 代理之一,甚至在人们讨论 LLM 代理之前就已存在。其核心挑战在于,你不能直接将整个代码库输入到 LLM 中。
上下文窗口太有限,包含的无关代码越多,就越有可能错过真正的漏洞或开始产生幻觉。
我们构建了一个引擎,允许 LLM 读取项目中的每个文件,以查看它是否处理远程用户输入,例如 GET 或 POST 参数。
如果是,LLM 会通过请求下一个相关的类、函数或变量来追踪输入的流向,甚至跨文件。
我们的引擎会找到相应的代码,将其添加到 LLM 的上下文中,并重复此过程,直到映射出完整的调用链。
LLM 会针对每种漏洞类型使用一个定制的提示来分析组合代码中是否存在特定漏洞,例如 XSS、SQLi 或 LFI。
这种结构减少了“幻觉”,并帮助 LLM 推理绕过漏洞,甚至编写完整的漏洞利用程序。
当我们推出 Vulnhuntr 时,我们在主要开源项目中披露了十几个零日漏洞,远早于谷歌 Big Sleep 等工具的发布。
Vulnhuntr 可在GitHub上免费获取。