Uno degli strumenti più longevi e utilizzati dell'ecosistema GNU/Linux riceve un aggiornamento decisamente fuori dall'ordinario. Rsync 3.5.0 è stato pubblicato con un corposo insieme di interventi dedicati alla sicurezza: il nuovo rilascio affronta 33 differenti problemi, risultato di un lavoro di revisione del codice e di rafforzamento del processo di sviluppo avviato nei mesi scorsi.
Rsync è uno di quei programmi che molti utenti utilizzano senza quasi accorgersi della sua presenza. Nato negli anni Novanta, permette di sincronizzare file e directory in maniera estremamente efficiente, trasferendo soltanto le differenze necessarie invece di ricopiare ogni volta l'intero contenuto. Per questo viene utilizzato quotidianamente per backup, replica di server, sincronizzazione di archivi e trasferimento di grandi quantità di dati.
La rilevanza della versione 3.5.0 deriva soprattutto dal numero e dall'ampiezza degli interventi sulla sicurezza. Non siamo quindi davanti al normale aggiornamento periodico di un programma maturo, ma al risultato di un'attività di revisione molto più approfondita.
Per capire perché questo rilascio sia particolarmente significativo bisogna tornare a quanto accaduto nei mesi precedenti.
A maggio era stata pubblicata rsync 3.4.3, una versione che correggeva sei vulnerabilità identificate con CVE. L'aggiornamento aveva però introdotto diverse regressioni, alcune delle quali potevano compromettere normali scenari di utilizzo del programma. Il progetto aveva quindi pubblicato rapidamente la versione 3.4.4 per risolvere i problemi emersi.
Gli stessi sviluppatori avevano riconosciuto due debolezze nel processo utilizzato: la suite di test non copriva un numero sufficiente di casi reali e la natura riservata degli aggiornamenti di sicurezza rendeva difficile sottoporre le modifiche a un normale periodo pubblico di beta testing.
La risposta non è stata semplicemente correggere i singoli bug. Il progetto ha deciso di ampliare sensibilmente la suite di test e rafforzare il gruppo di persone con competenze specifiche nella sicurezza, preparando proprio la futura serie 3.5.
Rsync 3.5.0 è quindi anche il risultato di questa riorganizzazione.
La vicenda offre uno spunto interessante su come funziona realmente la sicurezza nel Software Libero. La disponibilità del codice sorgente non rende automaticamente un programma immune dagli errori, così come decenni di utilizzo non garantiscono che ogni possibile vulnerabilità sia già stata scoperta.
Ciò che conta è anche la capacità di un progetto di reagire quando emergono problemi: analizzarne le cause, correggere il codice e, soprattutto, modificare il processo di sviluppo quando ci si accorge che gli strumenti utilizzati non sono sufficienti.
Nel caso di rsync questo passaggio è particolarmente importante perché parliamo di un programma utilizzato proprio per proteggere e trasferire dati. Server, sistemi di backup, mirror delle distribuzioni e infrastrutture professionali possono dipendere dal suo corretto funzionamento.
Per amministratori di sistema e utenti che utilizzano direttamente rsync, la pubblicazione della 3.5.0 merita quindi particolare attenzione. Le distribuzioni GNU/Linux integreranno le correzioni secondo le proprie politiche: alcune adotteranno la nuova versione, mentre quelle orientate alla stabilità potranno scegliere di riportare le patch di sicurezza sulle versioni già distribuite.
Non è quindi sempre necessario installare manualmente l'ultima versione disponibile dal sito del progetto. La scelta più prudente rimane verificare gli aggiornamenti di sicurezza forniti dalla propria distribuzione e applicarli tempestivamente.
Rsync 3.5.0 racconta infine qualcosa di importante sulla manutenzione del Software Libero. Un programma nato più di trent'anni fa può essere ancora essenziale, ma proprio questa longevità richiede un'attività continua di revisione.
Il codice libero non diventa sicuro una volta per tutte: può però continuare a essere studiato, corretto e migliorato anche decenni dopo la sua nascita. Ed è proprio questa possibilità a rappresentare una delle sue caratteristiche più importanti.