Pochi giorni fa si è verificato un incidente insolito, che ha scosso la comunità del kernel Linux, e cioè Linus Torvalds ha ordinato la sospensione immediata dell'account di Kees Cook su kernel.org., dopo aver rilevato l'esistenza di commit manipolati nel repository Git di questo sviluppatore.
Kees Cook, riconosciuto per la sua leadership nel team di sicurezza di Ubuntu e per la manutenzione di più di una dozzina di sottosistemi del kernel relativi alla sicurezza, è stato temporaneamente vietato di presentare modifiche mentre venivano chiariti i fatti.
Alterazione della paternità e delle firme nel repository Kees Cook
Il problema è sorto da una richiesta di modifica dell'incorporazione.s al ramo del kernel 6.16, in cui Linus ha identificato i riferimenti a un repository che conteneva commit manipolati con il suo nome come autore e confermatore, pur non avendole eseguite personalmente. Uno degli esempi più gravi è stata l'esistenza di un commit duplicato, identico nel contenuto all'originale ma con un hash SHA1 diverso, che includeva falsamente la firma di Linus Torvalds.
Questi cambiamenti non poteva essere attribuito semplicemente ad un errore accidentalel durante un'operazione di rebase git, poiché comportavano modifiche massicce di informazioni sensibili, tra cui oltre 6.000 commit riscritti, 330 dei quali riportavano il nome di Linus come autore.
La reazione di Torvalds: sospetti di manipolazione deliberata
Linus Torvalds non nascose la sua preoccupazione e ha descritto gli eventi come potenzialmente dannosi:
"Una o due riscritture potrebbero essere un errore. Ma migliaia di esse, molte delle quali con la mia firma falsificata, non lo sono", ha dichiarato.
Data l'entità dei cambiamenti e il rischio per l'integrità dell'albero del kernel ufficiale, Torvalds chiese a Konstantin Ryabitsev, amministratore dell'infrastruttura kernel.org, qdi bloccare l'accesso a Kees Cook finché la situazione non sarà chiarita.
In risposta, Kees Cook ha spiegato di aver avuto recenti problemi tecnici che avrebbe potuto innescare l'incidente. Ha detto, L'unità SSD presentava errori durante le operazioni di copia, che ne avevano causato il danneggiamento in diversi repository. Dopo questi errori, ha tentato di ripristinare lo stato del suo repository utilizzando git rebase e vari strumenti di automazione.
Tuttavia, queste operazioni sono state eseguite su rami critici, come for-next/hardening e for-linus/hardening, che hanno portato a una modifica accidentale della cronologia del repository, incluso il cambiamento nella paternità dei commit. Nonostante la sua spiegazione, Linus era scettico.:
"Non capisco come sia possibile un sorpasso accidentale, tanto meno con questa mole di modifiche."
Il vero colpevole: git-filter-repo e i trailer b4
In un messaggio successivo, Kees Cook ha identificato la probabile fonte dell'errore: l'uso combinato di due strumenti, git-filter-repo e b4 trailer, che manipolano la cronologia dei commit e trailer (tag come Signed-off-by:) nei commit.
Questo uso scorretto dei profitti avrebbe causato la riscrittura automatica di migliaia di commit, inclusa la sostituzione dell'autore con il valore predefinito (in questo caso, Linus Torvalds), senza che Kees si accorgesse dell'errore in quel momentoKonstantin Ryabitsev, autore dello strumento b4, ha confermato questa teoria e ha affermato che Cook non aveva alcun intento malevolo. Anzi, il sistema generava già degli avvisi che venivano ignorati.
Dopo che la situazione fu chiarita, l'accesso di Kees Cook a kernel.org fu ripristinato. A scopo preventivo è stato annunciato che lo strumento b4 includerà un nuovo controllo di sicurezza, D'ora in poi, questo impedirà la modifica di commit la cui paternità non corrisponde all'identità dell'utente corrente. Questo ha lo scopo di prevenire errori simili e proteggere l'integrità del codice sorgente del kernel.
Kees, da parte sua, si è impegnato a ricreare i rami interessati. da singole patch e analizzare in profondità i passaggi che hanno portato all'errore. Sebbene L'incidente ha messo a dura prova i rapporti all'interno della squadra Lo sviluppo del kernel ha inoltre evidenziato l'importanza di utilizzare con cautela gli strumenti di riscrittura della cronologia, soprattutto in progetti critici come il kernel Linux.
Infine, vale la pena menzionare che questo incidente tra Linus Torvalds e Kees Cook serve da avvertimento sui pericoli della manipolazione della cronologia degli impegni e che grazie al rapido intervento dai responsabili di kernel.org e dalla trasparenza del processo, la situazione è stata riportata sotto controllo.
Infine, se sei interessato a saperne di più, puoi controllare i dettagli di seguito collegamento.