Olá folks, tudo bem com vocês? Espero que sim! 😅 Nesse post venho trazendo uma novidade dentro do universo de ferramentas do Docker: “Docker Scout” que é uma espécie de “linter” das imagens do docker que serve para analisar o conteúdo da imagem e gerar um relatório detalhado dos pacotes e vulnerabilidades que detecta. Ele pode fornecer sugestões sobre como remediar problemas descobertos pela análise de imagens. Nesse guia iremos utilizar uma imagem de contêiner vulnerável com o Node JS e mostrar como usar o Docker Scout para identificar e corrigir as vulnerabilidades, comparar versões de imagens ao longo do tempo e compartilhar os resultados obtidos com sua equipe de Segurança ou seja lá qual for sua intenção.
O Docker Scout oferece as seguintes funcionalidades:
- Análise de segurança: O Docker Scout identifica vulnerabilidades de segurança conhecidas nas imagens (CVES). Ele também fornece informações sobre as vulnerabilidades, incluindo a gravidade, a data de descoberta e a versão da imagem em que a vulnerabilidade foi corrigida.
- Análise de conformidade: O Docker Scout pode ser usado para verificar a conformidade de imagens com padrões de segurança e conformidade.
- Análise de desempenho: O Docker Scout fornece informações sobre o tamanho, o número de camadas e o digest das imagens. Essas informações podem ser usadas para melhorar o desempenho dos contêineres.
Como usar o Docker Scout?
O Docker Scout está disponível como um pacote Docker, extensão do Docker Desktop ou em binário, via CLI. Nesse caso, iremos utilizar e instalar via CLI através do repositório oficial do Docker, no Github;
- Para instalá-lo é necessário antes realizar o login no Docker, caso você não tenha cadastro para continuar nessa etapa, será necessário se cadastrar no Docker Hub e logo após realizar o login pela linha de comando, execute o seguinte comando:
|
|
Feito login, agora poderemos instalar o Docker Scout que está disponível como um script de instalação. Para instalá-lo, execute o seguinte comando:
|
|
🚀 Obs: caso queira instalar de forma manual, recomendo fortemente seguir as orinetação do repositório oficial do Docker, no Github
Realizado a instalação, agora basta testar executando o comando:
|
|
Se tudo tiver ocorriddo bem, você verá o seguint output:
Análise de Imagens Docker
Agora que fizemos login no Docker Hub e temos o Docker Scout CLI instalado, estamos habilitados a começar a analisar nossas imagens Docker!
- Analisar vulnerabilidades de imagem após a construção (docker build), iremos utilizar os comandos na CLI do docker scout para ver as vulnerabilidades detectadas pelo Docker Scout:
- No meu caso, irei utilizar uma simples aplicação em Node JS para realizar alguns testes e verificar se existe vunerabilidade, caso tenha interesse, o repositório está livre para você usar: NodeJS busybox
Primeiro, iremos clonar o repositório
|
|
Com o repositório da nossa aplicação em “mãos” podemos buildar nossa imagem
|
|
Agora com nossa imagem pronta, lets go analyze!
- Precisamos copiar o nome (repository) e a tag de nossa imagem, no meu caso “
luksjobs/nodejs:dev
”:
- Agora que temos as informações sobre a nossa imagem, iremos escaner com a função “quickview” (visão rápida) do Docker Scout:
|
|
Nesse ponto, de primeira analise, o docker scout nos trouxe informações de que a nossa imagem possui algumas CVES (vulnerabilidades) e para detalhar o que seria necessário fazer para corrigir essas vulnerabilidades precisamos rodar um outro comando para detalhar mais ainda o que de fato está vulnerável em nossa imagem para que posteriormente, possamos corrigir.
- Com a analise da nossa imagem feita, poderemos agora verificar as recomendações de como corrigir essas vulnerabilidades com o comando abaixo:
|
|
Conclusão
O Docker Scout reúne todas as informações que você precisa ao trabalhar para proteger o desenvolvimento do seu contêiner, incluindo uma visão camada por camada das dependências, suas vulnerabilidades conhecidas e caminhos de correção recomendados . É isso, temos agora uma tabela de recomendação de cada item que possuí uma CVE detectada e uma lista de reecomendações para resolver e corrrigir esses atributos da nossa imagem Docker, espero que você tenha gostado do post :)
Lista de comandos do Docker Scout em PDF: Scout Cheat Sheet