A segurança em tempo de execução protege proativamente os containers em operação. Ela detecta e bloqueia atividades maliciosas e reduz a superfície de ataque da aplicação.
O ACK oferece suporte a mecanismos do kernel Linux para segurança em tempo de execução — capabilities, seccomp e AppArmor — e a ferramentas gerenciadas de detecção, como a inspeção do ACK e o Alibaba Cloud Security Center. Escolha o mecanismo adequado à sua carga de trabalho.
O Kubernetes não fornece mecanismos nativos para carregar perfis do AppArmor nos nós. Carregue os perfis no nó antes de referenciá-los na especificação do pod, pois o agendador desconhece quais perfis estão disponíveis em cada nó.
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. Em vez disso, protege o kernel do host ao interceptar syscalls e permitir apenas aquelas presentes na lista de permissões.
docker e containerd incluem um perfil seccomp padrão adequado à maioria das cargas de trabalho. Consulte o perfil seccomp padrão do Docker.
Escolha entre Linux capabilities e seccomp
Antes de criar 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.
Se as capabilities sozinhas não garantirem 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, use o strace para gerar um rastreamento de pilha. Em seguida, utilize o syscall2seccomp para criar um perfil seccomp com base nos dados do rastreamento.
Aplique um perfil seccomp a um pod
O método de aplicação de um perfil seccomp depende da versão do Kubernetes.
Kubernetes 1.19 ou posterior (recomendado)
Adicione o campo seccompProfile ao contexto de segurança do pod:
securityContext:
seccompProfile:
type: RuntimeDefault
Versões do Kubernetes anteriores à 1.19
Use 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 exige a ativação do feature gate.
No 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. O sistema bloqueia syscalls fora da lista de permissões.
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ó.
Use soluções de terceiros para gerenciar perfis
Se o perfil padrão do runtime não atender aos seus requisitos, use 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 e oferecem proteção superior à de perfis estáticos.
Use o recurso de inspeção do ACK
Clusters 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 Inspection suggestions.
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.
Recursos 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 What is Security Center?.