Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie den Containerzugriff auf Ressourcen für Ihre Azure Kubernetes Service (AKS)-Workloads mithilfe der eingebauten Linux-Sicherheitsfunktionen Benutzernamespaces, AppArmor und seccomp sichern.
Übersicht über die Sicherheit des Containerzugriffs
Nicht nur Benutzern und Gruppen sollten lediglich die erforderlichen Mindestberechtigungen gewährt werden, auch Container sollten auf die Aktionen und Prozesse beschränkt werden, die unbedingt erforderlich sind. Konfigurieren Sie zur Minimierung des Angriffsrisikos nach Möglichkeit keine Anwendungen und Container, die ausgeweitete Berechtigungen oder Root-Zugriff benötigen.
Sie können integrierte Pod-Sicherheitskontexte in Kubernetes verwenden, um weitere Berechtigungen zu definieren, z. B. den Benutzer oder die Gruppe, die ausgeführt werden soll, die Linux-Funktionen, die verfügbar gemacht werden sollen, oder das Festlegen von allowPrivilegeEscalation: false im Pod-Manifest. Weitere Best Practices finden Sie unter Absichern des Podzugriffs auf Ressourcen.
Um die Hostisolation zu verbessern und die Lateralbewegung unter Linux zu verringern, können Sie Benutzernamespaces verwenden. Wenn Sie die Steuerungsmöglichkeiten für Containeraktionen noch feiner abstimmen möchten, können Sie dazu integrierte Linux-Sicherheitsfeatures wie AppArmor und seccomp verwenden. Diese Features helfen Ihnen, die Aktionen einzuschränken, die Container ausführen können, indem Sie Linux-Sicherheitsfeatures auf Knotenebene definieren und über ein Podmanifest implementieren.
In Linux integrierte Sicherheitsfunktionen sind nur auf Linux-Knoten und -Pods verfügbar.
Hinweis
Derzeit sind Kubernetes-Umgebungen nicht sicher vor einer feindlichen Verwendung mit mehreren Mandanten. Andere Sicherheitsfunktionen wie Microsoft Defender für Container, AppArmor, seccomp, Benutzernamespaces, Pod Security Admission oder Kubernetes Rollenbasierte Zugriffskontrolle (RBAC) für Knoten wehren Exploits effizient ab.
Um echte Sicherheit bei der Ausführung feindlicher Workloads mit mehreren Mandanten zu erzielen, vertrauen Sie nur einem Hypervisor. Die Sicherheitsdomäne für Kubernetes wird zum gesamten Cluster und nicht zu einem einzelnen Knoten.
Für diese Art von feindlichen Workloads mit mehreren Mandanten sollten Sie physisch isolierte Cluster verwenden.
Voraussetzungen für Benutzernamespaces
- Ein bestehender AKS-Cluster. Wenn Sie keinen Cluster haben, erstellen Sie einen mithilfe der Azure CLI, der Azure PowerShell oder im Azure-Portal.
- Mindestens Kubernetes Version 1.33 für die Steuerungsebene und die Worker-Knoten. Wenn Sie Kubernetes, Version 1.33 oder höher, nicht verwenden, müssen Sie ihre Kubernetes-Version aktualisieren.
- Worker Knoten, die Azure Linux 3.0 oder Ubuntu 24.04 ausführen, um sicherzustellen, dass Sie die minimalen Stack-Anforderungen für die Aktivierung von Benutzer-Namespaces erfüllen. Wenn Sie ein Upgrade Ihrer Betriebssystemversion (Os) durchführen müssen, lesen Sie das Upgrade Ihrer Betriebssystemversion.
Einschränkungen für Benutzernamespaces
- Das Feature für Benutzernamespaces ist für den Linux-Kernel vorgesehen und wird für Windows-Knotenpools nicht unterstützt.
- Prüfen Sie die Kubernetes-Dokumentation für Benutzer-Namespaces auf weitere Limits.
Übersicht über Benutzernamespaces
Linux-Pods werden standardmäßig mit mehreren Namespaces ausgeführt: einem Netzwerk-Namespaces, um die Netzwerkidentität zu isolieren, und einem PID-Namespace, um die Prozesse zu isolieren. Ein Benutzernamespace (user_namespace) isoliert die Benutzer innerhalb des Containers von den Benutzern auf dem Host. Außerdem werden der Umfang der Funktionen und die Interaktionen des Pods mit dem rest des Systems begrenzt.
Die UIDs und GIDs im Container werden unprivilegierten Benutzern auf dem Host zugeordnet, sodass alle Interaktionen mit dem Rest des Hosts als diese unprivilegierten UIDs und GIDs erfolgen. Beispielsweise kann der Root-Benutzer innerhalb des Containers (UID 0) dem Benutzer 65536 auf dem Host zugeordnet werden. Kubernetes erstellt die Zuordnung, um sicherzustellen, dass sie sich nicht mit anderen Pods überschneidet, die Benutzernamespaces auf dem System verwenden.
Die Kubernetes-Implementierung hat einige wichtige Vorteile. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes-Benutzernamespaces.
Aktivieren von Benutzernamespaces
Erstellen Sie eine Datei namens
mypod.yaml, und fügen Sie das folgende Manifest ein. Um Benutzernamespaces zu verwenden, muss das YAML über das FeldhostUsers: falseverfügen.apiVersion: v1 kind: Pod metadata: name: userns spec: hostUsers: false containers: - name: shell command: ["sleep", "infinity"] image: debianStellen Sie die Anwendung über den Befehl „
kubectl apply“ bereit, und geben Sie den Namen Ihres YAML-Manifests an.kubectl apply -f mypod.yamlÜberprüfen Sie den Status der bereitgestellten Pods mithilfe des Befehls
kubectl get pods.kubectl get podsRufen Sie den Pod mit dem
kubectl exec-Befehl auf.kubectl exec -ti userns -- bashInnerhalb des Pods überprüfen Sie
/proc/self/uid_mapmit dem folgenden Befehl:cat /proc/self/uid_mapDie Ausgabe sollte 65536 in der letzten Spalte aufweisen. Beispiel:
0 833617920 65536Diese Ausgabe gibt an, dass der Stamm innerhalb des Containers (UID 0) dem Benutzer 65536 auf dem Host zugeordnet ist.
Allgemeine Sicherheitsrisiken und Risiken (CVEs), die durch Benutzernamespaces abgemildert werden
In der folgenden Tabelle sind einige allgemeine Sicherheitsrisiken und Expositionen (CVEs) aufgeführt, die entweder teilweise oder vollständig durch verwendung von user_namespaces abgemildert werden:
| CVE | Schweregradbewertung | Schweregrad |
|---|---|---|
| CVE-2019-5736 | 8.6 | High |
| CVE 2024-21262 | 8.6 | High |
| CVE 2022-0492 | 7,8 | High |
| CVE-2021-25741 | 8.1 / 8.8 | Hoch / Hoch |
| CVE-2017-1002101 | 9.6 / 8.8 | Kritisch /Hoch |
Beachten Sie, dass diese Liste nicht vollständig ist. Weitere Informationen finden Sie unter Kubernetes v1.33: Standardmäßig aktivierte Benutzernamespaces.
Voraussetzungen für AppArmor
- Ein bestehender AKS-Cluster. Wenn Sie keinen Cluster haben, erstellen Sie einen mithilfe der Azure CLI, der Azure PowerShell oder im Azure-Portal.
Hinweis
Azure Linux 3.0 unterstützt AppArmor ab der VHD-Veröffentlichung vom 7. November 2025.
Übersicht über AppArmor
Mit dem Kernelsicherheitsmodul AppArmor von Linux können Sie Containeraktionen einschränken. AppArmor ist als Teil des zugrunde liegenden AKS-Knotenbetriebssystems (OS) verfügbar und ist standardmäßig aktiviert. Sie können AppArmor-Profile erstellen, die Lese-, Schreib- oder Ausführungsaktionen oder Systemfunktionen wie das Einbinden von Dateisystemen einschränken. Standardprofile von AppArmor beschränken den Zugriff auf verschiedene /proc- und /sys-Speicherorte und ermöglichen es, Container logisch vom zugrunde liegenden Knoten zu isolieren. AppArmor funktioniert nicht nur mit Kubernetes-Pods, sondern zusammen mit jeder Anwendung, die auf Linux ausgeführt werden kann.
Hinweis
Vor Kubernetes v1.30 wurde AppArmor durch Anmerkungen angegeben. Ab v1.30 wird AppArmor über das securityContext Feld in der Pod-Spezifikation angegeben. Weitere Informationen finden Sie in der Kubernetes AppArmor-Dokumentation.
Sichere Pods mit AppArmor
Sie können AppArmor-Profile auf der Pod- oder Containerebene angeben. Das Container-AppArmor-Profil hat Vorrang vor dem Pod AppArmor-Profil. Wenn keine der beiden Angaben gemacht wird, wird der Container ohne Einschränkungen ausgeführt. Weitere Informationen zu AppArmor-Profilen finden Sie in der Dokumentation zum Sichern eines Pods mit AppArmor Kubernetes.
Konfigurieren eines benutzerdefinierten AppArmor-Profils
Im folgenden Beispiel wird ein Profil erstellt, das das Schreiben in Dateien in einem Container verhindert.
Stellen Sie eine SSH-Verbindung mit einem AKS-Knoten her.
Erstellen Sie eine Datei mit dem Namen "deny-write.profile ", und fügen Sie den folgenden Inhalt ein:
#include <tunables/global> profile k8s-apparmor-example-deny-write flags=(attach_disconnected) { #include <abstractions/base> file, # Deny all file writes. deny /** w, }Laden Sie das AppArmor-Profil auf den Knoten.
# This example assumes that node names match host names, and are reachable via SSH. NODES=($( kubectl get node -o jsonpath='{.items[*].status.addresses[?(.type == "Hostname")].address}' )) for NODE in ${NODES[*]}; do ssh $NODE 'sudo apparmor_parser -q <<EOF #include <tunables/global> profile k8s-apparmor-example-deny-write flags=(attach_disconnected) { #include <abstractions/base> file, # Deny all file writes. deny /** w, } EOF' done
Bereitstellen eines Pods mit dem benutzerdefinierten AppArmor-Profil
Stellen Sie einen "Hello AppArmor" -Pod mit dem Deny-Write-Profil bereit.
apiVersion: v1 kind: Pod metadata: name: hello-apparmor spec: securityContext: appArmorProfile: type: Localhost localhostProfile: k8s-apparmor-example-deny-write containers: - name: hello image: busybox:1.28 command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]Wenden Sie das Pod-Manifest mithilfe des
kubectl applyBefehls an.kubectl apply -f hello-apparmor.yamlFühren Sie den Befehl in dem Pod aus und verifizieren Sie, dass der Container mit dem AppArmor-Profil ausgeführt wird.
kubectl exec hello-apparmor -- cat /proc/1/attr/currentDie Ausgabe sollte das verwendete AppArmor-Profil anzeigen. Beispiel:
k8s-apparmor-example-deny-write (enforce)
Voraussetzungen für Seccomp
- Ein bestehender AKS-Cluster. Wenn Sie keinen Cluster haben, erstellen Sie einen mithilfe der Azure CLI, der Azure PowerShell oder im Azure-Portal.
- Sie müssen das
KubeletDefaultSeccompProfilePreviewFeature-Flag registrieren, um Standard-seccomp-Profile in Ihren Knotenpools zu verwenden.
Registrieren des KubeletDefaultSeccompProfilePreview-Featureflags
Wichtig
AKS-Previewfunktionen sind auf Self-Service- und Abonnementbasis verfügbar. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von den Vereinbarungen zum Service Level und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundendienst nach bestem Wissen und Gewissen abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in Produktionsumgebungen vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Registrieren Sie das Featureflag
KubeletDefaultSeccompProfilePreviewmithilfe des Befehlsaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "KubeletDefaultSeccompProfilePreview"Es dauert einige Minuten, bis als Status Registriert angezeigt wird.
Überprüfen Sie den Registrierungsstatus mithilfe des Befehls
az feature show.az feature show --namespace "Microsoft.ContainerService" --name "KubeletDefaultSeccompProfilePreview"Wenn der Status Registriert lautet, aktualisieren Sie die Registrierung des Ressourcenanbieters Microsoft.ContainerService mithilfe des Befehls
az provider register.az provider register --namespace Microsoft.ContainerService
Seccomp-Einschränkungen
- AKS unterstützt nur die Standard seccomp Profile (
RuntimeDefaultundUnconfined). Benutzerdefinierte Seccomp-Profile werden nicht unterstützt. -
SeccompDefaultist kein unterstützter Parameter für Windows-Knotenpools.
Übersicht über Standard-Seccomp-Profile (Vorschau)
Während AppArmor für jede Linux-Anwendung funktioniert, funktioniert Seccomp (oder secure Computing) auf Prozessebene. Seccomp ist auch ein Linux-Kernel-Sicherheitsmodul. Die von AKS-Knoten verwendete containerd Laufzeitumgebung bietet native Unterstützung für seccomp. Mit seccomp können Sie die Systemaufrufe eines Containers einschränken. seccomp stellt eine zusätzliche Schutzebene vor gängigen Systemanrufrisiken her, die von böswilligen Akteuren ausgenutzt werden, und ermöglicht es Ihnen, ein Standardprofil für alle Workloads im Knoten anzugeben.
Sie können standardmäßige seccomp-Profile mit benutzerdefinierten Knotenkonfigurationen anwenden, wenn Sie einen neuen Linux-Knotenpool erstellen. AKS unterstützt die RuntimeDefault- und Unconfined-Werte. Einige Workloads erfordern möglicherweise eine geringere Anzahl von Syscall-Einschränkungen als andere. Das bedeutet, dass sie während der Laufzeit mit dem Profil RuntimeDefault fehlschlagen können. Um einen solchen Fehler zu vermeiden, können Sie das Unconfined-Profil angeben. Wenn Ihre Workload ein benutzerdefiniertes Profil erfordert, lesen Sie Konfigurieren eines benutzerdefinierten seccomp-Profils.
Einschränken von Containersystemaufrufen mit Seccomp
-
Führen Sie die Schritte aus, um ein Seccomp-Profil in Ihrer Kubelet-Konfiguration anzuwenden , indem Sie angeben
"seccompDefault": "RuntimeDefault". - Stellen Sie eine Verbindung mit dem Host her.
- Überprüfen Sie, ob die Konfiguration auf die Knoten angewendet wurde.
Beheben von Workloadfehlern mit Seccomp
Wenn SeccompDefault aktiviert ist, wird das standardmäßige Seccomp-Profil der Containerlaufzeit standardmäßig für alle Workloads verwendet, die auf dem Knoten angesetzt sind. Dies kann dazu führen, dass Workloads aufgrund blockierter Syscalls fehlschlagen. Wenn ein Fehler bei der Arbeitslast auftritt, könnten Fehlermeldungen erscheinen, z. B.:
- Der Workload wird unerwartet beendet, nachdem die Funktion aktiviert wurde, mit der Fehlermeldung „Berechtigung verweigert“.
- Seccomp-Fehlermeldungen können auch in Überwachung oder Syslog angezeigt werden, indem SCMP_ACT_ERRNO durch SCMP_ACT_LOG im Standardprofil ersetzt wird.
Wenn diese Fehler auftreten, empfehlen wir Ihnen, Ihr seccomp-Profil in Unconfined zu ändern.
Unconfined legt keine Einschränkungen für Syscalls fest, sodass alle Systemaufrufe ausgeführt werden können.
Übersicht über benutzerdefinierte Seccomp-Profile
Mit einem benutzerdefinierten Seccomp-Profil haben Sie eine genauere Kontrolle über eingeschränkte Syscalls für Ihre Container. Sie können eigene Seccomp-Profile erstellen, indem Sie:
- Verwenden von Filtern, um anzugeben, welche Aktionen zulässig oder verweigert werden sollen.
- Verwenden Sie Anmerkungen innerhalb eines YAML-Podmanifests für die Zuordnung zum entsprechenden seccomp-Filter.
Hinweis
Hilfe zur Problembehandlung Ihres Seccomp-Profils finden Sie unter "Problembehandlung bei der Konfiguration von Seccomp-Profilen in Azure Kubernetes Service (AKS)".
Konfigurieren eines benutzerdefinierten seccomp-Profils
In der folgenden Beispielverwendung von Seccomp erstellen Sie einen Filter, der verhindert, dass Berechtigungen für eine Datei geändert werden können.
Stellen Sie eine SSH-Verbindung mit einem AKS-Knoten her.
Erstellen Sie einen seccomp-Filter mit dem Namen /var/lib/kubelet/seccomp/prevent-chmod.
Kopieren Sie den folgenden Inhalt, und fügen Sie ihn ein:
{ "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "name": "chmod", "action": "SCMP_ACT_ERRNO" }, { "name": "fchmodat", "action": "SCMP_ACT_ERRNO" }, { "name": "chmodat", "action": "SCMP_ACT_ERRNO" } ] }Ab Version 1.19 muss Folgendes konfiguriert werden:
{ "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "names": ["chmod","fchmodat","chmodat"], "action": "SCMP_ACT_ERRNO" } ] }Erstellen Sie auf Ihrem lokalen Computer ein Podmanifest namens aks-seccomp.yaml, und fügen Sie den folgenden Inhalt ein. Dieses Manifest definiert eine Anmerkung für
seccomp.security.alpha.kubernetes.iound verweist auf den vorhandenen Prevent-chmod-Filter .apiVersion: v1 kind: Pod metadata: name: chmod-prevented annotations: seccomp.security.alpha.kubernetes.io/pod: localhost/prevent-chmod spec: containers: - name: chmod image: mcr.microsoft.com/dotnet/runtime-deps:6.0 command: - "chmod" args: - "777" - /etc/hostname restartPolicy: NeverAb Version 1.19 muss Folgendes konfiguriert werden:
apiVersion: v1 kind: Pod metadata: name: chmod-prevented spec: securityContext: seccompProfile: type: Localhost localhostProfile: prevent-chmod containers: - name: chmod image: mcr.microsoft.com/dotnet/runtime-deps:6.0 command: - "chmod" args: - "777" - /etc/hostname restartPolicy: NeverStellen Sie den Beispiel-Pod mithilfe des
kubectl applyBefehls bereit:kubectl apply -f ./aks-seccomp.yamlZeigen Sie den Podstatus mithilfe des
kubectl get podsBefehls an.kubectl get podsIn der Ausgabe sollten Sie sehen, dass der Pod einen Fehler liefert. Wie in der Beispielausgabe ersichtlich wird, wird das Ausführen des
chmod-Befehls vom seccomp-Filter verhindert:NAME READY STATUS RESTARTS AGE chmod-prevented 0/1 Error 0 7s
Sicherheitsprofiloptionen für seccomp
seccomp-Sicherheitsprofile sind eine Reihe definierter Syscalls, die zulässig oder eingeschränkt sind. Die meisten Container-Runtimes verfügen über ein Standard-Seccomp-Profil, das ähnlich, wenn nicht identisch mit dem von Docker verwendeten ist. Weitere Informationen zu verfügbaren Profilen finden Sie in den Docker- oder containerd-Standard seccomp-Profilen.
AKS verwendet das containerd Standard-Seccomp-Profil für RuntimeDefault bei der Konfiguration von seccomp mithilfe der benutzerdefinierten Knotenkonfiguration.
Signifikante Syscalls, die durch das Standardprofil blockiert werden
Sowohl Docker als auch containerd verwalten Zulassungslisten sicherer Syscalls. Wenn Änderungen an Docker und Containern vorgenommen werden, aktualisiert AKS die Standardkonfiguration entsprechend. Aktualisierungen dieser Liste können zu Arbeitslastausfällen führen. Versionsupdates finden Sie in den AKS-Versionshinweisen.
In der folgenden Tabelle sind wichtige Syscalls aufgelistet, die effektiv blockiert werden, weil sie nicht in der Liste der erlaubten Prozesse enthalten sind. Die Liste ist nicht vollständig. Wenn Ihre Workload eines der blockierten Syscalls erfordert, verwenden Sie nicht das RuntimeDefault Seccomp-Profil.
| Blockierter Syscall | BESCHREIBUNG |
|---|---|
acct |
Buchhaltungs-Systemaufruf, mit dem Container ihre eigenen Ressourcenbeschränkungen oder die Prozessbuchhaltung deaktivieren können. Auch durch CAP_SYS_PACCT abgegrenzt. |
add_key |
Verhindern Sie, dass Container den Kernel-Keyring verwenden, der keinem Namespace zugeordnet ist. |
bpf |
Verweigern des Ladens potenziell persistenter bpf-Programme in Kernel, die bereits von CAP_SYS_ADMIN abgegrenzt werden. |
clock_adjtime |
Uhrzeit/Datum ist keinem Namespace zugeordnet. Auch durch CAP_SYS_TIME abgegrenzt. |
clock_settime |
Uhrzeit/Datum ist keinem Namespace zugeordnet. Auch durch CAP_SYS_TIME abgegrenzt. |
clone |
Das Klonen neuer Namespaces verweigern. Auch durch CAP_SYS_ADMIN for CLONE_*-Flaggen mit Ausnahme von CLONE_NEWUSER abgegrenzt. |
create_module |
Manipulation und Funktionen für Kernelmodule verweigern. Veraltet. Auch durch CAP_SYS_MODULE abgegrenzt. |
delete_module |
Manipulation und Funktionen für Kernelmodule verweigern. Auch durch CAP_SYS_MODULE abgegrenzt. |
finit_module |
Manipulation und Funktionen für Kernelmodule verweigern. Auch durch CAP_SYS_MODULE abgegrenzt. |
get_kernel_syms |
Abrufen exportierter Kernel- und Modulsymbole verweigern. Veraltet. |
get_mempolicy |
Syscall, der Kernelspeicher und NUMA-Einstellungen ändert. Bereits durch CAP_SYS_NICE abgegrenzt. |
init_module |
Manipulation und Funktionen für Kernelmodule verweigern. Auch durch CAP_SYS_MODULE abgegrenzt. |
ioperm |
Verhindern, dass Container Kernel-E/A-Berechtigungsstufen ändern. Bereits durch CAP_SYS_RAWIO abgegrenzt. |
iopl |
Verhindern, dass Container Kernel-E/A-Berechtigungsstufen ändern. Bereits durch CAP_SYS_RAWIO abgegrenzt. |
kcmp |
Einschränken der Prozessüberprüfungsfunktionen, die bereits durch Ablegen von CAP_SYS_PTRACE blockiert wurden. |
kexec_file_load |
Schwester-Syscall von kexec_load, der dasselbe tut, aber etwas andere Argumente hat. Auch durch CAP_SYS_BOOT abgegrenzt. |
kexec_load |
Verweigern Sie das Laden eines neuen Kernels für die spätere Ausführung. Auch durch CAP_SYS_BOOT abgegrenzt. |
keyctl |
Verhindern Sie, dass Container den Kernel-Keyring verwenden, der keinem Namespace zugeordnet ist. |
lookup_dcookie |
Syscall zur Ablaufverfolgung/Profilerstellung, der Informationen auf dem Host durchsickern lassen kann. Auch durch CAP_SYS_ADMIN abgegrenzt. |
mbind |
Syscall, der Kernelspeicher und NUMA-Einstellungen ändert. Bereits durch CAP_SYS_NICE abgegrenzt. |
mount |
Ablehnen des Mounting, das bereits durch CAP_SYS_ADMIN abgegrenzt wurde. |
move_pages |
Syscall, der Kernelspeicher und NUMA-Einstellungen ändert. |
nfsservctl |
Die Interaktion mit dem Kernel nfs-Daemon verweigern. Veraltet seit Linux 3.1. |
open_by_handle_at |
Ursache für einen alten Containerausbruch. Auch durch CAP_DAC_READ_SEARCH abgegrenzt. |
perf_event_open |
Syscall zur Ablaufverfolgung/Profilerstellung, der Informationen auf dem Host durchsickern lassen kann. |
personality |
Verhindern, dass Container die BSD-Emulation aktiviert. Nicht inhärent gefährlich, aber schlecht getestet; Potenzial für Kernel-Schwachstelle. |
pivot_root |
pivot_root verweigern, sollte ein privilegierter Vorgang sein. |
process_vm_readv |
Einschränken der Prozessüberprüfungsfunktionen, die bereits durch Ablegen von CAP_SYS_PTRACE blockiert wurden. |
process_vm_writev |
Einschränken der Prozessüberprüfungsfunktionen, die bereits durch Ablegen von CAP_SYS_PTRACE blockiert wurden. |
ptrace |
Syscall zur Ablaufverfolgung/Profilerstellung. Blockiert in Linux-Kernelversionen vor 4.8, um die Umgehung von seccomp zu vermeiden. Das Tracing/Profiling von beliebigen Prozessen ist bereits durch Drop CAP_SYS_PTRACE blockiert, da es Informationen über den Host preisgeben könnte. |
query_module |
Manipulation und Funktionen für Kernelmodule verweigern. Veraltet. |
quotactl |
Quota-Syscall, mit dem Container ihre eigenen Ressourcenbeschränkungen oder Prozessabrechnungen deaktivieren können. Auch durch CAP_SYS_ADMIN abgegrenzt. |
reboot |
Container dürfen den Host nicht neu starten. Auch durch CAP_SYS_BOOT abgegrenzt. |
request_key |
Verhindern Sie, dass Container den Kernel-Keyring verwenden, der keinem Namespace zugeordnet ist. |
set_mempolicy |
Syscall, der Kernelspeicher und NUMA-Einstellungen ändert. Bereits durch CAP_SYS_NICE abgegrenzt. |
setns |
Verweigern der Zuordnung eines Threads zu einem Namespace. Auch durch CAP_SYS_ADMIN abgegrenzt. |
settimeofday |
Uhrzeit/Datum ist keinem Namespace zugeordnet. Auch durch CAP_SYS_TIME abgegrenzt. |
stime |
Uhrzeit/Datum ist keinem Namespace zugeordnet. Auch durch CAP_SYS_TIME abgegrenzt. |
swapon |
Verweigerung des Start-/Stopp-Swappings auf Datei/Gerät. Auch durch CAP_SYS_ADMIN abgegrenzt. |
swapoff |
Verweigerung des Start-/Stopp-Swappings auf Datei/Gerät. Auch durch CAP_SYS_ADMIN abgegrenzt. |
sysfs |
Veralteter Syscall. |
_sysctl |
Veraltet, ersetzt durch /proc/sys. |
umount |
Sollte ein privilegierter Vorgang sein. Auch durch CAP_SYS_ADMIN abgegrenzt. |
umount2 |
Sollte ein privilegierter Vorgang sein. Auch durch CAP_SYS_ADMIN abgegrenzt. |
unshare |
Das Klonen neuer Namespaces für Prozesse verweigern. Auch eingeschränkt durch CAP_SYS_ADMIN (mit Ausnahme von unshare --user). |
uselib |
Älterer Syscall im Zusammenhang mit freigegebenen Bibliotheken, die lange nicht verwendet wurden. |
userfaultfd |
Fehlerbehandlung von Userspace-Seiten, die größtenteils für die Prozessmigration erforderlich sind. |
ustat |
Veralteter Syscall. |
vm86 |
Virtueller Computer im Kernel x86-Realmodus. Auch durch CAP_SYS_ADMIN abgegrenzt. |
vm86old |
Virtueller Computer im Kernel x86-Realmodus. Auch durch CAP_SYS_ADMIN abgegrenzt. |
Verwandte Inhalte
Weitere Informationen zum Sichern Ihres AKS-Clusters finden Sie in den folgenden Artikeln: