در یک حملهٔ زنجیره‌تأمین، مهاجمان با ربایش BGP و سوءاستفاده از ضعف‌های پیکربندی ارائه‌دهنده میزبانی، بسته‌های به‌روزرسانی مخرب را به‌جای به‌روزرسانی‌های معتبر به کاربران ارسال کردند. هدف اصلی آدرس‌های IP متعلق به Softaculous بود که برای توزیع به‌روزرسانی، میزبانی سرویس‌های مشتری و صورتحساب استفاده می‌شد.

چگونگی ربایش BGP

مهاجمان از ترکیبی از خطاهای پیکربندی مسیریابی در Hetzner Online و ضعف در کنترل صدور گواهی‌های TLS بهره بردند و با ربایش BGP کنترل محدودهٔ آدرس‌های Softaculous را به‌دست گرفتند. نتیجه این شد که درخواست‌های به‌روزرسانی به سرورهای مهاجم هدایت شد و بسته‌های مخرب به‌عنوان به‌روزرسانی توزیع شدند.

دلایل موفقیت حمله

  • پیکربندی ضعیف مسیریابی در Hetzner که به مهاجمان امکان داد در دو بازهٔ زمانی مجموعاً 33 ساعت مسیرهای ترافیکی را بازنویسی کنند.
  • عدم پیاده‌سازی امضای کد (code signing) در فرآیند توزیع به‌روزرسانی‌های Softaculous؛ بدین‌ترتیب بسته‌های تغییر‌یافته بدون احراز هویت پذیرفته می‌شدند.
  • کنترل ناکافی بر روند صدور گواهی‌های TLS که امکان حذف یا جعل مسیرهای امن را تسهیل کرد.

ترتیب رخداد و بازهٔ زمانی

طبق گزارش شرکت، ابتدا مهاجمان فضای آدرس را ربودند و پس از حدود 12 ساعت Hetzner مسیر صحیح را دوباره اعلام کرد. سپس Hetzner اعلام مسیر را متوقف کرد و مهاجم همان ربایش را مجدداً تکرار نمود؛ در حملهٔ دوم واکنش طولانی‌تر و نزدیک به 10 ساعت به‌طول انجامید. مجموع زمان دستکاری مسیر حدود 33 ساعت بود و در این بازه تعدادی از نصب‌های Virtualizor ممکن است به‌روزرسانی‌های مخرب دریافت کرده باشند.

پیام Softaculous و دامنهٔ تأثیر

Softaculous هشدار داد که کلاینت‌های به‌روزرسانی آن‌ها بسته‌ها را از نظر رمزنگاری تأیید نمی‌کردند و در نتیجه احتمال دریافت بسته‌های مخرب وجود داشت. شرکت می‌گوید تنها تعداد محدودی سرور احتمالاً تحت تأثیر قرار گرفته‌اند اما فهرست قطعی در دسترس نیست؛ بنابراین توصیه شده تمام سرورهای Virtualizor بررسی شوند.

نمایی از مرکز داده و تجهیزات شبکه مرتبط با گزارش ربایش BGP

گام‌های فوری برای محافظت

اپراتورها و مدیران سیستم‌هایی که از Virtualizor یا بسته‌های Softaculous استفاده می‌کنند باید فوراً اقدام‌های زیر را انجام دهند:

  • بررسی فایل‌های به‌روزرسانی دریافتی و مقایسهٔ هش‌ها با منابع معتبر قبلی؛ در صورت شک، نصب را متوقف و بسته‌ها را از منابع آفلاین یا پشتیبان معتبر بازبینی کنید.
  • بازنشانی کلیدهای خصوصی، توکن‌های دسترسی و رمزهای عبور در سرورهای مشکوک؛ صدور مجدد و بررسی گواهی‌ها در صورت ضرورت.
  • بازگردانی سیستم از پشتیبان معتبر در صورت هرگونه نشانۀ نفوذ یا رفتار غیرعادی.
  • پیاده‌سازی امضای کد برای فرآیند به‌روزرسانی تا هر بستهٔ منتشرشده قابلیت اعتبارسنجی رمزنگاری‌شده داشته باشد.
  • نظارت مستمر بر لاگ‌های شبکه و سیستم برای شناسایی الگوهای اتصال مشکوک و تنظیم هشدارها هنگام تغییر مسیرهای ترافیک.

اقدامات توصیه‌شده برای اپراتورهای شبکه

برای کاهش احتمال تکرار چنین حملاتی، مدیریت لایهٔ مسیریابی و کنترل صدور گواهی باید تقویت شود:

  • پیاده‌سازی RPKI و سیاست‌های فیلترینگ prefix برای کاهش ریسک ربایش مسیرها. (منبع)
  • اعمال محدودیت‌های max-prefix، فیلترهای مبتنی بر AS و نظارت پیوسته بر اعلامیه‌های BGP.
  • استفاده از سرویس‌های مانیتورینگ BGP برای رصد آنی تغییرات مسیر و تولید هشدار هنگام اعلام مسیرهای غیرمنتظره.
  • بازنگری و تقویت فرآیندهای صدور گواهی TLS با کنترل‌های هویت دقیق‌تر پیش از صدور گواهی جدید.

منابع برای مطالعهٔ بیشتر

شرح فنی پروتکل و ریسک‌های مرتبط را در صفحهٔ BGP در ویکی‌پدیا و مفهوم حملهٔ زنجیره‌تأمین را در این صفحه دنبال کنید. همچنین بررسی گزارش‌ها و راهکارهای فنی ارائه‌شده توسط شرکت‌های تخصصی شبکه برای تقویت مسیریابی توصیه می‌شود.

جمع‌بندی

این رخداد نشان می‌دهد ترکیب ضعف‌های شبکه‌ای و کاستی‌های امنیتی در فرآیندهای توزیع نرم‌افزار می‌تواند به نفوذ منجر شود. اجرای تکنیک‌هایی مانند پیاده‌سازی RPKI، امضای کد و کنترل دقیق صدور گواهی TLS از ضروریات کاهش ریسک ربایش BGP و محافظت از زنجیرهٔ تأمین نرم‌افزاری است.