
dep-scan v6.3.0
Scanner de vulnerabilidades de dependências de próxima geração com análise de alcançabilidade, geração de SBOM, auditoria de licenças e varredura de imagens de contêiner para integração CI/CD.
Introdução
OWASP dep-scan é uma ferramenta de auditoria de segurança e risco de nova geração baseada em vulnerabilidades conhecidas, avisos e limitações de licença para dependências de projetos. Tanto repositórios locais quanto imagens de contêiner são suportados como entrada, e a ferramenta é ideal para integração com plataformas ASPM/VM e em ambientes de CI.
Conteúdo
Recursos
- Escaneie a maior parte do código de aplicação (repositórios locais, imagens de contêiner Linux, manifestos Kubernetes e SO) para identificar CVEs conhecidas com priorização
- Realize análise avançada de alcançabilidade para múltiplas linguagens (veja a matriz de alcançabilidade abaixo)
- O escaneamento de vulnerabilidades de pacotes é realizado localmente e é bastante rápido. Nenhum servidor é utilizado
- Gere Software Bill-of-Materials (SBOM) com informações de Vulnerability Disclosure Report (VDR)
- Gere um documento VEX Common Security Advisory Framework (CSAF) 2.0/2.1 (confira o CSAF Readme)
- Realize auditoria profunda de risco de pacotes para ataques de confusão de dependências e riscos de manutenção (veja a documentação de auditoria de risco)
Fluxos de dados alcançáveis precisos
Fluxos de dados detalhados para identificar caminhos alcançáveis e não alcançáveis em sua aplicação com base no contexto completo.

Matriz de alcançabilidade
dep-scan calcula a alcançabilidade para sete ecossistemas de linguagens por meio de quatro slicers. Um pacote vulnerável cujo código está realmente em um caminho executado é marcado como Reachable, enquanto um pacote que é apenas declarado no BOM mas nunca chamado não é. Cada slicer alimenta o mesmo mecanismo compartilhado de alcançabilidade indexado por purl, de modo que o comportamento é uniforme entre as linguagens. A alcançabilidade está ativada por padrão (--reachability-analyzer FrameworkReachability); SemanticReachability adicionalmente atribui serviços, endpoints e alcançabilidade pós-build (binário/contêiner) alcançados.
| Linguagem / ecossistema | Mecanismo de alcançabilidade | Analisador padrão |
|---|---|---|
| Java / JVM (Groovy, Kotlin, Scala) | atom | FrameworkReachability |
| JavaScript / TypeScript | atom | FrameworkReachability |
| Python | atom | FrameworkReachability |
| PHP | atom | FrameworkReachability |
| Rust | rusi | FrameworkReachability |
| Go | golem | FrameworkReachability |
| .NET (C#, VB, F#, R) | dosai | FrameworkReachability |
Para os conceitos por trás da alcançabilidade e da priorização, leia os capítulos modelo de alcançabilidade e priorização. Para exemplos práticos por linguagem, consulte os Guias de Linguagem. Para a questão de conformidade (VDR e CSAF VEX), consulte o guia VDR e o guia CSAF VEX.
A alcançabilidade está ativada por padrão em --profile research, que é o perfil usado pelo dep-scan quando a alcançabilidade está ativada. Os comandos abaixo são suficientes para começar; os guias por linguagem cobrem resolução de binários, segurança de backend e rede, requisitos de restauração e exemplos práticos nos fixtures do repositório.
Rust (rusi). O cdxgen executa o rusi e persiste o seu relatório, que o dep-scan converte para o pipeline compartilhado, de modo que um crate que é efetivamente chamado (por exemplo, time::now() para RUSTSEC-2020-0071) é Reachable, enquanto um que está apenas presente não é. Consulte o guia de alcançabilidade para Rust.
depscan -i ./my-rust-app -o ./reports --profile research
Go (golem). O dep-scan invoca o golem diretamente para projetos Go (requer go no PATH), marcando um módulo como Reachable quando as suas funções estão num caminho rastreado. Use --go-analyzer-network offline para repositórios não confiáveis com uma cache de módulos já preenchida. Consulte o guia de reachability para Go.
depscan -i ./my-go-app -o ./reports -t go
.NET (dosai). O cdxgen executa o dosai, que emite um veredito explícito de alcançabilidade por pacote (PackageReachability com ReachabilityKind e Confidence) que o dep-scan trata como autoritativo, de modo que um pacote NuGet efetivamente chamado (por exemplo, JsonConvert.DeserializeObject em uma entrada controlada) é Reachable. Escaneie uma árvore restaurada em busca de purls versionados. Consulte o guia de alcançabilidade .NET.
depscan -i ./my-dotnet-app -o ./reports -t dotnet