یک نفوذ ساده از طریق سرقت هویت، میتواند به سرعت به دسترسی کامل به محیطهای توسعه و زیرساختهای ابری یک سازمان تبدیل شود. در تحلیل اخیر تیم پاسخ به حوادث مایکروسافت (DART)، فعالیتهای عامل تهدید Storm-3068 بررسی شده است. این گروه توانست با سوءاستفاده از قابلیت بازنشانی رمز عبور سلفسرویس (Self-service password reset)، به سرویس Azure DevOps، خط لولههای توسعه (Pipelines) و منابع Kubernetes دسترسی پیدا کند.
مسیر نفوذ و متدهای مورد استفاده
این حمله برخلاف بسیاری از حملات پیچیده، به جای استفاده از بدافزار یا اکسپلویتهای نرمافزاری، بر بهرهبرداری از هویتهای قانونی و سرویسهای ابری متمرکز بود. مراحل نفوذ به شرح زیر است:
- تسخیر هویت: نفوذ با دسترسی به یک حساب کاربری از طریق فرآیند بازنشانی رمز عبور آغاز شد و عامل تهدید با ثبت متدهای احراز هویت شخصی، کنترل کامل حساب را به دست گرفت.
- شناسایی محیط DevOps: پس از تثبیت دسترسی، مهاجم با استفاده از ابزارهای مدیریتی قانونی و اسکریپتهای خودکار، شروع به شناسایی مخازن (Repositories)، پروژهها، خط لولهها و محیطهای استقرار در Azure DevOps کرد.
- سوءاستفاده از خط لولههای مورد اعتماد: عامل تهدید به جای استقرار بدافزار، خط لولههای توسعه را تغییر داد تا گواهنامههای Kubernetes را جمعآوری کرده و دسترسی خود را به زیرساختهای ابری گسترش دهد.
استخراج گواهنامهها و گسترش دسترسی
تحقیقات نشان داد که Storm-3068 یک خط لوله مخرب ایجاد کرد که هدف آن برداشت گسترده گواهنامههای Kubernetes بود. این خط لوله یک kube agent را مستقر کرده و چندین Job را برای جمعآوری فایلهای kubeconfig (حاوی جزئیات اتصال به کلاستر و اطلاعات احراز هویت) اجرا کرد.
علاوه بر این، مهاجم اسکریپتهای خط لوله را برای نصب عامل مدیریت از راه دور Atera و ابزار تونلزنی Chisel تغییر داد. هدف از این کار، ایجاد مکانیسمهای جایگزین برای دسترسی از راه دور و اکسپوز کردن (Expose) سرور API مربوط به Kubernetes بود. با استفاده از دستورات Chisel، یک تونل معکوس (Reverse Tunnel) به یک IP خارجی ایجاد شد تا تعامل از راه دور با کلاسترهای Kubernetes میسر شود.
توصیههای امنیتی برای مدیران SOC و CISOها
این حادثه نشان میدهد که وقتی هویتها، کد منبع، خط لولهها و محیطهای عملیاتی به شدت به هم متصل باشند، سرقت یک حساب کاربری میتواند کل سازمان را به خطر اندازد. برای تقویت دفاع، اقدامات زیر توصیه میشود:
- مانیتورینگ دقیق بازنشانی رمز عبور: نظارت بر الگوهای غیرعادی در درخواستهای بازنشانی رمز عبور، بهویژه تلاشهای مکرر یا هدف قرار دادن چندین کاربر به صورت همزمان.
- تقویت حسابهای دارای دسترسی بالا (Privileged Accounts): محدود کردن دسترسی این حسابها به جریانهای بازنشانی رمز عبور سلفسرویس و الزام به استفاده از احراز هویت چندعاملی (MFA) مقاوم در برابر فیشینگ.
- سیاستهای حفاظت از شاخه (Branch Protection): الزام به تایید تغییرات کد توسط افراد ثالث و جلوگیری از Commitهای مستقیم به شاخههای حیاتی.
- کنترل دسترسیهای Pipeline: محدود کردن افرادی که اجازه ایجاد، تغییر یا اجرای خط لولههای Build و Deployment را دارند.
- اعمال اصل کمترین دسترسی (Least-privilege): به حداقل رساندن دسترسیهای هویتها در پلتفرمهای توسعه و منابع ابری برای کاهش اثرات احتمالی سرقت حساب.