În FreeBSD 13 a existat o implementare nesatisfăcătoare a WireGuard, cu încălcări de licență și vulnerabilități.

Din baza de cod pe care s-a fundamentat lansarea FreeBSD 13, a fost eliminat, cu scandal, codul implementării protocolului VPN WireGuard, dezvoltat la cererea companiei Netgate, fără consultarea dezvoltatorilor originali ai WireGuard, și deja inclus în versiunile stabile ale distribuției pfSense. După o verificare a codului efectuată de Jason A. Donenfeld, autorul original al WireGuard, s-a constatat că implementarea propusă pentru FreeBSD era un exemplu de cod de calitate inferioară, plin de depășiri de buffer și încălcând licența GPL.

În implementare au fost găsite deficiențe catastrofale în codul de criptografie, o parte a protocolului WireGuard a fost omisă, au fost prezenți erori care duceau la blocarea nucleului și ocolirea metodelor de protecție, pentru datele de intrare au fost folosite buffere de dimensiuni fixe. Despre calitatea codului vorbește mult și prezența stub-urilor în locul verificărilor, care returnează întotdeauna valoarea „true”, precum și printf-uri de depanare uitate, care scoteau parametrii utilizați pentru criptare și utilizarea funcției sleep pentru a preveni condițiile de cursă.

Unele părți din cod, cum ar fi funcția crypto_xor, au fost transferate, în încălcarea licenței GPL, din implementarea WireGuard dezvoltată pentru Linux. În final, Jason Donenfeld împreună cu Kyle Evans și Matt Dunwoodie, autorul portului WireGuard pentru OpenBSD, s-au apucat de refacerea implementării problematice și în decurs de o săptămână au înlocuit complet tot codul dezvoltat de Netgate. Varianta refăcută a fost lansată sub formă de set de patch-uri, plasată în depozitul proiectului WireGuard și până acum nu a fost inclusă în FreeBSD.

Este interesant că, inițial, nimic nu prevestea problemele. Compania Netgate, care dorea să integreze WireGuard în distribuția pfSense, l-a angajat pe Matthew Macy, un expert în nucleul și stiva de rețea FreeBSD, implicat în corectarea erorilor și având experiență în dezvoltarea driverelor de rețea pentru acest sistem de operare. Macy a avut un program flexibil, fără termene limită și verificări intermediare. Dezvoltatorii care au colaborat cu Macy pe FreeBSD l-au descris ca pe un programator talentat și profesionist, care nu făcea mai multe greșeli decât alții și reacționa adecvat la critici. Calitatea slabă a codului implementării WireGuard pentru FreeBSD a fost o surpriză pentru ei.

După 9 luni de muncă, în decembrie anul trecut, Macy a adăugat implementarea sa în ramura HEAD, utilizată pentru generarea versiunii FreeBSD 13, fără a finaliza revizuirea și testarea din partea participanților externi. Dezvoltarea a fost realizată fără interacțiune cu dezvoltatorii originali ai WireGuard și porturilor pentru OpenBSD și NetBSD. În februarie, compania Netgate a integrat WireGuard în versiunea stabilă pfSense 2.5.0 și a început livrarea firewall-urilor pe baza acesteia. După identificarea problemelor, codul WireGuard a fost eliminat din pfSense.

În codul adăugat au fost identificate vulnerabilități critice, care au fost utilizate în exploatări 0-day. Totuși, Netgate nu a recunoscut inițial existența acestor vulnerabilități și a încercat să-l acuze pe dezvoltatorul original al WireGuard de atacuri și prejudecăți, ceea ce a afectat negativ reputația sa. Dezvoltatorul portului a negat inițial acuzațiile legate de calitatea codului, considerându-le exagerate, însă după demonstrarea erorilor, a recunoscut că cea mai importantă problemă era lipsa unei revizuiri adecvate a calității codului în FreeBSD, deoarece problemele au rămas neobservate timp de câteva luni (reprezentanții Netgate au menționat că revizuirea publică a fost lansată încă din august 2020, dar dezvoltatorii individuali ai FreeBSD au observat că revizuirea în Phabricator a fost închisă de Macy fără a fi realizată și ignorând comentariile). Echipa FreeBSD Core Team a reacționat la incident promițând să îmbunătățească procesele de verificare a codului.

Matthew Maisey, dezvoltatorul portului problematic pentru FreeBSD, a comentat situația spunând că a făcut o mare greșeală acceptând să lucreze la acest proiect, fiind nepregătit să-l realizeze. Rezultatul obținut de Maisey este explicat prin epuizarea emoțională și prin efectele problemelor apărute din cauza sindromului post-COVID. De asemenea, Maisey nu a găsit curajul de a renunța la angajamentele deja asumate și a încercat să ducă proiectul la bun sfârșit.

Starea lui Maisey a fost, de asemenea, influențată de recentul său termen de închisoare, pe care l-a primit pentru fapte ilegale în încercarea de a evacua chiriașii din casa achiziționată de el, care refuzau să părăsească locuința în mod voluntar. Împreună cu soția sa, au tăiat grinzi de suport și au făcut găuri în podea pentru a face casa nelocuibilă, încercând totodată să intimideze chiriașii, au spart apartamentele închiriate și au furat bunurile acestora (acțiunea a fost calificată drept furt prin efracție). Pentru a evita responsabilitatea pentru faptele comise, Maisey și soția sa au fugit în Italia, dar au fost extradati în SUA și au stat mai bine de patru ani în închisoare.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster