خانه » کمپین هادس در PyPI مرحله جدیدی از حمله زنجیره تأمین نرم‌افزار Shai-Hulud را رقم زد

کمپین هادس در PyPI مرحله جدیدی از حمله زنجیره تأمین نرم‌افزار Shai-Hulud را رقم زد

توسط Vulnerbyte_News
14 بازدید

در تازه‌ترین رخداد امنیتی در اکوسیستم متن‌باز، حمله زنجیره تأمین نرم‌افزار بار دیگر PyPI را هدف قرار داده است و این بار مهاجمان با کمپینی جدید تحت عنوان «هادس» (Hades) تلاش کرده‌اند کدهای مخرب را در قالب پکیج‌های ظاهراً معتبر منتشر کنند. این حمله زنجیره تأمین نرم‌افزار نشان می‌دهد تهدید Shai-Hulud نه‌تنها متوقف نشده، بلکه با بهره‌گیری از تکنیک‌ها و روش‌های اجرایی جدید، وارد مرحله‌ای پیشرفته‌تر از تکامل خود شده است.

جزئیات فنی حمله زنجیره تأمین نرم‌افزار در کمپین هادس

بر اساس پژوهش جدید Socket، مهاجمان در این موج از حمله زنجیره تأمین نرم‌افزار موفق شده‌اند 37 فایل wheel مخرب را در قالب 19 پکیج در PyPI منتشر کنند. این عملیات در ادامه فعالیت‌های کرم Shai-Hulud انجام شده است؛ بدافزاری با قابلیت انتشار خودکار که با آلوده‌سازی پکیج‌ها و کامپوننت‌های نرم‌افزاری، نسخه‌های آلوده را منتشر می‌کند و سپس با سرقت اطلاعات حساب‌های مخازن کد، دامنه آلودگی را در زنجیره توسعه و توزیع نرم‌افزار گسترش می‌دهد. در این کمپین، مهاجمان بار دیگر با سوءاستفاده از اعتماد توسعه‌دهندگان به وابستگی‌های متن‌باز، بستری برای انتشار کدهای مخرب و سرقت اطلاعات حساس فراهم کرده‌اند.

Socket اعلام کرد که هنگام انتشار این گزارش، بخشی از نسخه‌های آلوده در PyPI قرنطینه شده بود و سایر موارد نیز به تیم امنیتی این پلتفرم گزارش شده بودند.

الگوهای عملیاتی Shai-Hulud و میاسما در پکیج‌های آلوده

پژوهشگران Socket اعلام کرده‌اند که شیوه عملکرد آلودگی‌های جدید به‌وضوح با الگوهای شناخته‌شده Shai-Hulud و میاسما (Miasma) مطابقت دارد. پیش‌تر نیز گونه‌ای از این کرم در پکیج‌های npm مرتبط با Red Hat Cloud Services شناسایی شده بود. یکی از مهم‌ترین ویژگی‌های این موج، طراحی مستقل از محیط اجرا (Cross-Runtime) در زنجیره حمله است. پیلودهای Shai-Hulud برخلاف بسیاری از بدافزارهای مشابه، فرض نمی‌کنند که Node.js، پایتون یا هر محیط اجرای لوکال دیگری روی سیستم هدف در دسترس باشد. به همین دلیل مهاجمان از Bun به‌عنوان موتور اجرا استفاده می‌کنند؛ رویکردی که امکان اجرای بدافزار را در طیف گسترده‌تری از محیط‌ها فراهم می‌کند.

در این حمله زنجیره تأمین نرم‌افزار، مهاجمان ابتدا Bun را نصب کرده و سپس یک سرقت‌کننده اطلاعات جاوااسکریپتی (JavaScript Stealer) با سطح بالایی از مبهم‌سازی را اجرا می‌کنند تا در ادامه پیلود اصلی فعال شود. این رویکرد پیش‌تر نیز در حملات مبتنی بر npm مشاهده شده بود و نشان می‌دهد عاملان این کمپین همچنان در حال تطبیق تکنیک‌های خود با اکوسیستم‌های مختلف توسعه نرم‌افزار هستند.

سوءاستفاده از فایل‌های  .pth در پایتون

یکی از مهم‌ترین تغییرات در این کمپین، سوءاستفاده از فایل‌های راه‌اندازی  .pth در پایتون (Python) است؛ روشی که با مکانیزم‌های مورد استفاده در حملات پیشین تفاوت دارد. این فایل‌ها در اصل برای افزودن مسیرها به sys.path و پشتیبانی از ایمپورت هوک‌ها (Import Hooks) طراحی شده‌اند، اما پایتون اجازه می‌دهد خطوط اجراییِ آغازشونده با دستور ایمپورت در هر بار راه‌اندازی اجرا شوند؛ حتی در شرایطی که پکیج مربوطه مستقیماً مورد استفاده قرار نگرفته باشد..

