A Agência Nacional de Segurança (NSA) e a Agência de Segurança Cibernética e de Infraestrutura dos Estados Unidos publicaram uma série de recomendações com objetivo de fortalecer a segurança do sistema Kubernetes das organizações. Kubernetes é uma solução de código aberto para implantação, escalonamento e gerenciamento de aplicativos em contêineres na nuvem, o que faz dela um alvo atraente para ataques cibernéticos.
Os hackers estão constantemente atacando os ambientes Kubernetes, sendo que a motivação varia do roubo de dados à mineração de criptomoedas e à negação de serviço (DoS), que pode atuar como um desvio para outras operações.
Para ajudar as empresas a tornar seu ambiente Kubernetes mais difícil de ser comprometido, a NSA e a CISA publicaram um relatório técnico de segurança cibernética de 52 páginas que oferece orientações para os administradores de nuvem gerenciarem Kubernetes com segurança.
A NSA afirma que as três principais causas para um ambiente Kubernetes comprometido são ataques à cadeia de suprimentos, agentes mal-intencionados e ameaças internas. Embora os administradores de nuvem não possam eliminar todos os três riscos, eles podem fortalecer a segurança de um cluster Kubernetes, evitando configurações incorretas comuns e aplicando atenuações para minimizar os riscos de segurança.
A agência observa que os ataques à cadeia de suprimentos “costumam ser desafiadores”, acrescentando que a entrada de um operador de ameaça se dá normalmente explorando uma vulnerabilidade ou aproveitando configurações incorretas. “Ameaças internas podem ser administradores, usuários ou provedores de serviços em nuvem. Insiders com acesso especial à infraestrutura de Kubernetes de uma organização podem abusar desses privilégios”, alerta a NSA.
Em linhas gerais, as ações defensivas contra essas ameaças são verificar contêineres e pods em busca de bugs e configurações incorretas, portanto, use o mínimo de privilégios para executar pods e contêineres (a menos que sejam necessárias permissões mais elevadas) e use separação de rede, autenticação forte, firewalls configurados corretamente e registros de auditoria.
Os administradores também devem revisar todas as configurações de Kubernetes regularmente e garantir que o sistema se beneficie das últimas atualizações, patches e upgrades disponíveis.
Veja isso
Hackers implantam criptominerador em kubernetes
Kubernetes comprometidos em quase 50.000 IPs
Intitulado “Kubernetes Hardening Guidance”, o documento aborda cada uma das seguintes recomendações de segurança, com exemplos:
Segurança do pod de Kubernetes:
- Use contêineres construídos para executar aplicativos como usuários não root (sem privilégios de acesso);
- Sempre que possível, execute contêineres com sistemas de arquivos imutáveis;
- Faça a varredura das imagens do contêiner em busca de possíveis vulnerabilidades ou configurações incorretas.
- Use uma política de segurança de pod para aplicar um nível mínimo de segurança, incluindo:
– Prevenção de contêineres privilegiados;
– Negação de recursos de contêiner frequentemente explorados para breakout (interrupção), como hostPID, hostIPC, hostNetwork, allowedHostPath;
– Rejeição de contêineres que executam como usuário root ou permitem elevação para root;
– Proteção de aplicativos contra exploração usando serviços de segurança como SELinux, AppArmor e seccomp.
Separação e proteção da rede:
- Bloqueie o acesso aos nós do plano de controle usando um firewall e controle de acesso baseado em função RBAC, técnica de atribuição de direitos de acesso para os usuários;
- Limite ainda mais o acesso ao servidor Kubernetes;
- Configure os componentes do plano de controle para usar comunicações autenticadas e criptografadas usando certificados TLS (Transport Layer Security);
- Configure políticas de rede para isolar recursos. Pods e serviços em namespaces diferentes ainda podem se comunicar entre si, a menos que uma separação adicional seja aplicada, como políticas de rede;
- Coloque todas as credenciais e informações confidenciais nas chaves secretas do Kubernetes, e não nos arquivos de configuração. Criptografe segredos usando um método de criptografia forte.
Autenticação e autorização:
- Desative login anônimo (ativado por padrão);
- Use autenticação de usuário forte;
- Crie políticas RBAC para limitar a atividade do administrador, usuário e conta de serviço.
Auditoria de registro:
- Habilite registro de auditoria (desabilitado por padrão);
- Persista com os registros para garantir a disponibilidade em caso de falha no nível do nó de rede, pod ou contêiner;
- Configure um registrador de métricas.
Práticas de atualização e segurança de aplicativos:
- Aplique imediatamente patches de segurança e atualizações;
- Execute verificações periódicas de vulnerabilidade e testes de penetração;
- Remova os componentes do ambiente quando eles não forem mais necessários.