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

PodSecurityContext

Belgelerden:

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

| Bu, Pod içinde sergilendikten önce 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. 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
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 konteynerdeki ilk süreçte uygulanan grupların bir listesi, konteynerin birincil GID’sine ek olarak. | |

sysctls
Sysctl dizi
Hakkında daha fazla bilgi sysctls

| Sysctls, pod için kullanılan namespaced sysctls listesini tutar. Desteklenmeyen sysctls (konteyner çalışma zamanı tarafından) olan pod’lar başlatılamayabilir. | |

windowsOptions
WindowsSecurityContextOptions

| Tüm konteynerlere uygulanan Windows’a özgü ayarlar. Belirtilmemişse, bir konteynerin SecurityContext içindeki seçenekler kullanılacaktır. |

SecurityContext

Belgelerden:

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 eklenip çıkarı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. 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
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.

seccompProfile
SeccompProfile

Bu konteyner için kullanılacak seccomp seçenekleri.

windowsOptions
WindowsSecurityContextOptions

Tüm konteynerlere uygulanan Windows’a özgü ayarlar.

Referanslar

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