Rilascio di Bottlerocket 1.3, distribuzione basata su contenitori isolati

È stata rilasciata la versione 1.3.0 del sistema operativo Linux Bottlerocket, sviluppato in collaborazione con Amazon per l'avvio sicuro ed efficiente di container isolati. Gli strumenti e i componenti di gestione del sistema operativo sono scritti in Rust e distribuiti sotto le licenze MIT e Apache 2.0. Bottlerocket supporta l'esecuzione in cluster Amazon ECS, VMware e AWS EKS Kubernetes, oltre alla creazione di build e versioni personalizzate, consentendo l'uso di vari strumenti di orchestrazione e runtime per i container.

La distribuzione fornisce un'immagine di sistema atomica, indissolubile e automaticamente aggiornata, che include il kernel Linux e un ambiente di sistema minimale, contenente solo i componenti necessari per l'avvio dei container. Nel suo ambiente sono coinvolti il manager di sistema systemd, la libreria Glibc, l'ambiente di build Buildroot, il bootloader GRUB, il configuratore di rete wicked, il runtime per container isolati containerd, la piattaforma di orchestrazione dei container Kubernetes, l'autenticatore aws-iam-authenticator e l'agente Amazon ECS.

Gli strumenti per l'orchestrazione dei contenitori sono forniti in un contenitore di gestione separato, che è abilitato per impostazione predefinita e gestito tramite API e AWS SSM Agent. L'immagine di base non include una shell di comando, un server SSH e linguaggi interpretati (ad esempio, non ci sono Python o Perl) — gli strumenti per l'amministratore e gli strumenti di debug sono stati spostati in un contenitore di servizio separato, che è disabilitato per impostazione predefinita.

La principale differenza rispetto a distribuzioni simili come Fedora CoreOS e CentOS/Red Hat Atomic Host è l'orientamento primario verso la massima sicurezza, in un contesto di potenziamento della protezione del sistema da potenziali minacce, complicando l'exploitation delle vulnerabilità nei componenti del sistema operativo e aumentando l'isolamento dei contenitori. I contenitori vengono creati utilizzando i meccanismi standard del kernel Linux — cgroups, namespace e seccomp. Per un'ulteriore isolamento, il supporto SELinux è abilitato in modalità 'enforcing'.

La partizione principale viene montata in modalità di sola lettura, mentre la partizione delle impostazioni /etc viene montata in tmpfs e ripristina lo stato originale dopo il riavvio. Le modifiche dirette ai file nella cartella /etc, come /etc/resolv.conf e /etc/containerd/config.toml, non sono supportate: per il salvataggio permanente delle impostazioni è necessario utilizzare l'API o trasferire la funzionalità in contenitori separati. Per la verifica crittografica dell'integrità della partizione principale è attivato il modulo dm-verity, e in caso venga rilevato un tentativo di modifica dei dati a livello di dispositivo a blocchi, il sistema si riavvia.

La maggior parte dei componenti di sistema sono scritti in Rust, un linguaggio che fornisce strumenti per una gestione della memoria sicura, evitando così vulnerabilità dovute all'accesso a memoria liberata, dereferenziazione di puntatori nulli e overflow del buffer. Durante la compilazione predefinita, vengono applicati i flag di compilazione «—enable-default-pie» e «—enable-default-ssp» per attivare la randomizzazione dello spazio degli indirizzi dei file eseguibili (PIE) e per fornire protezione contro l'overflow dello stack tramite la sostituzione di etichette canarie. Per i pacchetti scritti in C/C++, vengono inclusi ulteriori flag «-Wall», «-Werror=format-security», «-Wp,-D_FORTIFY_SOURCE=2», «-Wp,-D_GLIBCXX_ASSERTIONS» e «-fstack-clash-protection».

Nel nuovo rilascio:

  • Sono state corrette vulnerabilità nel toolkit Docker e nel runtime containerd (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103), relative a una configurazione errata dei permessi che permetteva a utenti non privilegiati di uscire dalla directory di base ed eseguire programmi esterni.
  • A kubelet e pluto è stata aggiunta supporto IPv6.
  • È stata fornita la possibilità di riavviare il container dopo aver modificato le sue impostazioni.
  • Al pacchetto eni-max-pods è stato aggiunto il supporto per le istanze Amazon EC2 M6i.
  • In open-vm-tools è stato aggiunto il supporto per i filtri dei dispositivi, implementato sulla base del toolkit Cilium.
  • Per la piattaforma x86_64 è stata implementata una modalità ibrida di avvio (con supporto per EFI e BIOS).
  • Aggiornate le versioni dei pacchetti e le dipendenze per il linguaggio Rust.
  • Interrotta la supporto per la variante del distributore aws-k8s-1.17 basato su Kubernetes 1.17. Si raccomanda di utilizzare la variante aws-k8s-1.21 con supporto per Kubernetes 1.21. Nelle varianti k8s sono state utilizzate le impostazioni cgroup runtime.slice e system.slice.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster