Kubernetes SecurityContext(s)

Sostieni HackTricks

PodSecurityContext

Dalla documentazione:

Quando si specifica il contesto di sicurezza di un Pod, è possibile utilizzare diversi attributi. Da un punto di vista della sicurezza difensiva, si dovrebbe considerare:

  • Avere runASNonRoot come True

  • Configurare runAsUser

  • Se possibile, considerare limitare le autorizzazioni indicando seLinuxOptions e seccompProfile

  • NON concedere l'accesso al gruppo privilegiato tramite runAsGroup e supplementaryGroups

fsGroup integer

Un gruppo supplementare speciale che si applica a tutti i container in un pod. Alcuni tipi di volumi consentono al Kubelet di modificare la proprietà di quel volume in modo che sia di proprietà del pod: 1. Il GID proprietario sarà il FSGroup 2. Il bit setgid è impostato (i nuovi file creati nel volume saranno di proprietà di FSGroup) 3. I bit di autorizzazione sono OR'd con rw-rw---- Se non impostato, il Kubelet non modificherà la proprietà e le autorizzazioni di nessun volume

Questo definisce il comportamento del cambiamento della proprietà e delle autorizzazioni del volume prima di essere esposto all'interno del Pod.

runAsGroup integer

Il GID per eseguire il punto di ingresso del processo del container. Utilizza il valore predefinito in fase di esecuzione se non impostato. Può anche essere impostato in SecurityContext.

runAsNonRoot boolean

Indica che il container deve essere eseguito come utente non root. Se true, il Kubelet convaliderà l'immagine in fase di esecuzione per garantire che non venga eseguita come UID 0 (root) e fallirà nell'avviare il container se lo fa.

runAsUser integer

L'UID per eseguire il punto di ingresso del processo del container. Predefinito all'utente specificato nei metadati dell'immagine se non specificato.

seLinuxOptions SELinuxOptions Ulteriori informazioni su seLinux

Il contest SELinux da applicare a tutti i container. Se non specificato, il runtime del container assegnerà un contest SELinux casuale per ciascun container.

seccompProfile SeccompProfile Ulteriori informazioni su Seccomp

Le opzioni seccomp da utilizzare dai container in questo pod.

supplementalGroups array di interi

Un elenco di gruppi applicati al primo processo eseguito in ciascun container, oltre al GID primario del container.

sysctls Sysctl array Ulteriori informazioni su sysctls

Sysctls contiene un elenco di sysctls namespaced utilizzati per il pod. I pod con sysctls non supportati (dal runtime del container) potrebbero non riuscire a essere avviati.

Le impostazioni specifiche di Windows applicate a tutti i container. Se non specificato, verranno utilizzate le opzioni all'interno del SecurityContext di un container.

## SecurityContext

Dalla documentazione:

Questo contesto è impostato all'interno delle definizioni dei container. Da un punto di vista della sicurezza difensiva si dovrebbe considerare:

  • Impostare allowPrivilegeEscalation su False

  • Non aggiungere capabilities sensibili (e rimuovere quelle non necessarie)

  • Impostare privileged su False

  • Se possibile, impostare readOnlyFilesystem su True

  • Impostare runAsNonRoot su True e impostare un runAsUser

  • Se possibile, considerare di limitare le autorizzazioni indicando seLinuxOptions e seccompProfile

  • NON dare accesso al gruppo di privilegi tramite runAsGroup

Si noti che gli attributi impostati in SecurityContext e PodSecurityContext, il valore specificato in SecurityContext ha precedenza.

AllowPrivilegeEscalation controlla se un processo può ottenere più privilegi rispetto al processo genitore. Questo bool controlla direttamente se il flag no_new_privs verrà impostato sul processo del container. AllowPrivilegeEscalation è sempre true quando il container viene eseguito come Privileged o ha CAP_SYS_ADMIN

capabilities Capabilities Ulteriori informazioni su Capabilities

Le capabilities da aggiungere/rimuovere durante l'esecuzione dei container. Predefinito al set predefinito di capabilities.

privileged boolean

Esegui il container in modalità privilegiata. I processi nei container privilegiati sono essenzialmente equivalenti a root sull'host. Predefinito a false.

procMount string

procMount indica il tipo di montaggio proc da utilizzare per i container. Il valore predefinito è DefaultProcMount che utilizza le impostazioni predefinite del runtime del container per i percorsi in sola lettura e i percorsi mascherati.

Se questo container ha un filesystem root in sola lettura. Predefinito è false.

runAsGroup integer

Il GID per eseguire il punto di ingresso del processo del container. Utilizza il valore predefinito del runtime se non impostato.

runAsNonRoot boolean

Indica che il container deve eseguire come utente non root. Se true, il Kubelet convaliderà l'immagine al runtime per garantire che non venga eseguita come UID 0 (root) e fallirà nel avviare il container se lo fa.

runAsUser integer

L'UID per eseguire il punto di ingresso del processo del container. Predefinito all'utente specificato nei metadati dell'immagine se non specificato.

seLinuxOptions SELinuxOptions Ulteriori informazioni su seLinux

Il contest SELinux da applicare al container. Se non specificato, il runtime del container assegnerà un contest SELinux casuale per ciascun container.

Le opzioni seccomp da utilizzare da questo container.

Le impostazioni specifiche di Windows applicate a tutti i container.

References

Supporta HackTricks

Last updated