Rilascio di Bottlerocket 1.7, una distribuzione basata su contenitori isolati

È stato pubblicato il rilascio della distribuzione Linux Bottlerocket 1.7.0, sviluppata con la partecipazione di Amazon per il lancio efficiente e sicuro di contenitori isolati. Gli strumenti e i componenti di controllo della distribuzione sono scritti in Rust e distribuiti sotto le licenze MIT e Apache 2.0. Supporta l'esecuzione di Bottlerocket su cluster Amazon ECS, VMware e AWS EKS Kubernetes, oltre alla creazione di build ed edizioni personalizzate che consentono l'uso di vari strumenti di orchestrazione e runtime per i contenitori.

La distribuzione fornisce un'immagine di sistema indivisibile aggiornata atomicamente e automaticamente che include il kernel Linux e un ambiente di sistema minimo, inclusi solo i componenti necessari per eseguire i contenitori. L'ambiente include il gestore di sistema systemd, la libreria Glibc, lo strumento di compilazione Buildroot, il boot loader GRUB, il configuratore di rete Wicked, il runtime containerd per contenitori isolati, la piattaforma di orchestrazione dei contenitori Kubernetes, aws-iam-authenticator e Amazon Agente ECS.

Gli strumenti di orchestrazione dei container sono forniti in un container di gestione separato, abilitato per impostazione predefinita e gestito tramite l'API e l'agente AWS SSM. L'immagine di base è priva di shell dei comandi, server SSH e linguaggi interpretati (ad esempio, niente Python o Perl): gli strumenti di amministrazione e di debug sono collocati in un contenitore di servizi separato, che è disabilitato per impostazione predefinita.

La differenza fondamentale rispetto a distribuzioni simili come Fedora CoreOS, CentOS/Red Hat Atomic Host è l'obiettivo principale di fornire la massima sicurezza nel contesto del rafforzamento della protezione del sistema da possibili minacce, rendendo più difficile sfruttare le vulnerabilità nei componenti del sistema operativo e aumentando l'isolamento dei contenitori . I contenitori vengono creati utilizzando i meccanismi standard del kernel Linux: cgroup, spazi dei nomi e seccomp. Per ulteriore isolamento, la distribuzione utilizza SELinux in modalità “enforcing”.

La partizione root è montata in sola lettura e la partizione delle impostazioni /etc è montata in tmpfs e ripristinata al suo stato originale dopo un riavvio. La modifica diretta dei file nella directory /etc, come /etc/resolv.conf e /etc/containerd/config.toml, non è supportata: per salvare in modo permanente le impostazioni, è necessario utilizzare l'API o spostare la funzionalità in contenitori separati. Il modulo dm-verity viene utilizzato per verificare crittograficamente l'integrità della partizione root e, se viene rilevato un tentativo di modificare i dati a livello del dispositivo a blocchi, il sistema si riavvia.

La maggior parte dei componenti di sistema sono scritti in Rust, che fornisce funzionalità di sicurezza della memoria per evitare vulnerabilità causate da accessi successivi alla memoria libera, dereferenziazioni di puntatori nulli e sovraccarichi del buffer. Durante la compilazione per impostazione predefinita, le modalità di compilazione "-enable-default-pie" e "-enable-default-ssp" vengono utilizzate per abilitare la randomizzazione dello spazio degli indirizzi dei file eseguibili (PIE) e la protezione contro gli overflow dello stack tramite la sostituzione canary. Per i pacchetti scritti in C/C++, i flag “-Wall”, “-Werror=format-security”, “-Wp,-D_FORTIFY_SOURCE=2”, “-Wp,-D_GLIBCXX_ASSERTIONS” e “-fstack-clash” sono inoltre protezione abilitata".

Nella nuova versione:

  • Quando si installano i pacchetti RPM, è possibile generare un elenco di programmi in formato JSON e montarlo nel contenitore host come file /var/lib/bottlerocket/inventory/application.json per ottenere informazioni sui pacchetti disponibili.
  • I contenitori “admin” e “control” sono stati aggiornati.
  • Versioni e dipendenze dei pacchetti aggiornate per le lingue Go e Rust.
  • Versioni aggiornate dei pacchetti con programmi di terze parti.
  • Risolti i problemi di configurazione di tmpfilesd per kmod-5.10-nvidia.
  • Durante l'installazione di tuftool, le versioni delle dipendenze vengono collegate.

Fonte: opennet.ru

Aggiungi un commento