Questa pagina fornisce una panoramica delle funzionalità di sicurezza Container-Optimized OS in esecuzione su Google Cloud.
Sicurezza del sistema operativo
Basato su Chromium OS, Container-Optimized OS di Google implementa diversi principi di progettazione della sicurezza per fornire una per l'esecuzione di servizi di produzione.
Ingombro minimo del sistema operativo
Questo è il fulcro della sicurezza di Container-Optimized OS. Dal giorno Container-Optimized OS è ottimizzato per eseguire container e pacchetti di container con le proprie dipendenze, possiamo tagliare i pacchetti non necessari e ridurre al minimo Superficie di attacco del sistema operativo.
File system root immutabile e avvio verificato
Il file system root di Container-Optimized OS viene sempre montato in sola lettura. Inoltre, il suo checksum viene calcolato al momento della build e verificato dal kernel a ogni avvio. Questo meccanismo impedisce agli aggressori di "possedere" il tramite modifiche locali permanenti. Inoltre, molti altri supporti sono non eseguibili per impostazione predefinita. Per maggiori dettagli, vedi File system.
Configurazione stateless
Sebbene avere un file system root di sola lettura sia un vantaggio per la sicurezza,
difficile da usare. Ad esempio, dobbiamo essere in grado di creare e aggiungere utenti per accedere al sistema. Per risolvere il problema, personalizziamo il filesystem di primo livello in modo che /etc/
sia scrivibile, ma senza stato. Ciò consente di scrivere
di configurazione in fase di esecuzione, ma queste non vengono mantenute
si riavvia. Di conseguenza, ogni volta che un nodo Container-Optimized OS si riavvia, viene avviato
una nuova lista. Determinati dati, ad esempio relativi all'account home directory, log e Docker
rimangono dopo i riavvii perché non fanno parte del file system radice.
Kernel rafforzato dalla sicurezza
Container-Optimized OS abilita diverse funzionalità kernel di protezione della sicurezza, tra cui Integrity Measurement Architecture (IMA), Audit, Tabella delle pagine del kernel Isolation (KPTI) e alcuni moduli di sicurezza Linux (LSM) da Chromium OS. Container-Optimized OS supporta inoltre funzionalità di sicurezza come seccomp e AppArmor che permettono di applicare criteri di sicurezza più granulari.
Valori predefiniti incentrati sulla sicurezza
Container-Optimized OS offre un ulteriore livello di protezione, fornendo valori predefiniti incentrati sulla sicurezza per diverse caratteristiche. Sono inclusi, ad esempio, sysctl impostazioni che disattivano ptrace e BPF senza privilegi, bloccano il firewall e così via. Questi valori predefiniti, se applicati automaticamente a un parco risorse di istanze, contribuiscono a proteggere l'intero cluster, il progetto e l'organizzazione.
Aggiornamenti automatici
La funzionalità di aggiornamenti automatici di Container-Optimized OS consente la consegna tempestiva le patch di sicurezza alle VM in esecuzione. Quando Container-Optimized OS è gestito e Google Kubernetes Engine, upgrade automatici dei nodi trova un equilibrio tra sicurezza e stabilità.
Filesystem
Di seguito è riportato un elenco di percorsi nel file immagine dei nodi Container-Optimized OS sistema, oltre alle loro proprietà e all'utilizzo consigliato:
Percorso | Proprietà | Finalità |
---|---|---|
/ |
|
Il file system radice è montato in sola lettura per mantenere l'integrità. La il kernel verifica l'integrità del file system radice durante l'avvio e si rifiuta di avviarlo in caso di errori. |
/home /var |
|
Questi percorsi sono pensati per archiviare dati che persistono per tutta la durata del
il disco di avvio. Sono montati da /mnt/stateful_partition . |
/var/lib/google /var/lib/docker /var/lib/toolbox |
|
Questi percorsi sono directory di lavoro per i pacchetti Compute Engine (ad esempio, account Manager), Docker e Toolbox rispettivamente. |
/var/lib/cloud |
|
Questo percorso è la directory di lavoro del pacchetto cloud-init . |
/etc |
|
In genere contiene la configurazione (ad esempio,
systemd servizi definiti tramite cloud-init ).
Ti consigliamo di acquisire lo stato desiderato delle istanze
cloud-init , poiché cloud-init viene applicato quando
quando viene creata un'istanza e quando viene
è stata riavviata. |
/tmp |
|
In genere viene utilizzato come spazio temporaneo e non deve essere usato per archiviare e permanenti. |
/mnt/disks |
|
Puoi montare dischi permanenti nelle directory all'interno di /mnt/disks . |
Firewall
Per impostazione predefinita, Container-Optimized OS è configurato per eliminare tutte le connessioni TCP/UDP in entrata tranne SSH sulla porta 22. Consulta la sezione Configurazione del firewall host per scoprire come modificare l'impostazione predefinita per aprire altre porte.
Accesso alle istanze
Per impostazione predefinita, Container-Optimized OS non contiene alcun utente accessibile . Gli account utente e le chiavi SSH sono gestiti metadati dell'istanza o del progetto o OS Login. OS Login consente di gestire l'accesso alle istanze utilizzando IAM. Garantisce un'esperienza un controllo dell'accesso granulare (sudo e non sudo), chiavi SSH identificabili e criteri di accesso dell'organizzazione.
Il daemon SSH è configurato in modo da non consentire l'autenticazione basata su password e per non consentire gli accessi root. Tuttavia, ciò non impedisce agli utenti di ottenere i privilegi di root utilizzando sudo. dopo l'accesso, a meno che l'account utente non sia gestito con OS Login.
Sicurezza dell'infrastruttura
Oltre a varie funzionalità di protezione avanzata nel sistema operativo stesso, Il team Container-Optimized OS prende sul serio anche la catena di fornitura del software e dà priorità alla sicurezza dell'infrastruttura durante lo sviluppo, la creazione e il deployment di immagini, sulla base di anni di esperienza sia in Chromium OS che in Google nel in generale.
Creato dal codice sorgente di Google
Ogni pacchetto in Container-Optimized OS, incluso il kernel Linux stesso, viene compilato dal codice dei repository di ChromiumOS. Ciò significa che sappiamo cosa contiene il sistema operativo, chi l'ha registrato e quale versione e così via. Questo ci consente inoltre di applicare rapidamente patch e aggiornamenti a qualsiasi pacchetto scoperta di una vulnerabilità, a qualsiasi livello.
Analisi e risposta continue delle vulnerabilità (CVE)
Un sistema di scansione CVE ci avvisa ogni volta che viene scoperta una vulnerabilità nella o qualsiasi pacchetto del sistema operativo. Si tratta dello stesso sistema utilizzato per rilevare le vulnerabilità in Android e Chromium OS. Il team di Container-Optimized OS risponde con priorità per rilasciare le release con patch. Il team di Container-Optimized OS collabora anche con il team di risposta agli incidenti di Google per rendere rapidamente disponibili patch di sicurezza più ampie in Container-Optimized OS.
Procedura di test e qualifica
Prima di pubblicare una nuova immagine di Container-Optimized OS su Google Cloud, la testiamo a più livelli, tra cui il test del fuzz del kernel syzkaller test di Kubernetes a livello di cluster, test di integrazione con le funzionalità di Compute Engine e vari benchmark di rendimento. Ciò garantisce la stabilità e la qualità le nostre nuove uscite.