Skip to main content

As dez principais imagens Docker contêm mais de 8.000 caminhos vulneráveis

Escrito por
Headshot of Hayley Denbraver

Hayley Denbraver

Security in The Container Registry small

7 de março de 2019

0 minutos de leitura

Introdução

Nesta publicação, vamos analisar mais a fundo as imagens Docker e os ecossistemas de contêineres abordados em nosso relatório State of Open Source Security, incluindo a descoberta de que as dez principais imagens Docker contêm mais de 8.000 caminhos vulneráveis.

Temos o prazer de ajudar nossa comunidade a entender melhor a segurança do Docker. Desde a publicação da edição anterior do State of Open Source Security, a Snyk lançou ferramentas para ajudar desenvolvedores a entender e mitigar vulnerabilidades em contêineres. Gostamos não só de compartilhar nossas perspectivas sobre o estado da segurança de código aberto, mas também de oferecer ferramentas para ajudar você a encontrar e corrigir vulnerabilidades nas imagens de contêiner.

Em nossa pesquisa para o relatório State of Open Source Security, observamos as estatísticas a seguir sobre quem é responsável pela segurança de contêineres e quem realmente a pratica.

  • 68% dos usuários acreditam que os desenvolvedores devem ser responsáveis pela segurança das imagens de contêiner Docker.

  • 54% dos desenvolvedores não fazem nenhum teste de segurança em imagens Docker.

  • Apenas 15,5% dos usuários afirmam testar suas imagens Docker em busca de vulnerabilidades durante o desenvolvimento.

Esses dados indicam uma desconexão entre quem é responsável pela segurança e como ela é colocada em prática. Como os desenvolvedores são responsáveis pela segurança das imagens de contêiner, eles se beneficiariam muito ao incorporar a segurança mais cedo no fluxo de trabalho, durante o desenvolvimento — mas apenas 15,5% fazem isso! Os números também indicam que há desenvolvedores responsáveis pela segurança que não a praticam ativamente. Isso significa que até mesmo medidas simples — como corrigir vulnerabilidades atualizando a tag da imagem base ou recriando a imagem Docker — podem acabar sendo ignoradas.

Por esses motivos, decidimos analisar mais a fundo as vulnerabilidades encontradas para ajudar os desenvolvedores a entender os problemas de segurança relevantes para seus contêineres Docker.

Um mergulho profundo na segurança do Docker

Vamos analisar mais de perto os caminhos das vulnerabilidades, a relação entre dependências e vulnerabilidades e a gravidade das vulnerabilidades.

Uma observação rápida: estes números são atuais na data de publicação e, por isso, variam um pouco em relação aos números apresentados no relatório State of Open Source Security.

Caminhos para vulnerabilidades

Às vezes, uma vulnerabilidade específica é introduzida por várias dependências. A Snyk não queria contar essas vulnerabilidades várias vezes, pois isso daria a impressão de que a imagem é muito menos segura do que realmente é. No entanto, é importante entender que uma vulnerabilidade pode ser introduzida várias vezes. Quanto mais dependências estiverem associadas a ela, mais difícil poderá ser corrigi-la. Para dar uma ideia de com que frequência isso ocorre, a Snyk usa o conceito de “caminhos”, que descreve quantas formas existem para introduzir vulnerabilidades na imagem. Por isso, considerei importante entender a proporção entre caminhos e vulnerabilidades para ter uma noção geral da dificuldade de remover vulnerabilidades de uma determinada imagem Docker.

Tabela que compara vulnerabilidades, caminhos e caminhos por vulnerabilidade em imagens Docker, com totais de 1.075 vulnerabilidades e 8.204 caminhos.

Esta tabela mostra que a imagem Docker do Node provavelmente é a mais difícil de limpar de vulnerabilidades. Também podemos concluir que toda vulnerabilidade presente nas dez imagens analisadas provavelmente tem mais de um caminho associado. Felizmente, a Snyk ajuda você a não precisar desvendar esses nós por conta própria. Nossas ferramentas para Docker ajudam a descobrir como remover essas vulnerabilidades ou sugerem outras imagens Docker para usar.

Dependências

Agora, vamos analisar mais a fundo as dependências de cada imagem Docker. A tabela a seguir mostra a relação entre o número de dependências e o número de vulnerabilidades.

Tabela que compara vulnerabilidades, dependências e proporções de vulnerabilidades por dependência em imagens Docker, com os totais.

Considerando em conjunto as dez imagens Docker que estudamos, observamos que, para cada dez dependências adicionadas, provavelmente surgem sete vulnerabilidades. O Node é um caso atípico: em média, são introduzidas 14 vulnerabilidades a cada dez dependências adicionadas — o dobro da média!

Gravidade

A Snyk classifica a gravidade das vulnerabilidades como alta, média ou baixa. Essas categorias ajudam os usuários a avaliar e priorizar quais vulnerabilidades corrigir primeiro. Entender a gravidade das vulnerabilidades encontradas nas imagens Docker nos dá uma visão melhor da dimensão do problema de segurança.

Há boas notícias sobre a gravidade das vulnerabilidades! A grande maioria das vulnerabilidades observadas em nosso estudo foi classificada como de baixa gravidade, correspondendo a 74,9% do total. As vulnerabilidades de gravidade média representaram 16,9%, seguidas pelas de alta gravidade, com 8,2%. Isso é uma boa notícia porque os usuários podem priorizar o pequeno número de vulnerabilidades de alta gravidade e causar um grande impacto na segurança de seus contêineres.

A distribuição da gravidade das vulnerabilidades por imagem Docker é a seguinte:

Tabela que compara as porcentagens de vulnerabilidades de gravidade baixa, média e alta em imagens Docker, incluindo node, postgres, nginx e outras.

Podemos ver que, embora haja variações entre as imagens Docker, a tendência geral é que a maioria das vulnerabilidades tenha baixa gravidade. Isso é uma boa notícia!

Conclusões

Nossa descoberta de que as dez principais imagens Docker contêm mais de 8.000 caminhos para vulnerabilidades, aliada à observação de que quase toda dependência presente nessas imagens acrescenta vulnerabilidades, reforça a importância de usar imagens base mínimas. Essa recomendação também foi nossa prática de segurança número 1 no guia rápido sobre segurança do Docker que publicamos recentemente.

Ao optar por imagens mínimas, que incluem apenas as ferramentas de sistema e bibliotecas necessárias para executar seu projeto, você também reduz a superfície de ataque e garante o envio de um sistema operacional seguro. Isso pode significar menos vulnerabilidades, menos caminhos até elas e menos dependências no geral — tudo isso resulta em um contêiner mais seguro.

A segurança do Docker pode ser complexa, mas as ferramentas da Snyk facilitam a correção de vulnerabilidades e a busca por uma imagem base segura.

Segurança de contêineres que prioriza os desenvolvedores

O Snyk encontra e corrige automaticamente vulnerabilidades em imagens de contêiner e workloads do Kubernetes.

Leia mais

Blog

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

Blog

Seu backlog de vulnerabilidades não é mais uma dívida técnica — é uma superfície de ataque

Um backlog crescente de vulnerabilidades é mais do que uma dívida técnica: ele é uma superfície de ataque. Entenda por que suposições de risco desatualizadas, atacantes automatizados e descobertas encadeadas exigem uma nova abordagem.