FreeBSD 13 تقریباً با اجرای هک WireGuard با نقض مجوزها و آسیب پذیری ها به پایان رسید.

از پایه کدی که نسخه FreeBSD 13 بر اساس آن شکل گرفت، کد پیاده‌سازی پروتکل WireGuard VPN که به دستور Netgate بدون مشورت با توسعه‌دهندگان WireGuard اصلی توسعه یافته بود و قبلاً در نسخه‌های پایدار توزیع pfSense گنجانده شده بود، به طرز مفتضحانه‌ای وارد شد. حذف شده. پس از بررسی کد توسط Jason A. Donenfeld، نویسنده WireGuard اصلی، مشخص شد که اجرای پیشنهادی FreeBSD از WireGuard یک کد نامرغوب بود که مملو از سرریز بافر بود و GPL را نقض می کرد.

این پیاده‌سازی حاوی نقص‌های فاجعه‌باری در کد رمزنگاری بود، بخشی از پروتکل WireGuard حذف شد، خطاهایی وجود داشت که منجر به از کار افتادن هسته و دور زدن روش‌های امنیتی شد و از بافرهایی با اندازه ثابت برای داده‌های ورودی استفاده شد. وجود خرده‌ها به‌جای چک‌هایی که همیشه «درست» را برمی‌گردانند، و همچنین اشکال‌زدایی چاپ‌های فراموش شده با خروجی پارامترهای مورد استفاده برای رمزگذاری، و استفاده از عملکرد خواب برای جلوگیری از شرایط مسابقه، چیزهای زیادی در مورد کیفیت کد می‌گوید.

برخی از بخش‌های کد، مانند تابع crypto_xor، از پیاده‌سازی WireGuard که برای لینوکس توسعه داده شده است، با نقض مجوز GPL منتقل شده‌اند. در نتیجه، جیسون دوننفیلد به همراه کایل ایوانز و مت دانوودی (نویسنده پورت WireGuard برای OpenBSD)، وظیفه بازسازی مشکل ساز را بر عهده گرفتند و در عرض یک هفته، به طور کامل کدهای توسعه دهنده استخدام شده توسط Netgate را جایگزین کردند. . نسخه اصلاح شده به صورت مجموعه ای جداگانه از وصله ها منتشر شد که در مخزن پروژه WireGuard قرار گرفت و هنوز در FreeBSD گنجانده نشده است.

جالب اینجاست که در ابتدا هیچ نشانه ای از مشکل وجود نداشت، Netgate که می خواست از WireGuard در توزیع pfSense استفاده کند، متیو میسی را استخدام کرد که به خوبی در هسته FreeBSD و پشته شبکه اشراف دارد، در رفع اشکالات شرکت دارد و تجربه توسعه را دارد. درایورهای شبکه برای این سیستم عامل به میسی یک برنامه منعطف بدون ضرب الاجل یا بررسی میان ترم داده شد. توسعه دهندگانی که میسی را در حین کار بر روی FreeBSD ملاقات کردند، او را به عنوان یک برنامه نویس با استعداد و حرفه ای توصیف کردند که بیش از دیگران مرتکب اشتباه نشد و به اندازه کافی به انتقادات پاسخ داد. کیفیت پایین کد پیاده سازی WireGuard برای FreeBSD برای آنها تعجب آور بود.

پس از 9 ماه کار، میسی پیاده سازی خود را به شعبه HEAD اضافه کرد، که برای فرمول بندی نسخه FreeBSD 13 استفاده شد، بدون تکمیل بررسی و آزمایش همتایان، توسعه بدون ارتباط با توسعه دهندگان WireGuard اصلی انجام شد پورت های OpenBSD و NetBSD در فوریه، Netgate WireGuard را در نسخه پایدار pfSense 2.5.0 ادغام کرد و شروع به ارسال فایروال بر اساس آن کرد. پس از شناسایی مشکلات، کد WireGuard از pfSense حذف شد.

کد اضافه شده، آسیب‌پذیری‌های حیاتی را نشان می‌دهد که در اکسپلویت‌های 0 روزه استفاده می‌شدند، اما نت‌گیت در ابتدا وجود آسیب‌پذیری‌ها را تایید نکرد و سعی کرد توسعه‌دهنده WireGuard اصلی را به حملات و سوگیری متهم کند که بر شهرت آن تأثیر منفی گذاشت. توسعه‌دهنده پورت در ابتدا ادعاهای مربوط به کیفیت کد را رد کرد و آنها را اغراق‌آمیز دانست، اما پس از نشان دادن خطاها، توجه خود را به این واقعیت جلب کرد که مشکل واقعاً مهم عدم بررسی مناسب کیفیت کد در FreeBSD است، زیرا مشکلات برای چندین ماه کشف نشده باقی مانده است. (نمایندگان Netgate نشان دادند که بازبینی عمومی در آگوست 2020 راه اندازی شده است، اما توسعه دهندگان FreeBSD منفرد خاطرنشان کردند که بررسی در Phabricator توسط Macy بدون تکمیل و با نادیده گرفتن نظرات بسته شد). تیم اصلی FreeBSD با قول به نوسازی فرآیندهای بررسی کد خود به این حادثه پاسخ داد.

متیو میسی، توسعه‌دهنده پورت مشکل‌ساز FreeBSD، در مورد این وضعیت اظهار نظر کرد و گفت که اشتباه بزرگی را مرتکب شد و بدون اینکه آماده اجرای پروژه باشد، کار را به عهده گرفت. میسی نتیجه حاصل را با فرسودگی عاطفی و نتیجه مشکلات ناشی از سندرم پس از کووید توضیح می دهد. در همان زمان، میسی عزم خود را برای کنار گذاشتن تعهداتی که قبلاً متعهد شده بود پیدا نکرد و سعی کرد پروژه را به پایان برساند.

وضعیت میسی همچنین ممکن است تحت تأثیر حکم زندان اخیری قرار گرفته باشد که او به دلیل تلاش غیرقانونی برای بیرون راندن مستاجرین از خانه ای که خریداری کرده بود و تمایلی به نقل مکان داوطلبانه نداشتند، دریافت کرد. در عوض، او و همسرش با اره کردن تیرهای کف و سوراخ کردن طبقات، خانه را غیرقابل سکونت کردند و همچنین سعی کردند ساکنان را ارعاب کنند، به آپارتمان های اشغالی نفوذ کرده و وسایل آنها را خارج کردند (این اقدام به عنوان سرقت طبقه بندی شد). میسی و همسرش برای فرار از مسئولیت اقدامات خود به ایتالیا گریختند، اما به ایالات متحده مسترد شدند و بیش از چهار سال در زندان سپری کردند.

منبع: opennet.ru

اضافه کردن نظر