FreeBSD 13 за малку ќе заврши со хакерска имплементација на WireGuard со прекршувања на лиценци и пропусти

Од основата на кодот на кој беше формирано изданието FreeBSD 13, кодот што го имплементира протоколот WireGuard VPN, развиен по налог на Netgate без консултација со развивачите на оригиналниот WireGuard и веќе вклучен во стабилните изданија на дистрибуцијата pfSense, беше скандалозно отстранети. По прегледот на кодот од страна на Џејсон А. Доненфелд, авторот на оригиналниот WireGuard, се покажа дека предложената имплементација на WireGuard од FreeBSD е дел од неквалитетен код кој бил преполн со преливни бафери и го прекршил GPL.

Имплементацијата содржеше катастрофални недостатоци во кодот за криптографија, дел од протоколот WireGuard беше испуштен, имаше грешки што доведоа до пад на кернелот и заобиколување на безбедносните методи, а се користеа бафери со фиксна големина за влезни податоци. Присуството на никулци наместо проверки кои секогаш враќаат „вистинито“, како и заборавените отпечатоци за отстранување грешки со излезот на параметрите што се користат за шифрирање и употребата на функцијата за спиење за да се спречат условите за трка кажуваат многу за квалитетот на кодот.

Некои делови од кодот, како што е функцијата crypto_xor, беа пренесени од имплементацијата WireGuard развиена за Linux, со што е прекршена лиценцата GPL. Како резултат на тоа, Џејсон Доненфилд, заедно со Кајл Еванс и Мет Данвуди (автор на пристаништето WireGuard за OpenBSD), ја презедоа задачата да ја преработат проблематичната имплементација и, во рок од една недела, целосно го замени целиот код на развивачот ангажиран од Netgate. . Изменетата верзија беше објавена како посебен сет на закрпи, сместена во складиштето на проектот WireGuard и сè уште не е вклучена во FreeBSD.

Интересно, на почетокот немаше знаци на проблеми, Netgate, кој сакаше да може да го користи WireGuard во дистрибуцијата pfSense, го ангажираше Метју Мејси, кој е добро упатен во кернелот на FreeBSD и мрежниот оџак, е вклучен во поправки на грешки и има искуство во развој; мрежни драјвери за овој оперативен систем. На Мејси му беше даден флексибилен распоред без рокови или среднорочни проверки. Програмерите кои го запознале Мејси додека работел на FreeBSD го опишале како талентиран и професионален програмер кој не правел повеќе грешки од другите и одговарал адекватно на критиките. Лошиот квалитет на кодот за имплементација на WireGuard за FreeBSD беше изненадување за нив.

По 9 месеци работа, Мејси ја додаде својата имплементација во гранката HEAD, која беше искористена за формулирање на изданието на FreeBSD 13, минатиот декември без завршување на рецензијата и тестирањето OpenBSD и NetBSD порти. Во февруари, Netgate го интегрираше WireGuard во стабилното издание на pfSense 2.5.0 и започна да испраќа заштитни ѕидови врз основа на него. Откако беа идентификувани проблемите, кодот WireGuard беше отстранет од pfSense.

Додадениот код откри критични пропусти што се користеа во 0-дневните експлоатирања, но на почетокот Netgate не го призна постоењето на пропусти и се обиде да го обвини развивачот на оригиналниот WireGuard за напади и пристрасност, што негативно влијаеше на неговата репутација. Развивачот на пристаништето првично ги отфрли тврдењата за квалитетот на кодот и ги сметаше за претерани, но откако покажа грешки, го привлече вниманието на фактот дека навистина важен проблем е недостатокот на соодветен преглед на квалитетот на кодот во FreeBSD, бидејќи проблемите останаа неоткриени многу месеци. (Претставниците на Netgate посочија дека прегледот во јавноста е лансиран уште во август 2020 година, но поединечни развивачи на FreeBSD забележаа дека во Phabricator прегледот беше затворен од Мејси без довршување и со игнорирани коментари). Основниот тим на FreeBSD одговори на инцидентот со ветување дека ќе ги модернизира нивните процеси за прегледување кодови.

Метју Мејси, развивачот на проблематичната порта FreeBSD, ја коментираше ситуацијата велејќи дека направил голема грешка што ја преземал работата без да биде подготвен да го спроведе проектот. Мејси го објаснува добиениот резултат со емоционално исцрпување и резултат на проблеми кои настанале поради пост-Ковид синдром. Во исто време, Мејси не најде решеност да се откаже од обврските што веќе ги презеде и се обиде да го доведе проектот до крај.

На состојбата на Мејси можеби влијаела и неодамнешната затворска казна што ја доби поради незаконски обид да ги истера станарите од домот што го купил, а кои не сакале доброволно да се иселат. Наместо тоа, тој и неговата сопруга ги скршиле гредите од подот и искршиле дупки на подот за да ја направат куќата непогодна за живеење, а исто така се обиделе да ги заплашат жителите, упаднале во окупираните станови и ги извадиле нивните работи (акцијата е оквалификувана како кражба). За да ја избегне одговорноста за своите постапки, Мејси и неговата сопруга побегнале во Италија, но биле екстрадирани во САД и одлежале повеќе од четири години затвор.

Извор: opennet.ru

Додадете коментар