Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Sécurité de l'exécution
La sécurité d'exécution fournit une protection active à vos conteneurs pendant leur fonctionnement. L'idée est de détecter et d' and/or empêcher toute activité malveillante de se produire à l'intérieur du conteneur. Cela peut être réalisé à l'aide d'un certain nombre de mécanismes du noyau Linux ou d'extensions de noyau intégrées à Kubernetes, tels que les fonctionnalités Linux, l'informatique sécurisée (seccomp) ou. AppArmor SELinux Il existe également des options telles qu'Amazon GuardDuty et des outils tiers qui peuvent aider à établir des bases de référence et à détecter les activités anormales en réduisant la configuration manuelle des mécanismes du noyau Linux.
Important
Kubernetes ne fournit actuellement aucun mécanisme natif pour le chargement de seccomp ou de profils sur AppArmor les nœuds. SELinux Ils doivent être chargés manuellement ou installés sur les nœuds lors de leur démarrage. Cela doit être fait avant de les référencer dans vos pods, car le planificateur ne sait pas quels nœuds ont des profils. Découvrez ci-dessous comment des outils tels que Security Profiles Operator peuvent aider à automatiser le provisionnement des profils sur les nœuds.
Contextes de sécurité et contrôles Kubernetes intégrés
De nombreux mécanismes de sécurité d'exécution Linux sont étroitement intégrés à Kubernetes et peuvent être configurés via des contextes de sécurité Kubernetes.privileged drapeau, qui est false par défaut et, s'il est activé, équivaut essentiellement à root sur l'hôte. Il est presque toujours inapproprié d'activer le mode privilégié dans les charges de travail de production, mais il existe de nombreux autres contrôles qui peuvent fournir des privilèges plus précis aux conteneurs, le cas échéant.
Fonctionnalités de Linux
Les fonctionnalités de Linux vous permettent d'octroyer certaines fonctionnalités à un pod ou à un conteneur sans fournir toutes les capacités de l'utilisateur root. Les exemples incluent CAP_NET_ADMIN ce qui permet de configurer des interfaces réseau ou des pare-feuxCAP_SYS_TIME, ou qui permet de manipuler l'horloge du système.
Seccomp
Grâce à l'informatique sécurisée (seccomp), vous pouvez empêcher une application conteneurisée d'effectuer certains appels système vers le noyau du système d'exploitation hôte sous-jacent. Bien que le système d'exploitation Linux compte quelques centaines d'appels système, la plupart d'entre eux ne sont pas nécessaires pour exécuter des conteneurs. En limitant les appels système pouvant être effectués par un conteneur, vous pouvez réduire efficacement la surface d'attaque de votre application.
Seccomp fonctionne en interceptant les appels système et en n'autorisant que ceux qui ont été autorisés à passer. Docker possède un profil seccomp par défautsecurityContext section de la spécification du Pod :
securityContext: seccompProfile: type: RuntimeDefault
À partir de la version 1.22 (en alpha, stable à partir de la version 1.27), ce qui précède RuntimeDefault peut être utilisé pour tous les pods d'un nœud en utilisant un seul drapeau kubelet--seccomp-default Ensuite, le profil spécifié dans n'securityContextest nécessaire que pour les autres profils.
Il est également possible de créer vos propres profils pour les choses qui nécessitent des privilèges supplémentaires. Cela peut être très fastidieux à effectuer manuellement, mais il existe des outils tels qu'Inspektor Gadget
AppArmor et SELinux
AppArmor et SELinux sont connus sous le nom de contrôle d'accès obligatoire ou systèmes MAC
Les deux AppArmor SELinux sont intégrés à Kubernetes, mais à partir de Kubernetes 1.28, les AppArmor profils doivent être spécifiés via des annotations, tandis que les
Comme pour les profils seccomp, l'opérateur de profils de sécurité mentionné ci-dessus peut vous aider à déployer des profils sur les nœuds du cluster. (À l'avenir, le projet vise également à générer des profils pour AppArmor et SELinux comme il le fait pour seccomp.)
Recommandations
Utilisez Amazon GuardDuty pour surveiller le temps d'exécution et détecter les menaces qui pèsent sur vos environnements EKS
Si vous ne disposez pas actuellement d'une solution permettant de surveiller en permanence les temps d'exécution d'EKS, d'analyser les journaux d'audit d'EKS et de détecter les logiciels malveillants et autres activités suspectes, Amazon GuardDuty
Regardez cette conférence technique en ligne AWS intitulée « Détection améliorée des menaces pour Amazon EKS avec Amazon GuardDuty - AWS Online Tech Talks »
Facultatif : utilisez une solution tierce pour la surveillance du temps d'exécution
La création et la gestion des profils seccomp et Apparmor peuvent s'avérer difficiles si vous n'êtes pas familiarisé avec la sécurité Linux. Si vous n'avez pas le temps de devenir compétent, pensez à utiliser une solution commerciale tierce. Beaucoup d'entre eux ont dépassé les profils statiques tels qu'Apparmor et seccomp et ont commencé à utiliser l'apprentissage automatique pour bloquer ou alerter en cas d'activité suspecte. Quelques-unes de ces solutions se trouvent ci-dessous dans la section des outils. Des options supplémentaires sont disponibles sur AWS Marketplace for Containers
Tenez compte des capacités de add/dropping Linux avant d'écrire des politiques seccomp
Les fonctionnalités impliquent diverses vérifications dans les fonctions du noyau accessibles par des appels système. Si la vérification échoue, l'appel système renvoie généralement une erreur. La vérification peut être effectuée soit juste au début d'un appel système spécifique, soit plus profondément dans le noyau, dans des zones pouvant être accessibles via plusieurs appels système différents (comme l'écriture dans un fichier privilégié spécifique). Seccomp, quant à lui, est un filtre syscall qui est appliqué à tous les appels système avant leur exécution. Un processus peut configurer un filtre qui lui permet de révoquer son droit d'exécuter certains appels système ou des arguments spécifiques pour certains appels système.
Avant d'utiliser seccomp, déterminez si les fonctionnalités de adding/removing Linux vous offrent le contrôle dont vous avez besoin. Voir Configuration des capacités pour les conteneurs
Découvrez si vous pouvez atteindre vos objectifs en utilisant les politiques de sécurité des pods (PSPs)
Les politiques de sécurité des modules offrent de nombreuses manières d'améliorer votre posture de sécurité sans introduire de complexité excessive. Explorez les options disponibles PSPs avant de vous lancer dans la création de profils Seccomp et Apparmor.
Avertissement
À partir de Kubernetes 1.25, PSPs ils ont été supprimés et remplacés par le contrôleur d'admission Pod
Outils et ressources
-
L'opérateur de profils de sécurité
est une amélioration de Kubernetes qui vise à faciliter l'utilisation par les utilisateurs SELinux, seccomp et dans les clusters Kubernetes. AppArmor Il fournit des fonctionnalités permettant à la fois de générer des profils à partir de charges de travail en cours d'exécution et de charger des profils sur des nœuds Kubernetes pour les utiliser dans des pods. -
Inspektor Gadget
permet d'inspecter, de suivre et de profiler de nombreux aspects du comportement d'exécution sur Kubernetes, notamment en aidant à la génération de profils seccomp. -
NeuVector de SUSE
Open Source, plate-forme de sécurité des conteneurs Zero-Trust, fournit des règles de profil de processus et des règles d'accès aux fichiers.