نسخه مخرب یک ابزار نرمافزاری که توسط توسعهدهندگان Injective استفاده میشد، برای جمعآوری کلیدهای خصوصی کیف پول و عبارات بازیابی طراحی شده بود و نگرانیهایی را برای برنامههایی که اطلاعات حساس کیف پول را از طریق نسخه آسیبدیده پردازش میکردند، ایجاد کرد. هکرها یک بسته نرمافزاری مورد استفاده توسط توسعهدهندگان در حال ساخت کیف پولها و برنامهها برای بلاک چین Injective را نفوذ کردند و کدی را اضافه نمودند که قادر به جمعآوری مخفیانه اعتبارنامههای کیف پول کریپتو است.
شرکت امنیتی Socket کد مخرب را در نسخه 1.20.21 از @injectivelabs/sdk-ts یافت، بستهای که به برنامهها کمک میکند تا با Injective متصل شوند و عملکردهای مرتبط با کیف پول را مدیریت کنند. این بسته معمولاً هفتهای حدود 50,000 دانلود دریافت میکند، اگرچه این رقم شامل تمام نسخههاست و نشاندهنده تعداد افراد تحت تأثیر این حادثه نیست.
Socket اعلام کرد که نسخه نفوذ شده حدود 310 بار دانلود شده است. با این حال، دانلود به خودی خود به معنای افشا شدن کلید کیف پول نیست. کد خطرناک باید زمانی اجرا میشد که یک برنامه در حال پردازش کلید خصوصی یا عبارت بازیابی بود. هیچ آمار تایید شدهای از تعداد کیف پولهای تحت تأثیر منتشر نشده است و هیچ شواهد عمومی مبنی بر سرقت وجود وجود ندارد.
این حادثه شامل نقض خود بلاک چین Injective نبود. در عوض، مهاجمان یک جزء نرمافزاری مورد اعتماد که توسط توسعهدهندگان استفاده میشد را هدف قرار دادند، روشی که معمولاً به عنوان حمله زنجیره تأمین نرمافزار توصیف میشود.
توسعهدهندگان اغلب به بستههای نرمافزاری آماده متکی هستند تا اینکه هر بخش از یک برنامه را از ابتدا بنویسند. این بستهها میتوانند وظایفی مانند اتصال به بلاک چین، ایجاد کیف پولها و امضای تراکنشها را انجام دهند. در این مورد، کد مخرب در داخل یک بسته رسمی Injective قرار داده شده بود و طوری طراحی شده بود که هنگام پردازش اطلاعات حساس کیف پول توسط یک برنامه فعال شود. Socket گفت که این کد میتواند کلید خصوصی یا عبارت بازیابی منمونیک را ضبط کند و تلاش کند دادهها را ارسال نماید، در حالی که فعالیت را به عنوان گزارش فنی معمولی پنهان میکند.
کلید خصوصی به دارنده آن کنترل بر کیف پول کریپتوی مرتبط را میدهد. عبارت بازیابی میتواند برای بازیابی همان کیف پول در دستگاه دیگری استفاده شود. برخلاف رمز عبور حساب معمولی، این اعتبارنامهها پس از افشا شدن نمیتوانند به سادگی بازنشانی شوند.
نفوذ به کلیدهای خصوصی به یکی از مخربترین اشکال حملات کریپتو تبدیل شده است، زیرا مجرمان میتوانند بدون نیاز به شکستن بلاک چین زیرین، کنترل مستقیم کیف پولها را به دست آورند. یک بررسی امنیتی اخیر نشان داد که حوادث مربوط به کلید خصوصی حدود 40٪ از زیانهای ثبت شده در مجموعه دادهای که بررسی کرده بود را تشکیل میدهند. حادثه Injective همچنین نشان میدهد چرا مهاجمان روز به روز بیشتر نرمافزارها و پلتفرمهایی را هدف قرار میدهند که کاربران از قبل به آنها اعتماد دارند. نام بسته آشنا، حساب توسعهدهنده معتبر یا برنامه شناخته شده میتواند فعالیت مخرب را مشروع جلوه دهد و احتمال سوال پرسیدن کاربران را کاهش دهد.
Socket گفت که تغییرات غیرمجاز از طریق حساب GitHub توسعهدهندهای با سابقه مشخص مشارکت در پروژه Injective ارسال شده است. صاحب واقعی حساب بعداً فعالیت را تشخیص داد و تغییرات را واگردانی کرد. گزارش موجود مهاجم را شناسایی نمیکند یا توضیح نمیدهد که چگونه به حساب دسترسی پیدا شده است.
کد سرقت کیف پول در نسخه 1.20.21 از بسته اصلی SDK Injective قرار داشت. با این حال، 17 بسته دیگر در مجموعه npm Injective با پیوندهایی به همان نسخه آسیبدیده منتشر شدند. این بدان معناست که برخی از توسعهدهندگان ممکن است نرمافزار نفوذ شده را به صورت غیرمستقیم دریافت کرده باشند. یک برنامه ممکن است یک بسته Injective را نصب کرده باشد، در حالی که آن بسته به طور خودکار SDK آسیبدیده را در پسزمینه وارد کرده است.
بنابراین این حادثه نباید به عنوان 18 بسته جداگانه آلوده توصیف شود. شواهد موجود نشان میدهد که SDK اصلی حاوی عملکرد مخرب بود، در حالی که 17 بسته مرتبط مستقیماً یا غیرمستقیماً به آن نسخه وابسته بودند. Socket گفت که نسخه آسیبدیده پس از کشف نفوذ به عنوان منسوخ شده علامتگذاری شد و نسخه پاک منتشر گردید. با این حال، در زمان گزارش Socket، نسخه نفوذ شده به طور کامل از npm حذف نشده بود و مواد انتشار مرتبط از طریق GitHub در دسترس باقی مانده بود.
گزارشها همچنین در مورد تاریخ دقیق حادثه متفاوت بودهاند. جدول زمانی منتشر شده توسط Socket به 8 ژوئن اشاره دارد، در حالی که برخی گزارشهای ثانویه فعالیت را در ژویه قرار دادهاند. از آنجا که ماه به طور مستقل حل نشده است، تاریخ دقیق باید به منبع نسبت داده شود نه اینکه به عنوان یک واقعیت غیرقابل بحث بیان گردد.
به توسعهدهندگانی که از نسخه 1.20.21، چه مستقیماً و چه از طریق بسته دیگر Injective استفاده کردهاند، توصیه شده است فرض کنند که اعتبارنامههای کیف پول پردازش شده توسط نرمافزار آسیبدیده ممکن است افشا شده باشند.
اقدامات توصیه شده شامل موارد زیر است:
بهروزرسانی بسته به تنهایی ممکن است از کیف پول محافظت نکند اگر اعتبارنامههای آن قبلاً کپی شده باشند. به محض اینکه طرف دیگری کلید خصوصی یا عبارت بازیابی را به دست آورد، کیف پول قدیمی دیگر نباید امن در نظر گرفته شود. کاربران کیف پول همچنین باید مجوزهایی را که تأیید میکنند بررسی نمایند. در یک مورد جداگانه، مهاجم پس از امضای درخواست مجوز مخرب توسط قربانی، حدود 92,000 دلار Tether Gold را سرقت کرد که نشان میدهد مجرمان همیشه نیازی به دریافت مستقیم عبارت بازیابی برای برداشتن داراییها ندارند.
اگرچه آن مورد از تکنیک متفاوتی استفاده کرد، اما همان مشکل گستردهتر را برجسته میکند: امنیت کریپتو نه تنها به بلاک چین، بلکه به نرمافزار، تأییدیهها و خدمات اطراف کیف پول نیز بستگی دارد. در حال حاضر هیچ شواهدی مبنی بر هک شدن بلاک چین Injective، به خطر افتادن هر کیف پول Injective یا سرقت مقدار تأیید شدهای از ارز دیجیتال وجود ندارد. خطر شناخته شده محدود به برنامههایی است که بسته نفوذ شده را نصب کرده و اعتبارنامههای کیف پول را از طریق آن پردازش نمودهاند.

