As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Segurança de runtime
A segurança de tempo de execução fornece proteção ativa para seus contêineres enquanto eles estão em execução. A ideia é detectar e and/or evitar que atividades maliciosas ocorram dentro do contêiner. Isso pode ser feito com vários mecanismos no kernel Linux ou nas extensões do kernel integradas ao Kubernetes, como recursos do Linux, computação segura (seccomp) ou. AppArmor SELinux Também há opções como a Amazon GuardDuty e ferramentas de terceiros que podem ajudar a estabelecer linhas de base e detectar atividades anômalas com menos configuração manual dos mecanismos do kernel Linux.
Importante
Atualmente, o Kubernetes não fornece nenhum mecanismo nativo para carregar seccomp ou perfis nos nós AppArmor. SELinux Eles precisam ser carregados manualmente ou instalados nos Nodes quando são inicializados. Isso precisa ser feito antes de referenciá-los em seus pods, pois o agendador não sabe quais nós têm perfis. Veja abaixo como ferramentas como o Security Profiles Operator podem ajudar a automatizar o provisionamento de perfis em nós.
Contextos de segurança e controles Kubernetes integrados
Muitos mecanismos de segurança de tempo de execução do Linux estão totalmente integrados ao Kubernetes e podem ser configurados por meio de contextos de segurança do Kubernetes.privileged sinalizador, que é false por padrão e, se ativado, é essencialmente equivalente à raiz no host. Quase sempre é inapropriado ativar o modo privilegiado em cargas de trabalho de produção, mas há muitos outros controles que podem fornecer privilégios mais granulares aos contêineres, conforme apropriado.
Capacidades do Linux
Os recursos do Linux permitem que você conceda determinados recursos a um pod ou contêiner sem fornecer todas as habilidades do usuário root. Os exemplos incluemCAP_NET_ADMIN, que permite configurar interfaces de rede ou firewalls, ouCAP_SYS_TIME, que permite a manipulação do relógio do sistema.
Seccomp
Com a computação segura (seccomp), você pode impedir que um aplicativo em contêiner faça determinadas chamadas de sistema para o kernel do sistema operacional hospedeiro subjacente. Embora o sistema operacional Linux tenha algumas centenas de chamadas de sistema, a maior parte delas não é necessária para executar contêineres. Ao restringir quais syscalls podem ser feitas por um contêiner, você pode reduzir efetivamente a superfície de ataque do seu aplicativo.
O Seccomp funciona interceptando chamadas de sistema e permitindo a passagem apenas daquelas que foram listadas na lista de permissões. O Docker tem um perfil seccomp padrãosecurityContext seção da especificação do pod:
securityContext: seccompProfile: type: RuntimeDefault
A partir de 1.22 (em alfa, estável a partir de 1.27), o código acima RuntimeDefault pode ser usado para todos os pods em um Node usando um único sinalizador kubelet--seccomp-default Então, o perfil especificado em só securityContext é necessário para outros perfis.
Também é possível criar seus próprios perfis para coisas que exigem privilégios adicionais. Isso pode ser muito tedioso de fazer manualmente, mas existem ferramentas como o Inspektor Gadget
AppArmor and SELinux
AppArmor e SELinux são conhecidos como sistemas de controle de acesso obrigatório ou MAC
Ambos AppArmor SELinux estão integrados ao Kubernetes, mas a partir do Kubernetes 1.28, os AppArmor perfis devem ser especificados por meio de anotações
Assim como nos perfis seccomp, o operador de perfis de segurança mencionado acima pode ajudar na implantação de perfis nos nós do cluster. (No futuro, o projeto também visa gerar perfis para AppArmor e SELinux como faz para o seccomp.)
Recomendações
Use a Amazon GuardDuty para monitorar o tempo de execução e detectar ameaças aos seus ambientes EKS
Se você atualmente não tem uma solução para monitorar continuamente os tempos de execução do EKS, analisar os registros de auditoria do EKS e verificar se há malware e outras atividades suspeitas, a Amazon recomenda fortemente o uso da Amazon GuardDuty
Assista à palestra técnica on-line da AWS “Detecção aprimorada de ameaças para o Amazon EKS com a Amazon GuardDuty — AWS Online Tech Talks”
Opcionalmente: use uma solução terceirizada para monitoramento do tempo de execução
Criar e gerenciar perfis seccomp e Apparmor pode ser difícil se você não estiver familiarizado com a segurança do Linux. Se você não tiver tempo para se tornar proficiente, considere usar uma solução comercial terceirizada. Muitos deles foram além dos perfis estáticos, como Apparmor e seccomp, e começaram a usar o aprendizado de máquina para bloquear ou alertar sobre atividades suspeitas. Algumas dessas soluções podem ser encontradas abaixo na seção de ferramentas. Opções adicionais podem ser encontradas no AWS Marketplace for Containers
Considere os recursos do add/dropping Linux antes de escrever políticas seccomp
Os recursos envolvem várias verificações nas funções do kernel acessíveis por syscalls. Se a verificação falhar, a syscall normalmente retornará um erro. A verificação pode ser feita logo no início de uma syscall específica ou mais profundamente no kernel em áreas que podem ser acessadas por meio de várias syscalls diferentes (como gravar em um arquivo privilegiado específico). O Seccomp, por outro lado, é um filtro de syscall que é aplicado a todas as syscalls antes de serem executadas. Um processo pode configurar um filtro que permita revogar seu direito de executar determinadas syscalls ou argumentos específicos para determinadas syscalls.
Antes de usar o seccomp, considere se os recursos do adding/removing Linux oferecem o controle de que você precisa. Consulte Configuração de recursos para contêineres
Veja se você pode atingir seus objetivos usando as Políticas de Segurança do Pod (PSPs)
As políticas de segurança do Pod oferecem várias maneiras diferentes de melhorar sua postura de segurança sem introduzir complexidade indevida. Explore as opções disponíveis PSPs antes de se aventurar na criação de perfis seccomp e Apparmor.
Atenção
A partir do Kubernetes 1.25, PSPs foram removidos e substituídos pelo controlador Pod
Ferramentas e recursos
-
O Security Profiles Operator
é um aprimoramento do Kubernetes que visa facilitar o uso dos usuários SELinux, seccomp e em clusters do Kubernetes. AppArmor Ele fornece recursos para gerar perfis a partir da execução de cargas de trabalho e carregar perfis nos nós do Kubernetes para uso em pods. -
O Inspektor Gadget
permite inspecionar, rastrear e traçar o perfil de muitos aspectos do comportamento do tempo de execução no Kubernetes, incluindo assistência na geração de perfis seccomp. -
NeuVector da SUSE
open source, a plataforma de segurança de contêineres de confiança zero fornece regras de perfil de processo e regras de acesso a arquivos.