cwe_checker:在二进制可执行文件中查找存在安全问题的模式
2024-11-19 22:23:27 Author: www.freebuf.com(查看原文) 阅读量:0 收藏

关于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:【GitHub传送门

参考资料

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客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/sectool/415663.html
如有侵权请联系:admin#unsafe.sh