Dependências
Análise de contentores
A análise de contentores inspeciona uma imagem de contentor à procura de vulnerabilidades conhecidas, pacotes desatualizados e configurações de risco. Uma imagem reúne a sua aplicação, um sistema operativo base e tudo o que está entre eles, pelo que uma análise cobre muito mais do que as suas próprias dependências. Além disso, lê a imagem final, o que limita o que pode saber sobre a forma como foi criada.
Atualizado a
Como funciona a análise de contentores
- Desempacotar a imagem. O scanner lê as camadas da imagem sem as executar.
-
Listar o conteúdo. Lê as bases de dados de pacotes do sistema operativo e os manifestos das aplicações, como um
package-lock.jsoncopiado para a imagem. - Cruzar os dados. Compara os pacotes com dados de vulnerabilidades das distribuições e de bases de dados de avisos de segurança.
- Verificar a configuração. Algumas ferramentas assinalam também situações como a execução como root ou segredos deixados numa camada.
Onde executar uma análise
| Fase | O que lhe dá | Limite |
|---|---|---|
| CI, após o build da imagem | Faz o build falhar antes de uma imagem ser enviada | Um retrato dos avisos de segurança desse dia |
| Registo | Volta a analisar as imagens armazenadas à medida que surgem novos avisos | Encontra problemas depois de a imagem ser publicada |
| Admissão no Kubernetes | Bloqueia imagens não analisadas ou reprovadas na implementação | Precisa de uma política e de uma forma de tratar exceções |
| Runtime | Mostra que imagens estão agora em execução e o que está carregado | Precisa de um agente nos seus clusters |
Ferramentas de análise de contentores
- Open source: o Trivy e o Grype são as opções gratuitas mais comuns, e ambos se integram facilmente na CI.
- Integradas em registos e plataformas: o Docker Scout e os principais registos de cloud disponibilizam análise.
- Plataformas comerciais: o Snyk e o Anchore acrescentam políticas, relatórios e fluxos de trabalho.
Como reduzir as conclusões
- Comece por uma imagem base mais pequena. As imagens slim ou distroless contêm menos pacotes, pelo que se aplicam menos avisos de segurança.
- Refaça o build regularmente. As imagens base recebem correções, e uma imagem que estava limpa em março já não está limpa agora.
- Use builds multi-stage. Os compiladores e as ferramentas de build devem ficar fora da imagem final.
- Fixe as imagens base por digest. Uma tag pode mudar sem que dê por isso; um digest não pode.
- Priorize. Muitas conclusões ainda não têm correção ou estão em pacotes que a sua aplicação nunca usa. Consulte como priorizar vulnerabilidades.
O que uma análise de contentores não consegue ver
- Código compilado. Um binário Go ou Rust na imagem contém metadados limitados, e um scanner tem de deduzir o que entrou nele.
-
Ficheiros sem registo de pacote. O software adicionado com
curlou copiado para uma camada não tem entrada numa base de dados de pacotes. - O que o build usou e deixou para trás. Os builds multi-stage descartam as ferramentas que produziram a imagem. Se uma delas tiver sido comprometida, nada na imagem final o indica.
- De onde veio. Uma análise descreve a imagem, não o build que a produziu.
Consulte o que escapa a uma SBOM de imagem Docker para uma análise mais detalhada e as melhores ferramentas de SBOM para conhecer as opções.
Analisar imagens e registar builds
Os scanners são a ferramenta certa para imagens que não foi a sua empresa a compilar, bem como para clusters e configurações. Para as imagens que compila, o CRACI segue outro caminho. Como seu runner de GitHub Actions, vê o que entra no build, incluindo a imagem base e as respetivas camadas do sistema operativo, pelo que regista o que entrou em vez de o deduzir depois. Em seguida, continua a verificar essas SBOM à medida que são publicadas novas vulnerabilidades.
O CRACI não analisa imagens que não compilou, clusters, imagens de VM nem erros de configuração. O Trivy analisa, pelo que deve mantê-lo para isso. Consulte CRACI vs Trivy.
Análise de contentores: perguntas frequentes
O que é a análise de contentores?
É o processo de inspecionar uma imagem de contentor à procura de vulnerabilidades conhecidas, pacotes desatualizados e configurações de risco, normalmente sem a executar.
Quando devem ser analisadas as imagens de contentores?
Na CI, depois de a imagem ser compilada, e novamente no registo à medida que surgem novos avisos de segurança. Analisar apenas uma vez deixa-lhe um retrato que envelhece depressa.
Qual é o melhor scanner de contentores gratuito?
O Trivy e o Grype são as opções gratuitas mais usadas. Ambos são executados na CI e cobrem pacotes do sistema operativo e de aplicações.
Qual é a diferença entre a análise de imagens e uma SBOM?
Uma SBOM lista o que está numa imagem, enquanto uma análise verifica esse conteúdo quanto a problemas conhecidos. Muitos scanners criam primeiro uma SBOM e depois comparam-na com avisos de segurança.
Porque é que a minha imagem de contentor tem tantas vulnerabilidades?
Sobretudo por causa da imagem base, que traz os pacotes de um sistema operativo. Uma imagem base mais pequena e builds regulares eliminam a maioria delas.
Um scanner de contentores consegue ler binários compilados?
Em parte. Os binários Go e Rust podem conter alguns metadados de dependências, mas muito do código compilado dá pouca informação a um scanner, que tem de inferir o que entrou nele.
Veja o que entrou na sua imagem
Faça o build de uma imagem no CRACI e compare a SBOM registada com o que o seu scanner de contentores reporta.
Marcar demo