FreeBSD 13 lõppes peaaegu WireGuardi häkkinud juurutamisega litsentsi rikkumiste ja haavatavustega

Koodibaasist, millele FreeBSD 13 väljalase moodustati, oli skandaalne WireGuard VPN-protokolli rakendav kood, mis töötati välja Netgate'i tellimusel ilma algse WireGuardi arendajatega konsulteerimata ja mis oli juba pfSense'i distributsiooni stabiilsetesse väljaannetesse kaasatud. eemaldatud. Pärast algse WireGuardi autori Jason A. Donenfeldi koodi ülevaatamist selgus, et FreeBSD pakutud WireGuardi juurutamine oli tühine kood, mis oli täis puhvri ületäitumist ja rikub GPL-i.

Teostus sisaldas katastroofilisi vigu krüptograafia koodis, osa WireGuardi protokollist jäeti välja, esines tõrkeid, mis viisid kerneli krahhini ja turvameetoditest möödahiilimiseni ning sisendandmete jaoks kasutati fikseeritud suurusega puhvreid. Koodi kvaliteedi kohta ütlevad palju ka stubide olemasolu kontrollide asemel, mis tagastavad alati “tõene”, samuti unustatud silumine printfs-i krüpteerimiseks kasutatavate parameetrite väljundiga ja unefunktsiooni kasutamine võistlustingimuste vältimiseks.

Mõned koodi osad, näiteks funktsioon crypto_xor, teisaldati Linuxi jaoks välja töötatud WireGuardi juurutusest, rikkudes GPL-i litsentsi. Selle tulemusel võtsid Jason Donenfield koos Kyle Evansi ja Matt Dunwoodie'ga (OpenBSD WireGuardi pordi autor) probleemse juurutuse ümbertöötamise ja asendasid nädala jooksul täielikult kogu Netgate'i palgatud arendaja koodi. . Muudetud versioon ilmus eraldi paikade komplektina, paigutati WireGuardi projektihoidlasse ja seda pole veel FreeBSD-sse lisatud.

Huvitaval kombel polnud esialgu mingeid märke probleemidest; Netgate, kes tahtis pfSense'i distributsioonis kasutada WireGuardi, palkas Matthew Macy, kes tunneb hästi FreeBSD tuuma ja võrgupinu, tegeleb veaparandustega ja omab arenduskogemust. selle operatsioonisüsteemi võrgudraiverid. Macyle anti paindlik ajakava ilma tähtaegade või vahekontrollideta. Arendajad, kes kohtusid Macyga FreeBSD kallal töötades, kirjeldasid teda kui andekat ja professionaalset programmeerijat, kes ei teinud teistest rohkem vigu ja reageeris kriitikale adekvaatselt. FreeBSD WireGuardi juurutuskoodi halb kvaliteet tuli neile üllatusena.

Pärast 9-kuulist tööd lisas Macy eelmise aasta detsembris oma juurutuse HEAD-i harule, mida kasutati FreeBSD 13 väljalaske koostamiseks, ilma vastastikuse eksperdihinnangu ja testimiseta. Arendus tehti ilma algse WireGuardi arendajatega ja OpenBSD ja NetBSD pordid. Veebruaris integreeris Netgate WireGuardi pfSense 2.5.0 stabiilsesse väljalasesse ja alustas sellel põhinevate tulemüüride tarnimist. Pärast probleemide tuvastamist eemaldati pfSense'ist WireGuardi kood.

Lisatud kood paljastas kriitilisi turvaauke, mida kasutati 0-päevastes rünnakutes, kuid alguses ei tunnistanud Netgate turvaaukude olemasolu ja üritas süüdistada algse WireGuardi arendajat rünnakutes ja eelarvamustes, mis mõjutasid negatiivselt tema mainet. Algselt lükkas pordiarendaja väited koodikvaliteedi kohta tagasi ja pidas neid liialdatuks, kuid pärast vigade demonstreerimist juhtis tähelepanu tõsiasjale, et tõeliselt oluline probleem on FreeBSD-s koodikvaliteedi korraliku ülevaatuse puudumine, kuna probleemid jäid paljudeks kuudeks avastamata. (Netgate'i esindajad märkisid, et ülevaatus käivitati avalikult 2020. aasta augustis, kuid üksikud FreeBSD arendajad märkisid, et Phabricatoris sulges Macy arvustuse lõpetamata ja kommentaare ignoreerides). FreeBSD põhimeeskond vastas intsidendile lubades moderniseerida oma koodiülevaatusprotsesse.

Probleemse FreeBSD pordi arendaja Matthew Macy ütles olukorda kommenteerides, et tegi suure vea, kui võttis töö enda peale, olemata valmis projekti ellu viima. Macy seletab saadud tulemust emotsionaalse läbipõlemisega ja COVID-i järgse sündroomi tõttu tekkinud probleemide tagajärjega. Samas ei leidnud Macy meelekindlust juba võetud kohustustest loobuda ja püüdis projekti lõpuni viia.

Macy seisundit võis mõjutada ka hiljutine vanglakaristus, mille ta sai selle eest, et ta üritas ostetud kodust ebaseaduslikult välja tõsta üürnikke, kes ei soovinud vabatahtlikult välja kolida. Selle asemel saagis ta koos abikaasaga maha põrandatalasid ja lõhkus põrandatesse auke, et muuta maja elamiskõlbmatuks, samuti püüdis ta elanikke hirmutada, tungis asustatud korteritesse ja viis välja nende asju (tegevus liigitati sissemurdmiseks). Vältimaks vastutust oma tegude eest põgenesid Macy ja ta naine Itaaliasse, kuid anti välja USA-le ja kandis üle nelja aasta vanglat.

Allikas: opennet.ru

Lisa kommentaar