Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Sicurezza del runtime
La sicurezza in fase di esecuzione offre una protezione attiva per i container mentre sono in esecuzione. L'idea è quella di rilevare e and/or impedire che si verifichino attività dannose all'interno del contenitore. Ciò può essere ottenuto con una serie di meccanismi presenti nel kernel Linux o nelle estensioni del kernel integrate con Kubernetes, come le funzionalità Linux, l'elaborazione sicura (seccomp) o. AppArmor SELinux Esistono anche opzioni come Amazon GuardDuty e strumenti di terze parti che possono aiutare a stabilire linee di base e rilevare attività anomale con una configurazione meno manuale dei meccanismi del kernel Linux.
Importante
Al momento Kubernetes non fornisce alcun meccanismo nativo per caricare seccomp o profili su Nodes. AppArmor SELinux Devono essere caricati manualmente o installati sui nodi quando vengono avviati. Questa operazione deve essere eseguita prima di farvi riferimento nei Pod, poiché lo scheduler non è a conoscenza di quali nodi abbiano dei profili. Scopri di seguito come strumenti come Security Profiles Operator possono aiutare ad automatizzare il provisioning dei profili sui nodi.
Contesti di sicurezza e controlli Kubernetes integrati
Molti meccanismi di sicurezza del runtime di Linux sono strettamente integrati con Kubernetes e possono essere configurati tramite contesti di sicurezza Kubernetes.privileged flag, che è di default e, se abilitato, è false essenzialmente equivalente a root sull'host. È quasi sempre inappropriato abilitare la modalità privilegiata nei carichi di lavoro di produzione, ma esistono molti altri controlli che possono fornire privilegi più granulari ai contenitori, a seconda dei casi.
Funzionalità Linux
Le funzionalità di Linux consentono di concedere determinate funzionalità a un Pod o a un contenitore senza fornire tutte le capacità dell'utente root. Gli esempi includonoCAP_NET_ADMIN, che consente di configurare interfacce di rete o firewall o che consente la manipolazione dell'orologio di sistema. CAP_SYS_TIME
Seccomp
Con secure computing (seccomp) è possibile impedire a un'applicazione containerizzata di effettuare determinate chiamate di sistema al kernel del sistema operativo host sottostante. Sebbene il sistema operativo Linux abbia poche centinaia di chiamate di sistema, la maggior parte di esse non è necessaria per l'esecuzione dei container. Limitando le chiamate di sistema che un container può effettuare, è possibile ridurre efficacemente la superficie di attacco dell'applicazione.
Seccomp funziona intercettando le chiamate di sistema e permettendo il passaggio solo a quelle che sono state consentite nell'elenco. Docker ha un profilo seccomp predefinitosecurityContext
securityContext: seccompProfile: type: RuntimeDefault
A partire dalla 1.22 (in alpha, stabile dalla 1.27), quanto sopra RuntimeDefault può essere utilizzato per tutti i Pod su un nodo utilizzando un singolo flag kubelet,.--seccomp-default Quindi il profilo specificato in securityContext è necessario solo per altri profili.
È anche possibile creare profili personalizzati per cose che richiedono privilegi aggiuntivi. Questa operazione può essere molto noiosa da eseguire manualmente, ma esistono strumenti come Inspektor Gadget
AppArmor e SELinux
AppArmor e SELinux sono noti come sistemi di controllo degli accessi obbligatori o MAC
Entrambi AppArmor SELinux sono integrati con Kubernetes, ma a partire da Kubernetes 1.28 i AppArmor profili devono essere specificati tramite annotazioni, mentre le
Come per i profili seccomp, il Security Profiles Operator sopra menzionato può fornire assistenza nella distribuzione dei profili sui nodi del cluster. (In futuro, il progetto mira anche a generare profili per AppArmor e SELinux come fa per seccomp.)
Raccomandazioni
Usa Amazon GuardDuty per il monitoraggio del runtime e il rilevamento delle minacce ai tuoi ambienti EKS
Se al momento non disponi di una soluzione per il monitoraggio continuo dei runtime EKS, l'analisi dei log di controllo EKS e la scansione alla ricerca di malware e altre attività sospette, Amazon consiglia vivamente l'uso di Amazon
Guarda questo talk tecnico online di AWS «Enhanced threat detection for Amazon EKS with Amazon GuardDuty - AWS Online Tech Talks»
Facoltativamente: utilizza una soluzione di terze parti per il monitoraggio del runtime
Creare e gestire i profili seccomp e Apparmor può essere difficile se non hai familiarità con la sicurezza di Linux. Se non avete il tempo di diventare esperti, prendete in considerazione l'utilizzo di una soluzione commerciale di terze parti. Molti di loro sono andati oltre i profili statici come Apparmor e seccomp e hanno iniziato a utilizzare l'apprendimento automatico per bloccare o avvisare di attività sospette. Alcune di queste soluzioni sono disponibili di seguito nella sezione strumenti. Altre opzioni sono disponibili su AWS Marketplace for Containers
Prendi in considerazione le funzionalità di add/dropping Linux prima di scrivere policy seccomp
Le funzionalità implicano vari controlli nelle funzioni del kernel raggiungibili tramite syscalls. Se il controllo fallisce, la syscall restituisce in genere un errore. Il controllo può essere eseguito direttamente all'inizio di una specifica syscall o più in profondità nel kernel in aree che potrebbero essere raggiungibili tramite più syscall diverse (come la scrittura su uno specifico file privilegiato). Seccomp, d'altra parte, è un filtro syscall che viene applicato a tutte le syscall prima che vengano eseguite. Un processo può impostare un filtro che consenta loro di revocare il diritto di eseguire determinate syscall o argomenti specifici per determinate syscall.
Prima di usare seccomp, valuta se le funzionalità di adding/removing Linux ti offrono il controllo di cui hai bisogno. Per ulteriori informazioni, vedere Impostazione delle funzionalità per- containers
Scopri se puoi raggiungere i tuoi obiettivi utilizzando Pod Security Policies () PSPs
Le politiche di sicurezza di Pod offrono molti modi diversi per migliorare il livello di sicurezza senza introdurre complessità eccessive. Esplora le opzioni disponibili PSPs prima di avventurarti nella creazione di profili seccomp e Apparmor.
avvertimento
A partire da Kubernetes 1.25, PSPs sono stati rimossi e sostituiti con il controller Pod Security Admission.
Strumenti e risorse
-
Security Profiles Operator
è un miglioramento di Kubernetes che mira a semplificare l'utilizzo da parte degli utenti SELinux, in seccomp e nei cluster Kubernetes. AppArmor Fornisce funzionalità sia per la generazione di profili dall'esecuzione di carichi di lavoro sia per il caricamento di profili sui nodi Kubernetes da utilizzare nei Pod. -
Inspektor Gadget
consente di ispezionare, tracciare e profilare molti aspetti del comportamento di runtime su Kubernetes, inclusa l'assistenza nella generazione di profili seccomp. -
NeuVector di SUSE
, piattaforma open source per la sicurezza dei container zero-trust, fornisce regole di profilo di processo e regole di accesso ai file.