اگر در خط لوله توسعهی خود از بستههای npm استفاده میکنید، احتمالاً همین حالا یک در پشتی دائمی در زیرساختهایتان دارید و متوجه آن نیستید. باید بدانید که امنیت محیط توسعه شما دیگر با یک تغییر رمز عبور ساده تأمین نمیشود.
حملات زنجیره تأمین (Supply-chain attack) — شبیه مسموم کردن آرد در آسیاب برای اینکه تمام نانواییهای شهر ناخوااهه نان سمی بپزند — اکنون از سرقت ساده دادهها به تسخیر کامل زیرساختها تغییر مسیر دادهاند. همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن و زیرساختهای کدنویسی اشاره کردیم، اعتماد به بستههای Third-party بزرگترین نقطه ضعف تیمهای DevOps است. این کمپین که SHA1-HULUD 2.0 نامیده شده، نسخهی قدرتمندتری از کرمی است که در سپتامبر ۲۰۲۴ شناسایی شده بود.
به نقل از Wiz، این حمله اکوسیستمهای بزرگی مثل Zapier، Postman و PostHog را هدف قرار داده است. طبق تحلیل این شرکت، سرعت گسترش این کرم در مراحل اولیه خیرهکننده بود و هر ۳۰ دقیقه حدود ۱,۰۰۰ مخزن جدید را آلوده میکرد.
جزئیات فنی این نفوذ به شرح زیر است:
- فاز اجرا: کد مخرب در مرحلهی
preinstallاز طریق اسکریپتهای چرخه عمر نصب، هم در لپتاپهای توسعهدهندگان و هم در خط لولههای خودکار اجرا میشود. - بستههای توزیع شده: این حمله فایلهای
setup_bun.jsوbun_environment.jsرا روی سیستم هدف مینشاند. - ماندگاری در سیستم: کد مخرب، ماشین آلوده را به عنوان یک اجراکننده خود-میزبان (Self-hosted runner) در گیتهاب با نام 'SHA1HULUD' ثبت میکند.
برای حفظ دسترسی، مهاجم یک فایل گردش کار مخرب به مسیر .github/workflows/discussion.yaml تزریق میکند. این ترفند به هکر اجازه میدهد تنها با باز کردن یک «بحث» (Discussion) در مخزن قربانی، هر دستوری را روی ماشین آلوده اجرا کند. در نهایت، یک قطعه کد مجزا تمام اسرار امنیتی گیتهاب را جستجو کرده و در فایلی به نام actionsSecrets.json ذخیره و ارسال میکند.
این تغییر رویکرد از «سرقت یکباره» به «حضور دائمی»، پروفایل ریسک تیمهای فنی را عوض میکند. در واقع لپتاپ یک برنامهنویس به پلی نامرئی برای ورود هکرها به کل شبکه شرکت تبدیل میشود. مهاجم با استفاده از قابلیت Discussion، تمامی سیستمهای مانیتورینگ سنتی را دور میزند.
گام بعدی شما
- فایلهای YAML در مسیر
.github/workflowsرا برای هرگونه تغییر یا فایل ناشناخته بازرسی کنید. - فوراً لاگهای مربوط به self-hosted runnerهای خود را بررسی کنید تا نام 'SHAH1HULUD' یافت نشود.
- لیست بهروز شدهی بستههای آلوده را در وبلاگ Socket چک کنید.
اما پیچیدگیهای این حمله در سطح سازمانها تازه شروع شده است؛ در گزارش بعدی، اثر این حفرهها بر معماری Zero Trust را بررسی خواهیم کرد.




گفتگو