Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Laufzeit-Sicherheit
Runtime Security bietet aktiven Schutz für Ihre Container, während sie laufen. Die Idee besteht darin, zu erkennen und zu and/or verhindern, dass bösartige Aktivitäten innerhalb des Containers auftreten. Dies kann mit einer Reihe von Mechanismen im Linux-Kernel oder mit Kernelerweiterungen erreicht werden, die in Kubernetes integriert sind, wie z. B. Linux-Funktionen, Secure Computing (Seccomp), oder. AppArmor SELinux Es gibt auch Optionen wie Amazon GuardDuty und Tools von Drittanbietern, die bei der Festlegung von Baselines und der Erkennung anomaler Aktivitäten mit weniger manueller Konfiguration der Linux-Kernel-Mechanismen helfen können.
Wichtig
Kubernetes bietet derzeit keine systemeigenen Mechanismen zum Laden von Seccomp- oder Profilen auf Knoten. AppArmor SELinux Sie müssen entweder manuell geladen oder beim Bootstrapping auf Nodes installiert werden. Dies muss geschehen, bevor Sie in Ihren Pods auf sie verweisen, da der Scheduler nicht weiß, welche Knoten Profile haben. Im Folgenden erfahren Sie, wie Tools wie Security Profiles Operator dazu beitragen können, die Bereitstellung von Profilen auf Knoten zu automatisieren.
Sicherheitskontexte und integrierte Kubernetes-Steuerelemente
Viele Sicherheitsmechanismen für die Linux-Laufzeit sind eng in Kubernetes integriert und können über Kubernetes-Sicherheitskontexte konfiguriert werden.privileged Flag, das false standardmäßig aktiviert ist und, falls aktiviert, im Wesentlichen Root auf dem Host entspricht. Es ist fast immer unangemessen, den privilegierten Modus in Produktions-Workloads zu aktivieren, aber es gibt viel mehr Steuerelemente, die Containern je nach Bedarf detailliertere Rechte gewähren können.
Linux-Funktionen
Mithilfe von Linux-Funktionen können Sie einem Pod oder Container bestimmte Funktionen gewähren, ohne alle Fähigkeiten des Root-Benutzers zur Verfügung zu stellen. Beispiele hierfür sind CAP_NET_ADMIN die Konfiguration von Netzwerkschnittstellen oder Firewalls oder CAP_SYS_TIME die Manipulation der Systemuhr.
Seccomp
Mit Secure Computing (Seccomp) können Sie verhindern, dass eine containerisierte Anwendung bestimmte Syscalls an den Kernel des zugrunde liegenden Host-Betriebssystems sendet. Das Linux-Betriebssystem hat zwar einige hundert Systemaufrufe, aber der Löwenanteil davon ist für den Betrieb von Containern nicht erforderlich. Indem Sie einschränken, welche Syscalls von einem Container ausgeführt werden können, können Sie die Angriffsfläche Ihrer Anwendung effektiv verringern.
Seccomp funktioniert, indem es Systemaufrufe abfängt und nur diejenigen weiterleitet, die auf der Zulassungsliste stehen. Docker hat ein Standard-Seccomp-ProfilsecurityContext
securityContext: seccompProfile: type: RuntimeDefault
Ab Version 1.22 (in Alpha, stabil ab 1.27) RuntimeDefault können die obigen Angaben für alle Pods auf einem Node verwendet werden, die ein einziges Kubelet-Flag verwenden.--seccomp-default Dann wird das unter angegebene Profil nur für securityContext andere Profile benötigt.
Es ist auch möglich, eigene Profile für Dinge zu erstellen, für die zusätzliche Rechte erforderlich sind. Dies kann manuell sehr mühsam sein, aber es gibt Tools wie Inspektor Gadget
AppArmor und SELinux
AppArmor und SELinux werden als obligatorische Zugangskontroll- oder MAC-Systeme
Beide AppArmor SELinux sind in Kubernetes integriert, aber seit Kubernetes 1.28 müssen AppArmor Profile über Anmerkungen
Wie bei Seccomp-Profilen kann der oben erwähnte Security Profiles Operator bei der Bereitstellung von Profilen auf Knoten im Cluster helfen. (In future zielt das Projekt auch darauf ab, Profile für AppArmor und SELinux wie für seccomp zu generieren.)
Empfehlungen
Verwenden Sie Amazon GuardDuty zur Laufzeitüberwachung und Erkennung von Bedrohungen für Ihre EKS-Umgebungen
Wenn Sie derzeit nicht über eine Lösung für die kontinuierliche Überwachung der EKS-Laufzeiten und die Analyse von EKS-Auditprotokollen sowie für die Suche nach Malware und anderen verdächtigen Aktivitäten verfügen, empfiehlt Amazon GuardDuty
Sehen Sie sich diesen AWS Online Tech Talk „Verbesserte Bedrohungserkennung für Amazon EKS with Amazon GuardDuty — AWS Online Tech Talks“
Optional: Verwenden Sie eine Drittanbieterlösung für die Laufzeitüberwachung
Das Erstellen und Verwalten von Seccomp- und Apparmor-Profilen kann schwierig sein, wenn Sie mit der Linux-Sicherheit nicht vertraut sind. Wenn Sie nicht die Zeit haben, sich damit vertraut zu machen, sollten Sie die Verwendung einer kommerziellen Lösung eines Drittanbieters in Betracht ziehen. Viele von ihnen haben statische Profile wie Apparmor und Seccomp hinter sich gelassen und begonnen, maschinelles Lernen zu verwenden, um verdächtige Aktivitäten zu blockieren oder zu warnen. Eine Handvoll dieser Lösungen finden Sie weiter unten im Bereich Tools. Zusätzliche Optionen finden Sie auf dem AWS Marketplace for Containers
Ziehen Sie die add/dropping Linux-Funktionen in Betracht, bevor Sie Seccomp-Richtlinien schreiben
Fähigkeiten beinhalten verschiedene Prüfungen von Kernelfunktionen, die über Systemaufrufe erreichbar sind. Schlägt die Prüfung fehl, gibt der Systemaufruf normalerweise einen Fehler zurück. Die Überprüfung kann entweder direkt am Anfang eines bestimmten Systemaufrufs oder tiefer im Kernel in Bereichen durchgeführt werden, die möglicherweise über mehrere verschiedene Systemaufrufe erreichbar sind (z. B. das Schreiben in eine bestimmte privilegierte Datei). Seccomp hingegen ist ein Systemaufruf-Filter, der auf alle Syscalls angewendet wird, bevor sie ausgeführt werden. Ein Prozess kann einen Filter einrichten, der es ihm ermöglicht, ihm sein Recht zur Ausführung bestimmter Systemaufrufe oder bestimmter Argumente für bestimmte Systemaufrufe zu entziehen.
Bevor Sie seccomp verwenden, sollten Sie sich überlegen, ob Sie mit den adding/removing Linux-Funktionen die Kontrolle haben, die Sie benötigen. Weitere Informationen finden Sie unter Funktionen für Container einrichten
Finden Sie heraus, ob Sie Ihre Ziele mithilfe der Pod-Sicherheitsrichtlinien erreichen können (PSPs)
Pod-Sicherheitsrichtlinien bieten viele verschiedene Möglichkeiten, Ihren Sicherheitsstatus zu verbessern, ohne dass dies zu einer übermäßigen Komplexität führt. Informieren Sie sich über die in verfügbaren Optionen, PSPs bevor Sie sich an die Erstellung von Seccomp- und Apparmor-Profilen wagen.
Warnung
Ab Kubernetes 1.25 PSPs wurden sie entfernt und durch den Pod Security Admission Controller ersetzt.
Tools und Ressourcen
-
Security Profiles Operator
ist eine Kubernetes-Erweiterung, die Benutzern die Verwendung SELinux in Seccomp und AppArmor in Kubernetes-Clustern erleichtern soll. Es bietet Funktionen sowohl zum Generieren von Profilen aus laufenden Workloads als auch zum Laden von Profilen auf Kubernetes-Knoten zur Verwendung in Pods. -
Inspektor Gadget
ermöglicht die Inspektion, Nachverfolgung und Profilierung vieler Aspekte des Laufzeitverhaltens auf Kubernetes, einschließlich der Unterstützung bei der Generierung von Seccomp-Profilen. -
NeuVector Die Open-Source-Zero-Trust-Container-Sicherheitsplattform von SUSE
bietet Prozessprofilregeln und Dateizugriffsregeln.