Microsoft ha pubblicato l'aggiornamento mensile della distribuzione Azure Linux 3.0.20260506. La distribuzione si sviluppa come una piattaforma di base universale per ambienti Linux utilizzati in infrastrutture cloud, sistemi edge e vari servizi Microsoft. I lavori interni del progetto sono distribuiti con licenza MIT. Le build dei pacchetti sono formate per le architetture aarch64 e x86_64. La dimensione dell'immagine di installazione è di 770 MB.
Tra le modifiche nella nuova versione:
- Nel repository (SPECS e SPECS-EXTENDED) sono stati aggiunti i pacchetti ignition e rust-afterburn.
- Il pacchetto con l'analizzatore di rete Wireshark è stato ricompilato con supporto per il linguaggio Lua.
- Nella build del pacchetto del kernel per l'architettura arm64 è stata inclusa l'opzione CONFIG_IKCONFIG_PROC, che consente l'accesso alla configurazione di build del kernel corrente tramite il file /proc/config.gz.
- Migliorato il supporto per la migrazione live in QEMU.
- Nel file PackageBuild.yml è stata aggiunta l'opzione extraMacrosFiles per passare file aggiuntivi con macro durante la build del pacchetto.
- Eliminate decine di vulnerabilità in diversi pacchetti.
- Aggiornate le versioni del kernel Linux 6.6.137.1, clamav 1.5.2, cloud-hypervisor 51.1.56, containerd2 2.1.6, cups 2.4.18, erlang 26.2.5.20, golang 1.26.2-1, libpng 1.6.57, mysql 8.0.46.
La distribuzione Azure Linux offre un set di base di pacchetti fondamentali che fungono da base universale per creare contenitori, ambienti host e servizi eseguiti in infrastrutture cloud e su dispositivi edge. Soluzioni più complesse e specializzate possono essere create tramite l'aggiunta di pacchetti aggiuntivi sopra Azure Linux, ma la base per tutti questi sistemi rimane invariata, semplificando la manutenzione e la preparazione degli aggiornamenti.
Azure Linux viene utilizzato come base per il mini-distributivo WSLg, che fornisce componenti del stack grafico per eseguire applicazioni GUI Linux negli ambienti basati su WSL2 (Windows Subsystem for Linux). La funzionalità avanzata in WSLg è realizzata mediante l'inclusione di pacchetti aggiuntivi con il server composito Weston, XWayland, PulseAudio e FreeRDP.
Per la gestione dei servizi e del carico, viene utilizzato il gestore di sistema systemd. Per la gestione dei pacchetti sono forniti i gestori di pacchetti RPM e DNF. Il server SSH non è abilitato di default. Per l'installazione della distribuzione è fornito un installer che può operare sia in modalità testuale che grafica. Nell'installer è disponibile la possibilità di installare con un set completo o base di pacchetti, un'interfaccia per selezionare la partizione del disco, scegliere il nome dell'host e creare utenti.
Il sistema di build di Azure Linux consente di generare sia pacchetti RPM separati basati su file SPEC e sorgenti, sia immagini di sistema monolitiche create utilizzando lo strumento rpm-ostree e aggiornate in modo atomico senza suddivisione in pacchetti separati. Pertanto, sono supportati due modelli di consegna degli aggiornamenti: tramite l'aggiornamento di pacchetti singoli e tramite la ricostruzione e l'aggiornamento dell'intera immagine di sistema. È disponibile un repository che include circa 3000 pacchetti RPM già compilati, utilizzabile per assemblare le proprie immagini basate su un file di configurazione.
La piattaforma di base include solo i componenti essenziali ed è ottimizzata per un consumo minimo di memoria e spazio su disco, oltre a garantire elevate velocità di caricamento. Nel progetto si applica un approccio di "massima sicurezza per impostazione predefinita", che prevede l'inclusione di vari meccanismi aggiuntivi per aumentare la protezione:
- Filtraggio delle chiamate di sistema tramite il meccanismo seccomp.
- Crittografia delle partizioni disco.
- Verifica dei pacchetti tramite firma digitale.
- Randomizzazione dello spazio degli indirizzi.
- Protezione contro attacchi legati a collegamenti simbolici, mmap, /dev/mem e /dev/kmem.
- Modalità sola lettura e divieto di esecuzione di codice in aree di memoria in cui sono allocati segmenti contenenti dati del kernel e dei moduli.
- Opzione per vietare il caricamento dei moduli del kernel dopo l'inizializzazione del sistema.
- Utilizzo di iptables per la filtrazione dei pacchetti di rete.
- Abilitazione nella compilazione delle modalità di protezione contro il buffer overflow, le vulnerabilità di overflow dello stack e problemi di formattazione delle stringhe (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Fonte: opennet.ru
