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 ``` 分析完成后,报告会自动在浏览器中打开。 image ## 🧪 测试 运行所有测试: ``` 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, 依赖扫描, 实时处理, 数字签名, 数据擦除, 模型提供商, 漏洞审计