سال 2025 نقطه عطفی در تغییرِ چهره تهدیدات امنیتی، بهویژه در حملات زنجیره تأمین (Supply Chain Attacks) بود. تعداد بستههای مخرب در مخازن PyPI و npm بهشدت افزایش یافته و تاکتیکهایی مانند DLL side-loading، typosquatting و C2 communication توسعه یافتهاند. در این مقاله از سلام دیجی بررسی می کنیم که چگونه این رفتار مخرب در حال پیچیدهتر شدن است و چه راهکارهایی برای مقابلهی مؤثر وجود دارد.
۱. افزایش قابلتوجه بستههای مخرب
🔸 شرکت Sonatype رشد ۱۸۸٪ای بستههای مخرب را در سهماهه دوم سال ۲۰۲۵ گزارش کرده که شامل 16,279 بسته ی مخرب در npm و PyPI میشود. بیش از نیمی از این بستهها برای استخراج دادههای حساس مانند رمزعبور، API key و دادههای CI/CD طراحی شدهاند.
🔸 گروه Lazarus در کرهشمالی مسئول بیش از ۱۰۷ بسته مخرب بوده که با بیش از ۳۰,۰۵۰ دانلود فعال، در حال گسترش Operation Marstech Mayhem هستند.
💡 نمونهکد: اسکن امنیتی پکیجهای npm قبل از نصب
npm audit --json
این دستور گزارشی JSON از آسیبپذیریها ارائه میدهد تا پیش از نصب، امنیت بستهها بررسی شود.
۲. تکنیکهای پیشرفته حمله
🔸 در حملهای خاص، بستهی termncolor در PyPI، ابتدا با وارد کردن بستهی colorinal به سیستم نفوذ کرده و سپس از طریق DLL side-loading فایلهایی مانند exe و libcef.dll را اجرا میکند. این DLL قابلیت استخراج اطلاعات و برقراری ارتباط C2 از طریق Zulip را دارد و برای پایداری حمله، ورودی در رجیستری Run ویندوز اضافه میکند.
🔸 در حملات دیگر، بستههای PyPI مخرب بهصورت پوششدهنده (masquerade) ابزارهای ساده ی زمانی منتشر میشدند تا اعتبار توسعهدهنده را سوءاستفاده کرده و توکنهای ابری را سرقت کنند.
💡 نمونهکد: نصب ایمن بستههای PyPI با هش
# requirements.txt
requests==2.32.3 \
--hash=sha256:2e0b5f... \
--hash=sha256:b7d42a...
pip install --require-hashes -r requirements.txt
۳. حملات cross-ecosystem و typosquatting
🔸 کمپینهایی از حملات cloud-to-dev در هر دو اکوسیستم PyPI و npm گزارش شدهاند که با تاکتیکهایی همچون typosquatting و نامگذاری مشابه بستههای معتبر (مثل colorama و colorizr) طعمهگذاری میکنند.
🔸 Socket اخیراً کشف کرده که ۶۰ بسته مخرب در npm، پس از نصب بهصورت اسکریپت پستاینستال اطلاعات حساس را استخراج میکنند، از جمله IP داخل شبکه، DNS و نامهاست.
🔸 گروه Lazarus از تاکتیکهای مشابه در npm و PyPI استفاده کرده و تعداد 234 بسته مخرب را بارگذاری کرده است. تا کنون تا 36,000 قربانی تخمین زده شده.
💡 نمونهکد: غیرفعالکردن اسکریپتهای postinstall در npm
# .npmrc
ignore-scripts=true
audit=true
fund=false
این تنظیمات جلوی اجرای اسکریپتهای مخفی پس از نصب را میگیرد.
۴. راهکارهای محافظتی و پیشرفته
واکنش پلتفرمها:
🔸 PyPI از ژوئن ۲۰۲۵ بیش از 1,800 آدرس ایمیل منقضیشده را برای محافظت در برابر Account Takeover بلاک کرده. این اقدام، حملات «domain resurrection» را مسدود میکند.
🔸 PSF نسبت به حملات فیشینگ targeting توسعهدهندگان هشدار داده است؛ مهاجمان با استفاده از دامنههای typosquatting (مانندorg) تلاش میکنند توکنهای ورود را سرقت کنند.
ابزارهای نوین امنیتی:
🔸 MalGuard سامانهای است که با تحلیل گراف مرکزی و الگوریتم LIME، توانسته ۱۱۳ بسته مخرب را از مجموع بیش از ۶۴ هزار بسته جدید شناسایی و حذف کند.
🔸 TypoSmart فناوری مقابله با typosquatting است که سرعت تشخیص را ۷۳–۹۱٪ و false-positive را کاهش ۷۰٪ فراهم کرده و در یک ماه ۳,۶۵۸ بسته مخرب را حذف کرده است.
🔸 پژوهشی در حوزه pinning نشان میدهد که قطعاً این روش کافی نیست. گاهی حتی موجب افزایش ریسک در گرافهای پیچیده npm میشود و راهکارهایی نظیر collective pinning پیشنهاد میشود.
🔸 تهدید جدیدی به نام slopsquatting پیش آمده که توسط LLMها ایجاد میشود. یعنی بستههایی با نامهای خیالی که ۲۰٪ از کدهای تولیدشده توسط LLM به آنها اشاره کردهاند! پیشرفتهای آموزشی و validatorها نیاز اصلی هستند.
💡 نمونهکد: اجرای تست امنیتی خودکار در CI/CD
# GitHub Actions workflow name: Security Scan on: [push] jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Run npm audit run: npm audit --production
این اسکن باعث میشود قبل از هر دیپلوی، وابستگیها بررسی شوند.
۵. جمعبندی و تأکید بر اهمیت موضوع
حملات زنجیره تأمین در مخازن PyPI و npm نشاندهنده تغییر واقعی در نوع تهدیدات سایبری هستند:
موضوع |
هشدار |
رشد ناگهانی حملات |
حملات ۱۸۸٪ افزایش داشتهاند. |
تنوع تاکتیکها |
DLL hijacking، typosquatting، domain takeover و cross-ecosystem. |
تهدید کشورهای APT |
گروههایی مثل Lazarus با قربانیان زیاد درگیرند. |
ابزارهای حفاظتی ظهور یافته |
از MalGuard و TypoSmart تا واکنش پلتفرمها. |
نقش حیاتی جامعه و آموزش |
توسعهدهندگان باید آگاه، محتاط و مجهز به ابزار باشند. |