A segurança em tempo de execução oferece proteção proativa para containers em operação ao detectar e bloquear atividades maliciosas, além de reduzir a superfície de ataque da aplicação.
O ACK suporta mecanismos do kernel Linux para segurança em tempo de execução — capabilities, seccomp e AppArmor — bem como ferramentas gerenciadas de detecção, como a inspeção do ACK e o Alibaba Cloud Security Center. Escolha o mecanismo adequado para sua carga de trabalho.
O Kubernetes não fornece mecanismos nativos para carregar perfis do AppArmor nos nós. Carregue os perfis em um nó antes de referenciá-los na especificação do pod, pois o agendador não sabe quais nós possuem quais perfis.
Use seccomp para limitar syscalls
O modo de computação segura (seccomp) é um filtro de syscalls do kernel Linux. Diferentemente do SELinux, o seccomp não isola containers; ele protege o kernel do host interceptando syscalls e permitindo apenas aquelas presentes em uma lista de permissões.
O docker e o containerd incluem um perfil seccomp padrão adequado para a maioria das cargas de trabalho. Consulte o perfil seccomp padrão do Docker.
Decida entre Linux capabilities e seccomp
Antes de escrever uma política seccomp, verifique se as Linux capabilities oferecem o controle necessário. As capabilities aplicam verificações às funções do kernel acessíveis via syscalls, enquanto o seccomp filtra as próprias syscalls. As capabilities são mais simples e suficientes para a maioria dos casos de uso.
Caso as capabilities sozinhas não garantam a restrição necessária, configure o seccomp. Consulte Definir capabilities para um container.
Gere um perfil seccomp
Para identificar quais syscalls sua aplicação executa, utilize o strace para gerar um rastreamento de pilha e, em seguida, use o syscall2seccomp para criar um perfil seccomp a partir dos dados do rastreamento.
Aplique um perfil seccomp a um pod
O método para aplicar um perfil seccomp depende da sua versão do Kubernetes.
Kubernetes 1.19 e posterior (recomendado)
Adicione um campo seccompProfile ao contexto de segurança do pod:
securityContext:
seccompProfile:
type: RuntimeDefault
Versões do Kubernetes anteriores à 1.19
Utilize uma anotação na especificação do pod:
annotations:
seccomp.security.alpha.kubernetes.io/pod: "runtime/default"
Ative o RuntimeDefault em todo o cluster
A partir do Kubernetes 1.27 (GA), uma única flag do kubelet aplica o perfil RuntimeDefault a todos os pods em um nó, sem exigir alterações individuais no securityContext de cada pod. No Kubernetes 1.22–1,24 (Alpha), o SeccompDefault vem desativado por padrão e requer a ativação do feature gate.
Para Kubernetes 1.22–1,24: adicione
--feature-gates=SeccompDefault=trueao arquivo de configuração do kubelet em cada nó.Adicione
--seccomp-defaultao arquivo de configuração do kubelet em cada nó.Reinicie o kubelet.
Após reiniciar o kubelet, os pods nesse nó passam a usar o perfil seccomp padrão do runtime. Syscalls fora da lista de permissões serão bloqueadas.
Teste essa configuração em um ambiente de não produção antes de implantá-la nos nós de produção. A ativação de --seccomp-default afeta todos os pods no nó.
Utilize uma solução de terceiros para gerencie perfis
Se o perfil padrão do runtime não atender aos seus requisitos, utilize um perfil seccomp personalizado. Perfis personalizados de seccomp e AppArmor exigem conhecimento avançado em segurança Linux. Soluções de terceiros empregam machine learning para detectar e bloquear atividades anormais, oferecendo uma proteção mais robusta do que perfis estáticos.
Use o recurso de inspeção do ACK
Os clusters do ACK incluem um recurso de inspeção que detecta riscos de segurança nas cargas de trabalho em tempo real. Analise os itens com falha e as etapas de correção sugeridas após cada inspeção para aprimorar a segurança das cargas de trabalho.
Consulte todas as verificações e sugestões de inspeção em Sugestões de inspeção.
Use o Alibaba Cloud Security Center
O Security Center detecta e bloqueia ameaças nos runtimes de aplicações cloud-native. Ele coleta inteligência sobre ameaças, analisa riscos, identifica origens e responde a incidentes.
Capacidades do Security Center:
Correlaciona logs de múltiplas fontes para detectar riscos em tempo real, incluindo execução de código ou comandos maliciosos, injeções de SQL e violações de dados
Audita ações do Kubernetes e logs operacionais para identificar riscos como escapes de container, vazamentos de AccessKey e acessos não autorizados no ACK e em outras plataformas de orquestração
Consulte O que é o Security Center?.