智能自动化二进制漏洞分析工具
演示:

Callisto 是一个智能自动化二进制漏洞分析工具。其目的是自主反编译提供的二进制文件,并遍历输出的伪代码,寻找该伪 C 代码中潜在的安全漏洞。Ghidra 的无头反编译器驱动了二进制反编译和分析部分。伪代码分析首先由 Semgrep SAST 工具执行,然后传递给 GPT-3.5-Turbo 以验证 Semgrep 的发现,并可能识别额外的漏洞。
该工具旨在辅助二进制分析和零日漏洞发现。其输出旨在帮助研究人员识别二进制文件中可能感兴趣的区域或易受攻击的组件,随后可通过动态测试进行验证和利用。它当然无法捕获所有漏洞,但通过 Semgrep 到 GPT-3.5 的双重验证旨在减少误报,并对程序进行更深入的分析。
对于那些仅希望将该工具用作快速无头反编译器的用户,生成的 output.c 文件将包含从二进制文件中提取的所有伪代码。这些代码可以导入到您自己的 SAST 工具中或手动分析。
我衷心感谢 Marco Ivaldi @0xdea 公开发布的自定义 Semgrep C 规则,以及他关于使用 semgrep 和解编译器输出的伪代码自动化漏洞发现的想法。您可以在此处阅读更多关于他的研究:使用 Ghidra 和 Semgrep 自动化二进制漏洞发现
要求:
pip install semgreppip install -r requirements.txtconfig.txt 文件中设置了正确的 Ghidra 目录路径运行方式:
python callisto.py -b <path_to_binary> -ai -o <path_to_output_file>
-ai => 启用 OpenAI GPT-3.5-Turbo 分析。需要在 config.txt 文件中放置有效的 OpenAI API 密钥-o => 定义输出文件,如果您想保存输出-ai 和 -o 是可选参数-all 将通过 OpenAI 分析运行所有函数,无论是否有 Semgrep 发现。此标志需要先有 -ai 标志python callisto.py -b vulnProgram.exe -ai -o results.txtpython callisto.py -b vulnProgram.exe -ai -all -o results.txt程序输出示例:
