Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
VulnReach — 运行时感知的SCA — 证明哪些CVE实际上可达,而不仅仅是已安装。 | Kitploit
工具/GitHubGitHub/owasp/vulnreach
静态分析漏洞扫描器动态分析 (沙盒)漏洞分析代码分析Web安全DevSecOps供应链安全
GitHubowasp/vulnreach

VulnReach

运行时感知的SCA — 证明哪些CVE实际上可达,而不仅仅是已安装。

查看仓库
811天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

VulnReach

运行时感知的 SCA —— 证明哪些 CVE 实际可达,而不仅仅是已安装。

OWASP Project License Python

VulnReach 现已正式成为 OWASP 项目。 🎉

演示

VulnReach Demo

第 1 步 —— SCA 在依赖项中发现 74 个 CVE

Trivy SCA output — 74 vulnerabilities detected

第 2 步 —— VulnReach 证明其中哪些实际可达

Fix Plan — 7 packages, 50 confirmed reachable CVEs with upgrade targets


发现结果 —— 每个 CVE 的证据链

Dynamically reachable findings with full evidence chain

仪表盘 —— 9 个仓库中确认 42 个可达

VulnReach Dashboard

语言支持: Python 已完全可用于生产环境(污点、AST、路由、运行时)。Java 和 JavaScript 具备可用的调用图分析,处于实验阶段。Go、C# 和 PHP 在路线图上。详见 ROADMAP.md。

VulnReach 在标准 SCA 输出之上增加了可达性上下文 —— 通过静态分析、污点跟踪和实时运行时覆盖率,证明检测到的哪些 CVE 在您的应用程序中确实可以被触达。


项目状态

最新开发进展(已发布)

  • 依赖感知的并行运行器流水线,扫描更快
  • Python 可达性 —— 可投入生产(污点、AST、路由、运行时各层均可用)
  • Java 可达性 —— 可用的调用图,支持 Maven/Gradle 依赖解析(实验性)
  • JavaScript 可达性 —— 可用的调用图,支持路由入口点检测(实验性)
  • 扫描取消 —— POST /scan/{id}/cancel 停止进行中的扫描
  • 稳定的扫描响应契约:GET /scan/{id} 返回 summary + 分类分桶
  • API 与包本地模式共享归一化的扫描响应(对等)
  • 默认安全的运行时边界:
    • 基础 compose 不挂载 Docker socket
    • 动态扫描需通过 VULNREACH_ALLOW_DOCKER_DAEMON=true 显式选择启用
    • 运行时配置文件使用受限的 docker-socket-proxy
  • CI 中对 Java/JavaScript/Go 的确定性 fixture 质量门禁
  • 已被正式接纳为 OWASP 项目 —— owasp.community/projects/vulnreach
  • AI 下一步行动端点 —— POST /findings/{id}/next-steps 为确定性发现生成面向分析师的修复指导(立即行动、验证探针、升级路径、监控)。惰性 / 按需:扫描从不调用 LLM,LLM 失败时优雅降级。确定性判定为只读。详见 docs/api.md。

实验性

  • scan.runtime.ebpf 跟踪模式(面向 Linux,显式选择启用)
  • AI 辅助的 OpenAPI 生成与智能 DAST 流程

参见:

  • docs/incubator-readiness.md
  • docs/threat-model.md

工作原理

每个 CVE 都通过五层证据链进行分类:

root@kitploit:~
1. SCA (Trivy)              → 该包是否已安装且存在漏洞?
2. 污点分析 (tainter)       → 用户输入是否流入易受攻击的汇聚点?
3. AST 分析                 → 易受攻击的函数是否在您的调用图中?
4. 路由暴露                 → 该调用路径是否可从 HTTP 端点触达?
5. 运行时覆盖率             → 易受攻击的代码是否实际被执行?

结果是分为四个层级的优先发现列表:

层级含义
DYNAMICALLY_REACHABLE运行时覆盖率确认代码被执行 —— 立即修复
STATICALLY_REACHABLE通过 AST/污点证明代码路径 —— 高优先级
UNCERTAIN

快速开始

使用 Docker Compose(推荐)

安全须知 —— 在开始之前,将 .env.example 复制为 .env.local, 并将每个 CHANGE_ME 值替换为强随机密钥。
在未设置真实凭据并配置 CORS_ORIGINS 之前,不要将 VulnReach 暴露在公共网络上。

root@kitploit:~
git clone https://github.com/ihrishikesh0896/vulnreach.git
cd vulnreach

# 1. 创建您的本地配置
cp .env.example .env.local

