Mentre pian piano tutti si stanno riprendendo dallo shock della backdoor nei sorgenti di XZ e dopo aver analizzato potenziali scenari futuri e conseguenze su tutto il mondo Linux ed open-source è venuto il momento di porsi un’altra importantissima domanda a proposito di questo tema: quanto è probabile che la stessa cosa si ripeta con altri software?
Per farsi un’idea vale la pena dare un’occhiata a progetti come ad esempio curl. In uno dei consueti e sempre interessantissimi articoli intitolato VERIFIED CURL il creatore e maintainer storico, Daniel Stenberg, ha raccontato di come se XZ veniva utilizzato in systemd ed in SSH in maniera implicita, lo stesso (se non di più) si può dire della sua creatura.
Quindi cosa fa la differenza in curl? Non credere a nulla, dice l’autore: verifica.
E suggerisce tutta una serie di modalità con cui appunto verificare l’autenticità del software che si sta utilizzando. Si parte dai blob, al centro dell’attacco XZ, che in curl semplicemente non sono previsti, si passa poi dai test di tipo fuzzing (che in XZ erano stati disabilitati) in cui dati casuali o semi-casuali (input “fuzzati”) vengono passati ad un programma per individuare bug, crash o vulnerabilità.
Si continua poi con la fase di verifica dei tarball generati per le varie release, che vengono confrontati per mantenerne l’autenticità (mediante le firme) e per garantirne la riproducibilità.
In tutto questo anche i commit stessi devono essere firmati ed in ogni caso vengono sottoposti a processi di audit che, chiaramente, riguardano anche e soprattutto i contributi anonimi.
Infine la questione maintainer: se ve lo state chiedendo, no, il progetto curl non prevede maintainer anonimi.
Tutto questo rende curl assolutamente al sicuro da potenziali attacchi? Ovviamente no, ma come scrive Stenberg rispondendo alla domanda “Can curl be targeted?”:
I think it would be very hard but I can of course not rule it out. Possibly I am also blind for our weaknesses because I have lived with them for so long.
Everyone can help the greater ecosystem by verifying a package or two. If we all tighten all screws just a little bit more, things will get better.
Penso che sarebbe molto difficile ma ovviamente non posso escluderlo. Forse sono cieco alle nostre debolezze perché ho convissuto con esse per così tanto tempo.Tutti possono aiutare l’ecosistema più ampio verificando un pacchetto o due. Se stringessimo tutti le viti ancora un po’, le cose migliorerebbero.
C’è quindi un invito in tutto questo, ad effettuare quello shift-left, zero-trust, chiamatelo come vi pare, prima possibile, ovunque. Molti progetti oltre a curl dopo la questione XZ si stanno interrogando, ed è rassicurante vedere post come quello di Thunderbird, che mostra come anche per questo progetto la sicurezza non è un aspetto secondario.
Di contro, vanno rilevate ancora notizie che parlano, oggi, di CPU ancora vulnerabili a Spectre. Insomma… È una battaglia infinita.
Nell’informatica, soprattutto in questo momento storico, pare davvero tutto possibile, ma la verità è che i software core hanno fortunatamente un pochino più di organizzazione rispetto ad XZ, ed è auspicabile che quanto successo non si ripeta con facilità altrove o che chi è esposto trovi finalmente il tempo di proteggersi.
GitHub ha ripristinato l’accesso al repository delle XZ utils e quindi anche per quanto riguarda il nemico pubblico numero uno la situazione si sta pian piano normalizzando, ma per essere davvero al settimo cielo mancherebbe giusto un annuncio di presa in carico del progetto da parte, che so, della Linux Foundation.
E quello si che possiamo augurarcelo per tanti altri software che, nella loro piccolezza, hanno comunque una rilevanza critica nell’ecosistema.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.