Segurança no registro de contêineres
Michael Komraz
21 de fevereiro de 2019
0 minutos de leituraUm dos princípios fundamentais da Snyk é o que chamamos de “desenvolvedor em primeiro lugar”. Na nossa visão de produto, isso significa se integrar ao fluxo de trabalho e às ferramentas que os desenvolvedores já usam, com integrações poderosas, para tornar o mais simples possível a responsabilidade dos desenvolvedores pela segurança.
Em outras palavras, queremos oferecer a opção de cuidar da segurança onde os desenvolvedores já estão, por exemplo:
No IDE, por exemplo, com nosso plugin do IntelliJ, lançado no fim de 2018
No nível do Git, onde os desenvolvedores podem abrir pull requests para corrigir problemas atuais e prevenir problemas futuros
Na etapa de build, que, como um gate, costuma complementar o Git de forma mais voltada a DevOps
Em PaaS e no runtime, por exemplo, com nossas integrações de droplet, buildpack e broker do Pivotal
Em ferramentas de gerenciamento de projetos e mensagens, como JIRA, Slack e outras
Camadas de contêineres e riscos ocultos
Os contêineres (usando o termo de forma ampla) estão entre as mudanças mais importantes do setor de TI e trazem novos desafios de segurança, tanto para o desenvolvimento quanto para as operações. Por exemplo, no mundo “antigo” de servidores e máquinas virtuais, muitas equipes corporativas usam uma metodologia de “imagem dourada” para manter o controle de Operações sobre a camada base (sistema operacional e pacotes) de seus aplicativos. A forma como as imagens Docker são criadas, distribuídas e usadas torna inviável para qualquer equipe que trabalha na nuvem seguir essa metodologia, já que as imagens de contêiner têm várias camadas cuja origem ou robustez nem sempre é clara.
O gerenciamento de vulnerabilidades em contêineres da Snyk verifica imagens Docker, inspecionando pacotes do sistema operacional e binários importantes, e cruza os dados com nosso banco de dados proprietário de vulnerabilidades. Assim, oferece uma visão das dependências diretas e indiretas ocultas nas camadas da imagem. Na captura de tela abaixo, vemos a funcionalidade da Snyk analisando até cinco camadas de profundidade para sinalizar um problema de alta gravidade:

Encontrar riscos é só o primeiro passo: o próximo desafio é corrigi-los sem interromper o fluxo de trabalho. Por isso, oferecemos orientações para remediação na ferramenta. Outro ponto importante é basear tudo isso em informações confiáveis e minimizar os falsos positivos — algo que o banco de dados de vulnerabilidades da Snyk, referência no setor, oferece.
Mas um desenvolvedor que prioriza a segurança não deve parar por aí. O próximo passo também traz um desafio: enviar uma imagem potencialmente comprometida para o seu registro de contêineres. Fazer isso manualmente, com uma análise de segurança rigorosa, pode ser ineficiente; automatizar essa etapa sem as proteções necessárias pode dificultar muito o controle operacional e a auditoria. A abordagem da Snyk busca automatizar o processo com base em boas práticas de segurança, como mostra o exemplo a seguir.
Hello-ACR-world
Criamoseste app de demonstração para verificar todas as imagens Docker enviadas ao Azure Container Registry (ACR). Em vez de desacelerar o ciclo de desenvolvimento, integramos a verificação e as orientações para remediação ao fluxo do ACR Tasks. No arquivo .yaml abaixo, vemos que, entre as tarefas padrão BUILD e PUSH do ACR Tasks, adicionamos um script que verifica vulnerabilidades tanto na imagem quanto no aplicativo (binários):

A configuração faz com que o PUSH falhe se forem encontradas vulnerabilidades de alta gravidade no sistema operacional e/ou vulnerabilidades de gravidade média-alta no “aplicativo”. Quando isso acontece, a verificação falha e não é possível continuar para o PUSH. Veja um pouco mais do processo neste vídeo curto:
Em resumo
O modelo de contêineres traz riscos adicionais de segurança e conformidade. Com o gerenciamento de vulnerabilidades em contêineres da Snyk, podemos encontrar e corrigir vulnerabilidades diretas e — o que é ainda mais importante neste caso — indiretas nas imagens de contêiner. Também podemos automatizar ainda mais o DevOps adicionando a Snyk como gate antes que uma imagem não corrigida seja enviada ao nosso registro de contêineres. Essas etapas, junto aos recursos da Snyk para controle de código-fonte, CI/CD e PaaS, formam um caso de uso completo e convincente para contêineres.
Conte para nós quais registros de contêineres você já usa e como funciona sua automação para equilibrar eficiência e segurança!
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.
