Pred pár dňami stala sa nezvyčajná udalosť, ktorý otriasol komunitou linuxového jadra, a to je Linus Torvalds nariadil okamžité pozastavenie účtu Keesa Cooka na kernel.org., po zistení existencie manipulovaných commitov v Git repozitári tohto vývojára.
Kees Cook, uznávaný za svoje vodcovstvo v bezpečnostnom tíme Ubuntu a za údržbu viac ako tucta bezpečnostných podsystémov jadra, bol dočasne zakázaný na predkladanie zmien, kým sa neobjasňujú skutočnosti.
Zmena autorstva a podpisov v repozitári Kees Cook
Problém vznikol zo žiadosti o zmenu v registri.s do vetvy jadra 6.16, v ktorom Linus identifikoval odkazy na repozitár ktorý obsahoval commity manipulované s jeho meno ako autora a potvrdzovateľa, napriek tomu, že ich sám neurobil. Jedným z najzávažnejších príkladov bola existencia duplicitného commitu, ktorý mal identický obsah s originálom, ale mal odlišný SHA1 hash, a ktorý falošne obsahoval podpis Linusa Torvaldsa.
Tieto zmeny nedalo sa to pripísať len náhodnej chybepočas operácie rebase v gite, keďže zahŕňali rozsiahle úpravy citlivých informácií vrátane viac ako 6.000 330 prepísaných commitov, z ktorých XNUMX malo ako autora uvedené Linusovo meno.
Torvaldsova reakcia: podozrenia z úmyselnej manipulácie
Linus Torvalds neskrýval svoje obavy a označil udalosti za potenciálne škodlivé:
„Jeden alebo dva prepisy by mohli byť chybou. Ale tisíce z nich, mnohé s mojím sfalšovaným podpisom, nie sú,“ vyhlásil.
Vzhľadom na rozsah zmien a riziko pre integritu oficiálneho stromu jadra, Torvalds sa opýtal Konstantina Rjabitseva, správca infraštruktúry kernel.org, qzablokovať prístup Keesa Cooka, kým sa situácia nevyjasní.
V odozve, Kees Cook vysvetlil, že mal nedávno technické problémy to mohlo spustiť incident. Povedal, Na vašom SSD disku sa počas kopírovania vyskytovali chyby, ktoré spôsobovali poškodenie. vo viacerých repozitároch. Po týchto chybách sa pokúsil obnoviť stav svojho repozitára pomocou príkazu git rebase a rôznych automatizačných nástrojov.
Tieto operácie sa však vykonávali na kritických vetvách., ako napríklad for-next/hardening a for-linus/hardening, čo viedlo k náhodnej úprave histórie repozitára vrátane zmeny autorstva commitov. Napriek jeho vysvetleniu bol Linus skeptický.:
„Nerozumiem, ako mohlo dôjsť k náhodnému predbiehaniu, nieto ešte pri takomto množstve úprav.“
Skutočný vinník: git-filter-repo a b4 trailery
V neskoršej správe, Kees Cook identifikoval pravdepodobný zdroj chybykombinované použitie dvoch nástrojov, upútavky git-filter-repo a b4, ktoré manipulujú s históriou commitov a upútavky (tagy ako Signed-off-by:) v commitoch.
Toto nesprávne použitie zo ziskov by spôsobilo automatické prepisovanie tisícok commitov, vrátane nahradenia autora predvolenou hodnotou (v tomto prípade Linus Torvalds), bez toho, aby si Kees v tej chvíli všimol chybuKonstantin Ryabitsev, autor nástroja b4, túto teóriu potvrdil a vyhlásil, že zo strany Cooka neexistoval žiadny zlý úmysel. V skutočnosti systém už generoval varovania, ktoré boli ignorované.
Po objasnení situácie bol Keesovi Cookovi obnovený prístup na kernel.org. Ako preventívne opatrenie bolo oznámené, že nástroj b4 bude obsahovať novú bezpečnostnú kontrolu, Toto odteraz zabráni úprave commitov, ktorých autorstvo nezodpovedá identite aktuálneho používateľa. Cieľom je zabrániť podobným chybám a chrániť integritu zdrojového kódu jadra.
Kees sa zaviazal, že postihnuté vetvy znovu vytvorí. z jednotlivých záplat a podrobne analyzovať kroky, ktoré viedli k chybe. Hoci Incident narušil vzťahy v tíme vývoj jadra tiež zdôraznil dôležitosť opatrného používania nástrojov na prepisovanie histórie, najmä v projektoch takých kritických, ako je jadro Linuxu.
Na záver stojí za zmienku, že tento incident medzi Linusom Torvaldsom a Keesom Cookom slúži ako varovanie pred nebezpečenstvami manipulácie s históriou commitov a že vďaka rýchlemu zásahu od tých, ktorí sú zodpovední za kernel.org a transparentnosť procesu, situácia bola dostala pod kontrolu.
Nakoniec, ak sa chcete dozvedieť viac o tom, môžete si pozrieť podrobnosti v nasledujúcom texte link.