Gli sviluppatori della distribuzione NixOS hanno annunciato la realizzazione del supporto per la verifica dell'integrità dell'immagine iso minima (iso_minimal.x86_64-linux) attraverso il meccanismo delle build ripetibili. In precedenza, le build ripetibili erano disponibili a livello di singoli pacchetti, ma ora sono state estese all'intera immagine iso. Qualsiasi utente può generare un'immagine iso completamente identica a quella fornita per il download e assicurarsi che sia costruita con i sorgenti forniti e non contenga modifiche nascoste. Per automatizzare il controllo dell'immagine iso NixOS utilizzando build ripetibili, è stato preparato uno script speciale. Nella fase successiva, si prevede di garantire build ripetibili per l'immagine iso completa con l'ambiente desktop GNOME.
Le build ripetibili sono un elemento chiave per garantire la sicurezza, poiché consentono di verificare autonomamente che i byte delle distribuzioni proposte corrispondano esattamente ai build compilati personalmente dai sorgenti. Senza la possibilità di verificare l’identità del build binario, l’utente deve semplicemente fidarsi ciecamente dell’infrastruttura di build altrui, la compromissione del compilatore o degli strumenti di build può portare all'inserimento di backdoor nascoste. Per garantire build ripetibili è necessario riprodurre l'ambiente di build e le sue impostazioni, utilizzare versioni identiche di software, dipendenze e componenti di avvio, escludere l'inserimento di dati mutevoli (timestamp, riempitivi casuali, ecc.) e mantenere l'ordine dei file e l'installazione dei pacchetti nel file immagine ISO.
Ricordiamo che la distribuzione NixOS è basata sul gestore di pacchetti Nix e offre una serie di sviluppi proprietari che semplificano la configurazione e la manutenzione del sistema. Ad esempio, in NixOS si utilizza un unico file di configurazione del sistema (configuration.nix), è possibile effettuare un rapido rollback degli aggiornamenti, è supportato il passaggio tra stati diversi del sistema, è possibile installare pacchetti personalizzati da parte di singoli utenti (il pacchetto viene installato nella home directory) e è possibile installare simultaneamente più versioni di un programma. Usando Nix, i pacchetti vengono installati in un albero di directory separato /nix/store o in una sottodirectory nella cartella dell'utente. Ad esempio, un pacchetto viene installato come /nix/store/f2b5…8a563-firefox-89.0.1/, dove «f2b5…» è un identificatore unico del pacchetto utilizzato per controllare le dipendenze.
I pacchetti si presentano come contenitori che contengono i componenti necessari per il funzionamento delle applicazioni. È possibile definire dipendenze tra i pacchetti, utilizzando la scansione degli hash identificativi nella directory dei pacchetti installati per verificare la presenza di dipendenze già installate. È possibile sia il download di pacchetti binari precompilati dal repository (nel caso di aggiornamenti ai pacchetti binari, vengono scaricati solo i delta), sia la compilazione dai sorgenti con tutte le dipendenze. La raccolta di pacchetti è disponibile in un repository speciale chiamato Nixpkgs.
Fonte: opennet.ru
