Kubernetes SecurityContext(s)
Last updated
Last updated
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
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
fsGroup integer
Bir pod'daki 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
Bu, Pod içinde sergilenecek hacmin sahipliğini ve iznini değiştirme davranışını tanımlar.
runAsGroup integer
Konteyner sürecinin giriş noktasını çalıştırmak için GID. Ayarlanmamışsa çalışma zamanı varsayılanını kullanır.
runAsNonRoot boolean
Konteynerin kök olmayan bir kullanıcı olarak çalışması gerektiğini belirtir. Eğer doğruysa, Kubelet, görüntüyü çalışma zamanında UID 0 (kök) olarak çalışmadığını doğrulamak için doğrulayacak ve eğer çalışıyorsa konteyneri başlatmayı başarısız kılacaktır.
runAsUser integer
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 SELinuxOptions Hakkında daha fazla bilgi seLinux
Tüm konteynerlere uygulanacak SELinux bağlamı. Belirtilmemişse, konteyner çalışma zamanı her konteyner için rastgele bir SELinux bağlamı tahsis edecektir.
seccompProfile SeccompProfile Hakkında daha fazla bilgi Seccomp
Bu pod'daki konteynerler tarafından kullanılacak seccomp seçenekleri.
supplementalGroups integer array
Her konteynerde çalıştırılan ilk süreç için ek olarak uygulanan grupların bir listesi.
Sysctls, pod için kullanılan namespaced sysctls listesini tutar. Desteklenmeyen sysctls (konteyner çalışma zamanı tarafından) olan pod'lar başlatılamayabilir.
Tüm konteynerlere uygulanan Windows'a özgü ayarlar. Belirtilmemişse, bir konteynerin SecurityContext içindeki seçenekler kullanılacaktır.
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 boolean
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 Capabilities Hakkında daha fazla bilgi Capabilities
Konteynerler çalıştırılırken eklenecek/kaldırılacak yetkiler. Varsayılan olarak varsayılan yetki setini kullanır.
privileged boolean
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 string
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 boolean
Bu konteynerin yalnızca okunabilir bir kök dosya sistemine sahip olup olmadığını belirtir. Varsayılan olarak false'dur.
runAsGroup integer
Konteyner sürecinin giriş noktasını çalıştırmak için GID. Ayarlanmamışsa çalışma zamanı varsayılanını kullanır.
runAsNonRoot boolean
Konteynerin kök olmayan bir kullanıcı olarak çalışması gerektiğini belirtir. Eğer doğruysa, Kubelet, görüntüyü çalışma zamanında UID 0 (kök) olarak çalışmadığını doğrulamak için doğrulayacak ve eğer çalışıyorsa konteyneri başlatmayı başarısız kılacaktır.
runAsUser integer
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 SELinuxOptions Hakkında daha fazla bilgi seLinux
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.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)