Laufzeit-Sicherheit - Amazon EKS

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. Eine solche Option ist das 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-Profil, das für die meisten Allzweck-Workloads geeignet ist, und andere Container-Laufzeiten wie containerd bieten vergleichbare Standardwerte. Sie können Ihren Container oder Pod so konfigurieren, dass er das Standard-Seccomp-Profil der Container-Laufzeit verwendet, indem Sie dem Abschnitt der Pod-Spezifikation Folgendes hinzufügen: securityContext

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 (auch im Abschnitt Netzwerksicherheit für die Generierung von Netzwerkrichtlinien empfohlen) und Security Profiles Operator, die die Verwendung von Tools wie eBPF oder Protokollen unterstützen, um grundlegende Rechteanforderungen als Seccomp-Profile aufzuzeichnen. Der Security Profiles Operator ermöglicht außerdem die Automatisierung der Bereitstellung aufgezeichneter Profile auf Knoten zur Verwendung durch Pods und Container.

AppArmor und SELinux

AppArmor und SELinux werden als obligatorische Zugangskontroll- oder MAC-Systeme bezeichnet. Sie haben ein ähnliches Konzept wie Seccomp, verfügen jedoch über andere Fähigkeiten APIs und ermöglichen die Zugriffskontrolle für z. B. bestimmte Dateisystempfade oder Netzwerkports. Die Unterstützung dieser Tools hängt von der Linux-Distribution ab, wobei Debian/Ubuntu Support AppArmor und RHEL/CentOS/Bottlerocket/Amazon Linux 2023 unterstützt SELinux werden. Weitere Informationen zu finden Sie auch im Abschnitt zur Infrastruktursicherheit SELinux.

Beide AppArmor SELinux sind in Kubernetes integriert, aber seit Kubernetes 1.28 müssen AppArmor Profile über Anmerkungen angegeben werden, während SELinux Beschriftungen direkt über das SELinuxOptionsfeld im Sicherheitskontext festgelegt werden können.

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 Kunden, die ihre AWS-Umgebungen mit einem Klick auf einfache, schnelle, sichere, skalierbare und kostengünstige Weise schützen möchten, die Nutzung von Amazon. Amazon GuardDuty ist ein Sicherheitsüberwachungsservice, der grundlegende Datenquellen wie CloudTrail AWS-Managementereignisse, CloudTrail AWS-Ereignisprotokolle, VPC-Flussprotokolle (von Amazon EC2 EC2-Instances), Kubernetes-Auditprotokolle und DNS-Protokolle analysiert und verarbeitet. Er beinhaltet auch die EKS-Laufzeitüberwachung. Es verwendet ständig aktualisierte Feeds mit Bedrohungsinformationen, wie z. B. Listen bösartiger IP-Adressen und Domänen, und maschinelles Lernen, um unerwartete, potenziell nicht autorisierte und bösartige Aktivitäten in Ihrer AWS-Umgebung zu identifizieren. Dies kann Probleme wie die Eskalation von Rechten, die Verwendung offengelegter Anmeldeinformationen oder die Kommunikation mit bösartigen IP-Adressen und Domänen, das Vorhandensein von Malware auf Ihren Amazon EC2 EC2-Instances und EKS-Container-Workloads oder die Entdeckung verdächtiger API-Aktivitäten beinhalten. GuardDuty informiert Sie über den Status Ihrer AWS-Umgebung, indem es Sicherheitsergebnisse generiert, die Sie in der GuardDuty Konsole oder über Amazon einsehen können EventBridge. GuardDuty bietet Ihnen auch Unterstützung beim Exportieren Ihrer Ergebnisse in einen Amazon Simple Storage Service (S3) -Bucket und bei der Integration mit anderen Services wie AWS Security Hub und Detective.

Sehen Sie sich diesen AWS Online Tech Talk „Verbesserte Bedrohungserkennung für Amazon EKS with Amazon GuardDuty — AWS Online Tech Talks“ an, um zu erfahren, wie Sie diese zusätzlichen EKS-Sicherheitsfunktionen step-by-step innerhalb von Minuten aktivieren können.

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. Zu den vorhandenen Alternativen von Drittanbietern gehören OPA/Gatekeeper Kyverno. Eine Sammlung von Gatekeeper-Einschränkungen und Einschränkungsvorlagen für die Implementierung von Richtlinien, die häufig in zu finden sind, PSPs kann unter dem Gatekeeper-Bibliotheksarchiv abgerufen werden. GitHub Und viele Ersatzprodukte für PSPs finden Sie in der Kyverno-Richtlinienbibliothek, einschließlich der vollständigen Sammlung der Pod-Sicherheitsstandards.

Tools und Ressourcen