تیم‌های امنیتی موفق به شناسایی یک حمله هدفمند به مخزن پروژه SDK تیم Injective Labs در پلتفرم گیت‌هاب شده‌اند. مهاجم با سوءاستفاده از دسترسی‌های توسعه‌دهنده معتبر، اقدام به انتشار نسخه مخرب بسته‌ای به نام @injectivelabs/sdk-ts@1.20.21 در پلتفرم عمومی نexus عمومی npm کرده است. این نسخه با هدف سرقت کلیدهای خصوصی کیف پول‌ها و عبارات seed (mnemonic) طراحی شده و می‌تواند دارایی‌های دیجیتالی توسعه‌دهندگان و کاربران نهایی را به خطر بیندازد.

بسته مورد نظر در تاریخ ۸ ژوئیه ۲۰۲۶ در ریجستری منتشر شد و هرچند وضعیت آن اکنون deprecated (منسوخ) شده است، اما فایل‌های نصبی آن همچنان از گیت‌هاب قابل دانلود هستند. گزارش‌های منتشر شده از سوی شرکت Socket نشان می‌دهد که عملکرد مخرب از طریق کامیت‌های ارسالی از حساب یک توسعه‌دهنده با سابقه طولانی به مخزن رسمی تزریق شده است. عامل این تهدید موفق شده با فریب سیستم‌های بررسی هویت و استفاده از خط لوله trusted-publisher مبتنی بر OIDC، کامیت‌ها را با نام کاربری thomasRalee ثبت کند.

مکانیسم پنهان‌کاری و سرقت اطلاعات

بدافeware به کار رفته در این بسته، با دور زدن اسکریپت‌های چرخه حیات (Lifecycle Scripts) و عدم اجرا در مرحله نصب، از دید ابزارهای پایش امنیتی پنهان می‌ماند. فعالیت مخرب تنها زمانی فعال می‌شود که توسعه‌دهنده به توابع کتابخانه دسترسی پیدا کند. هسته اصلی این حمله، جایگزینی توابع معتبر تولید کلید خصوصی با تابعی مخرب به نام trackKeyDerivation() است. طبق توضیحات جعلی مستندات، این تابع قرار است الگوهای زمانی و روش‌های استخراج کلید (hex یا mnemonic) را برای بهینه‌سازی عملکرد SDK رصد کند، اما در عمل پارامترهای ارسالی شامل نشانگر سخت‌کد شده روش تولید کلید و خودِ داده‌های حساس است.

نمودار معماری حمله زنجیره تامین و نحوه سرقت اطلاعات کیف پول

به گفته کارشناسان OX Security، هر بار که کاربر از منطق‌های مرتبط با خواندن عبارات mnemonic استفاده می‌کند، بدافزار اطلاعات را استخراج و به یک سرور خارجی ارسال می‌نماید. برای جلوگیری از ایجاد ترافیک مشکوک و کاهش حجم درخواست‌های خروجی، مکانیزم انتقال داده‌ها طوری طراحی شده که چندین درخواست استخراج کلید را در بازه زمانی 2 ثانیه‌ای در یک صف ذخیره کند و نهایتاً به صورت یک بسته HTTPS POST به آدرس testnet.archival.chain.grpc-web.injective[.]network ارسال نماید. با دریافت این داده‌ها در سمت مهاجم، امکان بازتولید دقیق کلیدهای خصوصی کاملاً فراهم خواهد بود.

گسترش تهدید در اکوسیستم وابسته

جنگ‌افزار زنجیره تامین (Supply Chain) به سرعت به 17 بسته دیگر با اسکوپ @injectivelabs منتقل شد. این بسته‌ها به نسخه 1.20.21 وابسته بوده و آن را با دقت قفل (pin) کرده‌اند. لیست کامل بسته‌های آسیب‌پذیر شامل موارد زیر است:

  • @injectivelabs/utils
  • @injectivelabs/networks
  • @injectivelabs/ts-types
  • @injectivelabs/exceptions
  • @injectivelabs/wallet-base تا @injectivelabs/wallet-cosmos-strategy (شامل تمامی پلاگین‌های Trezor، Ledger، WalletConnect، Magic، Turnkey و غیره)

این ساختار چندلایه باعث می‌شود پروژه‌هایی که مستقیماً کتابخانه مخرب را نصب نکرده‌اند، همچنان به صورت غیرمستقیم (ترانزیتی) در معرض سرقت اطلاعات قرار گیرند.

راهکارهای فوری و پاک‌سازی

تیم‌های امنیتی مانند StepSecurity بلافاصله پس از شناسایی حمله، اقدام به انتشار نسخه پاک 1.20.23 کردند. توسعه‌دهندگانی که از نسخه‌های آسیب‌پذیر استفاده کرده‌اند باید فوراً موارد زیر را اعمال کنند:

  1. فوراً پکیج را به نسخه 1.20.23 ارتقا دهند.
  2. تمامی کلیدهای خصوصی و عبارات mnemonic تولید شده یا استفاده شده پس از انتشار بسته مخرب را کاملاً دور بیندازند.
  3. وابستگی‌های ترانزیتی پروژه‌ها را مجدداً بررسی و به‌روزرسانی کنند.
  4. از روش‌های رمزنگاری چندمرحله‌ای (MFA) و احراز هویت سخت‌افزاری برای دسترسی به ریجستری‌های عمومی استفاده نمایند.

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