پژوهشگران امنیتی مجموعهای از پکیجهای malicious در مخازن مشهور نرمافزاری مانند npm، PyPI و RubyGems را کشف کردهاند که با استفاده از وبهوکهای Discord بهعنوان کانال فرمان و کنترل (C2)، دادههای حساس را از دستگاههای قربانی استخراج میکنند. این پکیجها که در پوششی از نامهای شبیه به کتابخانههای معتبر منتشر شدهاند، توانستهاند هزاران بار دانلود شوند و بار دیگر توجه جامعه امنیت را به مخاطرات زنجیره تأمین نرمافزار جلب کنند.
در این حملات، پکیجهایی همچون mysql-dumpdiscord در npm گزارش شدهاند؛ این پکیج دادههایی مانند فایل پیکربندی (config.json ، .env و غیره) را جمعآوری کرده و به وبهوک مشخصی در Discord ارسال میکند. همچنین پکیجهایی مانند malinssx، malicus و maliinn در PyPI وجود دارند که پس از نصب، بهطور خودکار یک درخواست HTTP به کانالی در Discord ارسال میکنند و از آنها برای گرفتن دستور از مهاجم استفاده میشود. در اکوسیستم Ruby نیز، پکیج sqlcommenter_rails گزارش شده است که اطلاعات میزبان، فایلهایی مانند /etc/passwd و /etc/resolv.conf را جمعآوری نموده و به وبهوک ثابت ارسال میکند.
یکی از ویژگیهای خطرناک این حملات، بهرهگیری از وبهوکهای Discord به عنوان کانال کنترل (C2 Control) است. این روش برای مهاجمان ارزان است، چون به آنان اجازه میدهد زیرساخت کنترل خود را بدون هزینه سنگین پیادهسازی کنند و در بسیاری از موارد بتوانند از زیر رادار حفاظت فایروالها عبور کنند. افزودن کد مخرب به پکیجها معمولاً در مرحله نصب (install-time hooks) یا اسکریپتهای build رخ میدهد؛ یعنی پیش از آنکه برنامه در حال اجرا باشد، اطلاعاتی چون کلیدهای API، فایلهای پیکربندی، دادههای میزبان یا متغیرهای محیطی استخراج میشود — زمانی که هنوز نظارت عملکردی یا تشخیص نفوذ فعال نشده است.
در یکی از بزرگترین نمونههای اخیر، گروهی با وابستگی به کره شمالی در قالب کمپینی به نام Contagious Interview بیش از ۳۳۸ پکیج مخرب را در npm منتشر کردهاند. این پکیجها پیشتر از طریق بیش از ۵۰ هزار دانلود دریافت شدهاند. مهاجمان برای انتشار این پکیجها از بیش از ۱۸۰ شخصیت جعلی استفاده کردهاند و بیش از یکدوجین نقطه فرمان و کنترل در زیرساخت خود ایجاد کردهاند تا کنترل جریان دادهها را در دست داشته باشند. هدف این حمله، بهطور ویژه توسعهدهندگان حوزه وب۳، رمزارزها و تکنولوژی بلاکچین، و نیز افراد جویای شغل فنی بوده است. مهاجمان در مرحله اول افراد را از طریق لینکداین جذب میکردند، آنها را به انجام پروژه کد دعوت میکردند و سپس با معرفی یک مخزن آلوده، پکیج مخرب را وارد چرخه عملکرد آنان میکردند.
در بسیاری از موارد، این پکیجهای مخرب با نامهایی شبیه به پکیجهای معتبر منتشر شدهاند (typosquatting) — به عنوان مثال تفاوت بسیار کوچک در واژه مانند ethrs.js بجای ethers.js یا dotevn بجای dotenv، که کاربر عادی ممکن است به اشتباه آنها را نصب کند. این نامهای جعلی نه تنها تشخیص را سخت میکردند، بلکه امکان قرارگیری در مسیر CI/CD و تزریق به پروژههای بزرگ را آسان میکردند.
محققان هشدار دادهاند که حذف یک پکیج مخرب کافی نیست؛ اگر حساب منتشرکننده باقی بماند، ممکن است نسخههای جدیدی منتشر شود یا مشابه آن حملات دوباره تکرار شوند. این کمپین به شکلی سازمانیافته و مقیاسپذیر طراحی شده و بیشتر شبیه به خطوط تولیدی (factory model) در حملات زنجیره تأمین است تا فعالیتی تصادفی یا فردی.
برای محافظت در برابر این تهدیدها، توصیههای زیر ضروری تلقی میشوند:
- تنها پکیجهای تاییدشده را نصب کنید و پیش از افزودن آنها به پروژه، استناد به عبارات نظیر تعداد دانلودها، بررسی کامل کد منبع و اعتماد به انتشاردهنده (maintainer) را اعمال کنید.
- هنگام نصب، به پیامهای هشداردهنده مانند اسکریپتهای post-install یا اجرای دستورات خارجی توجه کنید.
- محیطهای توسعه، سرورها و CI/CD را بهگونهای پیکربندی نمایید که نصبهای پکیج در sandbox یا محیط محدود اجرا شود.
- استفاده از ابزارهای اسکن امنیتی خودکار برای بررسی وابستگیها و شناسایی پکیجهای مخرب یا مشکوک را جدی بگیرید.
- کلیدهای API، دادههای حساس و فایلهای پیکربندی را در محیطهای امن و به دور از کد پروژه مدیریت کنید و از فایروال یا محدودسازی دسترسی شبکهای استفاده کنید.
افشای این حملات بار دیگر نشان میدهد که حتی اکوسیستم متن باز (open-source) نیز بیدردسر نیست و حملات زنجیره تأمین میتوانند عواقب فاجعهآمیزی برای پروژهها، شرکتها و کاربران عادی داشته باشند. در وبسایت روز صفر ما این اخبار را با حساسیت دنبال میکنیم و تلاش میکنیم راهنماییهای کاربردی و زودهنگام برای محافظت از پروژههای نرمافزاری شما ارائه دهیم.




