A FreeBSD 13 kis híján a WireGuard egy hackelt implementációjával végződött licencsértésekkel és sérülékenységekkel

A FreeBSD 13 kiadásának alapjául szolgáló kódbázisból botrányos módon a Netgate megrendelésére, az eredeti WireGuard fejlesztőivel való egyeztetés nélkül kifejlesztett WireGuard VPN protokollt megvalósító kód, amely már szerepelt a pfSense disztribúció stabil kiadásaiban. eltávolították. Jason A. Donenfeld, az eredeti WireGuard szerzője által végzett kódellenőrzés után kiderült, hogy a FreeBSD által javasolt WireGuard megvalósítása egy silány kód volt, tele puffertúlcsordulásokkal és megsérti a GPL-t.

A megvalósítás katasztrofális hibákat tartalmazott a kriptográfiai kódban, a WireGuard protokoll egy része kimaradt, előfordultak olyan hibák, amelyek a kernel összeomlásához és a biztonsági módszerek megkerüléséhez vezettek, valamint fix méretű puffereket használtak a bemeneti adatokhoz. A kód minőségéről sokat elárul a mindig „true”-t visszaadó ellenőrzések helyett a csonkok jelenléte, valamint a titkosításhoz használt paraméterek kimenetével elfelejtett printf-ek hibakeresése, illetve a versenykörülmények megelőzésére szolgáló alvás funkció használata.

A kód egyes részeit, például a crypto_xor függvényt a Linuxra fejlesztett WireGuard implementációból portolták át, ami megsérti a GPL licencet. Ennek eredményeként Jason Donenfield, Kyle Evans és Matt Dunwoodie (az OpenBSD WireGuard portjának szerzője) vállalta a problémás implementáció átdolgozását, és egy héten belül teljesen lecserélték a Netgate által bérelt fejlesztő összes kódját. . A módosított verziót külön javításkészletként adták ki, a WireGuard projekt tárolójában helyezték el, és még nem került bele a FreeBSD-be.

Érdekes módon kezdetben semmi jele nem volt a bajnak; a Netgate, amely a pfSense disztribúcióban használni akarta a WireGuard-ot, felvette Matthew Macyt, aki jól ismeri a FreeBSD rendszermagot és a hálózati veremet, részt vesz a hibajavításokban és tapasztalattal rendelkezik a fejlesztésben. hálózati illesztőprogramok ehhez az operációs rendszerhez. Macy rugalmas ütemezést kapott határidők és félidős ellenőrzések nélkül. A fejlesztők, akik találkoztak Macyvel, miközben a FreeBSD-n dolgoztak, tehetséges és professzionális programozóként írták le, aki nem hibázott többet, mint mások, és megfelelően reagált a kritikákra. A FreeBSD WireGuard implementációs kódjának gyenge minősége meglepetésként érte őket.

9 hónapos munka után Macy tavaly decemberben hozzáadta implementációját a HEAD ághoz, amelyből a FreeBSD 13 kiadást megfogalmazták, szakértői értékelés és tesztelés nélkül. A fejlesztés az eredeti WireGuard fejlesztőivel és a OpenBSD és NetBSD portok. Februárban a Netgate integrálta a WireGuard-ot a pfSense 2.5.0 stabil kiadásába, és megkezdte az arra épülő tűzfalak szállítását. A problémák azonosítása után a WireGuard kódot eltávolították a pfSense-ből.

A hozzáadott kód kritikus sebezhetőségeket tárt fel, amelyeket a 0-napos exploitokban használtak, de a Netgate először nem ismerte el a sebezhetőségek létezését, és megpróbálta támadásokkal és elfogultságokkal vádolni az eredeti WireGuard fejlesztőjét, ami negatívan befolyásolta a hírnevét. A portfejlesztő eleinte visszautasította és eltúlzottnak tartotta a kódminőségre vonatkozó állításokat, de a hibák kimutatása után felhívta a figyelmet arra, hogy az igazán fontos probléma a FreeBSD kódminőség megfelelő felülvizsgálatának hiánya, mivel a problémák hónapokig észrevétlenek maradtak. (A Netgate képviselői jelezték, hogy a felülvizsgálat nyilvánosan 2020 augusztusában indult, de az egyes FreeBSD-fejlesztők megjegyezték, hogy a Phabricatorban a Macy befejezés nélkül és a megjegyzések figyelmen kívül hagyásával zárta le a felülvizsgálatot). A FreeBSD Core Team az incidensre reagálva ígéretet tett a kód-ellenőrzési folyamatok modernizálására.

Matthew Macy, a problémás FreeBSD-port fejlesztője úgy kommentálta a helyzetet, hogy nagy hibát követett el, amikor elvállalta a munkát anélkül, hogy készen állt volna a projekt megvalósítására. Macy az eredményt az érzelmi kiégéssel és a poszt-Covid-szindróma miatt felmerült problémákkal magyarázza. Macy ugyanakkor nem találta elszántságát, hogy felhagyjon a már vállalt kötelezettségeivel, és megpróbálta befejezni a projektet.

Macy állapotát az is befolyásolhatta, hogy a közelmúltban börtönbüntetést kapott, mert illegálisan megpróbálta kilakoltatni azokat a bérlőket, akiket vásárolt otthonából, akik nem voltak hajlandók önként elköltözni. Ehelyett feleségével lefűrészelték a födémgerendákat és lyukakat törtek be a padlókon, hogy a házat lakhatatlanná tegyék, illetve megpróbálták megfélemlíteni a lakókat, lakott lakásokba törtek be, és kivitték a holmijukat (az akciót betörésnek minősítették). A tetteiért való felelősség elkerülése érdekében Macy és felesége Olaszországba menekültek, de kiadták őket az Egyesült Államoknak, és több mint négy év börtönt töltöttek.

Forrás: opennet.ru

Hozzászólás