Se você está começando a ler esta série agora, talvez seja melhor começar do começo:
Noções básicas de segurança de contêineres: Introdução
Noções básicas de segurança de contêineres: Gasoduto
Noções básicas de segurança de contêineres: Orquestração
Carga de trabalho é um termo relativamente recente que é frequentemente usado para descrever aplicativos, mas também pode se referir a serviços de infraestrutura. Isso é importante porque pode haver uma variedade de "cargas de trabalho" em execução em seus clusters de contêineres que não necessariamente vêm de seus desenvolvedores. O uso de serviços gratuitos e de código aberto para uma variedade de propósitos em ambientes de contêineres está crescendo. Isso é verdade nas operações de TI, que foram a categoria número um em downloads de software livre e de código aberto no ano passado.
Então, quando falamos em segurança de carga de trabalho, queremos dizer qualquer software que você baixou, desenvolveu ou implantou em seu ambiente de contêiner. Pense em Cônsul . Pense no próprio Kubernetes . Pense em Prometheus e Elasticsearch . Pense em NGINX e istio .
E então coloque também nessa lista quaisquer gateways de API, caches e controladores de entrada que você implantou para dar suporte ao seu ambiente Kubernetes. É aqui que uma lista completa de materiais é importante e por isso que fazer um inventário regularmente é essencial para manter um ambiente seguro.
Depois de ter sua lista, é hora de abordar os principais problemas de segurança da carga de trabalho.
2. Conteúdo malicioso é malicioso
Mesmo depois de bloquear a porta exigindo credenciais e aplicando controle de acesso, você ainda precisa se preocupar com conteúdo malicioso. Isso vale para aplicativos, microsserviços e serviços operacionais em uso. Todas as cargas de trabalho que apresentam uma interface para um usuário (seja operador ou consumidor) estão potencialmente em risco.
Se um invasor conseguir explorar uma vulnerabilidade nos componentes do sistema operacional, ele poderá comprometer uma ou mais cargas de trabalho. Essas vulnerabilidades podem ser expostas devido a uma falha em "trancar a porta" ou "filtrar suas chamadas". Não é um cenário absurdo, como vimos com o CVE-2019-5736 , em que uma vulnerabilidade runc na camada do sistema operacional deixou a Internet em pânico.
O princípio básico de segurança aqui foi declarado por Dan Walsh , guru de segurança de contêineres do SELinux e do RedHat, como: "Recipientes não contêm" .
É importante observar que todo o tráfego de rede com serviços e usuários fora do nó deve atravessar o sistema operacional host. A rede entre pods e contêineres em um nó é realizada por meio de rede virtual com pontes virtuais e uso inteligente do iptables. Mas, em última análise, o tráfego precisa sair desse nó físico e isso significa processamento no sistema operacional host. Agentes, plug-ins e outros daemons podem estar observando ou capturando esse tráfego para fins de segurança ou visibilidade. Esses são pontos potenciais de comprometimento que você deve adicionar ao inventário que começou a compilar depois de ler sobre Segurança de Pipeline .
Grande parte da segurança da carga de trabalho em um contexto de contêiner é a mesma de qualquer outra carga de trabalho de aplicativo em execução no seu ambiente de produção. Controle o acesso e exija autenticação forte, fique atento a conteúdo malicioso e esteja ciente de vulnerabilidades compartilhadas e em nível de plataforma.