مهاجمان با سوءاستفاده از این قابلیت، هر فایل wheel آلوده را از یک وابستگی ظاهراً عادی به محرکی برای اجرای کد در زمان راه‌اندازی پایتون تبدیل می‌کنند؛ بدون آنکه نیازی به فراخوانی مستقیم پکیج آلوده وجود داشته باشد. در این حمله زنجیره تأمین نرم‌افزار، نصب یک وابستگی می‌تواند پیش از بررسی یا اجرای کد برنامه، زمینه اجرای کد مخرب را فراهم کند؛ موضوعی که از نظر پیامدهای امنیتی شباهت زیادی به سوءاستفاده از اسکریپت‌های چرخه عمر (Lifecycle Scripts) در npm دارد، اما این بار از طریق یک مکانیزم بومی و کمتر شناخته‌شده در اکوسیستم پایتون انجام می‌شود.

نشانه‌های هادس در موج جدید حمله زنجیره تأمین نرم‌افزار

جدیدترین نسخه Mini Shai-Hulud تنها از نظر فنی دستخوش تغییر نشده، بلکه نشانه‌های هویتی جدیدی نیز به این کمپین افزوده شده است. به گفته فیلیپ بورکهارت (Philipp Burckhardt)، رئیس بخش هوش تهدید در Socket، مهاجمان در این موج از نشانگرهای مرتبط با استخراج اطلاعات با محوریت هادس  استفاده کرده‌اند؛ از جمله درج عبارت زیر در توضیحات یک مخزن در گیت‌هاب:

  • Hades – The End for the Damned

همچنین پژوهشگران دریافتند که مهاجمان برای نام‌گذاری کامپوننت‌های مخزن از نام‌ها و مفاهیم مرتبط با جهان زیرین (Underworld) در اسطوره‌شناسی یونان الهام گرفته‌اند، از جمله:

  • Stygian
  • Tartarean
  • Cerberus
  • Charon
  • Styx
  • Lethe
  • Thanatos
  • Persephone

این تغییرات نشان می‌دهد عاملان این کمپین در کنار توسعه قابلیت‌های فنی، در حال ایجاد یک هویت مشخص برای عملیات خود هستند. در این حمله زنجیره تأمین نرم‌افزار، بهره‌گیری از نام‌گذاری‌ها و نشانه‌های مرتبط با هادس یکی از بارزترین تفاوت‌های این موج نسبت به نسخه‌های پیشین Shai-Hulud به شمار می‌رود.

نقش Bun در سرقت اطلاعات و اجرای پیلود

بررسی‌های Socket نشان می‌دهد زنجیره آلودگی در این کمپین با نصب Bun آغاز می‌شود؛ یک محیط اجرای جاوااسکریپت که در این حملات به‌عنوان موتور اجرا برای راه‌اندازی یک بدافزار سرقت اطلاعات جاوااسکریپتی به‌شدت مبهم‌سازی‌شده مورد استفاده قرار می‌گیرد. این بدافزار پس از اجرا، پیلود اصلی را فعال می‌کند.

هدف این بدافزار رباینده اطلاعات، سرقت اطلاعات احراز هویت و داده‌های حساس مرتبط با توسعه‌دهندگان، سرویس‌های ابری ، حساب‌های انتشار پکیج  و محیط‌های یکپارچه‌سازی و استقرار مداوم (CI/CD) است.

برخلاف بسیاری از حملات مشابه، این زنجیره آلودگی به وجود محیط‌های اجرایی لوکال مانند Node.js یا پایتون وابسته نیست و از Bun به‌عنوان بستر اجرای کد مخرب استفاده می‌کند. این ویژگی باعث شده حمله زنجیره تأمین نرم‌افزار اخیر انعطاف‌پذیری بیشتری در آلوده‌سازی محیط‌های مختلف داشته باشد و بتواند طیف گسترده‌تری از زیرساخت‌های توسعه نرم‌افزار را هدف قرار دهد.

چرا فایل‌های .pth به یک بردار حمله خطرناک تبدیل شده‌اند؟

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

به گفته پژوهشگران Socket، هر پکیج آلوده عملاً یک وابستگی ظاهراً عادی را به نقطه‌ای برای اجرای کد تبدیل می‌کند. در نتیجه، نصب یک وابستگی می‌تواند پیش از آنکه کد برنامه بررسی یا حتی اجرا شود، مسیر اجرای کد مخرب را فراهم کند.

