un toolkit , che consente di organizzare un controllo indipendente dei pacchetti binari del sistema operativo attraverso il dispiegamento di un processo di build ininterrotto, che confronta i pacchetti caricati con quelli ottenuti mediante ricompilazione sul sistema locale. Gli strumenti sono scritti in Rust e rilasciati sotto licenza GPLv3.
Attualmente, in rebuilderd è disponibile solo il supporto sperimentale per la verifica dei pacchetti di Arch Linux, ma presto sarà aggiunto anche il supporto per Debian. Nel caso più semplice per avviare rebuilderd è necessario installare il pacchetto rebuilderd dal repository di default, importare la chiave GPG per verificare l'ambiente e attivare il corrispondente servizio di sistema. È possibile la distribuzione di una rete di più istanze di rebuilderd.
Il servizio monitora lo stato dell'indice dei pacchetti e avvia automaticamente la ricompilazione dei nuovi pacchetti in un ambiente di riferimento, il cui stato è sincronizzato con le impostazioni dell'ambiente di build principale di Arch Linux. Durante la ricompilazione vengono considerati aspetti come la corrispondenza esatta delle dipendenze, l'uso di strumenti di build invariabili, un insieme identico di opzioni e impostazioni predefinite, e il mantenimento dell'ordine di compilazione dei file (applicando gli stessi metodi di ordinamento). Le impostazioni del processo di build escludono l'aggiunta di informazioni accessorie inconsistenti da parte del compilatore, come valori casuali, riferimenti a percorsi file e dati su data e ora di compilazione.
Attualmente, le ricompilazioni ripetibili per l'84,1% dei pacchetti del repository core di Arch Linux, l'83,8% del repository extras e il 76,9% del repository community. A titolo di confronto, in Debian 10 questa percentuale è del 94,1%. Le ricompilazioni ripetibili sono un anello fondamentale nella garanzia della sicurezza, poiché consentono a qualsiasi utente di verificare che le build dei pacchetti fornite dal sistema operativo coincidano byte per byte con le build compilate personalmente dai codici sorgenti. Senza la possibilità di verificare l'identità della build binaria, l'utente può solo fidarsi ciecamente dell'infrastruttura di compilazione altrui, la compromissione del compilatore o degli strumenti di build potrebbe portare all'inserimento di backdoor nascoste.
Fonte: opennet.ru
