FreeBSD 13 лицензиялық бұзушылықтар мен осалдықтары бар WireGuard қолданбасын бұзумен аяқталды.

FreeBSD 13 шығарылымы құрылған код базасынан Netgate тапсырысы бойынша түпнұсқа WireGuard әзірлеушілерімен кеңеспей әзірленген және pfSense дистрибутивінің тұрақты шығарылымдарына енгізілген WireGuard VPN протоколын іске асыратын код жанжалды болды. жойылды. Түпнұсқа WireGuard авторы Джейсон А. Доненфельд кодты қарап шыққаннан кейін FreeBSD ұсынған WireGuard енгізуі буфер толып кеткен және GPL талаптарын бұзатын сапасыз кодтың бір бөлігі екені белгілі болды.

Іске асыруда криптографиялық кодтың апатты кемшіліктері болды, WireGuard хаттамасының бір бөлігі алынып тасталды, ядроның бұзылуына және қауіпсіздік әдістерін айналып өтуге әкелетін қателер болды және деректер енгізу үшін бекітілген өлшемді буферлер пайдаланылды. Әрқашан «шын» қайтаратын тексерулердің орнына штрихтардың болуы, сондай-ақ шифрлау үшін пайдаланылатын параметрлердің шығысы бар ұмытылған түзету printf файлдары және жарыс жағдайларын болдырмау үшін ұйқы функциясын пайдалану кодтың сапасы туралы көп айтады.

crypto_xor функциясы сияқты кодтың кейбір бөліктері GPL лицензиясын бұза отырып, Linux үшін әзірленген WireGuard енгізуінен көшірілді. Нәтижесінде, Джейсон Доненфилд Кайл Эванс және Мэтт Данвудимен (OpenBSD үшін WireGuard портының авторы) бірге проблемалық енгізуді қайта өңдеу міндетін алды және бір апта ішінде Netgate жалдаған әзірлеушінің барлық кодын толығымен ауыстырды. . Өзгертілген нұсқа WireGuard жобасының репозиторийіне орналастырылған және FreeBSD-ге әлі қосылмаған патчтардың жеке жинағы ретінде шығарылды.

Бір қызығы, бастапқыда ешқандай ақаулық белгілері болған жоқ; WireGuard-ты pfSense дистрибутивінде пайдалану мүмкіндігіне ие болғысы келген Netgate, FreeBSD ядросы мен желілік стекті жақсы білетін, қателерді түзетумен айналысатын және әзірлеу тәжірибесі бар Мэттью Мэйсиді жалдады. осы операциялық жүйеге арналған желі драйверлері. Мэйсиге мерзімі немесе аралық бақылаусыз икемді кесте берілді. FreeBSD жүйесінде жұмыс істеген кезде Мэйсимен танысқан әзірлеушілер оны басқаларға қарағанда қателеспеген және сынға адекватты жауап беретін дарынды және кәсіби бағдарламашы ретінде сипаттады. FreeBSD үшін WireGuard енгізу кодының сапасыздығы олар үшін күтпеген жағдай болды.

9 айлық жұмыстан кейін Мэйси өткен желтоқсанда FreeBSD 13 шығарылымын құрастыру үшін пайдаланылған HEAD тармағына өзінің енгізуін әріптестік шолуды және тестілеуді аяқтамай-ақ қосты.Әзірлеу WireGuard және WireGuard бастапқы әзірлеушілерімен байланыссыз жасалды. OpenBSD және NetBSD порттары. Ақпан айында Netgate WireGuard-ты pfSense 2.5.0 тұрақты шығарылымына біріктіріп, оның негізінде желіаралық қалқандарды жіберуді бастады. Мәселелер анықталғаннан кейін WireGuard коды pfSense жүйесінен жойылды.

Қосылған код 0 күндік эксплойттерде қолданылған маңызды осалдықтарды анықтады, бірақ алдымен Netgate осалдықтардың бар екенін мойындамады және бастапқы WireGuard әзірлеушісін оның беделіне теріс әсер еткен шабуылдар мен бейтараптық үшін айыптауға тырысты. Порт әзірлеушісі бастапқыда код сапасы туралы шағымдарды қабылдамады және оларды асыра сілтеу деп санады, бірақ қателерді көрсеткеннен кейін ол шын мәнінде маңызды мәселе FreeBSD жүйесінде код сапасының дұрыс тексерілмеуі екеніне назар аударды, себебі проблемалар көптеген айлар бойы анықталмады. (Netgate өкілдері шолу 2020 жылдың тамыз айында іске қосылғанын айтты, бірақ жеке FreeBSD әзірлеушілері Phabricator-те шолуды Мэйси аяқтамай жауып, пікірлерді елемеді деп атап өтті). FreeBSD негізгі командасы кодты қарау процестерін жаңартуға уәде беріп, оқиғаға жауап берді.

Проблемалық FreeBSD портының әзірлеушісі Мэттью Мэйси жобаны жүзеге асыруға дайын болмай жұмысқа кірісіп, үлкен қателік жібергенін айтып, жағдайға түсініктеме берді. Мэйси нәтижені эмоционалды күйіп қалумен және пост-Ковид синдромынан туындаған мәселелердің нәтижесімен түсіндіреді. Сонымен бірге Мэйси өзіне алған міндеттемелерінен бас тартуға шешім таппады және жобаны аяғына дейін жеткізуге тырысты.

Мэйсидің жағдайына оның өз еркімен көшкісі келмейтін жалға алушыларды сатып алған үйінен заңсыз шығаруға әрекеттенгені үшін жақында алған түрме үкімі де әсер еткен болуы мүмкін. Оның орнына ол әйелімен бірге үйді тұруға жарамсыз ету үшін еден арқалықтарын аралап, едендерді ойып жіберген, сондай-ақ тұрғындарды қорқытпақ болып, басып алынған пәтерлерге басып кіріп, заттарын алып шыққан (іс-әрекет пәтер тонау санатына жатқызылған). Өз әрекеті үшін жауапкершіліктен құтылу үшін Мэйси және оның әйелі Италияға қашып кетті, бірақ Америка Құрама Штаттарына экстрадицияланып, төрт жылдан астам түрмеде отырды.

Ақпарат көзі: opennet.ru

пікір қалдыру