[ad_1]

به نظر نمی رسد تیم اصلی FreeBSD نیاز به به روزرسانی مراحل بررسی و تأیید خود را ببینند.
بزرگنمایی / به نظر نمی رسد تیم اصلی FreeBSD نیاز به به روزرسانی مراحل بررسی و تأیید خود را ببینند.

اوریش لاوسون (بعد از کی سی گرین)

در نگاه اول ، متیو میسی گزینه کاملاً منطقی برای انتقال WireGuard به هسته FreeBSD به نظر می رسید. WireGuard یک پروتکل تونل سازی نقطه به نقطه رمزگذاری شده است ، بخشی از آنچه اکثر مردم “VPN” می دانند. FreeBSD مشابه سیستم عامل یونیکس است که از مسیریاب های سیسکو و جونیپر گرفته تا پشته شبکه Netflix نیرو می گیرد و میسی تجربه زیادی در تیم توسعه خود از جمله کار روی چندین درایور شبکه داشت.

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

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

این تعهد غیر منتظره باعث افزایش مخاطرات Donenfeld شد ، پروژه ای که در نهایت با کیفیت Wireless با نام WireGuard ارزیابی می شود. دوننفلد تعدادی از مشکلات مربوط به کد میسی را شناسایی کرد ، اما دوننفلد به جای اعتراض به انتشار پورت ، تصمیم گرفت مشکلات را برطرف کند. او با کایل ایوانز و توسعه دهنده FreeBSD و مت دودوودی ، توسعه دهنده OpenBSD که برای WirelessGuard برای این سیستم عامل کار می کرد ، همکاری کرد. این سه نفر تقریباً همه کد های میسی را در یک مسابقه هفتگی هفتگی عوض کردند.

این اتفاق با Netgate که حامی مالی میسی است ، خیلی بد پیش رفت. Netgate قبلاً کد بتا Macy را از نامزدی برای انتشار FreeBSD 13 گرفته و آن را در pfSense 2.5.0 منتشر کرده است. ارتقا the لیفتراک های انجام شده توسط Donenfeld و همکارانش – همراه با ویژگی واضح Donenfeld در کد Macy – این شرکت با مشکل جدی روابط عمومی مواجه است.

پاسخ عمومی نت گیت شامل اتهامات “سوگیری غیر منطقی علیه mmacy و Netgate” و افشای غیرمسئولانه “تعدادی از سو explo استفاده های روز صفر” بود – علی رغم اعلام تقریباً همزمان نت گیت مبنی بر اینکه هیچ آسیب پذیری واقعی وجود ندارد.

این پاسخ جنگی از سوی Netgate باعث جلب توجه بیشتر بسیاری از منابع شده است که عناصر شگفت انگیزی از گذشته خود میسی را فاش کرده اند. او و همسرش نیکول در سال 2008 پس از دو سال تلاش برای بیرون راندن غیرقانونی مستاجر از یک ساختمان آپارتمانی کوچک در سانفرانسیسکو که این زوج خریداری کرده بودند ، دستگیر شدند.

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

داستان میسی به عنوان یک صاحبخانه ، جای تعجب نیست که او را به صورت حرفه ای تحت تعقیب قرار می دهد – که باعث کم توجهی وی به بندر محکوم WireGuard شده است.

میسی سرانجام به ما گفت: “من حتی نمی خواستم این کار را انجام دهم.” “من سوخته شده بودم ، ماههای زیادی را با سندرم COVID گذرانده بودم … من سالها در این پروژه از سوbal استفاده لفظی توسط غیر کارگران و نیمه کارگران رنج بردم ، که نکته مهم آنها مجرم نبودن آنها بود. من در فرصت ترک پروژه در دسامبر پریدم … من فقط یک وظیفه اخلاقی برای دریافت آن احساس کردم [the WireGuard port] بالای خط پایان. بنابراین اگر آخرین تلاش من کمی نیمه کاره بود ، باید مرا ببخشید. “

