تست نفوذ لجر نانو ایکسآیا لجر نانو ایکس امن است؟ دو حمله جدید مربوط به ایجاد اختلال در امنیت لجر نانو ایکس را شناسایی کرده است که اگر توسط عوامل مخرب با موفقیت اجرا شوند، میتوانند امنیت لجر نانو ایکس (Ledger Nano X) را به خطر بیندازند.
این حملات قبل از دریافت توسط کاربر بر کیف پولهای دستکاری شده تأثیر میگذارد. این اتفاق میتواند در صورت رهگیری کیف پول در حین حمل یا خرید از یک فروشندهی دزد رخ دهد. همانطور که در ادامه نشان داده شدهاست، این حملات مخرب برای امنیت لجر نانو ایکس، کنترل رایانههای متصل به کیف پولها را در دست گرفته و بدافزاری را نصب میکنند که ممکن است منجر به از دست دادن یا سرقت محتوای آنها شود.

ایجاد اختلال در امنیت لجر نانو ایکس: بد لجر – Bad Ledger
در این سناریو، فریمور پردازنده غیر ایمن با استفاده از یک پروتکل اشکال زدایی اصلاح می شود تا به عنوان یک دستگاه ورودی، مانند صفحه کلید، عمل کند. سپس می تواند کلیدهای مخرب را برای ایجاد اختلال در امنیت لجر نانو ایکس به هاست کاربر ارسال کند.
Ledger Nano X با قابلیت اشکال زدایی فعال در پردازنده غیرایمن عرضه می شود. ویژگی ای که به محض نصب اولین «اپ»، مانند Bitcoin app، بر روی دستگاه غیرفعال می شود.
با این حال، قبل از نصب برنامهها، دستگاه را میتوان با فریمور مخربی که هاست را به خطر می اندازد، شبیه به حملات «Bad USB» و «Rubber Ducky» دوباره فلش کرد.
این ویدئو در یوتیوب (به عنوان مثال) یک اختلال در امنیت لجر نانو ایکس Ledger Nano X را نشان می دهد که هنگام اتصال به رایانه به عنوان یک صفحه کلید عمل میکند. با استفاده از میانبرهای صفحه کلید، یک مرورگر باز میشود و سپس به www.kraken.com میرود. از سویی دیگر برای ایجاد اختلال در امنیت لجر نانو ایکس، می توان بد افزاری را روی دستگاه شخصِ قربانی اجرا کرد. در نتیجه، نه دیوایسِ Ledger Nano X و نه نرمافزار Ledger Live نشانهای مبنی بر دستکاری نشان نمیدهند. و دستگاه را اصل خواهند شناخت.

