Ang FreeBSD 13 ay halos natapos sa isang hacky na pagpapatupad ng WireGuard na may mga paglabag sa lisensya at mga kahinaan

Mula sa code base kung saan nakabatay ang FreeBSD 13 release, ang code na may pagpapatupad ng WireGuard VPN protocol, na binuo ayon sa pagkakasunud-sunod ng Netgate nang walang konsultasyon sa mga developer ng orihinal na WireGuard, at kasama na sa mga stable na release ng pfSense distribution, ay tinanggal na may isang iskandalo. Matapos suriin ang code ni Jason A. Donenfeld, ang may-akda ng orihinal na WireGuard, lumabas na ang iminungkahing FreeBSD na pagpapatupad ng WireGuard ay isang piraso ng mababang-grade code na puno ng buffer overflows at lumabag sa lisensya ng GPL.

Ang mga sakuna na flaws sa cryptography code ay natagpuan sa pagpapatupad, ang bahagi ng WireGuard protocol ay tinanggal, may mga error na humantong sa pag-crash ng kernel at bypass ng mga pamamaraan ng proteksyon, ang mga fixed-size na buffer ay ginamit para sa data ng pag-input. Marami tungkol sa kalidad ng code ay ang pagkakaroon ng mga stub sa halip na mga tseke na palaging nagbabalik ng halagang "totoo", pati na rin ang nakalimutang mga debug printfs na may output ng mga parameter na ginagamit para sa pag-encrypt, at ang paggamit ng sleep function upang maiwasan ang lahi. kundisyon.

Ang ilang bahagi ng code, tulad ng crypto_xor function, ay na-port mula sa Linux na pagpapatupad ng WireGuard na lumalabag sa GPL. Bilang resulta, si Jason Donenfield, kasama sina Kyle Evans at Matt Dunwoodie (may-akda ng WireGuard port para sa OpenBSD), ay nagtakda tungkol sa muling paggawa ng problemang pagpapatupad at sa isang linggo ay ganap na pinalitan ang lahat ng code ng developer na tinanggap ng Netgate. Ang reworked na bersyon ay inilabas bilang isang hiwalay na hanay ng mga patch, inilagay sa WireGuard project repository at hindi pa kasama sa FreeBSD.

Kapansin-pansin, sa una ay walang problema, ang Netgate, na gustong magamit ang WireGuard sa pfSense distribution, ay kumuha kay Matthew Macy, na bihasa sa FreeBSD kernel at networking stack, na kasangkot sa pag-aayos ng bug at may karanasan sa pagbuo ng mga driver ng network para sa ang operating system na ito. Binigyan si Macy ng libreng iskedyul na walang mga deadline o intermediate check. Tinukoy siya ng mga developer na nagkrus ang landas kay Macy habang nagtatrabaho sa FreeBSD bilang isang mahuhusay at propesyonal na programmer, na hindi na nagkakamali kaysa sa iba at sapat na tumutugon sa mga kritisismo. Ang nakalulungkot na kalidad ng code ng pagpapatupad ng FreeBSD ng WireGuard ay nagulat sa kanila.

Pagkatapos ng 9 na buwang trabaho noong nakaraang Disyembre, idinagdag ni Macy ang kanyang pagpapatupad sa sangay ng HEAD, na ginamit upang hubugin ang release ng FreeBSD 13, nang hindi kumukumpleto ng anumang peer review o pagsubok. Noong Pebrero, isinama ng Netgate ang WireGuard sa stable na release ng pfSense 2.5.0 at nagsimulang magpadala ng mga wireguard batay dito. Pagkatapos matukoy ang mga isyu, inalis ang WireGuard code sa pfSense.

Natukoy ang mga kritikal na kahinaan sa idinagdag na code, na ginamit sa 0-araw na pagsasamantala, ngunit sa una ay hindi nakilala ng Netgate ang pagkakaroon ng mga kahinaan at sinubukang akusahan ang developer ng orihinal na WireGuard ng mga pag-atake at pagkiling, na negatibong nakaapekto sa reputasyon nito. Ang nag-develop ng port sa una ay tinanggihan ang mga claim sa kalidad ng code bilang pinalaking, ngunit pagkatapos na ipakita ang mga bug, napansin niya na ang talagang mahalagang problema ay ang kakulangan ng tamang pagsusuri ng kalidad ng code sa FreeBSD, dahil ang mga problema ay nanatiling hindi napapansin sa loob ng maraming buwan (Netgate ipinahiwatig ng mga kinatawan na ang pagsusuri ay inilunsad sa publiko noong Agosto 2020, ngunit nabanggit ng mga indibidwal na developer ng FreeBSD na sa Phabricator, ang pagsusuri ay isinara ni Macy nang walang pagpapatupad at hindi pinapansin ang mga komento). Ang FreeBSD Core Team ay tumugon sa insidente na may pangakong i-modernize ang kanilang mga proseso sa pagsusuri ng code.

Si Matthew Macy, ang nag-develop ng problemang port para sa FreeBSD, ay nagkomento na gumawa siya ng isang malaking pagkakamali sa pamamagitan ng pagkuha sa trabaho, hindi pa handa na ipatupad ang proyektong ito. Ipinaliwanag ni Macy ang resulta ng emosyonal na pagkasunog at ang resulta ng mga problemang lumitaw dahil sa post-COVID syndrome. Kasabay nito, hindi nakita ni Macy ang determinasyon na talikuran ang mga obligasyong nagawa na at sinubukang tapusin ang proyekto.

Maaaring naapektuhan din ang kalagayan ni Macy ng kamakailang pagkabilanggo, na natanggap niya para sa mga iligal na aksyon sa pagtatangkang paalisin ang mga nangungupahan sa isang bahay na binili niya na ayaw lumipat ng kusang-loob. Sa halip, kasama ang kanyang asawa, nilagari nila ang mga beam sa sahig at sinira ang mga butas sa sahig upang gawing hindi matirahan ang bahay, at sinubukan din na takutin ang mga nangungupahan, sinira ang mga apartment at kinuha ang mga gamit (ang aksyon ay kwalipikado bilang isang pagnanakaw) . Upang maiwasan ang pananagutan sa kanyang mga aksyon, tumakas si Macy sa Italya kasama ang kanyang asawa, ngunit ipinalabas sa Estados Unidos at nagsilbi ng higit sa apat na taon sa bilangguan.

Pinagmulan: opennet.ru

Magdagdag ng komento