محمد حضرت پور | 2020.08.07

آسیب‌ پذیری جدید کشف شده در کیف پول لجر (Ledger Vulnerability)

بر اساس اعلام یک محقق ناشناس، به تازگی باگ (آسیپ پذیری) جدیدی در کیف پول سخت افزاری لجر پیدا شده است. این آسیب پذیری باعث می‌شود که در زمان انتقال یک آلتکوین به آدرس دیگر، بیت کوین های موجود در والت نیز به آدرس دیگری منتقل و در واقغ سرقت شود. حمله کننده سعی می‌کند که با مشغول کردن شما به یک تراکنش در حال اجرا روی آلتکوین ها (مثلا لایتکوین یا بیت کوین کش و …) از این آسیب پذیری استفاده و موجودی بیت کوین شما را بدون اینکه بدانید یا بخواهید، به آدرس خودش انتقال دهد.

هرچند شرکت لجر در توییتر خود اعلام کرده که به سرعت نرم افزار جدیدی بیت کوین را برای Ledger Nano S ارئه می‌دهد اما توصیه می‌شود که کاربران موارد احتیاطی را رعایت و با انجام تمهیداتی از دارایی خود محافظت نمایند.

اگر در این کیف پول از فورک های بیت کوین استفاده کرده اید به احتمال زیاد در معرض خطر هستید. در این لینک شرح فنی آسیب پذیری توضیح داده شده که ما نیز در اینجا ترجمه آن را ارائه می‌کنیم:

خلاصه‌ای از آسیب پذیری

دستگاه Ledger، اطلاعات کلید عمومی و عملکرد امضای بیتکوین را خارج از برنامه بیتکوین Ledger افشا می‌کند. دستگاه، درخواست‌های تأیید تراکنش غلط انداز را به نمایش می‌گذارد که آدرس‌های برنامه منتخب و اطلاعات دیگر تراکنش مثل مقدار آن را وقتی که چندین تراکنش مختلف در حال امضا شدن هستند، آشکار می‌سازد.

زمینه مشکل

برای پشتیبانی از یک رمزارز در دستگاه‌های لجر باید برنامه مرتبط با آن را نصب کنید. دستگاه‌های لجر از چندین برنامه پشتیبانی می‌کنند و عموما کاربران از برنامه‌های لجر استفاده می‌کنند تا یک طیف گسترده و متنوع از رمزارز‌ها را ذخیره سازی نمایند. برنامه‌های لجر مجزا و عایق شده طراحی شده‌اند، یعنی در یک زمان واحد، تنها قفل یک برنامه باز است. گشودن قفل دارایی، امکان برقراری ارتباطات خارجی را برای کارکرد‌های مختلف مثل صادر کردن کلید عمومی، امضا کردن پیام‌ها و تأیید تراکنش‌ها ایجاد می‌کند. بنا بر این، از منظر امنیت انتظار می‌رود که برنامه‌های قفل شده در برابر پیام‌های خارجی غیر قابل نفوذ هستند.

مشکل

کشف شده است که برای بیت کوین و انشعاب‌های آن، این دستگاه عملکرد‌های خود را برای تمام دارایی‌ها افشا و آشکار می‌کند. به عبارت دیگر، با گشودن قفل برنامه لایتکوین، شما یک درخواست تأیید برای یک تراکنش بیتکوین دریافت خواهید کرد. این در حالی است که رابط کاربری آن را به عنوان یک انتقال لایتکوین به یک آدرس لایتکوین به نمایش می‌گذارد. با پذیرفتن تأیید، یک تراکنش بیتکوین که امضا شده و کاملا معتبر است، تولید می‌شود.

قدم های تولید مجدد

  1. برنامه لایت کوین را باز کنید
  2. با استفاده از کد زیر، آدرس‌های شبکه اصلی بیت کوین (سگویت) را بازیابی کنید.

getWalletPublicKey(‘ 84 ‘/0 ‘ /0 ‘/ ‘) . publicKey

  1. یک کوئری از UTXO‌ ها گرفته و یک تراکنش بیت کوین برای خرج کردن خروجی‌ها بسازید.
  2. این کد را برای امضا تراکنش به دستگاه ارسال کنید.

createPaymentTransactionNew( . . . )

  1. تراکنش‌های امضا شده معتبر شبکه اصلی بیتکوین را تحویل بگیرید.

انتظار این است که دستگاه لجر در مراحل 2 و 4 خطایی را گزارش داده و از انجام آن ها جلوگیری کند. اما در واقع دستگاه لجر، کاربر را برای یک تراکنش لایتکوین مجاب می‌کند در حالی که یک تراکنش امضا شده معتبر مبنی بر خرج کردن UTXO های بیتکوین ایجاد می‌کند.

اثرات

