In informatica buona parte della sicurezza è garantita tramite catene di fiducia, per cui una certa informazione è ritenuta valida (e sicura) se la fonte da cui proviene è affidabile.
Negli ultimi anni gli sforzi per autenticare una fonte si sono moltiplicati, e in tutti gli ambiti: dalle firme nei commit git per il codice sorgente (come hanno imparato gli sviluppatori di PHP), al secure boot (nonostante qualche inciampo con GRUB).
Tutte hanno in comune il garantire l’integrità dei file grazie al suo digest, un valore particolare calcolato col contenuto del file, e che è molto sensibile ad ogni minimo cambiamento. Confrontando il valore calcolato sulla macchina con quello fornito da una fonte attendibile, si può sapere se il file in questione è valido oppure no.
Uno sviluppatore di Huawei – dal nome italianissimo di Roberto Sassu – ha proposto una patch per il Kernel con cui un processo (magari affidabile) potrebbe caricare informazioni di questo tipo in un database, in modo che un altro processo qualsiasi potrebbe poi usare queste informazioni per fare validazioni dei file.
Dato che il database sarebbe allocato esclusivamente nella memoria del Kernel, solo processi affidabili potrebbero modificare i valori – e comunque solo nel caso in cui tali valori fossero stati contrassegnati come modificabili al momento del caricamento.
I dati presenti nella “Huawei Digest Lists” (questo il nome della nuova funzionalità) sarebbero disponibili tramite SecurityFS, un filesystem virtuale da lungo tempo presente nel Kernel con il preciso scopo di esporre dati di questo tipo. Rendendo possibile recuperare un certo valore semplicemente tramite la lettura del contenuto di un file.
L’uso del database, al posto di file testo, permette infine il calcolo di indici creati apposta per velocizzare l’individuazione e l’uso di un particolare valore, senza dover rileggere tuttte le informazioni ogni volta che è richiesta una voce.
Inoltre, permette la gestione (caricamento/modifica/cancellazione) puntuale di un singolo valore, rendendo la soluzione estremamente flessibile e compatibile con più sorgenti.
Tutto questo, per caso, vi ricorda il sistema Integrity Measurement Architecture (IMA)? Non è un caso!
Infatti, nello stesso post per la patch viene indicato come IMA sia l’utilizzatore ideale della nuova funzionalità, sfruttata per velocizzare le operazioni.
Come fonte di dati vengono indicati gli header del sistemi di pacchettizzazione software RPM, usato su Red Hat, oppure i metadati disponibili dai repository di Debian. In entrambe le situazioni, le informazioni fornite sarebbero da fonti firmate, e pertanto garantite.
Un eventuale sistema di gestione dei pacchetti potrebbe appoggiarsi ad IMA per stabilire se il file installato è conforme a quanto aspettato, ed IMA a sua volta confrontare i digest individuati sulla macchina con quelli presenti nella memoria del Kernel.
Infine, per i più curiosi, segnaliamo che il post è ben corredato di tutta una serie di considerazioni tecniche molto interessanti.
Huawei ultimamente è finita in una piccola discussione perché sembrava, a detta di un manutentore del Kernel, che le patch proposte fossero per lo più inutili ed atte solo a registrare un maggior numero di modifiche. In modo da gonfiare le statistiche riguardanti Huawei, e farlo apparire come un contributore più importante di quanto già non fosse.
Che dite: funzionalità utile o solo “fumo negli occhi”?
Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.
Lascia un commento