بهره‌برداری غیرقابل وصله «usbliter8» زنجیره بوت SecureROM چیپ‌های Apple A12 و A13 را می‌شکند

5 دقیقه مطالعه
5 بازدید
منبع: The Hacker News
بهره‌برداری غیرقابل وصله «usbliter8» زنجیره بوت SecureROM چیپ‌های Apple A12 و A13 را می‌شکند

پژوهشگران امنیتی در Paradigm Shift یک بهره‌برداری عملی با نام usbliter8 منتشر کرده‌اند که اجرای دلخواه کد را درون SecureROM چیپ‌های Apple A12 و A13 ممکن می‌سازد.

این کد در مرحله تولید درون سیلیکون حک می‌شود. هیچ به‌روزرسانی نرم‌افزاری نمی‌تواند به آن برسد. دستگاه‌های تحت تأثیر تا زمانی که در حال استفاده باشند این نقص را همراه خود خواهند داشت.

این یک حمله از راه دور نیست. به در اختیار داشتن فیزیکی دستگاه نیاز دارد؛ دستگاه باید در حالت DFU باشد و از طریق USB به یک برد میکروکنترلر اختصاصی مبتنی بر RP2350 متصل شود. با این پیکربندی، بهره‌برداری در کمتر از دو ثانیه انجام می‌شود، قبل از اینکه زنجیره بوت امضاشده Apple بارگذاری شود.

گزارش فنی کامل و یک proof of concept عملی در ۱۸ ژوئن ۲۰۲۶، پس از افشای هماهنگ با Apple Product Security، عمومی شد.

دستگاه‌های تحت تأثیر

PoC عمومی از SoCهای A12، A13، S4 و S5 پشتیبانی می‌کند. پشتیبانی از A12X و A12Z به‌عنوان تئوریکاً ممکن توصیف شده است اما هنوز پیاده‌سازی نشده.

خانوادهٔ دستگاه‌های در این محدوده شامل iPhone XS، XS Max و XR؛ iPhone 11، 11 Pro و 11 Pro Max؛ iPhone SE (نسل دوم)؛ iPad Air نسل سوم، iPad mini نسل پنجم و iPad نسل هشتم؛ Apple Watch Series 4 و 5؛ Apple Watch SE نسل اول؛ HomePod mini؛ و سایر محصولات Apple ساخته‌شده بر پایه این چیپ‌ها است. A11 تحت تأثیر نیست. به نظر می‌رسد A14 و نسخه‌های جدیدتر از دسترس این مسیر بهره‌برداری خارج باشند.

باگ

ریشهٔ مسئله یک نقص سخت‌افزاری در کنترلر USB Synopsys DWC2 است.

کنترلر بسته‌های Setup USB ورودی را از طریق DMA ذخیره می‌کند، تا سه بسته را بافر می‌کند، سپس در بسته چهارم با کاهش ۲۴ بایت ثابت، اشاره‌گر نوشتن را ریست می‌کند. همچنین بسته‌های کوچک‌تر از استاندارد را می‌پذیرد و اشاره‌گر را تنها به اندازهٔ بایت‌های واقعی نوشته‌شده افزایش می‌دهد. این عدم تطابق به یک buffer underflow تکرارپذیر تبدیل می‌شود و اشاره‌گر نوشتن را هر بار ۱۲ بایت به عقب از حافظه جلو می‌برد.

آنچه این را روی A12 و A13 قابل بهره‌برداری می‌کند، نحوهٔ پیکربندی USB DART (Device Address Resolution Table، IOMMU چیپ) توسط Apple درون SecureROM است. روی دستگاه‌های تحت تأثیر، در حالت bypass اجرا می‌شود، بنابراین اشاره‌گر DMA در حال underflow می‌تواند به SRAM دلخواه برسد و آن را بازنویسی کند.

A11 تحت تأثیر نیست زیرا درایور USB آن پس از هر بسته به‌صورت دستی آدرس DMA را ریست می‌کند، بنابراین عدم تطابق هرگز انباشته نمی‌شود. به نظر می‌رسد A14 و نسخه‌های جدیدتر DART را به‌درستی پیکربندی می‌کنند؛ Paradigm Shift می‌گوید این امر آسیب‌پذیری را روی سخت‌افزار جدیدتر غیرقابل بهره‌برداری می‌کند.

