Mais 123% CVE comunicadas por dia em 2026 do que no ano passado.

Comparação

CRACI vs Dependency-Track

O Dependency-Track só é tão bom quanto as SBOM que recebe. O CRACI regista a SBOM onde o software é realmente compilado e monitoriza-a a partir daí, pelo que deixa de precisar de um gerador a montante e de uma plataforma de análise a jusante.

Atualizado a

O que o Dependency-Track faz bem

A página inicial de Dependency-Track
dependencytrack.org

O OWASP Dependency-Track é uma escolha forte para a análise de componentes. É open source sob a licença Apache 2.0, acompanha a utilização de componentes em todas as versões de todas as aplicações do seu portefólio e obtém informação sobre vulnerabilidades de várias fontes, incluindo a National Vulnerability Database e os GitHub Advisories. O seu motor de políticas abrange regras de segurança, de licenças e operacionais, e consome e produz documentos CycloneDX VEX. A sua conceção API-first adequa-se ao CI/CD: os pipelines carregam SBOM para /api/v1/bom.

As equipas de setores regulados gostam dele por ser transparente, self-hosted e construído em torno de um formato normalizado. O seu ponto fraco não é a análise. É o que entra nela.

A análise depende daquilo que recebe

O Dependency-Track consome SBOM; não as gera. Todas as conclusões, violações de políticas e vistas de portefólio dependem da SBOM que o seu pipeline envia. Se a SBOM omitir uma dependência, o Dependency-Track não a consegue assinalar. Se dois geradores discordarem, o Dependency-Track mostra aquele que carregou.

Na prática, os geradores de SBOM discordam muito, e as razões estão na sua própria documentação:

  • Nenhum ponto em comum. Cada gerador decide por si o que conta como componente e em que ficheiros confiar, pelo que dois deles, apontados ao mesmo repositório, devolvem listas sobrepostas mas diferentes.
  • Falhar o óbvio. Uma ferramenta que resolve dependências a partir de lockfiles não tem nada para resolver num repositório que não os inclui, como é o caso do express 5.2.1. Pode ainda assim devolver uma lista, feita de tudo o resto que reconhece, como GitHub Actions e ficheiros de workflow.
  • Oscilações de configuração. O Syft escolhe os seus catalogers consoante o tipo de análise, pelo que uma flag altera o que a mesma ferramenta, na mesma versão, reporta a partir do mesmo checkout.
  • Sem manifesto, sem SBOM. Um repositório sem qualquer manifesto de dependências não dá a um scanner baseado em ficheiros nada com que trabalhar, e o que cada ferramenta devolve nesse caso diz mais sobre a ferramenta do que sobre o projeto.
  • Metadados escassos. A maioria dos geradores não tem fonte para o campo de fornecedor da NTIA, pelo que este sai vazio, seja qual for o conteúdo do repositório.

O CRACI não pode ser comparado desta forma. Regista builds em vez de analisar um diretório, pelo que não pode ser executado da mesma maneira. A questão não é que alguma destas ferramentas seja má. É que uma análise estática de um repositório é uma estimativa do que um build irá usar, e a estimativa varia com a ferramenta, as suas definições e os ficheiros presentes.

Funcionalidade CRACI Dependency-Track
Gera SBOM Registadas pelo runner durante cada build Analisa as SBOM CycloneDX que carrega
De onde vem a lista de componentes Tráfego observado para origens de pacotes durante o job, incluindo pacotes restaurados de caches de CI Do gerador de SBOM que usar a montante
Estado de completude da SBOM Cinco estados por job e por cache Depende da SBOM que recebe
Análise contínua de vulnerabilidades SBOM monitorizadas reavaliadas entre builds e repositórios NVD, GitHub Advisories e outras fontes
Políticas de segurança, de licenças e operacionais Política de licenças e controlos que bloqueiam builds Políticas globais e por projeto
VEX Consome e produz CycloneDX VEX
Triagem duradoura Triagem e encaminhamento de conclusões para as equipas; comentários no roadmap Em todo o portefólio
Política de egress de rede do build Negação ou permissão por defeito, falha em modo fechado Analisa SBOM depois do build
Open source self-hosted Gerido hoje; runners alojados pelo cliente no roadmap, Enterprise Apache 2.0, é a sua equipa que aloja e opera
  • Incluído
  • Não incluído
  • No roadmap

O que o CRACI muda na origem

A SBOM vem do build

O CRACI é um runner compatível com GitHub Actions. Muda runs-on para craci e os seus jobs correm no CRACI em máquinas virtuais isoladas. Durante cada job, um proxy que reconhece pacotes regista o tráfego para as origens de pacotes: origens npm, PyPI, RubyGems, Cargo, Go, Nix, OCI, apt, apk e Git, além de predefinições de transferência. A evidência das dependências acompanha as caches de CI, pelo que um pacote restaurado de uma cache continua no registo. A SBOM, em CycloneDX ou SPDX, inclui todas as dependências transitivas que o build realmente usou.

Indica quando está incompleta

Cada SBOM do CRACI inclui um estado de completude por job e por cache: Complete, Complete with connections, Incomplete, Unavailable ou Not recorded. Sabe se cada SBOM é um registo integral ou se tem uma lacuna. Isso importa quando um auditor pergunta como sabe que o seu inventário está completo.

Regista a SBOM dentro do build

O CRACI gera a SBOM dentro do seu próprio runner, a partir do que o job obteve. A API devolve SBOM, traços de rede e proveniência.

Controla o que o build pode alcançar

Como o CRACI executa o job, pode impor uma política de egress de rede: negação ou permissão por defeito, com 24 predefinições integradas de origens de software e origens personalizadas tipadas. As políticas são validadas antes de o job começar e falham em modo fechado. O Dependency-Track pode dizer-lhe a posteriori que um componente tem risco; uma política de egress limita, à partida, as origens de onde um build pode obter pacotes.

Um inventário do que está implementado e onde

A vista de inventário do CRACI mostra exatamente que versões de software estão implementadas em que produtos, a nível global. Quando surge uma nova vulnerabilidade, pode ver que produtos executam a versão afetada em vez de o reconstituir a partir de notas de versão e folhas de cálculo.

Substituir o Dependency-Track pelo CRACI

O CRACI cobre as duas metades do trabalho que antes exigiam um gerador e o Dependency-Track. Produz a SBOM no build, continua a reavaliar as SBOM monitorizadas à medida que são publicadas novas vulnerabilidades, agrega as conclusões entre builds e repositórios e permite que as equipas de segurança façam a sua triagem e encaminhem cada uma para a equipa responsável pela correção. Não há passo de carregamento para manter nem servidor para operar.

Tenha bem presente aquilo de que abdica. O motor de políticas do Dependency-Track é maduro. O CRACI tem políticas que bloqueiam builds e política de licenças, enquanto os comentários e os alertas por limiar estão no roadmap. O Dependency-Track é também open source e self-hosted, ao passo que o CRACI é hoje um serviço gerido, com runners alojados pelo cliente no roadmap para o Enterprise. Se isso lhe importar mais do que a qualidade do inventário, mantenha o Dependency-Track.

Porque é que isto importa em setores regulados

Ao abrigo do Cyber Resilience Act da UE, os fabricantes têm de saber o que está em cada versão do produto e tratar as vulnerabilidades nela presentes, com obrigações de notificação de vulnerabilidades ativamente exploradas a partir de setembro de 2026. Uma vulnerabilidade que não consegue ver porque a sua SBOM omitiu o componente continua a ser a sua vulnerabilidade.

O CRACI automatiza uma parte significativa da visibilidade da cadeia de abastecimento de software e das evidências de que as empresas precisam para o seu processo mais amplo de conformidade com o CRA, e exporta SBOM em CycloneDX ou SPDX, incluindo vulnerabilidades. O inventário e a monitorização vêm do mesmo registo daquilo a partir do qual cada versão foi compilada. Consulte conformidade com o CRA, IoT industrial e telecomunicações.

O CRACI suporta hoje GitHub Actions. O GitLab CI, o Jenkins e outros sistemas de CI estão no roadmap. Saiba mais sobre a geração de SBOM durante o build.

Compare a sua SBOM com a do CRACI

Execute um workflow de GitHub Actions no CRACI e compare a SBOM resultante com a que o seu gerador atual produz.

Marcar demo