Docker Scout e Trivy segurança de imagens de contêiner na prática
Trivy e Docker Scout resolvem o mesmo problema central: descobrir, antes da produção, quais vulnerabilidades, licenças e dependências estão dentro das suas imagens de contêiner. Eles chegam a esse objetivo por caminhos diferentes, e entender essa diferença define qual usar, ou se usar os dois. Uma imagem Docker raramente contém apenas o seu código. Ela carrega um sistema operacional base,…
Trivy e Docker Scout são duas ferramentas que visam identificar vulnerabilidades, licenças e dependências em imagens de contêiner Docker antes da produção. Eles alcançam esse objetivo através de abordagens diferentes, e entender a diferença entre eles ajuda a escolher a ferramenta ideal ou usar ambas. As imagens Docker geralmente incluem um sistema operacional base, bibliotecas do sistema, runtime de linguagem e inúmeras dependências transitivas, cada uma representando uma superfície de ataque.
A maioria das vulnerabilidades não está no código que você escreveu, mas nas camadas que compõem a imagem.
O artigo explica o funcionamento de cada ferramenta, apresenta comandos de uso diário e compara os dois lado a lado, além de mostrar um pipeline de integração contínua (CI) com GitHub Actions que aplica ambos os scanners. Os exemplos utilizados são Java/Spring Boot e Node.js, mas os comandos são aplicáveis a qualquer stack.
Sete conceitos fundamentais aparecem em conversas sobre scan de imagens: CVE (Common Vulnerabilities and Exposures), CVSS (Common Vulnerability Scoring System), EPSS (Exploit Prediction Scoring System), KEV (Known Exploited Vulnerabilities Catalog), SBOM (Software Bill of Materials), VEX (Vulnerability Explanation) e Provenance (atestando como, onde e por quem a imagem foi construída). Entender esses conceitos é crucial para interpretar corretamente os resultados dos scans.
O Trivy é um scanner de segurança de código aberto (licença Apache 2.0) mantido pela Aqua Security, distribuído como um único binário Go. Ele suporta a análise de imagens, sistemas de arquivos, repositórios Git, manifestos do Kubernetes e arquivos de infraestrutura como código. Trivy extrai o conteúdo da imagem, identifica os pacotes do SO e das linguagens e consulta um banco local de vulnerabilidades.
Ao operar na máquina ou no runner de CI, ele não envia a imagem para serviços externos e pode funcionar offline com um banco de dados em cache. O Trivy pode realizar scans de vulnerabilidades, configurações de máscara, segredos e validação de licenças.
Para executar scans com o Trivy, basta usar os comandos apropriados. Por exemplo, para realizar um scan básico de uma imagem, use `trivy image minha-app:1.0.0`. Para restringir os achados a vulnerabilidades de alto ou crítico, basta usar `trivy image --severity HIGH,CRITICAL minha-app:1.0.0`. Para falhar o comando caso haja achados (útil para CI), use `trivy image --exit-code 1 --severity CRITICAL minha-app:1.0.0`.
Para gerar a saída em formatos como JSON ou SARIF, use as bandeiras `--format json` ou `--format sarif`, respectivamente.
O Docker Scout, por outro lado, é uma ferramenta integrada ao Docker que oferece uma visão mais abrangente das vulnerabilidades e configurações de segurança em imagens. Embora mais focado em imagens Docker, ele pode ser útil em conjunto com o Trivy para obter uma visão mais completa da segurança das imagens de contêiner.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.