返回更新列表
新发布Jul 24, 2026

dep-scan v6.3.0

下一代依赖漏洞扫描器,具备可达性分析、SBOM生成、许可证审计以及容器镜像扫描,用于CI/CD集成。

分享

介绍

OWASP dep-scan 是一个基于已知漏洞、安全公告和项目依赖的许可证限制的下一代安全与风险审计工具。支持本地仓库和容器镜像作为输入,该工具非常适合集成到ASPM/VM平台和CI环境中。

SBOM release

目录

功能特性

  • 扫描大多数应用程序代码(本地仓库、Linux容器镜像、Kubernetes清单和操作系统)以识别已知CVE并进行优先级排序
  • 对多种语言执行高级可达性分析(见下方可达性矩阵)
  • 软件包漏洞扫描在本地执行,速度相当快。不使用服务器
  • 生成带有漏洞披露报告(VDR)信息的软件物料清单(SBOM)
  • 生成通用安全咨询框架(CSAF)2.0/2.1 VEX文档(查看CSAF自述文件)
  • 对依赖混淆攻击和维护风险执行深度软件包风险审计(参见风险审计文档)

精确的可达数据流

基于完整上下文,详细的数据流可识别应用程序中可达和不可达路径。

可达流

可达性矩阵

dep-scan 通过四个切片器为七种语言生态系统计算可达性。如果一个易受攻击的软件包的代码实际位于执行路径上,则标记为可达,而仅在 BOM 中声明但从未调用的软件包则不是可达。每个切片器都向同一个共享的、以 purl 为键的可达性引擎提供数据,因此行为在不同语言间是一致的。默认情况下可达性处于开启状态(--reachability-analyzer FrameworkReachability);SemanticReachability 另外会归因于可达的服务、端点以及构建后(二进制/容器)可达性。

语言/生态系统可达性引擎默认分析器
Java / JVM (Groovy, Kotlin, Scala)atomFrameworkReachability
JavaScript / TypeScriptatomFrameworkReachability
PythonatomFrameworkReachability
PHPatomFrameworkReachability
RustrusiFrameworkReachability
GogolemFrameworkReachability
.NET (C#, VB, F#, R)dosaiFrameworkReachability

关于可达性和优先级排序背后的概念,请阅读可达性模型和优先级排序章节。每种语言的实际示例请参见语言指南。关于合规性(VDR 和 CSAF VEX),请参见VDR 指南和CSAF VEX 指南。

在 --profile research 下,默认启用可达性,这也是 dep-scan 在开启可达性时使用的配置。以下命令足以开始;每种语言指南涵盖了二进制解析、后端和网络安全、恢复要求以及仓库内 fixture 的实际示例。

Rust (rusi). cdxgen 运行 rusi 并持久化其报告,dep-scan 将其转换为共享管道,因此实际上被调用的 crate(例如 time::now() 用于 RUSTSEC-2020-0071)会被标记为可达,而仅存在的则不会。请参见 Rust 可达性指南。```bash depscan -i ./my-rust-app -o ./reports --profile research

**Go (golem).** dep-scan 直接调用 [golem](https://github.com/cdxgen/cdxgen-plugins-bin) 用于 Go 项目(需要在 `PATH` 中有 `go`),当模块的函数位于追踪路径上时,将其标记为 Reachable。对于具有预热模块缓存的非可信仓库,使用 `--go-analyzer-network offline`。参见 [Go 可达性指南](https://depscan.readthedocs.io/languages/go-reachability)。```bash
depscan -i ./my-go-app -o ./reports -t go

.NET (dosai). cdxgen 运行 dosai,它会为每个包生成明确的可达性判定(PackageReachability 包含 ReachabilityKind 和 Confidence),dep-scan 将其视为权威结果,因此一个实际调用的 NuGet 包(例如,对受控输入调用 JsonConvert.DeserializeObject)即可达。扫描已还原的依赖树以获取带版本号的 purls。请参阅 .NET 可达性指南。```bash depscan -i ./my-dotnet-app -o ./reports -t dotnet

**JVM、JavaScript/TypeScript、Python 和 PHP(atom)。** 这四种生态系统共享 [atom](https://github.com/AppThreat/atom) 切片器,它构建了一种语言无关的中间表示并执行静态切片。请参阅 [JVM、JS、Python 和 PHP 可达性指南](https://depscan.readthedocs.io/languages/jvm-js-python-php-reachability)。```bash
depscan --profile research -t java -i ./my-java-app -o ./reports --explain

要从框架前向可达性扩展到端点、服务及构建后层级,请传递--reachability-analyzer SemanticReachability,并搭配包含生命周期BOM的--bom-dir参数。详见语义可达性指南。

清晰洞悉CVE

无需阅读描述即可清晰理解CVE信息。

带有洞察的依赖关系树

自动优先级排序

仅关注那些需要你处理的CVE。

优先级排序

保持主动

通过先进的漏洞与利用预测,始终领先一步。

主动措施

漏洞数据源

Linux发行版

  • AlmaLinux
  • Debian
  • Alpine
  • Amazon Linux
  • Arch Linux
  • RHEL/CentOS
  • Rocky Linux
  • Ubuntu
  • OpenSUSE/SLES
  • Photon
  • Chainguard
  • Wolfi OS

快速开始

dep-scan非常适合在持续集成(CI)流程中使用,也可作为本地开发工具。

本地扫描项目(Python版本)```bash

sudo npm install -g @cyclonedx/cdxgen

Normal version recommended for most users (MIT)

pip install owasp-depscan

For a full version with all extensions and server mode (Multiple Licenses)

pip install owasp-depscan[all]

这将会安装两个命令:`cdxgen` 和 `depscan`。

分类