Kubernetes SecurityContext(s)
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
PodSecurityContext
Podczas określania kontekstu bezpieczeństwa Podu możesz użyć kilku atrybutów. Z punktu widzenia defensywnego bezpieczeństwa powinieneś rozważyć:
- Ustawienie runASNonRoot na True
- Skonfigurowanie runAsUser
- Jeśli to możliwe, rozważ ograniczenie uprawnień wskazując seLinuxOptions i seccompProfile
- NIE przyznawaj dostępu do grupy privilege za pomocą runAsGroup i supplementaryGroups
| Parameter | Description | |
fsGroup
integer
Specjalna grupa pomocnicza, która ma zastosowanie do wszystkich kontenerów w podzie. Niektóre typy wolumenów pozwalają Kubeletowi na zmianę właściciela tego wolumenu na właściciela podu:
1. Właściciel GID będzie FSGroup
2. Bit setgid jest ustawiony (nowe pliki utworzone w wolumenie będą własnością FSGroup)
3. Bity uprawnień są OR’d z rw-rw–– Jeśli nie ustawione, Kubelet nie zmieni właściciela i uprawnień żadnego wolumenu
|
fsGroupChangePolicy
string
runAsGroup
integer
runAsNonRoot
boolean
runAsUser
integer
seLinuxOptions
SELinuxOptions
Więcej informacji o seLinux
seccompProfile
SeccompProfile
Więcej informacji o Seccomp
supplementalGroups
integer array
sysctls
Sysctl array
Więcej informacji o sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
Ten kontekst jest ustawiony wewnątrz definicji kontenerów. Z punktu widzenia defensywnego bezpieczeństwa powinieneś rozważyć:
- allowPrivilegeEscalation na False
- Nie dodawaj wrażliwych capabilities (i usuń te, których nie potrzebujesz)
- privileged na False
- Jeśli to możliwe, ustaw readOnlyFilesystem na True
- Ustaw runAsNonRoot na True i ustaw runAsUser
- Jeśli to możliwe, rozważ ograniczenie uprawnień wskazując seLinuxOptions i seccompProfile
- NIE przyznawaj dostępu do grupy privilege za pomocą runAsGroup.
Zauważ, że atrybuty ustawione w zarówno SecurityContext, jak i PodSecurityContext, wartość określona w SecurityContext ma pierwszeństwo.
|
allowPrivilegeEscalation | AllowPrivilegeEscalation kontroluje, czy proces może uzyskać więcej uprawnień niż jego proces nadrzędny. Ta wartość boolowska bezpośrednio kontroluje, czy flaga no_new_privs zostanie ustawiona na proces kontenera. AllowPrivilegeEscalation jest zawsze prawdziwe, gdy kontener jest uruchamiany jako Privileged lub ma CAP_SYS_ADMIN |
|---|---|
|
capabilities | Capabilities do dodania/usunięcia podczas uruchamiania kontenerów. Domyślnie używa domyślnego zestawu uprawnień. |
|
privileged | Uruchom kontener w trybie uprzywilejowanym. Procesy w uprzywilejowanych kontenerach są zasadniczo równoważne z rootem na hoście. Domyślnie jest to fałsz. |
|
procMount | procMount oznacza typ montowania proc, który ma być używany dla kontenerów. Domyślnie jest to DefaultProcMount, który używa domyślnych ustawień czasu wykonywania dla ścieżek tylko do odczytu i zamaskowanych ścieżek. |
|
readOnlyRootFilesystem | Czy ten kontener ma system plików root tylko do odczytu. Domyślnie jest to fałsz. |
|
runAsGroup | GID do uruchomienia punktu wejścia procesu kontenera. Używa domyślnej wartości czasu wykonywania, jeśli nie jest ustawione. |
|
runAsNonRoot | Wskazuje, że kontener musi działać jako użytkownik niebędący rootem. Jeśli prawda, Kubelet zweryfikuje obraz w czasie wykonywania, aby upewnić się, że nie działa jako UID 0 (root) i nie uruchomi kontenera, jeśli tak jest. |
|
runAsUser | UID do uruchomienia punktu wejścia procesu kontenera. Domyślnie użytkownik określony w metadanych obrazu, jeśli nie jest określony. |
|
seLinuxOptions | Kontekst SELinux, który ma być zastosowany do kontenera. Jeśli nie określono, czas wykonywania kontenera przydzieli losowy kontekst SELinux dla każdego kontenera. |
| Opcje seccomp do użycia przez ten kontener. | |
| Ustawienia specyficzne dla systemu Windows stosowane do wszystkich kontenerów. |
References
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
- https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

