پژوهشگران امنیتی مجموعهای از ۱۷۵ پکیج های مخرب npm را شناسایی کردهاند که بهعنوان زیرساخت یک کمپین بزرگ فیشینگِ سرقتاعتبار مورد استفاده قرار گرفتهاند. این پکیجها تاکنون در مجموع حدود ۲۶,۰۰۰ بار دانلود شدهاند و بهعنوان ستون فقرات یک کمپین موسوم به Beamglea عمل کردهاند که بیش از ۱۳۵ شرکت در حوزههای صنعتی، فناوری و انرژی را هدف قرار داده است، طبق اعلام شرکت Socket.
چرا دانلود پکیج های مخرب npm زیاد شد؟
اسمهای تصادفی پکیجها احتمال نصب تصادفی توسط توسعهدهندگان را کم میکند؛ اما شمار دانلودها احتمالاً شامل کار آزمایشی محققان امنیتی، اسکنرهای خودکار و CDNهاست که پس از افشای ماجرا در حال تحلیل پکیجها بودهاند، طبق گفتهی پژوهشگر امنیتی Kush Pandya.
📡 سازوکار حمله — چگونه npm و UNPKG به ابزار فیشینگ تبدیل شدند
مهاجمان از رجیستری عمومی npm و CDN عمومی unpkg.com برای میزبانی اسکریپتهای ریدایرکت استفاده کردهاند که قربانیان را به صفحات فیشینگ هدایت میکنند. برخی از جزئیات فنی این روش عبارتاند از:
این مجموعه پکیجها شامل یک اسکریپت پایتون به نام redirect_generator.py است که بهطور برنامهای یک پکیج npm با نامی مثل
redirect-xxxxxx
(xها رشتهای تصادفی) میسازد و آن را منتشر میکند. سپس ایمیل قربانی و آدرس URL فیشینگ را در پکیج تزریق میکند.پس از انتشار پکیج روی npm، ماژول مخرب یک فایل HTML میسازد که به نسخهی CDN آن پکیج (مثلاً
unpkg[.]com/redirect-xs13nr@1.0.0/beamglea.js
) اشاره میکند.فایل جاوااسکریپت
beamglea.js
حاوی یک ریدایرکت است که ایمیل قربانی و آدرس مقصد فیشینگ را در خود دارد. وقتی قربانی فایل HTML را در مرورگر باز کند، جاوااسکریپت فوراً کاربر را به دامنهی فیشینگ میفرستد و ایمیل را از طریق fragment یا پارامتر URL میفرستد تا فیلد ایمیل در فرم فیشینگ از قبل پر شده باشد — این ترفند میزان موفقیت حمله را بسیار بالا میبرد.
Socket گزارش داده بیش از ۶۳۰ فایل HTML که خود را بهصورت سفارش خرید، مستندات فنی یا فایلهای پروژه جا زدهاند، در جریان این کمپین یافت شده است.
⚙️ نکتهٔ مهم: پکیجها موقع نصب مخرب نیستند
در این حمله، پکیجهای npm عملاً کد مخرب را هنگام npm install
اجرا نمیکنند؛ در واقع مهاجمان از npm و UNPKG صرفاً بهعنوان میزبانِ زیرساخت فیشینگ استفاده کردهاند. هنوز مشخص نیست فایلهای HTML چگونه به قربانیان رسیدهاند؛ اما محتمل است که از طریق ایمیلهای فیشینگ ارسال شده باشند که گیرنده را فریب میدهند تا فایل HTML مخصوص را باز کند.
وقتی قربانی فایل HTML را در مرورگر باز کند، اسکریپت جاوا آنها را به صفحه فیشینگ هدایت و ایمیل را از طریق URL منتقل میکند تا فرم ایمیل از قبل پر شود — نتیجه: اعتماد بیشتر و نرخ موفقیت بالاتر حمله.
🔁 چرا این تاکتیک خطرناک و مقاوم است؟
تحلیلگران میگویند مهاجمان با انتشار ۱۷۵ پکیج از طریق ۹ اکانت و اتوماسیون تولید HTML مخصوص هر قربانی، یک زیرساخت فیشینگ مقاوم و کمهزینه ساختهاند که از CDNهای مورد اعتماد استفاده میکند. این ترکیبِ «رجیستری عمومی + CDN خودکار + کد حداقلی» یک playbook تکرارپذیر فراهم کرده که احتمالاً دیگر بازیگران تهدید هم از آن الگوبرداری خواهند کرد.
به بیان ساده: اکوسیستم npm در این سناریو نقش «زیرساخت ناخواسته» را ایفا کرده است، نه اینکه مستقیماً بهعنوان وکتور حمله عمل کند.
🛡️ توصیههای امنیتی (برای سازمانها و توسعهدهندگان)
به ایمیلها و فایلهای HTML پیوستشده احتیاط کنید — حتی اگر از منابعی که بهنظر معتبر میرسند آمده باشند.
تحلیل محتوای HTML دریافتی پیش از باز کردن؛ فایل HTML را در یک محیط sandbox یا متننگار بررسی کنید تا کد ریدایرکت مخفی شناسایی شود.
نظارت بر CDN و لینکهای خارجی در اسناد دریافتی؛ لینکهایی که به
unpkg.com
یا سایر CDNها اشاره دارند را با احتیاط بررسی کنید.آموزش کارکنان در خصوص اینکه فرمهایی که از پیش با ایمیل پر شدهاند لزوماً معتبر نیستند.
محدود کردن دانلودهای خودکار از رجیستریها در CI/CD و استفاده از ابزارهایی که وابستگیها را بررسی میکنند (Software Bill of Materials / SBoM) و وابستگیهای غیرمعمول را علامتگذاری میکنند.
ابزارهای حفاظتی مانند WAF، EDR و سیستمهای sandboxing را برای تشخیص صفحاتی که پر کردن خودکار فرم دارند، تقویت کنید.
🔍 جمعبندی
کمپین Beamglea نمونهی دیگری از سوءاستفادهی بازیگران تهدید از زیرساختهای مشروع اینترنتی (npm و UNPKG) برای ساخت زیرساخت توزیع فیشینگ است. این حمله نشان میدهد که دفاعکنندگان باید علاوه بر بررسی کد نصبشده، به بررسی محتوای دریافتی (HTML/JS) هم توجه ویژهای داشته باشند — زیرا گاهی خطر از جایی میآید که کمترین انتظار میرود: رجیستریهای پکیج و CDNهای عمومی.