
fkiecad/cwe_checkercwe_checker是一套用于检测常见漏洞类别的静态分析工具套件,可识别危险函数使用、简单整数溢出等漏洞类型,这些漏洞在形式上被称为Common Weakness Enumerations(CWEs)。其主要目标是帮助分析师快速发现易受***的代码路径。
该工具主要针对Linux和Unix系统中常见的ELF二进制文件,基于Ghidra将二进制文件反汇编为统一的中间表示(IR),并在该IR上实现自定义分析。因此,它可运行于Ghidra支持反汇编的所有CPU架构,是固件分析的重要工具。
最简单的方式是从Docker Hub拉取最新镜像:
docker pull fkiecad/cwe_checker:latest:基于当前master分支构建的镜像docker pull fkiecad/cwe_checker:stable:基于最新稳定发布版本构建的镜像如需本地构建镜像,执行:
bashdocker build -t cwe_checker .
本地构建和安装需先安装以下依赖:
编译并安装:
bashmake all GHIDRA_PATH=/path/to/ghidra_folder # 替换为实际Ghidra安装路径
cwe_checker以二进制文件为输入,通过静态分析运行多项检查,输出发现的CWE警告列表。
bashdocker run --rm -v /PATH/TO/BINARY:/input fkiecad/cwe_checker /input
(将/PATH/TO/BINARY替换为本地二进制文件的实际路径)
bashcwe_checker BINARY # BINARY为目标二进制文件路径
src/config.json配置。修改后需使用--config=src/config.json指定配置文件--help查看所有可用参数cwe_checker提供实验性裸机二进制分析支持,需通过--bare-metal-config指定配置文件。示例配置文件位于bare_metal/stm32f407vg.json(针对STM32F407VG MCU测试)。
目前已实现以下分析检查(部分分析可能仅部分实现,由于静态分析的局限性,可能存在误报和漏报):
cwe_checker提供Ghidra脚本,可解析分析结果并在反汇编器中注释发现的CWE。脚本位于ghidra_plugin/cwe_checker_ghidra_plugin.py,使用说明包含在文件中。
cwe_checker可作为插件集成到FACT(固件分析和比较工具)。
Copyright (C) 2018 - Fraunhofer FKIE (***) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <[***]>.
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务