۱۳ بسته npm، ۴۸ ثانیه، یک SDK کیف پول جعلی

یک حمله هماهنگ به مخزن npm، تنها در ۴۸ ثانیه، ۱۳ بسته SDK کیف پول تقلبی به سبک Coinbase را منتشر کرد که نشان می‌دهد کدهای مخرب با چه سرعتی می‌توانند خود را جایگزین ابزارهای مورد اعتماد کنند. توسعه‌دهندگانی که بسته‌ای را تنها بر اساس نام آشنا نصب می‌کنند، ممکن است ناخواسته یک SDK جعلی را به اپلیکیشن‌های خود تزریق کنند.

این بسته‌ها بین ساعت ۰۴:۵۴:۵۹ و ۰۴:۵۵:۴۸ UTC در تاریخ ۷ سپتامبر ۲۰۲۶ ظاهر شدند. نام‌هایی مانند cb-wallet-http و scw-core فضای نام رسمی @coinbase/wallet-sdk را تداعی می‌کنند. مهاجمان به جای استفاده از روش typo-squatting، نام‌ها را با رشته‌های آشنا شروع کردند، با این امید که توصیه یک همکار یا یک پست در انجمن‌ها، کاربران را نسبت به مشروعیت آن‌ها متقاعد کند.

هر ۱۳ نسخه دارای یک پیکربندی اسکلتی یکسان بودند: نسخه 0.0.1-security، لیست خالی از نگهدارندگان و متادیتای پیش‌فرض npm که بلافاصله پس از انتشار نمایش داده می‌شود. این تنظیمات مشابه، نشان‌دهنده یک اسکریپت واحد است که بسته‌ها را به صورت انبوه تولید کرده است؛ ویژگی بارزی از خودکارسازی به جای تلاش دستی.

مدل انتشار باز npm به هر کسی اجازه می‌دهد بدون بازبینی قبلی، بسته‌ای را آپلود کند که امکان چنین حملاتی را فراهم می‌سازد. حوادث گذشته در زنجیره تأمین نشان داده‌اند که وقتی کد مخرب وارد درخت وابستگی (dependency tree) می‌شود، روی هر سیستمی که آن را نصب کند، اجرا خواهد شد.

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

آنچه توسعه‌دهندگان اکنون می‌توانند انجام دهند

  • پیش از افزودن یک بسته، ناشر آن را بررسی کنید؛ SDKهای رسمی تحت اسکوپ‌های سازمان‌های تأییدشده قرار دارند.
  • از ابزارهایی استفاده کنید که وابستگی‌ها را برای یافتن امضاهای مخرب شناخته‌شده اسکن می‌کنند.
  • نسخه‌های دقیق را در فایل‌های lock ثابت نگه دارید و از دریافت بسته‌های تازه منتشر شده بدون بازبینی خودداری کنید.
  • مخازنی را ترجیح دهید که برای نگهدارندگان خود احراز هویت دو مرحله‌ای را الزامی می‌کنند.

مواردی که باید زیر نظر داشت

  • اینکه آیا npm فرآیند بررسی بسته‌هایی را که از برندهای معروف تقلید می‌کنند، سخت‌گیرانه‌تر می‌کند یا خیر.
  • لیست‌های سیاه جامعه‌محور که نام‌های جعل‌کننده را علامت‌گذاری می‌کنند.
  • به‌روزرسانی‌های پژوهشگران امنیتی در مورد هرگونه سوءاستفاده فعال از این ۱۳ SDK جعلی.

این ماجرا ثابت می‌کند که نامی که آشنا به نظر می‌رسد، هیچ تضمینی برای امنیت ارائه نمی‌دهد. هوشیاری و راستی‌آزمایی همچنان قوی‌ترین دفاع در برابر حملات زنجیره تأمین در اکوسیستم متن‌باز هستند.