工具

BinAbsInspector 二进制漏洞静态扫描工具

腾讯科恩实验室开发的二进制静态漏洞扫描工具,以 Ghidra 扩展或无界面脚本方式运行,在 Ghidra 的 P-code 而非汇编上进行抽象解释,支持 x86、x64、ARMv7 和 AArch64 二进制。它执行流敏感、上下文敏感的过程间分析,可配置值集合大小和调用串深度,可选用 Z3 约束求解,并对外部函数建模,在此基础上运行 13 类 CWE 检查,涵盖命令注入、缓冲区溢出与越界访问、格式化字符串、整数溢出、重复释放、释放后使用和空指针解引用等。告警会列出指令地址及其调用上下文,显示在 Ghidra 控制台中或以 JSON 输出。

使用条件与局限

  • 唯一的发布版本 v0.1 发布于 2022-04-20,是针对 Ghidra 10.1.2 构建的扩展 ZIP。所审阅的 main 提交比它多 20 个提交;其中的 Dockerfile 和 CI 工作流使用 Ghidra 10.4 和 JDK 17,最后一次提交在 2024-05-14,因此与当前 Ghidra 版本的兼容性没有文档说明。从源码构建需使用 Gradle 7.x(测试版本 7.4),并依赖本地安装的 Ghidra。
  • 需要 Z3(测试版本 4.8.15):README 建议用版本匹配的软件包替换 lib/ 中自带的 Java 绑定,并另行安装原生库,Linux 上不要使用发行版软件包。可通过 Ghidra 无界面分析器运行,也可在图形界面完成默认自动分析后从 Script Manager 启动,或使用项目提供的 Dockerfile;该 Dockerfile 从源码编译 Z3,默认使用国内 Ubuntu 镜像源,可通过 UBUNTU_MIRROR 参数更改。
  • 待分析的二进制由使用者自备。告警只是需要人工复核的线索,并非已确认的漏洞;科恩实验室的发布文章给出了项目自行完成的 Juliet 测试集评测,在 x86、x64 和 ARMv7 上就四类 CWE 与 cwe_checker 对比,按真/假阳性和真/假阴性计分。
  • 采用 GPL-3.0 许可。本次未构建,也未分析任何二进制。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  2. README.md#L5-L23 GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  3. README.md#L25-L81 GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  4. Dockerfile GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  5. .github/workflows/integration_test.yml GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  6. LICENSE GitHub · KeenSecurityLab/BinAbsInspector · 修订 658b413
  7. https://github.com/KeenSecurityLab/BinAbsInspector/releases/tag/v0.1
  8. https://keenlab.tencent.com/zh/2022/04/20/2022-BinAbsInspector-public-release/

同分区更多条目:原生二进制

原生二进制分区全部 74 项资源