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

این حمله، جاش جونون (معروف به [۱]Qix) را هدف قرار داد که یک پیام ایمیلی دریافت کرد که از npm (“support@npmjs[.]help”) تقلید می‌کرد و از او می‌خواست تا اعتبارنامه‌های احراز هویت دوعاملی (۲FA) خود را قبل از ۱۰ سپتامبر ۲۰۲۵، با کلیک روی یک لینک جاسازی‌شده، به‌روزرسانی کند.

گفته می‌شود که صفحه فیشینگ، نگهدارنده مشترک را وادار کرده است تا نام کاربری، رمز عبور و توکن احراز هویت دوعاملی (۲FA) خود را وارد کند، اما احتمالاً این اطلاعات از طریق یک حمله مهاجم در میانه ([۲]AitM) به سرقت رفته و برای انتشار نسخه جعلی در رجیستری npm استفاده شده است.

۲۰ بسته زیر که درمجموع بیش از ۲ میلیارد دانلود هفتگی را جذب می‌کنند، به‌عنوان بخشی از این حادثه تحت تأثیر قرار گرفته‌اند.

  • ansi-regex@6.2.1
  • ansi-styles@6.2.2
  • backslash@0.2.1
  • chalk@5.6.1
  • chalk-template@1.1.1
  • color-convert@3.1.1
  • color-name@2.0.1
  • color-string@2.1.1
  • debug@4.4.2
  • error-ex@1.3.3
  • has-ansi@6.0.1
  • is-arrayish@0.3.3
  • proto-tinker-wc@1.8.7
  • supports-hyperlinks@4.1.1
  • simple-swizzle@0.2.3
  • slice-ansi@7.1.1
  • strip-ansi@7.1.1
  • supports-color@10.2.1
  • supports-hyperlinks@4.1.1
  • wrap-ansi@9.0.1

جونون در پستی در بلواسکای گفت[۳]: « از همه عذرخواهی می‌کنم، باید بیشتر توجه می‌کردم. هفته پراسترسی داشته‌ام. برای رفع این مشکل تلاش خواهم کرد.»

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

npm

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

ساکت گفت[۶]: «این بدافزار با بررسی typeof window !== ‘undefined’ برای تأیید اجرای آن در مرورگر شروع می‌شود. سپس به window.fetch، XMLHttpRequest و window.ethereum.request، همراه با سایر APIهای ارائه‌دهنده کیف پول، متصل می‌شود.»

«این بدان معناست که این بدافزار کاربران نهایی دارای کیف پول‌های متصل را که از سایتی بازدید می‌کنند که شامل کد آسیب‌دیده است، هدف قرار می‌دهد. توسعه‌دهندگان ذاتاً هدف نیستند، اما اگر یک سایت آسیب‌دیده را در مرورگر باز کنند و یک کیف پول را متصل کنند، آن‌ها نیز قربانی می‌شوند.»

اکوسیستم‌های بسته‌ای مانند npm و فهرست بسته‌های پایتون (PyPI) به دلیل محبوبیت و دسترسی گسترده در جامعه توسعه‌دهندگان، همچنان اهداف مکرری هستند و مهاجمان از اعتماد مرتبط با این پلتفرم‌ها برای ارسال بارهای مخرب سوءاستفاده می‌کنند.

علاوه بر انتشار مستقیم بسته‌های مخرب، مهاجمان همچنین از تکنیک‌هایی مانند typosquatting یا حتی سوءاستفاده از وابستگی‌های توهم‌زای هوش مصنوعی – به نام [۷]slopsquatting – برای فریب توسعه‌دهندگان به نصب بدافزار استفاده کرده‌اند. این حادثه یک بار نشان‌دهنده نیاز به هوشیاری و سخت‌تر کردن خطوط لوله CI/CD و قفل‌کردن وابستگی‌ها است.

طبق گزارش[۸] امنیت زنجیره تأمین نرم‌افزار ReversingLabs در سال ۲۰۲۵، ۱۴ مورد از ۲۳ کمپین مخرب مرتبط با ارزهای دیجیتال در سال ۲۰۲۴، npm را هدف قرار داده‌اند و بقیه به PyPI مرتبط هستند.

ایلکا تورونن، مدیر ارشد فناوری در Sonatype، به The Hacker News گفت: «آنچه که ما در حال حاضر در بسته‌های npm می‌بینیم، متأسفانه یک نمونه رایج در زنجیره تأمین نرم‌افزار است.»

«این بدافزار بر سرقت ارزهای دیجیتال متمرکز بود، اما این تصاحب پس از یک حمله کلاسیک که اکنون تثبیت شده است، رخ می‌دهد – با تصاحب بسته‌های متن‌باز محبوب، دشمنان می‌توانند اسرار را سرقت کنند، درهای پشتی را پشت سر بگذارند و به سازمان‌ها نفوذ کنند.»

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

  منابع

[۱] https://www.npmjs.com/~qix

[۲] https://thehackernews.com/2024/11/phishing-as-service-rockstar-2fa.html

[۳] https://bsky.app/profile/bad-at-computer.bsky.social/post/3lydioq5swk2y

[۴] https://en.wikipedia.org/wiki/Levenshtein_distance

[۵] https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised

[۶] https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack

[۷] https://thehackernews.com/2025/04/malicious-pypi-package-targets-mexc.html

[۸] https://www.reversinglabs.com/thank-you/sscs-report-thank-you

[۹] https://thehackernews.com/2025/09/20-popular-npm-packages-with-2-billion.html