تاثیر این آسیب پذیری جدی است. به صورت خلاصه اشاره شد که کاربران انتظار دارند زمانی که قفل برنامه بیتکوین خود را باز نکرده‌اند، توسط دستگاه لجر محافظت شوند. با این حال، زمانی که قفل یک آلت کوین باز شده، برنامه‌های خارجی همچنان می‌توانند:

  • Xpub بیت کوین را بخوانند (که به موجب آن از تمام آدرس‌های متعلق به کیف پول با خبر شود)
  • از طریق دستگاه لجر موجب تراکنش‌های بیتکوین شود که به عنوان تراکنش‌های آلت کوین نمایش داده می‌شوند.

روش های حمله

متد های زیادی برای حمله وجود دارد. اساسا هر گونه اعتماد صورت گرفته در برنامه های لجر آلتکوین‌ها می تواند مورد سو استفاده قرار گیرد. این موارد را در نظر بگیرید:

  • شما دعوت می‌شوید تا یک خدمت جدید را در رابطه با کوین‌های شبکه آزمایشی امتحان کنید اما در واقع بیت کوین شبکه اصلی و واقعی شما را بر می‌دارد.
  • شما کوین‌های کم ارزش را در یک صرافی بدون اعتماد جا به جا می کنید. این صرافی می‌تواند حساب‌های بیت کوین شما را بخواند و با داشتن این فرصت خوب آن ها را خارج خواهد کرد.
  • شما می‌توانید با یک پچ Ledger Live مورد هدف حمله قرار گیرید که به جای آلتکوین ها، بیت کوین را ارسال می کند در حالی که فکر می‌کنید که یک تراکنش آلتکوین فرد به فرد انجام داده‌اید.

چه نسخه هایی آسیب پذیر هستند:

  • تمام فرمویر ها
  • تمام نسخه های نرم افزار
  • تمام نرم افزارهایی که از اپلیکیشن بیت کوین در btchip_context.h استفاده است
  • شبکه های تستی بیت کوین و لایتکوین

متأسفانه هنوز هیچ گونه تحلیل و بررسی درباره موارد این سوء استفاده انجام نشده است.

توصیه‌ها برای لجر و کاربر

لجر:

  • برنامه‌ها باید کاملا با توجه به مسیر‌هایی که به آن‌ها تخصیص داده شده‌اند، مجزا شوند. هیچ اطلاعاتی از کلید عمومی یا عملکرد‌های امضا نباید زمانی که برنامه باز نیست، آشکار شود.
  • برنامه‌های آلتکوین باید روی فهرست راهنمای برنامه Ledger Live غیرفعال شوند و کاربران باید درباره خودداری از استفاده از برنامه‌های آلتکوین مطلع شوند.
  • کاربران باید بدانند که به سرعت به نسخه لجر خود را به روز رسانی کنند.
  • کاربران نباید تا زمان حل مشکل و به روز رسانی توسط شرکت لجر، از استفاده از برنامه های آلتکوین اجتناب نمایند.

پیگیری های انجام شده

به عقیده پژوهشگری که این آسیب پذیری را کشف کرده، شرکت لجر قبل از وقوع این افشا از این مشکل باخبر بود چرا که آن‌ها تاکید کردند که آخرین به روز رسانی Firmware شامل رفع اشکالات است. بعد از افشا، آن‌ها گفتند که به روز رسانی برنامه در فرآیند‌های تضمین کیفیت قرار دارد و همچنین این که این آسیب پذیری به محض کامل شدن به روز رسانی به صورت عمومی گزارش خواهد شد.

در این زمینه هیچ پیشرفتی حاصل نشد و حتی درخواست‌ها برای به روز رسانی پاسخی دریافت نکردند. چند نکته در این جا روشن است:

  • آن‌ها در ابتدا اهمیت مشکل را تا سطح حریم خصوصی پایین آوردند.
  • وقتی در زمینه برنامه‌هایشان برای پرداختن به مشکل آسیب پذیری تحت فشار قرار گرفتند، ایده‌ای نداشتند و اقدامی نکردند.
  • همچنان بر سر یک دوره افشای 90 روزه اصرار می‌ورزند، علیرغم این که حداقل برای مدت یک سال و نیم (در طول توسعه Firmware 1.5.5) از این مشکل کاملا آگاه بودند.
  • هیچ ارتباط و تعاملی در مورد گام‌های رفع عیب و یا شفاف سازی صورت نگرفت. حتی درخواست‌ها برای اعلام نظر بی پاسخ ماندند.

جمع بندی

این مشکل توسط این محقق هنگام توسعه و آزمایش پشتیبانی لجر روی Liquality کشف شد. مسأله نگران کننده این است که آسیب پذیری مورد نظر از هیچ کدام از روش ها و تکنیک های پیشرفته مثل حمله‌های کانال جانبی یا سرریز های بافر استفاده نمی کند. این نشان می دهد که ممکن است آسیب پذیری های کشف نشده دیگری وجود داشته باشد.

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

بیشتر بخوانید: مشکل تهدید امنیتی جدی تعدادی کیف پول بیتکوین رفع شد