In this article
Guia de análise de segurança do Docker
O Docker tem uma enorme base de usuários em todo o mundo: recentemente, ultrapassou 10 milhões de usuários e 242 bilhões de downloads de imagens, transformando a maneira como os aplicativos são desenvolvidos.
Com a aceleração do desenvolvimento proporcionada pela conteinerização, mais responsabilidades de segurança passam para os desenvolvedores, que agora precisam manter as imagens de contêiner além do próprio código.
O que é Docker?
Docker é um conjunto de produtos de plataforma como serviço (PaaS) usados para executar aplicativos e serviços em ambientes isolados próprios, chamados contêineres, que usam virtualização no nível do sistema operacional.
O Docker permite instalar em um contêiner todas as dependências necessárias para um serviço. Assim, você não precisa se preocupar em instalar no computador, de forma nativa, pacotes indesejados ou versões diferentes do mesmo pacote. Isso facilita a distribuição do ambiente de execução completo de um aplicativo para outras pessoas, dentro ou fora da sua equipe.
Você pode enviar suas imagens Docker para o DockerHub, serviço da própria Docker que oferece contas gratuitas e pagas, ou para repositórios de terceiros, como o Amazon Elastic Container Registry (ECR) ou o Google Container Registry (GCR).
Mas como dizer a um contêiner quais dependências ou ferramentas instalar? O Dockerfile foi criado exatamente para isso.
O que é um Dockerfile?
O Dockerfile informa ao Docker como preparar um contêiner. Depois de escrever todas as instruções nele, você pode “criar” uma imagem a partir do Dockerfile. Para compartilhar suas imagens, você pode distribuir apenas o modelo do Dockerfile, permitindo que qualquer pessoa crie a imagem, ou compartilhar as próprias imagens. A vantagem é que, depois de compartilhadas, não é preciso criá-las novamente.
Como funciona a análise de segurança do Docker
O que é a varredura de segurança de imagens Docker?
A verificação de segurança de imagens Docker é um processo que identifica vulnerabilidades de segurança conhecidas nos pacotes incluídos na sua imagem Docker. Assim, você pode encontrar vulnerabilidades nas imagens de contêiner e corrigi-las antes de enviar a imagem para o Docker Hub ou qualquer outro registro.
O Snyk Container coloca a análise de segurança de contêineres nas mãos de quem desenvolve. Com ele, você pode analisar a imagem do contêiner pela Snyk CLI e também pela extensão do Snyk Container no Docker Desktop (disponível no marketplace de extensões do Docker Desktop). A análise pela linha de comando é simples. Veja como começar:
Analise sua imagem pela Snyk CLI com este comando:
snyk container test <image-name>Assim, você pode encontrar vulnerabilidades nas imagens de contêiner e corrigi-las antes de enviar a imagem para o Docker Hub, ECR, GCR, Harbor ou qualquer outro registro que você use.
As análises de vulnerabilidades da Snyk são um pouco diferentes das que você talvez conheça de outras ferramentas. Além de simplesmente listar todos os problemas, a Snyk busca orientar os desenvolvedores sobre como agir:
Ao incluir o Dockerfile junto com a imagem usando a opção
--file <path/to/Dockerfile>, os resultados dodocker scanmostram como escolher uma imagem-base mais recente e/ou menor, com menos vulnerabilidades.As vulnerabilidades são associadas à instrução do Dockerfile que as introduziu, com as dependências relevantes para ajudar você a localizar e corrigir cada problema.
O comando
snyk container monitorverifica continuamente se há novas vulnerabilidades nos contêineres existentes e alerta você quando alguma é descoberta.
Segurança de contêineres para DevSecOps
Encontre e corrija vulnerabilidades em contêineres gratuitamente com a Snyk.
Por que a análise de segurança do Docker é importante?
A análise de segurança de imagens de contêiner é importante porque é a principal maneira de encontrar e corrigir vulnerabilidades antes de enviar a imagem para o Docker Hub, ECR, GCR, Harbor ou qualquer outro registro que você use.
Se você usa um serviço de orquestração de contêineres, como o Kubernetes, talvez pense que esses problemas de segurança já estão resolvidos. Mas nem sempre é assim. Embora o Kubernetes tenha políticas de segurança para a execução de pods (que, na prática, são contêineres), ele não oferece muita proteção para o código ou os serviços executados neles. Essa responsabilidade fica com você. Ao configurar seu cluster do Kubernetes, uma tarefa que também é feita por meio de código, é importante seguir as práticas recomendadas de segurança do Kubernetes.
Tipos de análise de segurança do Docker
Verificar as vulnerabilidades conhecidas nos pacotes listados nas imagens Docker usando o banco de dados CVE mencionado anteriormente nem sempre é suficiente. Vulnerabilidades de segurança podem estar em muitos lugares diferentes. Por isso, há várias ferramentas e serviços de análise de segurança para contêineres Docker:
Ferramentas de configuração de rede: essas ferramentas analisam as portas e a configuração de rede das imagens Docker para identificar e sinalizar problemas. Cilium e Sysdig Falco são alguns exemplos.
Ferramentas de gerenciamento de identidade e acesso: impedir que um contêiner tenha acesso irrestrito a todos os seus recursos é uma medida de segurança importante. Isso envolve atribuir funções e responsabilidades específicas aos contêineres Docker. Há ferramentas para facilitar esse processo, além de aplicar e monitorar essas funções. Notary é uma delas.
Ferramentas de políticas definidas pelo usuário: algumas ferramentas permitem até mesmo definir e aplicar suas próprias políticas de segurança nos contêineres. Grafeas é uma ferramenta conhecida nessa categoria.
Ferramentas de código aberto: há várias ferramentas de código aberto para análise de vulnerabilidades. Ferramentas de análise de código aberto e de geração de SBOM são populares entre desenvolvedores que usam outras ferramentas de código aberto, como frameworks, sistemas operacionais ou IDEs. Especialistas em segurança também preferem soluções de código aberto, pois são fáceis de auditar e oferecem mais visibilidade. Se você está começando a usar Docker ou contêineres, também vai querer saber qual instrução do Dockerfile está causando problemas de segurança no seu contêiner. Há ferramentas para isso. O Snyk Open Source é um ótimo exemplo de ferramenta de análise de segurança de código aberto, também conhecida como ferramenta de análise de composição de software. Você pode se inscrever e usá-la gratuitamente.
Ferramentas de segurança de aplicativos: há diferentes tipos de ferramentas para ajudar você a proteger o código executado dentro dos contêineres Docker, incluindo ferramentas SAST, como o Snyk Code, que trabalha com os desenvolvedores para ajudá-los a proteger seus aplicativos.
Nenhuma ferramenta de análise de segurança pode garantir 100% de segurança para uma imagem ou um contêiner Docker. Ainda assim, esse tipo de ferramenta ajuda a reduzir o risco de vulnerabilidades no seu aplicativo e na sua infraestrutura. Além disso, algumas ferramentas oferecem monitoramento contínuo de contêineres e alertas para avisar você quando um problema é detectado. Seguir as práticas recomendadas de segurança do Docker também ajuda a reduzir o risco de introduzir vulnerabilidades. Crie e entregue aplicativos baseados em contêineres com confiança. Proteja seus aplicativos conteinerizados com o scanner de vulnerabilidades do Docker da Snyk.
Principais conclusões sobre a análise de segurança do Docker
O scanner de linha de comando do Snyk Container é uma ferramenta simples e poderosa para detectar e corrigir vulnerabilidades desde o início do desenvolvimento. Você pode executá-lo logo após criar a imagem e resolver os problemas antes mesmo de enviá-la para o registro. Se tiver dúvidas ou uma ideia interessante de como usar a ferramenta, queremos saber sua opinião na comunidade da Snyk.
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.