پرش به محتوای اصلی
پرش به محتوای مقاله

درون سازوکار کرم Shai-Hulud برای نفوذ به دسترسی‌های AWS

·۱۳ مرداد ۱۴۰۵۴ دقیقه مطالعه۲ بازدید
کیو و دوستان در حمله زنجیره تأمین فعال شای-هولود به خطر افتادند
کیو و دوستان در حمله زنجیره تأمین فعال شای-هولود به خطر افتادند
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

استفاده از قابلیت «کرمی» برای آلوده کردن زنجیره‌ای بسته‌ها و بهره‌برداری از محیط اجرای Bun برای دور زدن شناسایی، وجه تمایز این حمله نسبت به مسموم‌سازی‌های ساده است.

اگر همین حالا در حال مدیریت پروژه‌های جاوااسکریپت هستید، احتمالاً بدون آنکه بدانید بخشی از یک زنجیره آلوده شده‌اید. یک کرم مخرب در ۴ اوت ۲۰۲۶، ۸۶۸ بسته نرم‌افزاری در ۱۳۸۱ نسخه مختلف را به دام انداخت تا اسرار زیرساختی شرکت‌ها را بدزدد.

به نقل از گزارش Aikido، این حمله زمانی آغاز شد که هکرها حساب گیت‌هاب توسعه‌دهنده کتابخانه keyv — یک ابزار حیاتی برای ذخیره‌سازی کلید-مقدار — را تصاحب کردند. آن‌ها بدافزاری را در خانواده‌ای از ابزارهای کشینگ تزریق کردند که بسیاری از برنامه‌نویسان برای افزایش سرعت برنامه‌های خود از آن‌ها استفاده می‌کنند.

این اتفاق درست مثل یک بیماری واگیردار دیجیتال است؛ تصور کنید یک کتابخانه مورد اعتماد آلوده شود و هر پروژه‌ای که آن را نصب می‌کند، ناخودآگاه درِ پشتی (Backdoor) برای هکرها باز کند. بسیاری از توسعه‌دهندگان برای بهبود عملکرد از این ابزارها استفاده می‌کنند، بدون اینکه بدانند این‌ها در واقع وابستگی‌های وابستگی‌های آن‌ها (Dependencies of dependencies) هستند. همان‌طور که در تحلیل‌های پیشین ما درباره امنیت زنجیره تأمین نرم‌افزار اشاره کردیم، این نقاط کور خطرناک‌ترین بخش‌های زنجیره هستند.

ابعاد و مقیاس فاجعه

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

  • keyv: ۶۱۹ میلیون دانلود ماهانه
  • flat-cache: ۵۶۵ میلیون دانلود ماهانه
  • file-entry-cache: ۵۵۷ میلیون دانلود ماهانه
  • cacheable-request: ۱۳۳ میلیون دانلود ماهانه
  • cacheable: ۲۹ میلیون دانلود ماهانه
  • @cacheable/utils: ۳۴ میلیون دانلود ماهانه
  • @cacheable/memory: ۲۸ میلیون دانلود ماهانه
  • cache-manager: ۱۶ میلیون دانلود ماهانه
  • @cacheable/node-cache: ۵.۹ میلیون دانلود ماهانه
  • ecto: ۴ هزار دانلود ماهانه

این کرم از آن پس به سایر توسعه‌دهندگان و سازمان‌های بزرگ سرایت کرده است. نسخه‌های آلوده شناسایی شده شامل @deliveroo/reevent 1.0.1، @or-sdk/invitations 1.4.9، @picsart/ai-sdk 3.32.2، @qlik/embed-runtime 1.6.4 و picasso.js 2.11.6 هستند.

مکانیزم عفونت

مهاجمان فایل‌های مخرب را مستقیماً در شاخه اصلی (Main Branch) قرار دادند و نسخه‌های جدید را با امضای GitHub Actions منتشر کردند. این یعنی نسخه‌های مسموم با اعتبار کامل و دارای منشأ (Provenance) معتبر در npm منتشر شدند. هر بسته آلوده دو فایل جدید به نام‌های setup.mjs و Math_Symbol.js دریافت کرد. یک ورودی با عنوان "preinstall": "node setup.mjs" در فایل package.json تضمین می‌کند که فایل setup.mjs به صورت خودکار در هنگام اجرای دستور npm install اجرا شود.

کیو و دوستان در حمله زنجیره تأمین فعال شای-هولود نفوذ کردند.

این دراپِر (Dropper) به شدت مبهم‌سازی (Obfuscated) شده است. تنها وظیفه آن دانلود بی‌صدای محیط اجرای جاوااسکریپت Bun (نسخه v1.3.13) از گیت‌هاب است تا بتواند محموله اصلی یعنی Math_Symbol.js را اجرا کند. این فایل ۷۲۸ کیلوبایتی که مبهم‌سازی شده است، مانند یک کرم عمل می‌کند؛ ابتدا اسرار را جمع‌آوری کرده و سپس تلاش می‌کند بسته‌های دیگر متعلق به قربانی را آلوده کند. داده‌های سرقتی در نهایت به یک مخزن عمومی در گیت‌هاب با نام «Shai-Hulud: Here We Go Again» ارسال می‌شوند.

جزئیات اطلاعات هدف‌گذاری شده