# 2. 填写每个 CHANGE_ME —— 使用 openssl rand -hex 32 生成密钥
$EDITOR .env.local

# 3. 启动整个技术栈
docker compose up --build

# 可选:启用动态运行时扫描(通过受限 socket 代理访问 Docker daemon)
# docker compose -f docker-compose.yml -f docker-compose.runtime.yml up --build

运行扫描

认证选项:

  • 短期 JWT:POST /login
  • 长期 API 令牌(API 密钥):在 UI 的 Settings -> API Keys 中创建,然后用作 Authorization: Bearer <API_KEY>
root@kitploit:~
# 获取令牌(替换为您在 .env.local 中设置的凭据)
TOKEN=$(curl -s -X POST http://localhost:8000/login \
  -H "Content-Type: application/json" \
  -d '{"username":"<your-admin-user>","password":"<your-admin-password>"}' | jq -r .access_token)

# 从 GitHub 仓库开始扫描
curl -X POST http://localhost:8000/scan \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"repo_url":"https://github.com/yourorg/yourapp"}'

# 轮询获取结果
curl http://localhost:8000/scan/<scan_id> \
  -H "Authorization: Bearer $TOKEN" | jq .summary

功能特性

  • 可达性过滤的 SCA —— 根据证据强度对每个 CVE 分类,而不仅仅是 CVSS 分数
  • 运行时确认 —— 通过 coverage.py 进行基于 Docker 的覆盖率收集
  • 污点跟踪 —— 追踪用户输入 → 易受攻击的汇聚点(SQL、subprocess、YAML、pickle)
  • LLM 引导的 DAST —— Claude/OpenAI/Ollama 生成并验证漏洞利用载荷(可选)
  • CI/CD 门禁 —— policy.block_if 在确认严重发现时使构建失败
  • JWT 认证 —— 多用户、基于角色的访问控制(admin / analyst)
  • API 令牌(API 密钥) —— 用于 curl/CI 的长期机器认证(Authorization: Bearer <API_KEY>)
  • PDF 导出 —— GET /scan/{id}/export/pdf
  • 无厂商锁定 —— LLM 功能默认 provider: none;支持 Ollama 以离线使用

实际应用

扫描目标:multi-tier-dvpa —— 一个故意存在漏洞的 Python/Django 应用程序,11 个包中有 72 个原始 CVE。

46% 的发现从无差别的"全部修复"队列中移出,进入优先级行动列表。在典型的生产服务中(许多传递依赖从未被调用),这一数字可升至 70–90%。

完整方法论、证据链详情和包级细分: docs/benchmark.md


文档

使用

  • USAGE_PACKAGE.md —— 包/CLI 安装、依赖、启动、使用
  • USAGE_UI.md —— UI/服务器安装、依赖、启动、使用

运维 / 部署人员

  • docs/deployment.md —— Docker Compose 设置、环境变量、生产环境说明
  • docs/configuration.md —— 完整的 scan.yml 配置参考
  • docs/api.md —— REST 端点和模式

架构 / 安全

  • docs/architecture.md —— 流水线设计与执行模型
  • docs/threat-model.md —— 信任边界、STRIDE、滥用场景
  • docs/incubator-readiness.md —— OSS/OWASP 就绪状态
  • docs/DAST.md —— DAST 概念与流程

贡献者

  • ROADMAP.md —— 计划功能、已知限制、语言支持状态
  • docs/development.md —— 内部机制、代理、存储、扩展点
  • OWASP.md —— OWASP 项目说明
  • SECURITY.md —— 漏洞披露与密钥轮换
  • CONTRIBUTING.md —— 贡献流程
  • CHANGELOG.md —— 发布历史

系统要求

  • Python 3.11+
  • PostgreSQL 13+
  • Docker + Docker Compose v2(用于动态分析)
  • trivy 在 PATH 中(安装)
  • jq(用于快速开始示例 —— 安装)

可选(缺失时均优雅跳过):

  • semgrep —— pip install semgrep
  • tainter —— pip install tainter(污点流分析;参见开发指南)

许可证

Apache 2.0 —— 参见 LICENSE。

下载工具
仅有弱信号 —— 需调查
NOT_REACHABLE无证据 —— 从告警队列中抑制
层级结果
原始 CVE(Trivy)72
已分类发现(VulnReach)90
DYNAMICALLY_REACHABLE —— 立即修复49
STATICALLY_REACHABLE —— 本迭代修复23
UNCERTAIN —— 需调查18
NOT_REACHABLE —— 抑制0
CI 流水线门禁BLOCKED