بعد از ادعای بزرگ بنیاد رزبری در مورد غیر قابل هک بودن میکروکنترلر RP2350 و فراخوان به هک و تعیین کردن جایزه برای کسی که بتونه code امضا نشده رو روی میکرو اجرا کنه، چند تیم مستقل امنیتی موفق شدن حداقل پنج روش اجرایی رو پیدا کنن که عملاً تمام لایههای دفاعی سختافزاری و نرمافزاری این چیپ رو دور میزنه، این حملات نشون دهنده شکست کامل مکانیزمهای Secure Boot و حتی استخراج فیزیکی کلیدها از سیلیکون بود.
اولین حفرهای امنیتی که پیدا شد مربوط به (State Machine)سختافزاری بود که مسئول خوندن اطلاعات حیاتی از حافظه OTP موقع بوت شدنه! محققان متوجه شدن که با یه گلیچ ولتاژ دقیق روی پین تغذیه USB_OTP_VDD در بازه زمانی ۲۴۵ تا ۲۷۵ میکروثانیه بعد از استارت، میشه کاری کرد که سیستم به جای دادههای واقعی، مقادیر "Guard Read" (که اتفاقاً 0x333333 هستن) رو بخونه و این باعث میشه چیپ اشتباهاً دیباگ رو باز کنه و با معماری RISC-V بالا بیاد که هیچکدوم از تنظیمات امنیتی روش اعمال نشده.
روش دوم حمله به بوتلودر USB بود که توی فضای Non-Secure اجرا میشه! اونجا یه تابع reboot هست که با دو تا دستور اسمبلی چک میکنه کسی درخواست (Vector Boot) نکرده باشه، ولی با (Crowbar Glitching) و اسکیپ کردن یکی از این دستورات، تونستن سیستم رو گول بزنن تا کد امضا نشده رو اجرا کنه و جالب اینجاست که حتی آشکارسازهای گلیچ و (Random Delays) هم نتونستن جلوی این حمله رو بگیرن.
قشنگترین حمله وقتی بود که پای لیزر وسط اومد و با یه ستاپ لیزری خونگی زیر ۸۰۰ دلار، پروسه تایید امضا رو هدف گرفتن! تکنیک اینجا یه جور TOCTOU بود که فرمور سالم رو برای تایید امضا میفرستادن اما با استفاده از لیزر پوینتر حافظه رو تغییر میدادن تا موقع اجرا، کد مخرب از یه آدرس دیگه لود بشه.
حمله چهارم هم روی مکانیزم قفل نرمافزاری OTP سوار شد، جایی که بوتلودر سعی میکنه دسترسیها رو ببنده و این کار رو دو بار چک میکنه، ولی با ایجاد "دو تا گلیچ" الکترومغناطیسی (EMFI) پشت سر هم روی دستورات شیفت بیت، تونستن کاری کنن که قفل اعمال نشه و کلیدها از طریق USB قابل خوندن بشن.
نهایتاً تیر خلاص استخراج فیزیکی بود! با اینکه سلولهای آنتیفیوز ۴۰ نانومتری خیلی کوچیکن، با استفاده از تکنیک کنتراست ولتاژ غیرفعال (PVC) زیر میکروسکوپ FIB، تونستن مستقیماً وضعیت ۰ یا ۱ بودن بیتها رو از روی سیلیکون ببینن چون فیوزهای سوخته بار الکتریکی رو تخلیه میکردن و روشنتر دیده میشدن.
رزبریپای همه این موارد رو تایید کرد و برای بعضیهاش Errata داد، ولی نکته ترسناک اینه که حملاتی مثل OTP PSM یا لیزر نیاز به تغییر سیلیکون دارن و با آپدیت نرمافزاری درست نمیشن، که نشون میده پیچیدگی زیاد بوتلودر و اتکا به سختافزاری که قبل از اجرای کد امنیتی گلیچ میخوره (Pre-boot attacks)، میتونه کل معماری امنیتی رو به باد بده.
نکته قابل توجه ماجرا اینه که حتی شرکتهایی مثل رزبری که اسمشون با «مهندسی تمیز» و «قابل اعتماد بودن» گره خورده و ادعاهای بزرگی در مورد امن بودن دارن، ممکنه همینقدر قاطع تو پیاده سازی ساز و کارهای امنیتی شکست بخورن.
اگه به جزییات این ماجرا علاقه داشتید میتونید تو این مقاله در موردش بخونید.
📡openpcb
Post #295
14.6K

- 👌 89
- 😐 10
- 😢 1