Header Ads

Como usar o Docker Scan para encontrar vulnerabilidades em suas imagens

O Docker agora vem com suporte integrado de varredura de segurança. Você pode verificar localmente suas imagens de contêiner para identificar possíveis vulnerabilidades. Isso acelera o ciclo de desenvolvimento, fornecendo feedback mais imediato em comparação com pipelines de CI e serviços em nuvem.

O comando scan está disponível por padrão no Docker versão 20.10. Docker fez parceria com Snyk para trazer varreduras de segurança para sua CLI. Um prompt de consentimento único aparecerá na primeira vez que você executar o comando. Digite “ y ” e pressione Enter para confirmar a integração do Snyk.

Além de consentir com o Snyk, a verificação de contêiner também requer um login do Docker Hub. Execute o docker login para fornecer seu nome de usuário e senha antes de iniciar a digitalização.

Tente executar docker scan --version para verificar sua instalação. Você verá o número da versão do plug-in de verificação. A saída também nomeia o provedor de varredura de segurança que a varredura usará (atualmente Snyk). Provedores adicionais podem ser adicionados no futuro.

Como as varreduras funcionam

docker scan aceita um nome de imagem como parâmetro. Ele fará a varredura da imagem no banco de dados Snyk de vulnerabilidades de contêiner. Uma ampla gama de questões é abordada, desde imagens de base desatualizadas a explorações contra bibliotecas de software de código aberto que você está usando.

Snyk pode mostrar a linha Dockerfile que apresenta uma vulnerabilidade. Isso fornece um ponto de partida imediato à medida que você resolve cada problema. Os resultados aparecerão no seu terminal após a conclusão da varredura.

O banco de dados Snyk é continuamente atualizado com novas vulnerabilidades. Não presuma que uma imagem que passa por uma varredura uma vez sempre obterá o mesmo resultado no futuro. É uma boa prática digitalizar imagens regularmente para que suas cargas de trabalho permaneçam seguras.

Digitalizando uma imagem

A maneira mais simples de digitalizar uma imagem é passar uma tag para a digitalização do docker:

 docker scan hello-world: mais recente 

A varredura pode levar alguns segundos para ser concluída. Imagens maiores precisarão de mais tempo. Os resultados serão exibidos em seu terminal assim que estiverem disponíveis. O exemplo de saída de uma varredura bem-sucedida é mostrado acima.

Embora limpar tudo possa ser reconfortante, a saída da varredura do docker é muito mais interessante quando vulnerabilidades são detectadas. Aqui está uma verificação que encontrou alguns problemas.

Cada problema tem uma breve descrição, uma indicação de sua gravidade e um link para obter mais informações no site do Snyk.

Verificações mais avançadas

O docker scan tem muito mais funcionalidade do que o exemplo básico acima. Você pode personalizar o comportamento da verificação &’ usando vários sinalizadores.

Indiscutivelmente, o sinalizador mais útil é --file. Isso leva o caminho para o Dockerfile da imagem. Quando você fornece um Dockerfile ao Snyk, ele pode realizar uma análise mais detalhada com base em seu conteúdo. Alguns recursos de digitalização, como detecção de imagem de base desatualizada, só estão disponíveis quando você fornece o Dockerfile de sua imagem.

 docker scan hello-world: mais recente --file Dockerfile 

Isso produzirá uma saída semelhante à seguinte:

 Testou 100 dependências para problemas conhecidos, encontrou 50 problemas. De acordo com nossa varredura, você está usando a versão mais segura da imagem de base selecionada. 

A última linha indicará se sua imagem base — a instrução FROM em seu Dockerfile — é segura. Sugestões de tags alternativas serão exibidas se a imagem estiver desatualizada ou contiver vulnerabilidades que já foram resolvidas.

Às vezes, você pode querer executar uma varredura que ignore vulnerabilidades em sua imagem base. Passe o sinalizador --exclude-base para fazer isso. Isso é útil se a imagem de base contiver muitos problemas de baixa gravidade e não houver um caminho de atualização disponível. Excluir o ruído ajuda você a se concentrar nos problemas solucionáveis ​​dentro de suas camadas de imagem.

Personalização da saída da digitalização

O docker scan aceita algumas opções de formatação diferentes. Até agora, vimos a saída padrão. Ele apresenta problemas como uma lista legível por humanos em seu terminal.

Passar o sinalizador --json instrui o comando a emitir o JSON bruto que recebe. Isso é ideal quando você está usando o docker scan programaticamente em scripts de CI ou ferramentas de terceiros. Você mesmo pode processar o JSON para extrair apenas as informações de que precisa.

Outra opção é --dependency-tree. Isso irá emitir uma exibição em árvore das dependências da sua imagem acima da lista de vulnerabilidades. Isso pode ajudá-lo a visualizar como diferentes pacotes estão sendo puxados, permitindo que você identifique onde surgem os problemas.

Finalmente, você pode usar o sinalizador --severity para filtrar vulnerabilidades indesejadas. Use baixo, médio ou alto para indicar a gravidade na qual você está interessado. O comando relatará apenas vulnerabilidades classificadas no nível ou acima do determinado.

Limitações

O docker scan atualmente não tem suporte para distribuições Alpine Linux. Além disso, a versão 0.7 do plugin tem um bug sério que faz com que as varreduras locais falhem com uma “ imagem não encontrada ” erro. A v0.7 só pode digitalizar imagens existentes no Docker Hub e em outros registros públicos. O problema foi corrigido na v0.8, mas a v0.7 continua sendo a versão amplamente distribuída com versões do Docker no Linux.

Além dos problemas técnicos, o serviço Snyk impõe limites de taxa rígidos sobre o uso do docker scan. Você pode realizar 10 varreduras gratuitamente a cada mês. Se você fizer login com Snyk, isso aumenta para 200 varreduras por mês.

Execute docker scan --login para obter seu URL de login exclusivo. Copie-o em seu navegador e siga as instruções para se autenticar. Você pode fazer login usando Docker Hub ou vários provedores de terceiros. Assim que você &’ estiver conectado, uma página “ Autenticar ” botão aparecerá. Clique aqui para retornar ao seu terminal. Você deverá ver uma mensagem “ Snyk agora está pronto para ser usado ” mensagem.

Resumo

A varredura de imagem integrada do Docker torna as vulnerabilidades do contêiner mais fáceis de descobrir e resolver. Qualquer desenvolvedor com acesso ao Docker CLI e uma imagem de contêiner agora pode verificar vulnerabilidades sem ter que enviar para um registro.

Varreduras regulares ajudam a proteger seus contêineres contra ameaças em potencial. Imagens de base desatualizadas e vulnerabilidades em dependências afetam significativamente sua postura de segurança, mas podem facilmente passar despercebidas. docker scan dá a você mais confiança em seus contêineres, revelando problemas que você &’ de outra forma teria esquecido.

Nenhum comentário