mpv7/mpv_cpp_npm_audit
GitHub: mpv7/mpv_cpp_npm_audit
cpp-audit 是一个类似 npm audit 的 C++ 依赖安全审计工具,通过分析 CMake 项目的 FetchContent 声明并查询 NVD 漏洞数据库来检测第三方库的已知漏洞。
Stars: 0 | Forks: 0
# 🔍 cpp-audit
**cpp-audit** — 一个用于审计通过 `FetchContent` 在 CMake 项目中引入的 C++ 依赖项安全性的工具。
该程序会分析 `CMakeLists.txt` 文件,提取外部库及其版本信息,通过 NVD (National Vulnerability Database) 数据库搜索已知漏洞,并生成包含检查结果的 HTML 报告。
## ✨ 功能
* 分析通过 `FetchContent_Declare` 引入的依赖项
* 从 `GIT_TAG` 中提取库版本
* 通过 NVD API 搜索已知漏洞
* 支持 NVD API 密钥
* 将 CVE 与特定的库版本进行匹配
* 根据 CPE 过滤结果
* 生成详细的 HTML 报告
* 使用颜色指示漏洞的危险等级
* 自动在浏览器中打开报告
* 基于 Doctest 的单元测试
* 与 CTest 集成
* 通过 Doxygen 生成文档
## 📦 使用的技术
* C++17
* CMake 3.15+
* libcurl
* nlohmann/json
* Doctest
* Doxygen
* vcpkg
## 📋 要求
| 组件 | 版本 |
| ---------- | ------------------------------------- |
| CMake | 3.15+ |
| 编译器 | GCC / Clang / MSVC(支持 C++17) |
| vcpkg | 最新版本 |
| Git | 推荐 |
## 🚀 安装
### 1. 克隆仓库
```
git clone https://github.com/mpv7/mpv_cpp_npm_audit.git
cd mpv_cpp_npm_audit
```
### 2. 构建项目
创建构建目录:
```
mkdir build
cd build
```
配置项目:
```
cmake ..
```
构建项目:
```
cmake --build .
```
成功构建后,可执行文件将位于:
```
build/bin/cpp-audit.exe
```
## ▶️ 使用说明
### 不带 API 密钥运行
```
cpp-audit.exe "Путь к проекту"
```
### 带 NVD API 密钥运行
在以下网站获取 API 密钥:
https://nvd.nist.gov/developers/request-an-api-key
然后执行:
```
cpp-audit.exe "Путь к проекту" --api-key=YOUR_API_KEY
```
使用 API 密钥可显著减少向 NVD 发起请求之间的延迟。
## 📄 被分析项目的示例
```
include(FetchContent)
FetchContent_Declare(
nlohmann_json
GIT_REPOSITORY https://github.com/nlohmann/json.git
GIT_TAG v3.11.3
)
FetchContent_MakeAvailable(nlohmann_json)
```
分析结果将发现以下依赖项:
```
nlohmann_json -> 3.11.3
```
## 📊 HTML 报告
检查完成后,会自动生成 HTML 报告,其中包含:
* 已检查的库的数量;
* 发现的漏洞列表;
* CVE 标识符;
* 严重程度;
* 漏洞描述;
* 更新建议。
示例:
```
Library Version CVE Severity
-----------------------------------------------------
fmt 8.1.1 CVE-XXXX-XXXX HIGH
spdlog 1.9.2 CVE-XXXX-XXXX MEDIUM
```
分析完成后,报告会自动在浏览器中打开。
## 🧪 测试
运行所有测试:
```
ctest --verbose
```
## 📚 文档
要生成文档,请执行:
```
doxygen Doxyfile
```
文档生成后,可通过以下路径访问:
```
docs/html/index.html
```
## 📁 项目结构
```
cpp-audit/
│
├── src/ # Исходный код
├── include/ # Заголовочные файлы
├── tests/ # Модульные тесты
├── docs/ # Документация Doxygen
├── reports/ # HTML-отчёты
├── CMakeLists.txt
└── README.md
```
## 🔒 漏洞数据来源
检查是通过由 NIST (National Institute of Standards and Technology) 维护的官方漏洞数据库 NVD (National Vulnerability Database) 进行的。
API 文档:
https://nvd.nist.gov/developers
## 🧪 测试
运行所有测试:
```
ctest --verbose
```
## 📚 文档
要生成文档,请执行:
```
doxygen Doxyfile
```
文档生成后,可通过以下路径访问:
```
docs/html/index.html
```
## 📁 项目结构
```
cpp-audit/
│
├── src/ # Исходный код
├── include/ # Заголовочные файлы
├── tests/ # Модульные тесты
├── docs/ # Документация Doxygen
├── reports/ # HTML-отчёты
├── CMakeLists.txt
└── README.md
```
## 🔒 漏洞数据来源
检查是通过由 NIST (National Institute of Standards and Technology) 维护的官方漏洞数据库 NVD (National Vulnerability Database) 进行的。
API 文档:
https://nvd.nist.gov/developers标签:Bash脚本, C++, CMake, CVE, NVD, 依赖扫描, 实时处理, 数字签名, 数据擦除, 模型提供商, 漏洞审计