FreeBSD 13 takmer skončil s hackerskou implementáciou WireGuard s porušovaním licencií a zraniteľnosťami

Z kódovej základne, na ktorej sa vytvorilo vydanie FreeBSD 13, bol kód implementujúci protokol WireGuard VPN, vyvinutý na príkaz Netgate bez konzultácie s vývojármi pôvodného WireGuard a už zahrnutý v stabilných vydaniach distribúcie pfSense, škandalózne. odstránený. Po preskúmaní kódu Jasonom A. Donenfeldom, autorom pôvodného WireGuardu, sa ukázalo, že FreeBSD navrhnutá implementácia WireGuard bola kusom nekvalitného kódu, preplneného pretečením vyrovnávacej pamäte a porušujúcim GPL.

Implementácia obsahovala katastrofálne chyby v šifrovacom kóde, bola vynechaná časť protokolu WireGuard, vyskytli sa chyby, ktoré viedli k pádu jadra a obchádzaniu bezpečnostných metód a pre vstupné dáta boli použité vyrovnávacie pamäte s pevnou veľkosťou. Prítomnosť stubov namiesto kontrol, ktoré vždy vracajú „true“, ako aj zabudnuté ladiace printfs s výstupom parametrov používaných na šifrovanie a použitie funkcie spánku na zamedzenie rasových podmienok hovorí veľa o kvalite kódu.

Niektoré časti kódu, ako napríklad funkcia crypto_xor, boli prenesené z implementácie WireGuard vyvinutej pre Linux v rozpore s licenciou GPL. Výsledkom bolo, že Jason Donenfield spolu s Kyleom Evansom a Mattom Dunwoodiem (autor WireGuard portu pre OpenBSD) prevzali úlohu prepracovať problematickú implementáciu a do týždňa kompletne vymenili všetok kód vývojára najatého Netgate. . Upravená verzia bola vydaná ako samostatná sada opráv, umiestnená v úložisku projektu WireGuard a ešte nebola zahrnutá do FreeBSD.

Zaujímavé je, že spočiatku neboli žiadne známky problémov; Netgate, ktorý chcel mať možnosť používať WireGuard v distribúcii pfSense, najala Matthewa Macyho, ktorý sa dobre vyzná v jadre FreeBSD a sieťovom zásobníku, podieľa sa na opravách chýb a má skúsenosti s vývojom sieťové ovládače pre tento operačný systém. Macy dostal flexibilný rozvrh bez termínov alebo priebežných kontrol. Vývojári, ktorí sa stretli s Macym počas práce na FreeBSD, ho opísali ako talentovaného a profesionálneho programátora, ktorý nerobil viac chýb ako ostatní a adekvátne reagoval na kritiku. Nízka kvalita implementačného kódu WireGuard pre FreeBSD ich prekvapila.

Po 9 mesiacoch práce pridal Macy svoju implementáciu do vetvy HEAD, ktorá bola použitá na formulovanie vydania FreeBSD 13, minulý rok v decembri bez dokončenia partnerskej kontroly a testovania.Vývoj prebehol bez komunikácie s vývojármi pôvodného WireGuard a Porty OpenBSD a NetBSD. Vo februári Netgate integroval WireGuard do stabilného vydania pfSense 2.5.0 a začal dodávať firewally založené na ňom. Po zistení problémov bol kód WireGuard odstránený z pfSense.

Pridaný kód odhalil kritické zraniteľnosti, ktoré boli použité pri 0-day exploitoch, ale Netgate najprv existenciu zraniteľností neuznal a pokúsil sa obviniť vývojára pôvodného WireGuardu z útokov a zaujatosti, čo negatívne ovplyvnilo jeho reputáciu. Vývojár portov spočiatku odmietal tvrdenia o kvalite kódu a považoval ich za prehnané, ale po preukázaní chýb upozornil na skutočnosť, že skutočne dôležitým problémom je chýbajúca správna kontrola kvality kódu vo FreeBSD, pretože problémy zostali dlhé mesiace neodhalené. (Zástupcovia Netgate uviedli, že verejná recenzia bola spustená už v auguste 2020, ale jednotliví vývojári FreeBSD poznamenali, že v Phabricatore recenziu uzavrel Macy bez dokončenia a s ignorovaním komentárov). Základný tím FreeBSD reagoval na incident prísľubom modernizácie procesov kontroly kódu.

Matthew Macy, vývojár problematického portu FreeBSD, situáciu komentoval slovami, že urobil veľkú chybu, keď sa úlohy ujal bez toho, aby bol pripravený projekt implementovať. Macy vysvetľuje výsledný výsledok emocionálnym vyhorením a výsledkom problémov, ktoré vznikli v dôsledku post-Covid syndrómu. Macy zároveň nenašiel odhodlanie opustiť záväzky, ktoré už prevzal, a pokúsil sa projekt dotiahnuť do konca.

Macyho stav mohol ovplyvniť aj nedávny trest odňatia slobody, ktorý dostal za nelegálny pokus vysťahovať nájomníkov z domu, ktorý kúpil a ktorí neboli ochotní sa dobrovoľne vysťahovať. Namiesto toho s manželkou rozpílili podlahové trámy a vylámali diery do podláh, aby sa dom stal neobývateľným a tiež sa snažili zastrašiť obyvateľov, vlámali sa do obývaných bytov a vynášali ich veci (akcia bola klasifikovaná ako vlámanie). Aby sa vyhli zodpovednosti za svoje činy, Macy a jeho manželka utiekli do Talianska, boli však vydaní do Spojených štátov a odsedeli si viac ako štyri roky vo väzení.

Zdroj: opennet.ru

Pridať komentár