Prije nekoliko dana dogodio se neobičan incident koji je potresao zajednicu korisnika Linux kernela: Linus Torvalds naredio je trenutno blokiranje Kees Cookovog računa na kernel.org nakon što je otkrio manipulirane commitove u Git repozitoriju ovog programera.
Kees Cook, poznat po svom liderstvu u sigurnosnom timu Ubuntua i održavanju više od desetak podsistema povezanih sa sigurnošću kernela, privremeno je dobio zabranu slanja promjena dok se činjenice ne razjasne.
Izmjena autorstva i potpisa u Kees Cook repozitoriju
Problem je nastao zbog zahtjeva za uključivanje promjena u granu kernela 6.16, u kojoj je Linus identificirao reference na repozitorij koji sadrži manipulirane commitove s njegovim imenom navedenim kao autor i potvrđivač, uprkos tome što ih on nije napravio. Jedan od najozbiljnijih primjera bio je postojanje duplikata commita, identičnog sadržaja originalu, ali s drugačijim SHA1 hashom, koji je lažno uključivao potpis Linusa Torvaldsa.
Ove promjene se nisu mogle pripisati samo slučajnoj grešci tokom operacije rebase-ovanja gita, jer su uključivale masovnu modifikaciju osjetljivih informacija, uključujući više od 6.000 prepisanih commitova, od kojih je 330 nosilo Linusovo ime kao autora.
Torvaldsova reakcija: sumnje na namjernu manipulaciju
Linus Torvalds nije krio svoju zabrinutost i opisao je događaje kao potencijalno zlonamjerne:
"Jedna ili dvije prepravke mogle bi biti greška. Ali hiljade njih, mnoge s mojim krivotvorenim potpisom, nisu", izjavio je.
S obzirom na veličinu promjena i rizik po integritet službenog kernel stabla, Torvalds je zamolio Konstantina Ryabitseva, administratora kernel.org infrastrukture, da blokira pristup Keesu Cooku dok se situacija ne razjasni.
Kao odgovor, Kees Cook je objasnio da je nedavno imao tehničkih problema koji su mogli izazvati incident. Naveo je da njegov SSD nije radio ispravno tokom operacija kopiranja, što je rezultiralo oštećenjem nekoliko repozitorija. Nakon ovih grešaka, pokušao je vratiti stanje svog repozitorija koristeći `git rebase` i razne alate za automatizaciju.
Međutim, ove operacije su izvršene na kritičnim granama , kao što su for-next/hardening i for-linus/hardening, što je dovelo do slučajne izmjene historije repozitorija, uključujući promjene u autorstvu commita. Uprkos njegovom objašnjenju, Linus je ostao skeptičan.
"Ne razumijem kako je moglo doći do slučajnog preticanja, a kamoli s ovolikim brojem izmjena."
Pravi krivac: git-filter-repo i b4 traileri
U naknadnoj poruci, Kees Cook je identifikovao vjerovatni izvor greške : kombinovanu upotrebu dva alata, git-filter-repo i b4 trailers, koji manipulišu istorijom commit-a i trailer-ima (oznakama kao što je Signed-off-by:) u commit-ima.
Ova zloupotreba uslužnih programa bi uzrokovala automatsko prepisivanje hiljada commitova , uključujući zamjenu autora podrazumijevanom vrijednošću (u ovom slučaju, Linus Torvalds), a da Kees u tom trenutku ne bi primijetio grešku . Konstantin Ryabitsev, autor alata b4, potvrdio je ovu teoriju i ustvrdio da nije bilo zlonamjerne namjere s Cookove strane. U stvari, sistem je već generirao upozorenja koja su ignorirana.
Nakon što je situacija razjašnjena, Keesu Cooku je vraćen pristup kernel.org. Kao preventivna mjera, najavljeno je da će alat b4 uključivati novu sigurnosnu provjeru, koja će spriječiti modifikaciju commitova čije autorstvo ne odgovara identitetu trenutnog korisnika. Cilj ovoga je spriječiti slične greške i zaštititi integritet izvornog koda kernela.
Kees je, sa svoje strane, obećao da će ponovo kreirati pogođene grane iz pojedinačnih zakrpa i temeljito analizirati korake koji su doveli do greške. Iako je incident zategnuo odnose unutar tima za razvoj kernela, on je također istakao važnost opreznog korištenja alata za prepisivanje historije, posebno u projektima kritičnim kao što je Linux kernel.
Konačno, vrijedi spomenuti da ovaj incident između Linusa Torvaldsa i Keesa Cooka služi kao upozorenje na opasnosti manipulisanja historijom commit-ova, te da je, zahvaljujući brzoj intervenciji kernel.org tima i transparentnosti procesa, situacija stavljena pod kontrolu.
Konačno, ako ste zainteresirani da saznate više, detalje možete pronaći na sljedećem linku.