Território desconhecido: descobrindo vulnerabilidades em Helm Charts públicos
18 de novembro de 2019
0 minutos de leituraAssim como em nosso relatório sobre segurança de imagens Docker, queríamos analisar o cenário de vulnerabilidades no repositório público de Helm Charts.
Helm é um gerenciador de pacotes popular para Kubernetes. Além de ser usado por desenvolvedores para empacotar suas próprias aplicações, o repositório oficial de Charts contém centenas de Charts que você pode usar para instalar softwares de terceiros, como Jenkins, PostgreSQL e muitos outros. Isso economiza tempo e também permite aproveitar a experiência de quem empacota esses softwares e os torna fáceis de configurar.
Vamos dar uma olhada rápida em um exemplo de Helm Chart, neste caso, do Linkerd.
1 diretório, 9 arquivos.
No arquivo values.yaml, encontramos detalhes de algumas imagens de contêiner que podem conter vulnerabilidades:
Vulnerabilidades em imagens de Helm Charts
Como acontece com qualquer repositório de conteúdo de terceiros, vulnerabilidades em Helm Charts populares podem representar um risco para muitos usuários. Ajudar desenvolvedores a usar conteúdo de terceiros com segurança é o que fazemos na Snyk. Já oferecemos ferramentas para ajudar a proteger dependências de código aberto em gerenciadores de pacotes populares (por exemplo, para Java, .NET, Python, Node.js, Ruby e outros), além de ferramentas para detectar vulnerabilidades em imagens de contêiner. Ao analisar os desafios de proteger conteúdo de terceiros no Kubernetes, uma das perguntas que fizemos foi: “Como sei quais vulnerabilidades existem nas imagens deste Helm Chart?” No momento, esse processo é bastante manual:
Identificar quais imagens o Chart usa, o que provavelmente envolve revisar os templates renderizados e identificar as versões específicas das imagens
Analisar essas imagens individualmente, o que provavelmente envolve executar vários comandos e agregar os resultados manualmente
O processo fica ainda mais complicado porque os Helm Charts podem receber configurações que afetam as imagens usadas.
Apresentamos o relatório de segurança de Helm Charts
Em nosso novo relatório, analisamos o cenário de vulnerabilidades no repositório público de Helm Charts. Não queremos apontar o Helm como inseguro, assim como não diríamos que qualquer repositório popular de conteúdo de terceiros é inseguro. Nosso objetivo é iniciar uma conversa sobre maneiras melhores de proteger Helm Charts, para que ainda mais pessoas possam aproveitar a facilidade de uso do Helm. Descobrimos que:
68% dos Helm Charts estáveis contêm uma imagem com uma vulnerabilidade de alta gravidade
64% dos Helm Charts estáveis poderiam reduzir o número de vulnerabilidades com a atualização para as imagens publicadas mais recentemente
6 imagens (de um total de 416) representam metade das ocorrências de vulnerabilidades
Também compartilhamos este trabalho com a comunidade Helm. Matt Butcher, um dos mantenedores da Helm Org, afirmou:
“Para que o ecossistema cloud native alcance todo o seu potencial, precisamos melhorar a segurança coletivamente. Isso significa aplicar um conjunto de padrões, técnicas e ferramentas voltados especificamente para tecnologias cloud native. O Projeto Helm está profundamente comprometido com a segurança do nosso software principal, dos nossos charts e das práticas da comunidade. E damos as boas-vindas a uma nova geração de ferramentas que nos ajude a identificar e corrigir vulnerabilidades de forma proativa.”
Conheça o plugin do Helm da Snyk
Como parte da pesquisa acima, criamos um plugin que torna a verificação de vulnerabilidades nos seus próprios Helm Charts tão simples quanto qualquer outra tarefa no Helm.
Você pode instalar o plugin do Helm da Snyk usando os comandos integrados do Helm.
Para usar o plugin, você precisa de uma conta da Snyk, que pode ser criada gratuitamente em https://snyk.io/signup/. Depois de criar a conta, você pode testar seus charts assim:
Veja, por exemplo, como testar o Chart do Redis no repositório público de Charts:
Os Helm Charts costumam ter propriedades que podem ser definidas durante a instalação, e algumas delas podem afetar as imagens usadas pelo chart. O plugin do Helm da Snyk usa a mesma interface dos demais comandos do Helm para permitir que você defina propriedades individualmente e teste diferentes variações, por exemplo:
Conclusão
Com o relatório de segurança de Helm Charts, ajudamos a comunidade Helm a encontrar vulnerabilidades e facilitamos a correção delas. O plugin do Helm da Snyk permite testar seus Helm Charts com rapidez e facilidade, seja para investigar um Chart de terceiros ou para executar verificações regularmente nos pipelines de CI/CD. Fique de olho nas próximas ferramentas da Snyk para ajudar desenvolvedores a usar conteúdo de terceiros com mais segurança.