پژوهشگران معتقدند این مکانیزم از نظر پیامدهای امنیتی، معادل سوءاستفاده از اسکریپت‌های نصب در اکوسیستم npm است. اگرچه روش اجرا در پایتون و npm متفاوت است، اما در هر دو حالت نصب یک وابستگی می‌تواند پیش از بررسی یا اجرای کد برنامه، به نقطه آغاز اجرای کد مخرب تبدیل شود.

تکامل مداوم Shai-Hulud و نبود انتساب قطعی

Shai-Hulud از زمان شناسایی تاکنون به‌طور مداوم تکامل یافته و در هر مرحله قابلیت‌های جدیدی به آن افزوده شده است. این کرم رایانه‌ای در نوامبر سال گذشته به قابلیت حذف داده‌ها (Wiper) مجهز شد و یک ماه بعد نیز توانایی سرقت اطلاعات احراز هویت و داده‌های حساس مرتبط با حساب‌های ارائه‌دهندگان بزرگ سرویس‌های ابری را به دست آورد.

روند تکامل این بدافزار در آوریل با گونه Mini Shai-Hulud وارد مرحله تازه‌ای شد. این نسخه از روش‌های پیشرفته‌تر و تهاجمی‌تری بهره می‌برد و علاوه بر سرقت اطلاعات توسعه‌دهندگان، قادر است فرآیندهای انتشار مورد اعتماد (Trusted Publishing Paths) را در اختیار بگیرد و در زمان نصب، پیلودهای مخرب را اجرا کند.

با وجود تحقیقات گسترده، هنوز هیچ فرد، گروه یا عامل تهدید مشخصی به‌طور قطعی مسئول این حملات معرفی نشده است و پژوهشگران Socket نیز موج حملات هادس را به عامل خاصی نسبت نداده‌اند. با این حال، برخی شرکت‌های امنیتی در بررسی حملات پیشین Mini Shai-Hulud، گروه TeamPCP را به‌عنوان یک عامل تهدید با انگیزه مالی مطرح کرده‌اند؛ گروهی که در اواخر سال 2025 با سوءاستفاده از آسیب‌پذیری React2Shell و هدف قرار دادن APIهای پیکربندی‌نشده داکر (Docker) و همچنین Next.js مورد توجه پژوهشگران قرار گرفت.

تداوم فعالیت‌های Shai-Hulud و افزوده شدن مداوم قابلیت‌های جدید به این بدافزار نشان می‌دهد حمله زنجیره تأمین نرم‌افزار همچنان یکی از پایدارترین و جدی‌ترین تهدیدها علیه اکوسیستم متن‌باز و زنجیره توسعه نرم‌افزار به شمار می‌رود.

بهترین اقدام دفاعی برای سازمان‌ها پس از آلودگی

بورکهارت  توصیه می‌کند سازمان‌هایی که احتمال می‌دهند یکی از پکیج‌های آلوده PyPI را نصب کرده باشند، در اسرع وقت محیط‌های خود را ممیزی امنیتی (Security Audit) کنند. به گفته او، از آنجا که پیلود این بدافزار در زمان نصب اقدام به سرقت اطلاعات حساس می‌کند، باید فرض شود تمامی اطلاعات احراز هویت و داده‌های محرمانه در دسترس محیط نصب در معرض افشا قرار گرفته‌اند.

این موضوع شامل مواردی مانند موارد زیر است:

  • توکن‌های گیت‌هاب
  • کلیدهای دسترسی سرویس‌های ابری
  • کلیدهای SSH
  • سایر اطلاعات حساس موجود در محیط نصب

در چنین شرایطی، تمامی این موارد باید فوراً تعویض یا تغییر داده شوند.

همچنین بورکهارت تأکید می‌کند که مؤثرترین راه برای شناسایی حملات مشابه در آینده، مانیتورینگ مستمر نصب پکیج‌ها و عملکرد آرتیفکت‌ها است. این رویکرد به سازمان‌ها کمک می‌کند هرگونه فعالیت مشکوک مرتبط با Shai-Hulud یا میاسما را در سریع‌ترین زمان ممکن شناسایی و مهار کنند.

این حمله زنجیره تأمین نرم‌افزار بار دیگر نشان می‌دهد که اعتماد صرف به وابستگی‌های متن‌باز برای محافظت از زنجیره توسعه کافی نیست و سازمان‌ها باید ممیزی مستمر، تغییر دوره‌ای اطلاعات حساس و مانیتورینگ مداوم عملکرد پکیج‌ها و آرتیفکت‌ها را به بخشی از راهبرد امنیتی خود تبدیل کنند.

منابع

همچنین ممکن است دوست داشته باشید

پیام بگذارید