دست یافتن به اجرای کد

روی A12، بافر DMA مجاور stack وظیفه USB روی heap قرار دارد. بازنویسی یک link register ذخیره‌شده، کنترل program counter را در context switch بعدی به مهاجم می‌دهد.

A13 سخت‌تر است. Pointer Authentication (PAC) آدرس‌های بازگشت ذخیره‌شده روی stack را محافظت می‌کند. Paradigm Shift آن را مرحله‌به‌مرحله دور زد. خراب کردن ساختارهای heap مرتبط با DART primitiveهای نوشتن محدود ایجاد کرد. بازنویسی panic depth counter باعث شد چیپ به‌جای ری‌بوت، روی خطاها loop کند. زمان‌بندی دقیق نوشتن DMA از clobber کردن registerهای ذخیره‌شده وظیفه USB جلوگیری کرد.

مرحلهٔ نهایی اشاره‌گر USB interrupt handler در BSS را بازنویسی کرد. USB interrupt بعدی سپس کد تأمین‌شده توسط مهاجم را اجرا کرد. هر مسیر با اجرا در EL1، حالت privileged چیپ، درون SecureROM پایان می‌یابد.

آنچه مهاجم به‌دست می‌آورد

پس از بهره‌برداری، usbliter8 یک USB request handler سفارشی تزریق می‌کند و PWND:[usbliter8] را در USB serial string دستگاه حک می‌کند. از آنجا مهاجم می‌تواند به‌صورت موقت production mode SoC را downgrade کند یا یک image خام iBoot بدون امضا و بدون بررسی signature بوت کند و کاملاً از زنجیره اعتماد Apple خارج شود.

پژوهش compromise شدن Secure Enclave را نشان نمی‌دهد. Secure Enclave Apple به‌عنوان یک مرز حفاظتی جدا طراحی شده و از application processor جدا است. Paradigm Shift هشدار می‌دهد که کنترل در سطح BootROM ممکن است مسیرهای جدیدی برای حمله به آن باز کند.

بدون وصله نرم‌افزاری

نزدیک‌ترین سابقهٔ عمومی checkm8 است؛ بهره‌برداری SecureROM سال ۲۰۱۹ که دستگاه‌های A5 تا A11 را برای همیشه خارج از اختیار وصله Apple قرار داد.

مانند checkm8، usbliter8 به دسترسی فیزیکی و حالت DFU نیاز دارد و نمی‌توان آن را با به‌روزرسانی firmware بست. usbliter8 این شرایط را به نسل بعدی چیپ گسترش می‌دهد.

تا تاریخ ۱۹ ژوئن ۲۰۲۶، هیچ CVE، امتیاز CVSS، توصیهٔ امنیتی Apple یا هشدار CISA صادر نشده و هیچ بهره‌برداری in-the-wild به‌صورت عمومی گزارش نشده است.

برای اکثر کاربران، ریسک عملی پایین است: مهاجم به دستگاه فیزیکی، کابل مناسب و دانش force کردن حالت DFU نیاز دارد. برای محیط‌های با امنیت بالا، این اکنون یک مسئلهٔ بازنشستگی سخت‌افزار و نگهداری دستگاه است.

اگر دستگاه یکی از چیپ‌های تحت تأثیر را اجرا کند، مرز فیزیکی برای همیشه از بین رفته است؛ امنیت به کنترل زمان و مکان اتصال دستگاه بستگی دارد. سخت‌افزار A12، A13، S4 و S5 در نقش‌های حساس را موجودی‌گیری کنید، refresh به سمت A14 یا جدیدتر را اولویت دهید و از DFU mode روی کابل‌ها یا hostهای USB غیرقابل اعتماد اجتناب کنید.

کد عمومی است. معمولاً بهره‌برداری پژوهشی از این مرحله دیگر یک demo نیست و ابزار دیگران می‌شود.

بوابة آمنة لحلول السحابة