این بدافزار مجموعه‌ای جامع از استخراج‌کننده‌ها را برای شکار گران‌بها‌ترین دسترسی‌ها پیاده‌سازی کرده است:

  • زیرساخت ابری: سرقت اعتبارنامه‌های AWS از مسیرهای ~/.aws/credentials و ~/.aws/config و متغیرهای محیطی. این کرم سرویس Metadata در EC2 را هدف قرار می‌دهد (ابتدا IMDSv2 و سپس IMDSv1) و نقطه پایانی متادیتای کانتینر ECS را می‌کاود. همچنین دستور secretsmanager:ListSecrets را در چندین منطقه (Region) فراخوانی می‌کند تا تمام اسرار ذخیره‌شده را استخراج کند. این نوع نفوذ به زیرساخت‌های ابری یادآور حملات پیچیده‌ای است که در آن عوامل هوشمند توانستند به زیرساخت‌های Hugging Face نفوذ کنند و دسترسی‌های حساس را هدف قرار دهند.
  • مدیریت عملیات (DevOps): خواندن توکن‌های حساب‌های خدماتی Kubernetes، گواهینامه‌های CA و فضای نام‌ها (Namespaces) از مسیر /var/run/secrets/kubernetes.io/serviceaccount/ برای پرس‌وجو از API کوبرنتیز. همچنین توکن‌های HashiCorp Vault را از طریق ۶ منبع اولویت‌دار، از جمله VAULT_TOKEN و مسیرهای Runner در GitHub Actions هدف قرار داده و در نهایت تمام ذخیره‌های KV را از طریق /v1/sys/mounts فهرست می‌کند. این رویکرد برای دور زدن محدودیت‌ها، شباهت زیادی به تکنیک‌های سوءاستفاده از حفره‌های Sandbox برای نفوذ به محیط‌های تولید دارد.
  • توکن‌های پلتفرم: شکار توکن‌های احرازی npm از فایل ~/.npmrc و اعتبارسنجی زنده آن‌ها در برابر registry.npmjs[.]org/-/whoami. هدف‌گیری توکن‌های کلاسیک گیت‌هاب (ghp_...)، توکن‌های OAuth (gho_...)، توکن‌های سرور به سرور اپلیکیشن (ghs_...) و توکن‌های JWT OIDC. در محیط‌های GitHub Actions، بدافزار حافظه پردازش را برای استخراج ذخیره اسرار، به‌ویژه ACTIONS_ID_TOKEN_REQUEST_TOKEN و ACTIONS_ID_TOKEN_REQUEST_URL می‌کاود.
  • APIهای شخص ثالث: جست‌وجو برای کلیدهای Stripe (هر دو پیشوند sk_ و pk_) و توکن‌های Slack (xox[baprs]-...) در سراسر سیستم فایل.

حمله زنجیره تأمین فعال Shai-Hulud: Keyv و دوستان در معرض خطر قرار گرفتند

علاوه بر توکن‌های خاص، این کرم یک اسکنر آگاه از پلتفرم (تفاوت macOS و Linux) را با استفاده از حدود ۲۰۰ الگوی glob اجرا می‌کند. این اسکنر فایل‌های .env، .env.* و .envrc، کلیدهای SSH (id_rsa و id_ed25519)، فایل‌های وضعیت Terraform و پایگاه‌های داده KeePass (*.kdbx) را هدف قرار می‌دهد. همچنین فایل‌های پیکربندی IDE مانند .vscode/tasks.json و .claude/settings.json را بررسی می‌کند. برای حفظ سرعت و پنهان ماندن، از ۶۴ خوانش هم‌زمان استفاده کرده و فایل‌های بزرگتر از ۵ مگابایت را نادیده می‌گیرد.

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

برای کسب‌وکارها، این یک یادآوری است که «منشأ» (Provenance) و نسخه‌های امضا شده، در صورتی که خودِ حساب کاربری تصاحب شده باشد، تضمینی برای امنیت نیستند. سرعت انتشار نشان می‌دهد که به‌روزرسانی‌های خودکار وابستگی‌ها در زمان یک حمله فعال، می‌تواند به یک نقطه ضعف تبدیل شود.

گام بعدی شما

  • فوراً درخت وابستگی‌های (Dependency Tree) پروژه‌های خود را برای نسخه‌های ذکر شده بررسی کنید.
  • تمام توکن‌های ابری (AWS/Azure/GCP) و توکن‌های دسترسی گیت‌هاب را که احتمالاً در محیط‌های آلوده استفاده شده‌اند، تغییر دهید (Rotate).
  • از ابزارهایی مانند Aikido Safe Chain برای بررسی بسته‌ها پیش از نصب در محیط محلی استفاده کنید تا آن‌ها را با داده‌های تهدیدات تطبیق دهد.

اما داستان خطرناک‌تر این است که چگونه امضاهای دیجیتال در گیت‌هاب اکنون به ابزاری برای توزیع بدافزار تبدیل شده‌اند — به تحلیل ما درباره امنیت GitHub Actions مراجعه کنید.

چرا این موضوع مهم است؟

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

تأثیر برای ایران

برنامه‌نویسان ایرانی که از اکوسیستم Node.js استفاده می‌کنند باید فوراً توکن‌های AWS و گیت‌هاب خود را تغییر دهند؛ چراکه این بسته‌ها در بسیاری از پروژه‌های داخلی به صورت غیرمستقیم استفاده می‌شوند.

·نگاه ما
تحریریه دات‌هوش

اعتماد به «امضای دیجیتال» و «منشأ» (Provenance) در npm دیگر کافی نیست. این حمله ثابت می‌کند که وقتی حساب توسعه‌دهنده تسخیر شود، تمام لایه‌های امنیتی توزیع نرم‌افزار عملاً بی‌اثر می‌شوند. ما با گذار از حملات تک‌هدف به حملات «کرمی» روبرو هستیم که در آن بدافزار خودش مسئول گسترش در زنجیره تأمین است.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.