ایجاد اختلال در امنیت لجر نانو ایکس: بلایند لجر یا حملههای کور لجر – Blind Ledger
یک اتصال که توسط پردازنده غیر قابل اعتماد کنترل میشود به آن اجازه میدهد صفحه نمایش را مجددا تنظیم کند. از این رو، کد مخربی که روی پردازنده غیر ایمن/ غیر قابل اعتماد برای ایجاد اختلال در امنیت لجر نانو ایکس اجرا میشود، میتواند نمایشگر را – حتی زمانی که فقط با باتری کار میکند – خاموش کند.
این روال ممکن است به عنوان بخشی از یک «حملهی مهندسی اجتماعی پیچیده برای ایجاد اختلال در امنیت لجر نانو ایکس، elaborate social engineering attack» استفاده شود. که در آن Ledger Nano X مخرب، نمایشگر را خاموش میکند. در حالی که بدافزار جهت ایجاد اختلال در امنیت لجر نانو ایکس، کاربر را متقاعد میکند که یک سری دکمه را برای تایید یک تراکنش مخرب فشار دهد (به عنوان مثال، «Ledger Nano X شما متوقف شد. لطفاً دو دکمه را نگه دارید تا دستگاه مجددا راه اندازی شود”).
از آنجایی که نمایشگر غیرفعال است، کاربر متوجه تراکنش روی کیف پول سخت افزاری نمیشود یا نمیتواند آن را تایید کند.
در اینجا راهی برای گریز از این شرایط آورده شده است:
- جهت جلوگیری از ایجاد اختلال در امنیت لجر نانو ایکس، دستگاهها ی لجر را فقط از فروشگاهها ی معتبر خریداری کنید. Ledger Nano X را که به شکل هدیه ای رایگان دریافت کرده اید یا در پارکینگ خانه تان پیدا کرده اید را به رایانه خود وصل نکنید.
- جهت جلوگیری از ایجاد اختلال در امنیت لجر نانو ایکس، همیشه تراکنشهای کیف پول Ledger Nano X را اعتبار سنجی کنید. اگر دستگاه عجیب عمل میکند (مثلاً صفحه نمایش خاموش میشود) نسبت به استفاده از آن بسیار محتاط باشید.
جزییات فنی Ledger Nano X
Ledger Nano X جدیدترین کیف پول سخت افزاری لجر، سازنده کیف پول سخت افزاری Ledger Nano S است.
تفاوتهای اصلی بین Ledger Nano X و Ledger Nano S عبارتند از:
- اضافه شدن بلوتوث به عنوان یک روش ارتباطی
- یک باتری کوچک برای عملکرد بهتر در صورت استفاده از بلوتوث
- وجود پردازنده جدیدتر STMicroelectronics ST33 ایمن (Nano S از ST31 برای پردازش امن استفاده میکند و هر دو از STM32 استفاده میکنند (به عنوان پردازنده غیر ایمن).
- پردازنده امن ST33 پینهای ورودی/خروجی بیشتری دارد که به ST33 اجازه میدهد مستقیماً به صفحه نمایش و دکمههای Ledger Nano X متصل شود. این ویژگی متفاوت از Ledger Nano S است که نیاز به اتصال این تجهیزات جانبی به پردازنده غیر ایمن STM32 دارد. این محدودیت در Nano S قدیمی – به خاطر تجربهی چندین حمله – توسط تیم Fail در 35C3 اعمال شد.
مسائل شناسایی شده در تحقیقات مربوط به ایجاد اختلال در امنیت لجر نانو ایکس
لجر در وبسایت خود اذعان میکند که JTAG در پردازنده STM32WB55 فعال است تا به کاربران اجازه دهد بررسی کنند که آیا STM32WB55 دستکاری شده است یا خیر:
شکل 1: ثبت FAQ متداول در لجر هنگام فعال کردن JTAG.
این گمراه کننده است. زیرا در حال حاضر، لجر هیچ هشی را ارائه نمیکند که امکان بررسی محتوای حافظه با کمک یک تصویر را فراهم کند.
لجر اذعان میکند که «در صورت راهاندازی برنامه امضا شده، کانال JTAG برای همیشه بسته میشود و نمیتوان آن را دوباره باز کرد». با این حال، مشخص شده که STM32WB55 اصلاً در زمان اجرا تایید نشده است. از این رو، فریمور مخربی که در آن کد قفل کردن JTAG پس از راهاندازی برنامه امضا شده، حذف شده است. و بدون هیچ مشکلی یا بدون شناسایی توسط ST33 اجرا میشود.
یک patch PoC به فریمور Ledger Nano X میتواند به صورت زیر پیادهسازی شود:
شکل 2: نمونه binway patch برای فعال نگه داشتن SWD. (قسمتهای قرمز بایتهای اصلاح شده را نشان میدهد.)
این تغییر بر رفتار دستگاه تأثیر منفی نمیگذارد، و به طور ظاهری به کار خود ادامه میدهد. علاوه بر این، برنامه Ledger Live همچنان گزارشی مبنی بر اصل بودن دستگاه میدهد:
شکل 3
شکل 3: برنامه Ledger Live قادر به شناسایی فریمور تغییر یافته STM32WB55 نیست.
برای امکان برنامهنویسی آسانتر STM32WB55 با استفاده از JTAG، یک Ledger Nano X به یک برد شکسته لحیم شد. تا دسترسی آسان به همه پایههای برنامهنویسی با استفاده از رابط کاربری استاندارد ST-Link فراهم شود.
در یک حمله واقعی برای ایجاد اختلال در امنیت لجر نانو ایکس، از آنجا که فریمور فقط یک بار نیاز به اصلاح دارد – یعنی قبل از نصب هر برنامه – به جای آن میتوان از یک رابط pogo-pin با فنر استفاده کرد.
این روش در جلوگیری از ایجاد اختلال در امنیت لجر نانو ایکس، باعث غیر قابل تشخیص بودن به واسطهی برنامه نویسی میشود. و نیازی به اصلاح کلی دستگاه ندارد.
شکل 4: لجر اصلاح شده برای دسترسی آسان به برنامه نویسی
حمله بد لجر – Bad Ledger Attack
در مورد ایجاد اختلال در امنیت لجر نانو ایکس، باید اشاره کرد که داخل لجر نانو ایکس کل ارتباط USB بین میزبان و کیف پول سخت افزاری توسط پردازنده STM32WB55 انجام میشود.
در نتیجه، با اجرای کدهای مخرب در STM32WB55، این امکان برای مهاجم جهت ایجاد اختلال در امنیت لجر نانو ایکس، وجود دارد که یک Ledger Nano X واقعی را بدون تغییرات سخت افزاری، به یک دستگاه مخرب تبدیل کند.
از آنجایی که STM32WB55 تمام ارتباطات USB را کنترل می کند، یک Ledger Nano X که کد مخرب را برای ایجاد اختلال در امنیت لجر نانو ایکس اجرا می کند، می تواند خود را شناسایی کند. به عنوان مثال، یک فریمور مخرب برای ایجاد اختلال در امنیت لجر نانو ایکس می تواند تمام ارتباطات USB لازم را برای شناسایی خود و شبیه سازی یک USB-Keyboard به کامپیوتر میزبان پیاده سازی کند.
سپس فریمور می تواند کد های اسکن کیبورد استاندارد را به عنوان کاربر تایید شده فعلی برای اجرای دستورات مخرب ارسال کند.
حملههای کور لجر –Blind Ledger
در Ledger Nano S، فقط پردازنده ST31 قدیمی قابل اعتماد بود. با این حال، نمایشگر، دکمهها و USB همگی توسط پردازندهی STM32F0 کنترل میشدند. در نتیجه، فریمور مخرب اجرا شده روی پردازنده غیر ایمن برای ایجاد اختلال در نانو ایکس میتواند با تقلید از ورودی کاربر، فناوری عنصر امن (secure element) را دور بزند، مثلا برای تایید یک تراکنش مخرب جهت فراهم کردن اختلال در امنیت لجر نانو ایکس.
اما در لجر نانو ایکس، این حمله دیگر امکان پذیر نیست. یکی از تغییرات اساسی طراحی Ledger Nano X تغییر معماری آن است که در آن لوازم جانبی، یعنی نمایشگر و دکمهها، مستقیماً توسط پردازنده ST33 و نه به واسطه STM32WB55 متصل و کنترل میشوند. در طول آنالیزِ سخت افزار، مشخص شد که ST33 دکمهها و نمایشگر را کنترل میکند و جلوی ایجاد اختلال در امنیت لجر نانو ایکس گرفته میشود.
با این حال، یک اتصال بین یک پین GPIO STM32WB55 و نمایشگر شناسایی شده است. با هدایت این پین با مقادیر تنظیم شده با استفاده از یک دیباگر متصل به رابط JTAG/SWD، این رفتار مشابه پین تنظیم مجدد برای نمایشگر بود. تنظیم بیت ثبت داده خروجی (ODR) و پینِ GPIO مربوط به آن روی 0، باعث خاموش شدن نمایشگر میشود. در حالی که دستگاه به کار خود ادامه میدهد.
هنگامی که صفحه نمایش در جریان حمله برای ایجاد اختلال در امنیت لجر نانو ایکس خاموش میشود، هیچ راهی برای کاربر وجود ندارد که بتواند آنچه را که در صفحه رخ میدهد، تشخیص دهد. همچنین کاربر نمیتواند تشخیص دهد که آیا دستگاه واقعاً کار میکند یا خیر. در طول حمله برای ایجاد اختلال در لجر نانو ایکس دستگاه به نظر خاموش است، اما در اصل هنوز میتواند ورودی کاربر را دریافت کند. علاوه بر این، دستگاه میتواند با کامپیوتر میزبان (از جمله با برنامه Ledger Live) ارتباط برقرار کند.
یک مهاجم که قادر به فلش کردن فریمور مخرب بر روی STM32WB55 باشد، میتواند این کار را با حملهی مهندسی اجتماعی پیچیده جهت ایجاد اختلال در امنیت لجر نانو ایکس ترکیب کند. مثلا:
ابتدا یک تصویر فریمور مخرب بر روی STM32WB55 برنامه ریزی میشود. این فریمور مخرب (بک دور، back doored) شامل کدهایی برای خاموش کردن صفحه نمایش – جهت ایجاد اختلال در امنیت لجر نانو ایکس – است. در مرحله بعد، یک برنامه مخرب در حال اجرا بر روی رایانه شخصی میزبان مانند نسخه مخرب برنامه Ledger Live میتواند پیامی مانند “Your Ledger Nano X “stopped responding, please hold both buttons to restart the device به کاربر نمایش دهد.
ST33 با برقراری ارتباط با فریمور مخرب در حال اجرا روی Ledger Nano X، یک تراکنش مخرب را دریافت و نمایش میدهد. کاربر ناخواسته با فشار دادن دکمههای روی Ledger Nano X و با پیروی از دستورالعملهای برنامه، تراکنش را تأیید میکند.
شکل 5: تنظیم این بیت روی 0 نمایشگر را غیرفعال میکند، بدون اینکه دستگاه به طور منظم کار کند.
ادامهی جریان تحقیق
در طول تحقیقات مربوط به ایجاد اختلال در لجر نانو ایکس، برنامه Ledger Live روی Mac OS Catalina راه اندازی نمیشود. زیرا توسط اکانت رسمی official Ledger developer تایید نشده است. راهنمای رسمی لجر برای این موضوع، مجموعهای از دستورالعملها بود که نشان میداد چگونه کاربران میتوانند امضای کد اجباری – enforced code signing را دور بزنند و در معرض خطر باز کردن نسخههای مخرب Ledger Live که برای ایجاد اختلال در لجر نانو ایکس است، قرار نگیرند.