این فرض پاسخ می دهد که چرا چنین توسعه دهنده با تجربه و ماهری می تواند کد بدتری ایجاد کند ، اما س ،الات بسیار بزرگتری در مورد روند و روش کار در کمیته اصلی FreeBSD ایجاد می کند.

چگونه بسیاری از کد های زیر اسمی آن را تاکنون در یک سیستم عامل منبع باز بزرگ ایجاد کرده اند؟ بررسی کدی که قرار بود جلوی آن را بگیرد کجا بود؟ و چرا به نظر می رسید که هم تیم اصلی FreeBSD و هم Netgate بیش از کیفیت واقعی آن ، روی این واقعیت که کد نادیده گرفته می شود ، متمرکز شده اند؟

کیفیت کد

اولین س isال این است که آیا کد میسی واقعاً دارای مشکلات قابل توجهی بوده است؟ دوننفلد گفت که این کار را کرد ، و او تعدادی از موارد اصلی را شناسایی کرد:

  • بخوابید تا شرایط مسابقه نرم شود
  • توابع اعتبار سنجی که به سادگی درست می شوند
  • آسیب پذیری های رمزنگاری فاجعه بار
  • بخشهایی از پروتکل wg اجرا نشده است
  • وحشت هسته ای
  • بای پس امنیتی
  • عبارات Printf در کدهای رمزنگاری شده است
  • بافر “تماشایی” سرریز می کند
  • Linux Mazes if ifdefs FreeBSD

اما نت گیت ادعا می کند که دوننفلد با ارزیابی منفی خود بسیار فراتر رفته است. آنها ادعا کردند که کد اصلی میسی فقط بد نیست.

اگرچه هیچ توسعه دهنده اصلی در دسترس نیست ، Ars توانست حداقل برخی از ادعاهای Donenfeld را مستقیماً ، سریع و بدون کمک خارجی تأیید کند. به عنوان مثال ، یافتن یک تابع اعتبار سنجی که درست برگردد – و printf عبارات مدفون در اعماق چرخه های رمزنگاری – به چیز پیچیده تری از این نیاز ندارند grep.

تابع اعتبارسنجی خالی

برای تأیید یا رد ادعای یک تابع اعتبارسنجی خالی – عملکردی که همیشه “درست برگردد” به جای بررسی واقعی داده های منتقل شده به آن – ما به دنبال مواردی از return true یا return (true) در میسی if_wg کد همانطور که در FreeBSD تأیید شده است 13.0-HEAD.

root@banshee:~/macy-freebsd-wg/sys/dev/if_wg# grep -ir 'return.*true' . | wc -l
21

این تعداد بازده کافی برای حسابرسی دستی آسان است ، بنابراین ما پس از آن استفاده کردیم grep برای پیدا کردن داده های مشابه ، اما سه خط کد دقیقاً قبل و بعد از هر کدام می آیند return true:

root@banshee:~/macy-freebsd-wg/sys/dev/if_wg# grep -ir -A3 -B3 'return.*true' .

از جمله کاربردهای معتبر از return true، یک عملکرد چک خالی پیدا کردیم ، در module/module.c:

wg_allowedip_valid(const struct wg_allowedip *wip)
{

 return (true);
}

احتمالاً لازم به ذکر است که این عملکرد چک خالی در پایین کد جدول کشیده شده دفن نشده است –module.c همانطور که نوشته شده است فقط 863 خط کد کامل وجود دارد.

ما تلاش نکردیم که از این ویژگی بیشتر استفاده کنیم ، اما به نظر می رسد که هدف این است که تأیید کند منبع و / یا مقصد بسته به WireGuard تعلق دارد. allowed-ips لیستی که تعیین می کند کدام بسته ها می توانند از طریق یک تونل WireGuard مسیریابی شوند.

[ad_2]

منبع: tarjome-news.ir