RedLotus؛ بوتکیت UEFI ویندوز که با Rust نوشته شده
خلاصهٔ کاملتر
بوتکیت به بدافزار یا ابزاری میگن که قبل از بالا اومدن سیستمعامل اجرا میشه؛ چون زودتر از همه بیدار میشه، میتونه حافظه رو دستکاری کنه و لایههای امنیتیای که بعداً بالا میان رو از کار بندازه. RedLotus یک نمونهٔ همین دستهست که با Rust نوشته شده و نویسنده تو مقاله تأکید میکنه که این یک PoC آموزشیه، هیچ تلاشی برای مخفیکاری یا ماندگاری نمیکنه و نباید به چشم یک ابزار حمله بهش نگاه کرد.
ایدهٔ اصلی اینه که پروژه به شکل یک درایور رانتایم UEFI بالا میاد و به زنجیرهٔ بوت ویندوز وصل میشه: اول به مدیر بوت و بعد به لودر کرنل قلاب میزنه تا درست پیش از تحویل کنترل به هستهٔ ویندوز، یک درایور امضانشده رو دستی توی حافظه نگاشت کنه. نتیجهش دور زدن Driver Signature Enforcement یا همون DSEست، بدون اینکه خود کرنل پچ بشه یا لودر سیستمعامل تغییر کنه.
نویسنده توضیح میده که ارتباط بعدی از فضای کاربر با کرنل، از راه بازنویسی یک اشارهگر تابع تو بخش دادهٔ کرنل و ربودن یک کالبک قانونی انجام میشه — تکنیکی که سالهاست تو دنیای تقلب در بازیها استفاده میشه. خودش هم صادقانه میگه همین روش رو ضدتقلبهای امروزی راحت تشخیص میدن و برای یک نمونهٔ نمایشی خوبه، نه بیشتر.
نکتهٔ مهم برای مدافعها همینجاست: RedLotus هیچ آسیبپذیریای تو Secure Boot اکسپلویت نمیکنه و اصلاً روی سیستمی که Secure Boot روشن باشه کار نمیکنه. مقاله برای مقایسه به BlackLotus اشاره میکنه که با سوءاستفاده از یک آسیبپذیری شناختهشدهٔ Secure Boot (CVE-2022-21894) روی سیستمهای کاملاً بهروز هم مینشست و BitLocker و HVCI و Defender رو پیش از بالا اومدن ویندوز از کار مینداخت. جمعبندی نویسنده اینه که Rust برای کدهای سطح پایین UEFI و کرنل خوب جواب میده و امنیت حافظه رو بدون هزینهٔ کارایی میاره.
نکات کلیدی:
- RedLotus یک بوتکیت UEFI آموزشیه که با Rust نوشته شده و پیش از هستهٔ ویندوز اجرا میشه
- با نگاشت دستی درایور در زمان بوت، سد امضای اجباری درایور (DSE) رو بدون پچ کردن کرنل دور میزنه
- پیشنیازش اینه که Secure Boot خاموش باشه؛ با Secure Boot روشن کل سناریو از کار میافته
- روش ارتباطیش سادهست و به گفتهٔ نویسنده بهراحتی قابل تشخیصه
- برخلافش، BlackLotus با اکسپلویت CVE-2022-21894 روی سیستمهای وصلهشده هم کار میکرد




