FreeBSD 13 pothuajse përfundoi me një implementim hacked të WireGuard me shkelje të licencës dhe dobësi

Nga baza e kodit në të cilën u bazua lëshimi i FreeBSD 13, kodi me zbatimin e protokollit WireGuard VPN, i zhvilluar me urdhër të Netgate pa konsultim me zhvilluesit e WireGuard origjinal dhe tashmë i përfshirë në lëshimet e qëndrueshme të shpërndarjes pfSense. u hoq me një skandal. Pas shqyrtimit të kodit nga Jason A. Donenfeld, autori i WireGuard origjinal, doli se zbatimi i propozuar i FreeBSD i WireGuard ishte një pjesë e kodit të shkallës së ulët që ishte e mbushur me tejmbushje buferi dhe shkelte licencën GPL.

Në zbatim u gjetën të meta katastrofike në kodin e kriptografisë, një pjesë e protokollit WireGuard u hoq, pati gabime që çuan në rrëzimin e kernelit dhe anashkalimin e metodave të mbrojtjes, u përdorën buferë me madhësi fikse për të dhënat hyrëse. Shumë në lidhje me cilësinë e kodit është prania e cungëve në vend të kontrolleve që kthejnë gjithmonë vlerën "e vërtetë", si dhe printimet e harruara të korrigjimit me daljen e parametrave të përdorur për enkriptim dhe përdorimin e funksionit të gjumit për të parandaluar garën kushtet.

Disa pjesë të kodit, si funksioni crypto_xor, janë transferuar nga zbatimi Linux i WireGuard në kundërshtim me GPL. Si rezultat, Jason Donenfield, së bashku me Kyle Evans dhe Matt Dunwoodie (autor i portit WireGuard për OpenBSD), u përpoqën të ripunonin zbatimin problematik dhe brenda një jave zëvendësuan plotësisht të gjithë kodin e zhvilluesit të punësuar nga Netgate. Versioni i ripunuar u lëshua si një grup i veçantë arnimesh, të vendosura në depon e projektit WireGuard dhe nuk është përfshirë ende në FreeBSD.

Është interesante se fillimisht asgjë nuk shkaktoi telashe, Netgate, i cili donte të ishte në gjendje të përdorte WireGuard në shpërndarjen pfSense, punësoi Matthew Macy, i cili është i përgatitur mirë në kernelin e FreeBSD dhe rrjetin e rrjetit, i përfshirë në rregullimin e gabimeve dhe ka përvojë në zhvillimin e drejtuesve të rrjetit për këtë sistem operativ. Macy-t iu dha një orar falas pa afate apo kontrolle të ndërmjetme. Zhvilluesit që kaluan rrugët me Macy gjatë punës në FreeBSD e karakterizuan atë si një programues të talentuar dhe profesionist, duke mos bërë më shumë gabime se të tjerët dhe duke iu përgjigjur në mënyrë adekuate kritikave. Cilësia e mjerueshme e kodit të zbatimit të FreeBSD të WireGuard i befasoi ata.

Pas 9 muajsh punë dhjetorin e kaluar, Macy shtoi zbatimin e tij në degën HEAD, e cila u përdor për të formësuar lëshimin e FreeBSD 13, pa përfunduar ndonjë rishikim ose testim nga kolegët. Në shkurt, Netgate integroi WireGuard në lëshimin e qëndrueshëm të pfSense 2.5.0 dhe filloi të dërgonte mbrojtëse kabllore bazuar në të. Pasi u identifikuan problemet, kodi WireGuard u hoq nga pfSense.

Dobësitë kritike u identifikuan në kodin e shtuar, të cilat u përdorën në shfrytëzime 0-ditore, por Netgate në fillim nuk njohu ekzistencën e dobësive dhe u përpoq të akuzonte zhvilluesin e WireGuard origjinal për sulme dhe paragjykime, gjë që ndikoi negativisht në reputacionin e saj. Zhvilluesi i portit fillimisht hodhi poshtë pretendimet për cilësinë e kodit si të ekzagjeruara, por pasi tregoi gabimet, ai vuri re se problemi me të vërtetë i rëndësishëm ishte mungesa e rishikimit të duhur të cilësisë së kodit në FreeBSD, sepse problemet mbetën pa u vënë re për shumë muaj (Netgate përfaqësuesit treguan se publiku rishikimi u lançua që në gusht 2020, por zhvilluesit individualë të FreeBSD vunë re se në Phabricator, rishikimi u mbyll nga Macy pa ekzekutim dhe duke injoruar komentet). Ekipi kryesor i FreeBSD iu përgjigj incidentit me një premtim për të modernizuar proceset e tyre të rishikimit të kodit.

Matthew Macy, zhvilluesi i portit problematik për FreeBSD, komentoi se ai bëri një gabim të madh duke marrë përsipër punën, duke mos qenë gati për të zbatuar këtë projekt. Macy shpjegon rezultatin që rezulton me djegien emocionale dhe rezultatin e problemeve që kanë lindur për shkak të sindromës post-COVID. Në të njëjtën kohë, Macy nuk gjeti vendosmërinë për të hequr dorë nga detyrimet e marra tashmë dhe u përpoq ta çonte projektin deri në fund.

Gjendja e Macy mund të jetë ndikuar edhe nga një dënim i fundit me burg, të cilin ai e mori për veprime të paligjshme në një përpjekje për të dëbuar qiramarrësit nga një shtëpi që ai bleu, të cilët nuk donin të shpërnguleshin vullnetarisht. Në vend të kësaj, me gruan e tij, ata panë trarët e dyshemesë dhe hapën vrima në dysheme për ta bërë shtëpinë të pabanueshme, si dhe u përpoqën të frikësonin qiramarrësit, hynë në banesat e banuara dhe nxorrën sendet (veprimi u cilësua si vjedhje). . Për të shmangur përgjegjësinë për veprimet e tij, Macy iku në Itali me gruan e tij, por u ekstradua në Shtetet e Bashkuara dhe kreu më shumë se katër vjet burg.

Burimi: opennet.ru

Shto një koment