Pular para o conteúdo principal

Images Vulnerabilities

Para entender precisa saber o que são CVEs.

Um dos exemplos mais comuns de vulnerabilidade é a de buffer overflow. Imagine que temos servidor Apache rodando em uma versão que permite esse exploit. Podemos enviar uma solicitação específica para esse server e em vez de apenas servir o HTML pode executar um script no servidor.

Exploit é um termo usado em segurança da informação para descrever uma técnica ou um software projetado para tirar vantagem de uma vulnerabilidade específica em um sistema, aplicativo ou rede. O objetivo principal de um exploit é explorar essa vulnerabilidade para obter acesso não autorizado, executar código malicioso, ou causar algum outro efeito prejudicial.

No caso do Kubernetes os alvos são:

  • Aplicações em contêineres acessíveis remotamente
  • Aplicações locais dentro dos contêineres.

As vulnerabilidades não são somente das aplicações que estamos interessados em rodar, são uma herança da imagem base usada e tudo que instalamos a partir dela, incluindo as bibliotecas. Por exemplo se estamos rodando um contêiner com nossa aplicação e estamos usando a imagem base do Ubuntu e esta tem alguma vulnerabilidade, então vamos herdá-la.

Como resultado podemos ter vulnerabilidades de:

  • Escalonamento de privilégios
  • Vazamento de informação
  • DDOS
  • etcd

Precisamos de uma ferramenta que possa ajudar a escanear todos os binários e suas dependências em todas as camadas do contêiner.

Podemos descobrir vulnerabilidades durante: o processo de build da imagem ou conferindo em tempo de execução os contêineres rodando nos pods. Obviamente é melhor encontrar problemas antes do pod estar rodando no cluster.

alt text

Duas ferramentas open source muito utilizadas são o Trivy e o Clair. Faça um estudo principalmente sobre o Trivy que é mais fácil de usar.

Podemos utilizar o admission controller junto com o OPA ou o PSP para restringir repositórios/imagens ou fazer a mudanças nas request. Se uma imagem utiliza uma camada anterior que está restrita não conseguirá ser executada, pois não será permitido o pull dessa camada. Se fizermos uma mudança por exemplo de ubuntu:20.04 para ubuntu:22.04 para corrigir, podemos utilizar o mutation webhook para isso.

alt text