آسیبپذیری کتابخانه کانتکور لجر (Ledger) کل اکوسیستم دیفای را به خطر انداخت؛ ماجرا چه بود و راهکارهای پیش رو چیست؟
روز گذشته در ۱۴ دسامبر (۲۴ آذر) یک عامل مخرب از یک آسیبپذیری در کتابخانه کانکتور کیف پول سختافزاری لجر (Ledger Connect) سوءاستفاده کرد. این حمله اکسپلویت کل اکوسیستم برنامههای غیرمتمرکز (DApp) را در معرض خطر قرار داد. در این مطلب، ضمن اشاره به علت این اتفاق به بررسی راهکارهای پیش رو برای در امان ماندن از خطرات این چنینی خواهیم پرداخت.
از کیف پولهای سختافزاری همیشه به عنوان یکی از امنترین گزینهها برای نگهداری ارزهای دیجیتال یاد میشود اما وقتی حادثهای در مورد این نوع کیف پولها رخ میدهد، بسیاری از کاربران نگران میشوند که آیا اصلا گزینه امنی وجود دارد یا خیر. به ویژه بسیاری از کاربران ایرانی که از این کیف پول استفاده میکنند، احتمالا این سوال برایشان پیش آمده است که در استفاده از لجر به چه نکاتی باید توجه داشته باشند تا از سرقت ارزهای دیجیتال در امان بمانند.
ماجرا چه بود؟
اوایل روز گذشته، لجر سازنده کیف پول سختافزاری کریپتو تایید کرد که کتابخانه Connector آن پس از اینکه مهاجمان نسخه اصلی را با یک فایل مخرب جایگزین کردند، در معرض خطر قرار گرفته است. پس از این حادثه، چندین برنامه غیرمتمرکز (dApps) با حملات اکسپلویت مواجه شدند و مهاجم موفق شد بیش از ۵۰۰٬۰۰۰ دلار را از چندین کیف پول سرقت کند.
به گفته تیم توسعهدهنده پلتفرم Cyvers، این مهاجم ابتدا از یک حمله فیشینگ برای به خطر انداختن رایانه یکی از کارکنان سابق لجر استفاده کرد تا به حساب جاوا اسکریپت Package Manager گره (NPMJS) این کارمند دسترسی پیدا کند. توسعهدهندگان از ابزار Package Manager برای پیدا کردن، دانلود، نصب، بهروزرسانی و حذف خودکار پکیجها استفاده میکنند.
سپس هکر یک بهروزرسانی مخرب را در مخزن گیتهابِ پلتفرم Ledger Connect آپلود کرد. در نتیجه، نسخه تغییر یافته Ledger Connect Kit منتشر شد که حاوی کدهای مخرب بود. این کد در WalletConnect به کار گرفته شد که وجوه را به کیف پولی که توسط هکر کنترل میشد هدایت میکرد.
در نهایت، برخی از اپلیکیشنهای وب ۳ بهروزرسانی شدند و کدهای مخرب را در مرورگرهای کاربران توزیع کردند. اپلیکیشنهای Zapper، سوشی سواپ (SushiSwap)، فانتوم (Phantom)، بلنسر (Balancer) و Revoke.cash از جمله برنامههایی بودند که به این کد آلوده شدند. برای هر کاربری که گزینه اتصال از طریق WalletConnect نمایش داده میشد، موجودی او به حساب هکر منتقل میشد.
سایر برنامهها نیز تحت تاثیر این کد مخرب قرار داشتند و کارشناسان هشدار دادند که این آسیبپذیری ممکن است روی کل اکوسیستم ماشین مجازی اتریوم (EVM) تاثیر بگذارد. با این حال، این حادثه مستقیما بر کیف پول لجر یا عبارات سید یا لجر لایو (Ledger Live) تاثیر نمیگذارد. این خطر تنها زمانی رخ میدهد که کاربران کیف پول خود را به dAppها متصل کنند.
تحلیلگران معتقدند مهاجم احتمالا از کدهای مخرب برای نمایش تراکنشهای گیجکننده در کیف پول کاربر استفاده کرده تا کاربر تراکنشهایی را که قصد انجام آنها را نداشته، تایید کند. جیمز لوپ (Jameson Lopp)، یکی از فعالان بازار کریپتو اعلام کرده است:
به نظر میرسد مشکل امنیتی امروز به خاطر ۳ شکست جداگانه در لجر رخ داد:
۱. بارگذاری کورکورانه کد بدون پین کردن یک نسخه خاص و چکسام (checksum)
۲. عدم اجرای قانون دو بار بررسی قبل از استقرار کد
۳. عدم لغو دسترسی کارمندان سابق
هنگام راهاندازی اپلیکیشنهای مختلف توسعهدهندهها کیت اتصالی مثل Ledger Connect را از طریق NPMJS نصب میکنند. در نتیجه کیت اتصال در کد اپلیکیشن آنها قرار میگیرد و هر زمان که کاربر از سایت بازدید کند، در مرورگر او دانلود میشود. کد مخرب مهاجم لجر هم احتمالا باعث شده تراکنشهای تقلبی در کیف پول کاربر نمایش داده شود.
این کد برای مثال توانسته در کیف پول کاربر یک درخواست تایید رمز را نشان دهد، اما آدرس مهاجم به جای آدرس اصلی درج شده است. یا اینکه ممکن است یک درخواست تایید با کدهای دشوار برای کاربر ظاهر شده باشد و کاربر بدون اینکه بفهمد با چه چیزی موافقت میکند، گزینه «تایید» را فشار دهد.
لازم به ذکر است کیف پول متامسک نیز تحت تاثیر این حادثه قرار گرفت. متامسک در پلتفرم X یک به روزرسانی را برای رفع این مشکل قرار داد. این شرکت در توییتی هشدار داد:
لطفا قبل از انجام هرگونه تراکنش در MetaMask Portfolio، مطمئن شوید که ویژگی Blockaid را در افزونه متامسک روشن کردهاید.
لجر مشکل را حل کرد
لجر با جایگزین کردن کیت مخرب Ledger Connect با یک نسخه معتبر (Ledger Connect Kit 1.1.8)، به سرعت این مشکل را برطرف کرد. این سازنده کیف پول سختافزاری این مشکل را تایید کرد و متعهد شد گزارش جامعی را به زودی منتشر کند.
به گفته این شرکت، در عرض ۴۰ دقیقه پس از آگاه شدن، رفع مشکل انجام شد. فایل مخرب حدود ۵ ساعت فعال بود. با این حال، عملیات تخلیه وجوه تنها در مدت کمتر از دو ساعت انجام شده بود.
۶۱۰ هزار دلار به سرقت رفت
علیرغم رفع مشکل و نگرانیهای متعاقب آن، ZachXBT کاراگاه آنچین گزارش داد که ۶۱۰٬۰۰۰ دلار از کیفپولهای مختلف سرقت شده است.
بر اساس دادههای DeBank، کیف پول مهاجم نیز در اتراسکن با عنوان «Ledger Exploiter» برچسبگذاری شده است که موجودی آن بیش از ۳۳۰٬۰۰۰ دلار است.
پائولو آردوینو، مدیر عامل تتر نیز اعلام کرد این شرکت بلافاصله کیف پول هکر را فریز کرده است. این کیف پول حاوی ۴۴٬۰۰۰ تتر بوده است. فریز به این معنی است که این کیف پول دیگر نمیتواند USDT را به آدرسهای دیگر ارسال کند. با این حال، میتواند به انجام معاملات دیگر ادامه دهد.
کاربران لجر برای در امان ماندن از خطرات از چه راهکارهایی استفاده کنند؟
- قبل از استفاده از هرگونه DApp، وضعیت آسیبپذیری Ledger Connect Kit را بررسی کنید. شرکت لجر پچ امنیتی اتصال اضطراری Ledger Connect Kit 1.1.8 را به روزرسانی کرده که به طور خودکار منتشر میشود. این شرکت از کاربران خواسته بررسی کنند که آیا از آخرین نسخه استفاده میکنند یا خیر. همچنین، توصیه کرده تا ۴۸ ساعت از dappها استفاده نکنید.
- کش مرورگر را پاک کنید. برای محافظت از خود در برابر هر کد خطرناکی که ممکن است در مرورگر شما ذخیره شده باشد، قبل از اتصال به هر نوع dapp، حافظه پنهان مرورگر خود را پاک کنید.
- تراکنشهای خود را با استفاده از امضای شفاف (Clear Sign) تایید کنید تا از هماهنگی بین اطلاعات نمایش داده شده روی صفحه رایانه/ تلفن همراه و اطلاعات موجود در دستگاه لجر اطمینان حاصل شود. لجر هشدار داده است آدرس ها و اطلاعات ارائه شده در صفحه لجر تنها اطلاعات واقعی هستند. اگر بین صفحه نمایش داده شده در دستگاه لجر و صفحه رایانه/تلفن شما تفاوتی وجود دارد، فورا آن تراکنش را متوقف کنید.
- به عنوان بهترین روش، پس از انجام یک تراکنش خاص، تاییدیههای مرتبط با آن dapp را لغو کنید.
- هنگام تعامل با نسخههای آزمایشی یا بتای برنامهها همیشه از کیف پولهای برنر (Burner Wallet) یا همان کیف پولهای موقت استفاده کنید.
- دارایی اصلی خود را در کیف پولهایی نگهداری کنید که با قراردادهای هوشمند یا dAppها تعامل ندارند و فقط در مواقعی که نیاز به سواپ، استیکینگ، استفاده از بریج و غیره وجود دارد به کیفپولهای گرم یا کیف پولهای فعالتان منتقل کنید.
- تنها مبالغ مورد نیاز را برای جابجایی، سواپ، بریج و استیک استفاده کرده و سپس تاییدیهها را لغو کنید.
با انجام مراحل بالا، احتمال قرار گرفتن کل دارایی شما را در معرض سوء استفادههای احتمالی کاهش مییابد.