O uso de contêineres continua crescendo. Seja por causa de aplicações sem servidor e nativas da nuvem ou pelo desejo de modernizar sistemas monolíticos, os contêineres estão rapidamente se tornando a plataforma preferida para a implantação de aplicações.
A Sysdig lançou recentemente seu relatório de 2019 sobre o uso de contêineres com base em dados coletados de clientes de seus serviços de nuvem pública e locais. Os dados abrangeram mais de dois milhões de contêineres.
Além da descoberta realmente empolgante (se você for como eu) de que 60% desses contêineres executam NGINX, a Sysdig revelou algumas estatísticas de segurança bastante preocupantes.
Considere este dado: 54% dos contêineres permaneceram ativos por menos de cinco minutos. Em 2018, isso se aplicava a apenas 20%.
Por que isso é preocupante? Por causa da segurança, é claro. Se você está tentando proteger o acesso (e deveria estar) e o aplicativo ou a API em execução nesse contêiner, precisa garantir que seus serviços de segurança ajustem constantemente as políticas para corresponder ao estado atual do cluster. Isso significa que as políticas precisam ser aplicadas aos contêineres quando eles são iniciados e removidas quando são desativados. São muitas mudanças acontecendo, o que gera uma grande sobrecarga operacional. Já é difícil implementar a segurança corretamente em um aplicativo relativamente estático. Fazer isso com agilidade em um aplicativo altamente volátil é realmente muito difícil.
Se isso não preocupa você, considere esta estatística: embora 60% das imagens de contêiner sejam obtidas de registros privados (muito bem!), 52% delas são reprovadas nas verificações de imagem. Isso significa que elas apresentavam vulnerabilidades conhecidas de severidade alta ou crítica.
Aff. Não dá.
Acontece que muita gente está executando contêineres como root (mediana por host: 21) ou em modo privilegiado (mediana por host: 4). Outros não têm restrições de privilégios (mediana de 28 por host). Isso é particularmente frustrante, pois o Docker (o runtime de contêiner mais usado) inicia, por padrão, com um conjunto restrito de capacidades. Isso significa que alguém alterou deliberadamente as configurações de segurança padrão. A execução sem restrições pode permitir a elevação de privilégios ou o escape do contêiner (possibilitando o acesso ao sistema).
Agora, faremos uma pausa para relembrar os conceitos básicos de segurança de contêineres:
- Tranque a porta. A autenticação não é opcional. Exija credenciais fortes e altere-as com frequência. Use a autenticação de dois fatores sempre que possível — especialmente para acessos privilegiados a consoles de orquestração e infraestruturas críticas.
- Esconda seus objetos de valor. Não compartilhe inadvertidamente segredos (como chaves e credenciais) de forma pública em um repositório ou em uma fonte compartilhada de fácil acesso.
- Filtre suas chamadas. Nem todas as solicitações são válidas, e algumas contêm código malicioso. Seja em um aplicativo ou em um serviço de infraestrutura, inspecione e avalie o conteúdo para detectar intenções maliciosas. Otimize consolidando a verificação com a terminação SSL/TLS para compensar o pequeno impacto no desempenho.
- Corrija as brechas. Se você sabe que uma imagem, um serviço, uma carga de trabalho ou outro componente está vulnerável, aplique a correção. Isso é especialmente importante para vulnerabilidades em componentes de terceiros, pois eles são alvos de grande visibilidade. Quando uma vulnerabilidade surge em aplicações ou infraestruturas amplamente utilizadas, como o Apache Struts, cria-se um vasto campo de oportunidades, já que um invasor precisa investir pouco para encontrá-la e explorá-la.
É absolutamente essencial para a segurança dos aplicativos — e, portanto, dos negócios — que as boas práticas de segurança de contêineres sejam realmente colocadas em prática. Nosso próximo relatório State of Application Services de 2020 constatou que aplicativos nativos da nuvem/microsserviços representam, em média, 15% do portfólio de aplicativos de uma empresa. Esse percentual se mantém apesar das constatações que indicam longas filas de espera para novos aplicativos. Isso significa que a quantidade de aplicativos em contêineres só tende a crescer. E, se não conseguimos proteger uma pequena parcela dos aplicativos, como podemos esperar ampliar essa proteção para uma parcela significativa deles?
Pratique a conteinerização segura.
Se você quiser relembrar os conceitos básicos de segurança de contêineres, confira esta série baseada na experiência do meu colega da F5, Jordan Zebor:
- Noções básicas de segurança de contêineres: introdução
- Noções básicas de segurança de contêineres: pipeline
- Fundamentos de segurança de contêineres: orquestração
- Fundamentos de segurança de contêineres: carga de trabalho
- Noções básicas de segurança de contêineres: conclusão
Sobre o autor

Lori MacVittie é engenheira distinta e evangelista-chefe no Escritório do CTO da F5, com ampla experiência em entrega de aplicações, estratégia de automação e infraestrutura. Ela é conhecida por transformar complexidade em clareza, seja definindo diretrizes para agentes de IA, analisando arquiteturas multinuvem frágeis ou investigando os limites de sistemas escaláveis. Ela acumula mais de trinta anos de experiência no setor, abrangendo desenvolvimento de aplicações, arquitetura de TI e operações de redes e sistemas. Antes de ingressar na F5, atuou como editora de tecnologia e recebeu diversos prêmios. MacVittie tem mestrado em Ciência da Computação e é uma autora prolífica, com publicações que abrangem segurança, nuvem e arquitetura empresarial. Ela também é uma entusiasta de jogos de tabuleiro e videogames, além de ter opiniões assumidamente fortes sobre queijos.
Mais publicações de Lori Mac VittiePublicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.
Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.
As-Code: a pilha de TI contínua
Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.
O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.
DevOps Summit: onde a rede foi convidada para a festa
No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...
F5 e Nutanix convergem em infraestrutura no .NEXT
Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...