یک آسیبپذیری جدی در فریمور UEFI، مربوط به تعداد زیادی از رایانههای مدرن، لپتاپها و حتی سرورها.
وقتی لپ تاپ را روشن می کنید، لوگوی سازنده قبل از بوت شدن سیستم عامل روی صفحه، نمایش داده می شود. این لوگو در واقع می تواند تغییر کند – عملکردی که برای استفاده تولید کنندگان لپ تاپ یا دسکتاپ در نظر گرفته شده است. اما هیچ چیز مانع یک کاربر معمولی نمی شود که از آن استفاده کند و لوگوی پیش فرض را با یک تصویر متفاوت جایگزین کند.
آرم در کدی که بلافاصله پس از روشن شدن رایانه اجرا می شود، در سیستم عامل UEFI ذخیره می شود. به نظر می رسد که این عملکرد جایگزینی لوگو راه را برای به خطر افتادن جدی دستگاه باز می کند – مهاجمان می توانند آن را هک کنند و متعاقباً کنترل سیستم را به دست بگیرند و این حتی می تواند از راه دور انجام شود. احتمال وقوع چنین حمله ای با نام LogoFAIL اخیراً توسط متخصصان Binarly مورد بحث قرار گرفت. در این مقاله سعی می کنیم آن را به زبان ساده توضیح دهیم، اما اجازه دهید ابتدا خطرات بوت کیت های به اصطلاح UEFI را یادآوری کنیم.
بوت کیت های UEFI: بدافزاری که قبل از سیستم بارگذاری شده است
از لحاظ تاریخی، برنامه ای که با روشن کردن رایانه شخصی اجرا می شد، بایوس (سیستم ورودی/خروجی پایه) نامیده می شد. قابلیتهای آن بسیار محدود بود، اما یک برنامه ضروری بود که وظیفه اولیهسازی سختافزار رایانه و سپس انتقال کنترل به لودر سیستم عامل را داشت. از اواخر دهه 2000، BIOS به تدریج با UEFI جایگزین شد – یک نسخه پیچیده تر از همان برنامه اصلی با قابلیت های اضافی، از جمله محافظت در برابر اجرای کدهای مخرب.
به طور خاص، UEFI ویژگی Secure Boot را پیادهسازی کرد که از الگوریتمهای رمزنگاری برای بررسی کد در هر مرحله از راهاندازی رایانه استفاده میکرد – از روشن کردن آن تا بارگذاری سیستم عامل. این کار جایگزین کردن کدهای سیستم عامل واقعی با کدهای مخرب را دشوارتر می کند. اما افسوس که حتی این فناوری های امنیتی نیز امکان بارگیری کدهای مخرب را در مراحل اولیه به طور کامل از بین نبرده اند. و اگر مهاجمان موفق به “قرار دادن” بدافزار یا به اصطلاح بوت کیت به UEFI شوند، عواقب آن می تواند بسیار جدی باشد.
مشکل بوت کیت های UEFI این است که تشخیص آنها از داخل سیستم عامل بسیار دشوار است. یک بوت کیت می تواند فایل های سیستم را تغییر داده و کدهای مخرب را در یک سیستم عامل با حداکثر امتیازات اجرا کند و مشکل اصلی این است که می تواند نه تنها با نصب مجدد کامل سیستم عامل، بلکه همچنین جایگزینی هارد دیسک زنده بماند. یک بوت کیت که در میان افزار UEFI پنهان شده است، به داده های ذخیره شده در درایو سیستم وابسته نیست. در نتیجه، بوت کیت ها اغلب در حملات هدفمند پیچیده استفاده می شوند. نمونه ای از چنین حمله ای در این مطالعه توسط کارشناسان ما شرح داده شده است.
بنابراین، تصاویر چه ربطی به آن دارند؟
از آنجایی که UEFI حفاظت نسبتاً قوی در برابر اجرای کدهای مخرب دارد، وارد کردن یک تروجان در فرآیند بوت ساده نیست. با این حال، همانطور که مشخص است، امکان سوء استفاده از نقص در کد UEFI برای اجرای کد دلخواه در این مرحله اولیه وجود دارد. دلیل خوبی برای متخصصان Binarly وجود داشت که به مکانیزمی که امکان تعویض لوگوی کارخانه را می دهد توجه کنند. برای نمایش لوگو برنامه ای راه اندازی می شود که داده ها را از فایل تصویر گرافیکی می خواند و این تصویر را روی صفحه نمایش می دهد. اگر بخواهیم این برنامه را نادرست کنیم چه؟
سه توسعهدهنده اصلی نرمافزار UEFI وجود دارد: AMI، Insyde و Phoenix. هر یک از آنها به طور متفاوتی به پردازش لوگو می پردازند. به عنوان مثال، Insyde دارای برنامه های پردازش تصویر جداگانه برای فرمت های مختلف، از JPEG تا BMP است. AMI و Phoenix مدیریت همه فرمت ها را در یک برنامه واحد ادغام می کنند. آسیبپذیریهایی در هر یک از آنها کشف شد که در مجموع بیست و چهار خطای بحرانی داشتند.
همه چیز نسبتاً ساده است: مهاجم می تواند تصویر لوگوی جدید را به تصویر دلخواه تغییر دهد. برای مثال، تنظیم وضوح لوگو بهگونهای است که این پارامتر فراتر از محدودیتهای تعریفشده در کد مدیریت پایان یابد. این منجر به یک خطای محاسباتی می شود و در نهایت منجر به نوشتن داده ها از فایل تصویری در ناحیه برای داده های اجرایی می شود. سپس این داده ها با حداکثر امتیازات اجرا می شوند. برای مثال یک فایل متنی در دسکتاپ ویندوز ذخیره می شود. با این حال، اگر کد مخرب دارای این سطح دسترسی باشد، مهاجم می تواند تقریباً هر عملی را در سیستم عامل انجام دهد.
شایان ذکر است، برخی از مدلهای دستگاه از تولیدکنندگان بزرگ در معرض این حمله قرار نگرفتند و به یک دلیل بسیار ساده: جایگزینی لوگو در UEFI آنها اساساً مسدود شده است. از جمله این مدل ها می توان به تعدادی لپ تاپ اپل و دستگاه های دل اشاره کرد.
پیامدهای خطرناک برای مشاغل
از نظر تئوری، این حمله حتی می تواند از راه دور انجام شود: در برخی موارد، کافی است یک تصویر آماده شده مخصوص به پارتیشن سیستم EFI روی دیسک سیستم تزریق شود و در راه اندازی مجدد بعدی پردازش می شود. نکته مهم این است که انجام چنین عملیاتی از قبل نیاز به دسترسی کامل به سیستم دارد. یعنی هر داده ای روی رایانه باید از قبل در دسترس مهاجمان باشد. ممکن است تعجب کنید که اجرای حمله LogoFAIL چه فایده ای دارد؟ برای اطمینان از زنده ماندن کد مخرب حتی در صورت نصب مجدد سیستم عامل – اپراتورهای حمله APT معمولاً این نوع ماندگاری را بسیار دوست دارند.
این مشکل به تدریج با نسخه های به روز شده UEFI که خطاهای موجود در کنترل کننده های تصویر را برطرف می کند، برطرف می شود. با این حال، از آنجایی که همه شرکتها با جدیت بهروزرسانیهای سیستمافزار را دنبال نمیکنند، احتمالاً تعداد زیادی از دستگاهها بدون محافظت باقی میمانند. و لیست دستگاه های آسیب پذیر نه تنها لپ تاپ ها بلکه برخی از مادربردهای سرور را نیز شامل می شود. این بدان معناست که تحقیقات Binarly باید بسیار جدی گرفته شود.
ترجمه:
پیشگامان تجارت امن ایرانیان















