aymaan-balbale/cve-breaker

GitHub: aymaan-balbale/cve-breaker

cve-breaker是一个基于可达性分析的CVE扫描器,只标记代码中实际调用的漏洞,解决传统扫描器误报过多的问题。

Stars: 0 | Forks: 0

# 已使用的CVE构建中断器(上下文感知静态分析) 名称 = "cve-breaker" 版本 = "1.0.0" 编辑版本 = "2021" 描述 = "基于可达性分析的CVE扫描器——仅标记代码实际调用的漏洞" 传统SCA: "requests 2.31 存在 CVE-2023-32681" (噪声) CVE中断器: "在 api.py:42:12 调用了 requests.get()" (信号) ## 功能 (v1.0.0) * **极速并行I/O:** 使用 `rayon` 和 `ignore` 高效处理大型企业级单体仓库,不会造成系统卡顿。 * **飞行前依赖修剪:** 解析 `requirements.txt`、`pyproject.toml`、`Pipfile` 和 `Pipfile.lock`,在抽象语法树(AST)遍历器启动前剔除无关CVE。 * **参数感知AST检查:** 上下文感知的遍历。如果某个CVE需要特定的缺失参数,而开发者已显式地进行了缓解(例如 `requests.get(url, allow_redirects=False)`),该工具将保持沉默。 * **链式属性解析:** 通过递归解包链式调用(例如,将 `requests.Session().get()` 解析为 `requests.get`),挫败基本的绕过尝试。 * **噪声基线管理:** 默认将通配符导入(`from X import *`)降级为低置信度警告,防止因命名空间冲突导致构建失败。 ## 快速开始 ``` # 构建原生二进制文件 cargo build --release # 扫描单个文件 ./target/release/cve-breaker scan path/to/app.py # 递归扫描目录(遵守 .gitignore 规则) ./target/release/cve-breaker scan src/ # CI / pre-commit — 发现任何确认问题时以退出码 1 返回 ./target/release/cve-breaker scan src/ --fail-on-vuln # 严格模式:即使通配符猜测也会中断构建 ./target/release/cve-breaker scan src/ --fail-on-vuln --strict-wildcards # 禁用预检修剪(强制全数据库扫描) ./target/release/cve-breaker scan src/ --no-prune # 机器可读输出 ./target/release/cve-breaker scan src/ --format json ``` 示例输出 ────────────────────────────────────────────────────────────── 🔍 CVE 中断器 基于可达性分析的SCA ────────────────────────────────────────────────────────────── 扫描文件数 : 142 可达CVE数 : 1个已确认,1个通配符猜测 ────────────────────────────────────────────────────────────── [ 1] CVE-2020-14343 严重 位置 app.py:42:12 调用 yaml.load() 包 yaml 详情 通过不安全的YAML反序列化执行任意代码。 修复 将 yaml.load(x) 替换为 yaml.safe_load(x)。 [ 2] GHSA-MARSHAL-UNSAFE 高危 [!] 低置信度:通过通配符导入匹配。请手动验证。 位置 utils.py:18:4 调用 loads() [来自 marshal import *] 包 marshal # 架构 1. 语言:纯Rust 2. 解析器:tree-sitter (通过 tree-sitter-python) 3. 并发性:rayon 线程池 4. 数据库:通过 `include_str!` 将JSON模式直接编译进二进制文件,实现零依赖执行。
标签:AST解析, Claude, CVE检测, Rust开发, 云安全监控, 企业单仓库, 依赖安全, 依赖管理, 参数感知检查, 可视化界面, 可达性分析, 噪声管理, 安全专业人员, 并行处理, 机器可读输出, 构建破坏, 误报控制, 逆向工具, 链式属性解析, 静态分析, 预飞行依赖修剪