FreeBSD 13 zamalo je završio s hakiranom implementacijom WireGuarda s kršenjem licence i ranjivostima

Iz baze koda na kojoj je formirano izdanje FreeBSD 13, kod koji implementira WireGuard VPN protokol, razvijen po narudžbi Netgatea bez konzultacija s programerima originalnog WireGuarda, i već uključen u stabilna izdanja distribucije pfSense, skandalozno je uklonjeni. Nakon pregleda koda od strane Jasona A. Donenfelda, autora originalnog WireGuarda, ispostavilo se da je FreeBSD-ova predložena implementacija WireGuarda bila komad lošeg koda, prožet preljevima međuspremnika i kršenjem GPL-a.

Implementacija je sadržavala katastrofalne nedostatke u kriptografskom kodu, izostavljen je dio WireGuard protokola, bilo je grešaka koje su dovele do pada kernela i zaobilaženja sigurnosnih metoda, a za unos podataka korišteni su međuspremnici fiksne veličine. Prisutnost stubova umjesto provjera koje uvijek vraćaju "true", kao i zaboravljeni printfs za otklanjanje pogrešaka s ispisom parametara koji se koriste za šifriranje, te korištenje funkcije mirovanja za sprječavanje uvjeta utrke govore mnogo o kvaliteti koda.

Neki dijelovi koda, kao što je funkcija crypto_xor, preneseni su iz implementacije WireGuard razvijene za Linux, čime se krši GPL licenca. Kao rezultat toga, Jason Donenfield, zajedno s Kyleom Evansom i Mattom Dunwoodiejem (autorom WireGuard porta za OpenBSD), preuzeo je zadatak preraditi problematičnu implementaciju i u roku od tjedan dana potpuno zamijenio sav kod programera kojeg je angažirao Netgate . Modificirana verzija objavljena je kao zaseban skup zakrpa, smješten u repozitorij projekta WireGuard i još nije uključen u FreeBSD.

Zanimljivo, u početku nije bilo znakova problema; Netgate, koji je želio koristiti WireGuard u distribuciji pfSense, angažirao je Matthewa Macyja, koji je dobro upućen u FreeBSD kernel i mrežni skup, uključen je u ispravke grešaka i ima iskustva u razvoju mrežni upravljački programi za ovaj operativni sustav. Macy je dobila fleksibilan raspored bez rokova ili provjera među rokovima. Programeri koji su Macyja upoznali radeći na FreeBSD-u opisali su ga kao talentiranog i profesionalnog programera koji nije griješio više od drugih i adekvatno je odgovarao na kritike. Loša kvaliteta WireGuard implementacijskog koda za FreeBSD za njih je bila iznenađenje.

Nakon 9 mjeseci rada, Macy je dodao svoju implementaciju grani HEAD, koja je korištena za formuliranje izdanja FreeBSD 13, prošlog prosinca bez dovršetka recenzije i testiranja. Razvoj je obavljen bez komunikacije s programerima izvornog WireGuarda i OpenBSD i NetBSD priključci. U veljači je Netgate integrirao WireGuard u stabilno izdanje pfSense 2.5.0 i počeo isporučivati ​​vatrozide temeljene na njemu. Nakon što su identificirani problemi, WireGuard kod je uklonjen iz pfSense.

Dodani kod otkrio je kritične ranjivosti koje su korištene u 0-dnevnim eksploatacijama, ali Netgate isprva nije priznao postojanje ranjivosti i pokušao je optužiti programera izvornog WireGuarda za napade i pristranost, što je negativno utjecalo na njegovu reputaciju. Programer porta u početku je odbacio tvrdnje o kvaliteti koda i smatrao ih pretjeranim, ali nakon demonstracije pogrešaka, skrenuo je pozornost na činjenicu da je stvarno važan problem nedostatak odgovarajućeg pregleda kvalitete koda u FreeBSD-u, jer su problemi ostali neotkriveni mnogo mjeseci (Predstavnici Netgatea naveli su da je javna recenzija pokrenuta još u kolovozu 2020., ali pojedinačni programeri FreeBSD-a primijetili su da je Macy u Phabricatoru recenziju zatvorio bez dovršetka i uz ignorirane komentare). FreeBSD Core Team je odgovorio na incident obećanjem da će modernizirati svoje procese pregleda koda.

Matthew Macy, programer problematičnog FreeBSD porta, komentirao je situaciju rekavši da je napravio veliku pogrešku što se prihvatio posla, a da nije bio spreman implementirati projekt. Dobiveni rezultat Macy objašnjava emocionalnim izgaranjem i posljedicom problema nastalih zbog postcovidnog sindroma. Istodobno, Macy nije smogao odlučnosti da odustane od već preuzetih obveza i pokušao je dovesti projekt do kraja.

Na Macyjevo stanje također je mogla utjecati nedavna zatvorska kazna koju je dobio zbog nezakonitog pokušaja iseljenja stanara iz kuće koju je kupio, a koji se nisu htjeli dobrovoljno iseliti. Umjesto toga, on i supruga su pilili podne grede i izbijali podove kako bi kuću učinili neupotrebljivom za stanovanje, a uz to su pokušali zastrašiti stanovnike, provaljivali u stanove i iznosili njihove stvari (akcija je okvalificirana kao provala). Kako bi izbjegao odgovornost za svoje postupke, Macy i njegova supruga pobjegli su u Italiju, ali su izručeni Sjedinjenim Državama i odslužili više od četiri godine zatvora.

Izvor: opennet.ru

Dodajte komentar