FreeBSD 13-ը գրեթե ավարտվեց WireGuard-ի կեղծ ներդրմամբ՝ լիցենզիայի խախտումներով և խոցելիությամբ

Կոդի հիմքից, որի վրա ձևավորվել է FreeBSD 13 թողարկումը, Netgate-ի պատվերով մշակված WireGuard VPN արձանագրությունն իրականացնող կոդը՝ առանց նախնական WireGuard-ի մշակողների հետ խորհրդակցելու և արդեն ներառված pfSense բաշխման կայուն թողարկումներում, սկանդալային էր։ հեռացված. Բնօրինակ WireGuard-ի հեղինակ Ջեյսոն Ա. Դոնենֆելդի կողմից կոդերի վերանայումից հետո պարզվեց, որ FreeBSD-ի առաջարկած WireGuard-ի ներդրումը անպիտան կոդ էր, որը լի էր բուֆերային հոսքերով և խախտում GPL-ը:

Իրականացումը պարունակում էր գաղտնագրման կոդի աղետալի թերություններ, WireGuard արձանագրության մի մասը բաց է թողնվել, կային սխալներ, որոնք հանգեցրել են միջուկի խափանման և անվտանգության մեթոդների շրջանցմանը, իսկ մուտքային տվյալների համար օգտագործվել են ֆիքսված չափի բուֆերներ: Չեկերի փոխարեն կոճղերի առկայությունը, որոնք միշտ վերադարձնում են «ճշմարիտ», ինչպես նաև մոռացված վրիպազերծող printf-ները՝ գաղտնագրման համար օգտագործվող պարամետրերով, և քնի գործառույթի օգտագործումը՝ մրցավազքի պայմանները կանխելու համար, շատ բան են ասում կոդի որակի մասին:

Կոդի որոշ մասեր, օրինակ՝ crypto_xor ֆունկցիան, տեղափոխվել են Linux-ի համար մշակված WireGuard ներդրումից՝ խախտելով GPL լիցենզիան: Արդյունքում, Ջեյսոն Դոնենֆիլդը Քայլ Էվանսի և Մեթ Դանվուդիի հետ միասին (WireGuard նավահանգիստ OpenBSD-ի հեղինակ), ստանձնեցին խնդրահարույց իրականացումը վերամշակելու խնդիրը և մեկ շաբաթվա ընթացքում ամբողջությամբ փոխարինեցին Netgate-ի կողմից վարձված մշակողի բոլոր ծածկագրերը։ . Փոփոխված տարբերակը թողարկվել է որպես առանձին կարկատան, տեղադրված է WireGuard նախագծի պահոցում և դեռ ներառված չէ FreeBSD-ում։

Հետաքրքիր է, որ սկզբում անհանգստության նշաններ չկային. Netgate-ը, որը ցանկանում էր օգտագործել WireGuard-ը pfSense բաշխման մեջ, վարձեց Մեթյու Մեյսիին, ով լավ տիրապետում է FreeBSD միջուկին և ցանցային ստեկին, զբաղվում է սխալների շտկմամբ և զարգացման փորձ ունի։ ցանցային դրայվերներ այս օպերացիոն համակարգի համար: Մեյսիին տրվեց ճկուն ժամանակացույց՝ առանց վերջնաժամկետների կամ միջանկյալ ստուգումների: Ծրագրավորողները, ովքեր հանդիպել են Մեյսիին FreeBSD-ում աշխատելիս, նկարագրել են նրան որպես տաղանդավոր և պրոֆեսիոնալ ծրագրավորող, ով ավելի շատ սխալներ չի արել, քան մյուսները և համարժեք արձագանքել է քննադատությանը: FreeBSD-ի համար WireGuard-ի ներդրման կոդի վատ որակը նրանց համար անակնկալ էր:

9-ամսյա աշխատանքից հետո Մեյսին ավելացրեց իր կատարումը HEAD մասնաճյուղում, որն օգտագործվել էր FreeBSD 13 թողարկումը ձևակերպելու համար, անցած դեկտեմբերին՝ առանց գործընկերների վերանայման և թեստավորման ավարտի: Զարգացումն իրականացվել է առանց նախնական WireGuard-ի և ծրագրավորողների հետ շփման: OpenBSD և NetBSD պորտեր: Փետրվարին Netgate-ը ինտեգրեց WireGuard-ը pfSense 2.5.0-ի կայուն թողարկման մեջ և սկսեց առաքել դրա վրա հիմնված firewalls: Խնդիրները հայտնաբերելուց հետո WireGuard կոդը հեռացվեց pfSense-ից:

Ավելացված կոդը բացահայտեց կրիտիկական խոցելիություններ, որոնք օգտագործվում էին 0-օրյա շահագործման մեջ, բայց սկզբում Netgate-ը չընդունեց խոցելիության առկայությունը և փորձեց մեղադրել բնօրինակ WireGuard-ի մշակողին հարձակումների և կողմնակալության մեջ, ինչը բացասաբար ազդեց նրա հեղինակության վրա: Նավահանգստի մշակողը ի սկզբանե մերժեց կոդի որակի վերաբերյալ պնդումները և դրանք համարեց չափազանցված, բայց սխալներ ցույց տալուց հետո նա ուշադրություն հրավիրեց այն փաստի վրա, որ իսկապես կարևոր խնդիրը FreeBSD-ում կոդերի որակի պատշաճ վերանայման բացակայությունն է, քանի որ խնդիրները երկար ամիսներ չբացահայտված մնացին: (Netgate-ի ներկայացուցիչները նշել են, որ հրապարակային վերանայումը մեկնարկել է դեռևս 2020 թվականի օգոստոսին, սակայն FreeBSD-ի առանձին մշակողները նշել են, որ Phabricator-ում վերանայումը փակվել է Macy-ի կողմից առանց ավարտի և մեկնաբանությունների անտեսմամբ): FreeBSD-ի հիմնական թիմը արձագանքեց միջադեպին` խոստանալով արդիականացնել իրենց կոդերի վերանայման գործընթացները:

FreeBSD խնդրահարույց պորտի մշակող Մեթյու Մեյսին մեկնաբանել է իրավիճակը՝ ասելով, որ ինքը մեծ սխալ է թույլ տվել՝ ստանձնելով աշխատանքը՝ պատրաստ չլինելով իրականացնել նախագիծը։ Մեյսին բացատրում է ստացված արդյունքը հուզական այրվածքով և հետկովիդային համախտանիշի պատճառով առաջացած խնդիրների հետևանքով։ Միևնույն ժամանակ, Մեյսին վճռականություն չգտավ հրաժարվել արդեն ստանձնած պարտավորություններից և փորձեց ավարտին հասցնել նախագիծը։

Մեյսիի վիճակի վրա կարող է ազդել նաև վերջերս դատապարտված բանտարկությունը, որը նա ստացել էր իր գնած տնից վարձակալներին վտարելու անօրինական փորձի համար, ովքեր չէին ցանկանում ինքնակամ տեղափոխվել: Փոխարենը, նա կնոջ հետ սղոցել է հատակի գերանները և հատակների անցքեր բացել՝ տունն անբնակելի դարձնելու համար, ինչպես նաև փորձել է վախեցնել բնակիչներին, ներխուժել զբաղեցրած բնակարաններ և հանել նրանց իրերը (գործողությունը որակվել է որպես գողություն): Իր գործողությունների համար պատասխանատվությունից խուսափելու համար Մեյսին կնոջ հետ փախել է Իտալիա, սակայն արտահանձնվել է ԱՄՆ և ավելի քան չորս տարի բանտարկվել։

Source: opennet.ru

Добавить комментарий