cwe_checker:在二进制可执行文件中查找存在安全问题的模式

科技   2024-11-21 19:02   上海  


关于cwe_checker

cwe_checker是一套用于检测常见错误类别(例如空指针取消引用和缓冲区溢出)的检查工具,这些错误类型可以将其称之为CWE。而该工具可以帮助广大研究人员快速找到潜在的易受攻击的代码路径,从而执行代码安全分析任务。



这些检查基于各种分析技术,从简单的启发式方法到基于抽象解释的数据流分析。它主要关注 Linux 和 Unix 操作系统中常见的 ELF 二进制文件。cwe_checker 使用Ghidra将二进制文件反汇编为一个通用的中间表示,并在此 IR 上实施自己的分析。


功能介绍


1、设置起来非常简单,只需构建 Docker 容器;

2、它分析了几种 CPU 架构的 ELF 二进制文件,包括 x86、ARM、MIPS 和 PPC;

3、由于其基于插件的架构,它具有可扩展性;

4、它是可配置的,例如将分析应用于新的 API;

5、查看 Ghidra 中注释的结果;

6、cwe_checker 可以作为插件集成到FACT中;


工具要求


Docker

Rust >= 1.76

Ghidra >= 10.2


工具安装


根据当前主分支生成镜像:

docker pull ghcr.io/fkie-cad/cwe_checker:latest

生成基于最新稳定发布版本的镜像:

docker pull ghcr.io/fkie-cad/cwe_checker:stable

生成基于 v0.9 稳定版本的镜像:

docker pull ghcr.io/fkie-cad/cwe_checker:v0.9


然运行下列命令构建镜像:

docker build -t cwe_checker .


工具使用


cwe_checker以二进制文件作为输入,根据二进制文件的静态分析运行几项检查,然后输出分析过程中发现的 CWE 警告列表。


如果你使用官方的docker镜像,只需运行:

docker run --rm -v /PATH/TO/BINARY:/input ghcr.io/fkie-cad/cwe_checker /input


如果你在本地安装了cwe_checker,请运行:

cwe_checker BINARY


与其他工具集成


cwe_checker 附带一个 Ghidra 脚本,该脚本解析 cwe_checker 的输出并注释反汇编器中找到的CWE,以便于手动分析。该脚本位于ghidra_plugin/cwe_checker_ghidra_plugin.py,使用说明包含在文件中:



工具运行演示



许可证协议


本项目的开发与发布遵循LGPL-3.0开源许可协议。


项目地址


cwe_checker:

https://github.com/fkie-cad/cwe_checker


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊

https://docs.cwe-checker.io/
https://cwe.mitre.org/
https://www.rust-lang.org/
https://ghidra-sre.org/
https://2019.pass-the-salt.org/talks/74.html
https://www.blackhat.com/us-19/arsenal/schedule/index.html#cwe_checker-hunting-binary-code-vulnerabilities-across-cpu-architectures-16782
https://www.blackhat.com/us-22/arsenal/schedule/#cwe_checker-architecture-independent-binary-vulnerability-analysis-26960

FreeBuf
中国网络安全行业门户
 最新文章