Entendendo a segurança de contêineres
Este é o OWASP Docker Top 10. É um trabalho em andamento.
Este documento descreve os 10 pontos de segurança mais importantes para construir um ambiente conteinerizado seguro. Você pode usá-lo como uma ficha de especificações se estiver começando do zero, ou entregá-lo a um contratado que fará isso por você.
Também pode ser usado para auditar ou proteger uma instalação existente, mas especialmente aqui você deve começar a pensar em segurança muito cedo. O melhor é na fase de projeto. Mais tarde, torna-se difícil alterar algumas decisões tomadas ou elas se tornam caras, em termos de dinheiro ou tempo.
Embora o nome do documento se assemelhe ao OWASP Top 10, ele é bastante diferente. Primeiro, não se trata de riscos baseados em dados coletados como o OWASP Top 10. Em segundo lugar, os 10 pontos aqui se assemelham a controles (proativos).
Este guia é para desenvolvedores, auditores, arquitetos, engenheiros de sistemas e de rede. Como indicado acima, você também pode usar este guia para contratados externos, a fim de adicionar requisitos técnicos formais ao seu contrato. O responsável pela segurança da informação também deve ter interesse em atender aos requisitos básicos de segurança e ir além.
Esses 10 pontos são, em sua maioria (veja abaixo deste parágrafo), sobre segurança de sistemas e redes e arquitetura de sistemas e redes. Como desenvolvedor, você não precisa ser especialista nesses assuntos -- é para isso que este guia serve. Mas, como indicado acima, o melhor é começar a pensar e abordar esses pontos cedo. Por favor, não comece simplesmente a construí-lo.
Um dos pontos não deve ser mal interpretado: o gerenciamento de patches não é um ponto técnico. É um processo de gestão. Por último, mas não menos importante, para a gestão técnica ou de segurança da informação que não tem se preocupado muito com a conteinerização, este documento também fornece insights sobre os riscos envolvidos.
A segurança em ambientes Docker muitas vezes parecia ser mal compreendida. Era/é uma
questão altamente disputada quais seriam as ameaças. Então, antes de mergulhar
nos 10 pontos do Docker Top 10, as ameaças precisam ser modeladas, o que está
sendo feito logo no início deste documento. Isso não só ajuda a entender os impactos de
segurança, mas também dá a você a capacidade de priorizar suas tarefas.
Por favor, consulte CONTRIBUTING.md. Para facilitar contribuições para os pontos em aberto, envie seus PRs para os branches de desenvolvimento correspondentes (D06_dev, D07_dev, ...).
Você pode gerar uma versão em PDF desde que tenha Docker e docker-compose instalados.
docker-compose run --rm build
Essa versão não é atualizada com frequência neste repositório, pois, do contrário, acabaria obstruindo este repositório.
Embora o nome deste projeto contenha a palavra "Docker", ele também pode ser usado com pouca abstração para outras soluções de contenção. Docker é, até o momento, a mais popular, então os detalhes aprofundados estão focados, por enquanto, em Docker. Isto pode mudar mais tarde.
Se você executa mais de 3 contêineres em um servidor, provavelmente tem uma solução de orquestração para gerenciá-los. Armadilhas de segurança específicas de tal ferramenta estão atualmente fora do escopo deste documento. Isso não significa que este guia se refere apenas a um ou alguns contêineres gerenciados manualmente -- pelo contrário. Significa apenas que estamos olhando para os contêineres, incluindo suas redes e seus sistemas host em tal ambiente orquestrado, e não para armadilhas especiais de, por exemplo, Kubernetes, Swarm, Rancher ou OKD/OpenShift.
Para ser honesto, para nós, humanos, o número 10 soa cativante e, ao reunir tudo, esses 10 foram considerados os mais importantes.