Kubernetes SecurityContext(s)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
PodSecurityContext
Bir Pod’un güvenlik bağlamını belirtirken birkaç özellik kullanabilirsiniz. Savunma güvenliği açısından dikkate almanız gerekenler:
- runASNonRoot’u True olarak ayarlamak
- runAsUser’ı yapılandırmak
- Mümkünse, seLinuxOptions ve seccompProfile belirterek izinleri sınırlamayı düşünmek
- runAsGroup ve supplementaryGroups aracılığıyla yetki grubu erişimi vermemek
| Parametre | Açıklama | |
fsGroup
integer
Bir pod içindeki tüm konteynerlere uygulanan özel bir ek grup. Bazı hacim türleri Kubelet’in bu hacmin sahipliğini değiştirmesine izin verir:
1. Sahip GID FSGroup olacaktır
2. setgid biti ayarlanmıştır (hacimde oluşturulan yeni dosyalar FSGroup tarafından sahip olunacaktır)
3. İzin bitleri rw-rw–– ile OR’lanır. Ayarlanmamışsa, Kubelet herhangi bir hacmin sahipliğini ve izinlerini değiştirmeyecektir.
|
fsGroupChangePolicy
string
runAsGroup
integer
runAsNonRoot
boolean
runAsUser
integer
seLinuxOptions
SELinuxOptions
Hakkında daha fazla bilgi seLinux
seccompProfile
SeccompProfile
Hakkında daha fazla bilgi Seccomp
supplementalGroups
integer array
sysctls
Sysctl dizi
Hakkında daha fazla bilgi sysctls
windowsOptions
WindowsSecurityContextOptions
SecurityContext
Bu bağlam konteyner tanımlarının içinde ayarlanır. Savunma güvenliği açısından dikkate almanız gerekenler:
- allowPrivilegeEscalation’ı False olarak ayarlamak
- Hassas yetkiler eklememek (ve ihtiyaç duymadıklarınızı kaldırmak)
- privileged’i False olarak ayarlamak
- Mümkünse, readOnlyFilesystem’ı True olarak ayarlamak
- runAsNonRoot’u True olarak ayarlamak ve bir runAsUser belirlemek
- Mümkünse, seLinuxOptions ve seccompProfile belirterek izinleri sınırlamayı düşünmek
- runAsGroup aracılığıyla yetki grubu erişimi vermemek.
SecurityContext ve PodSecurityContext’te ayarlanan özelliklerin her ikisinde de, SecurityContext’te belirtilen değer önceliklidir.
|
allowPrivilegeEscalation | AllowPrivilegeEscalation, bir sürecin ebeveyn sürecinden daha fazla yetki kazanıp kazanamayacağını kontrol eder. Bu bool, konteyner sürecinde no_new_privs bayrağının ayarlanıp ayarlanmayacağını doğrudan kontrol eder. AllowPrivilegeEscalation, konteyner Privileged olarak çalıştırıldığında veya CAP_SYS_ADMIN varsa her zaman doğrudur. |
|---|---|
|
capabilities | Konteynerler çalıştırılırken eklenip çıkarılacak yetkiler. Varsayılan olarak varsayılan yetki setini kullanır. |
|
privileged | Konteyneri ayrıcalıklı modda çalıştırır. Ayrıcalıklı konteynerlerdeki süreçler esasen host’ta root ile eşdeğerdir. Varsayılan olarak false’dur. |
|
procMount | procMount, konteynerler için kullanılacak proc mount türünü belirtir. Varsayılan, yalnızca okunabilir yollar ve maskelenmiş yollar için konteyner çalışma zamanı varsayılanlarını kullanan DefaultProcMount’tır. |
|
readOnlyRootFilesystem | Bu konteynerin yalnızca okunabilir bir kök dosya sistemine sahip olup olmadığını belirtir. Varsayılan olarak false’dur. |
|
runAsGroup | Konteyner sürecinin giriş noktasını çalıştırmak için GID. Ayarlanmamışsa çalışma zamanı varsayılanını kullanır. |
|
runAsNonRoot | Konteynerin kök olmayan bir kullanıcı olarak çalışması gerektiğini belirtir. Doğruysa, Kubelet görüntüyü çalışma zamanında doğrulayacak ve UID 0 (kök) olarak çalışmadığından emin olacak ve eğer öyleyse konteyneri başlatmayı başarısız kılacaktır. |
|
runAsUser | Konteyner sürecinin giriş noktasını çalıştırmak için UID. Belirtilmemişse, görüntü meta verilerinde belirtilen kullanıcıya varsayılan olarak ayarlanır. |
|
seLinuxOptions | Konteynere uygulanacak SELinux bağlamı. Belirtilmemişse, konteyner çalışma zamanı her konteyner için rastgele bir SELinux bağlamı tahsis edecektir. |
| Bu konteyner için kullanılacak seccomp seçenekleri. | |
| Tüm konteynerlere uygulanan Windows’a özgü ayarlar. |
Referanslar
- 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
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

