Fatores de ameaça no Kubernetes gerenciado
Em um ambiente gerenciado do Kubernetes, a abordagem de segurança envolve a compreensão e a mitigação de ameaças em várias instâncias. Aqui está um detalhamento dos fatores de ameaça em instâncias específicas:
Conta comprometida
- Fator de Ameaça: Um invasor obtém acesso a um cluster do Kubernetes por meio de credenciais roubadas, tokens de API ou chaves. Isso pode levar a acesso não autorizado, roubo de dados e implantações mal-intencionadas.
- Mitigação: Implemente mecanismos de autenticação forte, autenticação multifator (MFA), rotação regular de credenciais e princípios de acesso de privilégios mínimos.
Imagens vulneráveis ou configuradas incorretamente
- Fator de Ameaça: Imagens de contêiner com vulnerabilidades ou configurações incorretas podem ser exploradas por invasores uma vez implantadas. Essas vulnerabilidades podem incluir software desatualizado, configurações padrão inseguras ou segredos inseridos.
- Mitigação: Use ferramentas de verificação de imagem para detectar vulnerabilidades antes da implantação, impor políticas de procedência de imagem e adotar um processo de assinatura de imagem de contêiner.
Configuração incorreta do ambiente
- Fator de Ameaça: Configurações incorretas em configurações do Kubernetes ou descritores de implantação podem expor clusters a ataques. Problemas comuns incluem interfaces de painel expostas, configurações de RBAC excessivamente permissivas e pontos de extremidade não protegidos.
- Mitigação: Siga as práticas recomendadas para a configuração segura, audite regularmente as configurações com ferramentas automatizadas e empregue controladores de admissão para impor a conformidade da política.
Nível de ataque do aplicativo
- Fator de Ameaça: Aplicativos em execução em contêineres podem ser vulneráveis a vetores de ataque da Web tradicionais, como injeção de SQL ou script entre sites (XSS), que podem comprometer o contêiner ou levar a uma exploração adicional do cluster.
- Mitigação: Aplique as práticas recomendadas de segurança do aplicativo, como validação de entrada e codificação de saída, e use Firewalls de Aplicativo Web (WAFs). Implemente a segurança no pipeline de Integração Contínua (CI)/Entrega contínua e/ou implantação contínua (CD), incluindo ferramentas de análise estática e dinâmica.
Ataque no Nível do Nó
- Fator de Ameaça: Se um invasor obtiver acesso a um nó do Kubernetes, ele poderá potencialmente escalonar privilégios para controlar todo o cluster. Vulnerabilidades podem surgir de sistemas operacionais desatualizados ou componentes do Kubernetes.
- Mitigação: Mantenha os nós atualizados com os patches de segurança mais recentes, restrinja o acesso a nós usando políticas de rede e firewalls e empregue HIDS (sistemas de detecção de intrusão baseados em host).
Tráfego não autorizado
- Fator de Ameaça: O acesso não autorizado de ou para o cluster pode ocorrer se as políticas de rede não estiverem configuradas corretamente, permitindo que os invasores exfiltram dados, forneçam malware ou explorem serviços expostos.
- Mitigação: Implemente políticas de rede estritas para controlar o tráfego de entrada e saída, segregar cargas de trabalho confidenciais usando namespaces e monitorar o tráfego para padrões anômalos.
Lidar com essas ameaças em um ambiente gerenciado do Kubernetes requer uma abordagem de segurança em camadas que engloba práticas específicas do Kubernetes e medidas de segurança tradicionais. Monitoramento contínuo, auditorias regulares e adesão ao princípio de privilégios mínimos em todos os aspectos do cluster são componentes essenciais de uma estratégia de segurança robusta do Kubernetes.
Técnicas comuns de ataque
- Explorar imagens vulneráveis – um aplicativo vulnerável voltado para o público em um cluster que permite o acesso inicial ao cluster. Casos infames: SolarWinds, Log4j
- Acessar aplicativos expostos – uma interface confidencial exposta à Internet representa um risco à segurança. Algumas estruturas populares não foram destinadas a serem expostas à Internet e, portanto, não exigem autenticação por padrão. Assim, expô-las à Internet permite acesso não autenticado a uma interface confidencial que pode permitir a execução de código ou implantação de contêineres no cluster por um ator mal-intencionado. Exemplos de interfaces que foram exploradas anteiriormente incluem Apache NiFi, Kubeflow, Argo Workflows, Weave Scope e o painel do Kubernetes.
- Implantar contêineres de backdoor – os invasores executam seu código mal-intencionado em um contêiner no cluster. Ao usar controladores Kubernetes, como DaemonSets ou Deployments, os invasores garantiram que um número constante de contêineres fosse executado em um ou em todos os nós do cluster.
- Abuso sobre funções permissivas de SA – a conta de serviço (SA) representa uma identidade de aplicativo no Kubernetes. Por padrão, uma SA é montada em cada pod criado no cluster. Usando a SA, os contêineres no pod podem enviar solicitações para o servidor de API do Kubernetes. Os invasores que obtêm acesso a um pod acessam o token de SA e executam ações no cluster, de acordo com as permissões de SA. Se o RBAC não estiver habilitado, a SA terá permissões ilimitadas no cluster. Se o RBAC estiver habilitado, suas permissões serão determinadas pelos RoleBindings e ClusterRoleBindings associados a ele.
- Escape para o host – o volume hostPath monta um diretório ou um arquivo do host para o contêiner. Os invasores que têm permissões para criar um novo contêiner no cluster podem criar um com um volume de hostPath gravável e obter persistência no host subjacente. Por exemplo, esse último pode ser alcançado criando um trabalho cron no host.