Docker Swarm یک ابزار ارکستراسیون (خودکارسازی مدیریت و کنترل) کانتینر برای خوشه بندی (کلاسترینگ) و زمان بندی کانتینرهای Docker (داکر) است. مدیران و توسعه دهندگان فناوری اطلاعات با استفاده از Swarm، میتوانند مجموعهای از nodeهای Docker را به عنوان یک سیستم مجازی واحد ایجاد و مدیریت کنند.
Docker Swarm به توسعه دهندگان اجازه میدهد تا چندین ماشین فیزیکی یا مجازی را به یک کلاستر اختصاص داده و مدیریت کنند.
محققان امنیت سایبری Datadog، اخیراً حملات بدافزاری جدید را کشف کردهاند که فناوریهای میکروسرویس مانند Docker و Kubernetes را مورد نفوذ قرار میدهند. این حملات از Docker برای ایجاد دسترسی اولیه استفاده میکنند و قبل از بازیابی و اجرای تعدادی از پیلودهای مخرب، یک ماینر ارز دیجیتال را بر روی کانتینرهای آلوده مستقر میکنند.
این پیلودها دارای حرکت جانبی از کانتینر آلوده به میزبانهای مرتبط با Docker، Kubernetes یا SSH هستند.
حملات cryptojacking یا استخراج ارز دیجیتال اخیر، API موتور Docker را هدف قرار میدهند تا به نمونهها برای پیوستن به یک Docker Swarm مخرب که توسط هکرها کنترل شوند، نفوذ کنند.
این نفوذ، هکرها را قادر میسازد تا از ویژگی کنترل و مدیریت Docker Swarm برای اهداف فرماندهی و کنترل (C2) استفاده نمایند.
endpointهای آسیبپذیر با استفاده از ابزارهای اسکن اینترنتی، مانند masscan و zgrab که بر روی nodeهای هک شده (نمونههای محاسباتی یا کانتینرها) مستقر شدهاند، شناسایی میشوند. این شناسایی به بدافزار اجازه میدهد تا به شکل کرم مانند توزیع شود و امکان حرکت جانبی در زیرساخت ابری را فراهم کند.
هنگامی که یک endpoint آسیب پذیر شناسایی شد، بدافزار از API داکر برای ایجاد یک کانتینر Alpine استفاده میکند، سیستم فایل میزبان زیربنایی را در داخل کانتینر نصب و یک فرمان شل را برای بازیابی یک اسکریپت شل اولیه (init.sh) از یک سرور راه دور (“solscan[.]live) که مسئول آغاز زنجیره نفوذ است، اجرا میکند.
Alpine به نوبه خود بررسی میکند که آیا زنجیره نفوذ در حال اجرا، ابزارهایی مانند curl و wget را قبل از دانلود XMRig نصب میکند یا خیر.
Alpine مانند سایر کمپینهای cryptojacking، از روت کیت libprocesshider برای مخفی سازی فرآیند ماینر مخرب از کاربر هنگام اجرای ابزارهای شمارش فرآیند مانند top و ps استفاده میکند.
اسکریپت شل همچنین برای واکشی سه اسکریپت شل دیگر kube.lateral.sh، spread_docker_local.sh و spread_ssh.sh از یک سرور برای حرکت جانبی به endpointهای Docker، Kubernetes و SSH در شبکه طراحی شده است.
Spread_docker_local.sh از masscan و zgrab برای اسکن محدودههای LAN برای nodeهایی با پورتهای باز 2375، 2376، 2377، 4244 و 4243 استفاده میکند. این پورتها با موتور Docker یا Docker Swarm مرتبط هستند.
بدافزار برای هر IP کشف شده با پورتهای باز، تلاش میکند تا یک کانتینر جدید به نام alpine ایجاد کند. این کانتینر بر اساس ایمیجی به نام upspin است که توسط کاربر nmlmweb3 در Docker Hub میزبانی شده است.
ایمیج upspin برای اجرای اسکریپت فوق الذکر init.sh طراحی شده است، بنابراین به بدافزار اجازه میدهد تا به شکل کرم مانند در سایر میزبانهای Docker منتشر گردد.
علاوه بر این، تگ ایمیج Docker که برای بازیابی ایمیج از Docker Hub استفاده میشود، در یک فایل متنی که بر روی سرور C2 میزبانی میشود، مشخص شده است.
سومین اسکریپت شل، spread_ssh.sh میباشد که میتواند سرورهای SSH را به خطر بیندازد. spread_ssh.sh همچنین یک کلید SSH و یک کاربر جدید به نام ftp اضافه میکند که هکرها را قادر میسازد از راه دور به میزبانها متصل شوند و دسترسی دائمی خود را حفظ کنند.
همچنین فایلهای اعتباری مختلف مربوط به SSH، سرویسهای وب آمازون
(AWS، Google Cloud و Samba) را در مسیرهای فایل کدگذاری شده در محیط GitHub Codespaces (به عنوان مثال، دایرکتوری “/home/codespace/”) جستجو میکند و چنانچه آنها را بیاید، در سرور C2 آپلود میکند.
هر دو پیلود Kubernetes و SSH در مرحله آخر، اسکریپت شل دیگری به نام setup_mr.sh را اجرا میکنند که استخراج کننده ارز دیجیتال را بازیابی و راه اندازی خواهد کرد.
Datadog سه اسکریپت دیگر را نیز کشف کرده است که در سرور C2 میزبانی شدهاند:
- sh، گونهای از init.sh است که قوانین iptables را اصلاح میکند و لاگها و cron jobها را برای جلوگیری از تشخیص پاک میکند.
- sh، ابزارهای اسکن را دانلود و یک کانتینر مخرب را بر روی هر میزبان Docker شناسایی شده مستقر میکند.
- sh، با اضافه کردن یک کلید SSH کنترل شده توسط هکرها به فایل /root/.ssh/authorized_keys، یک بکدور دائمی نصب میکند.
TDGINIT.sh همچنین به دلیل ایجاد تغییر و دستکاری Docker Swarm با مجبور کردن میزبان به ترک هر گروه موجودی که ممکن است بخشی از آن باشد و اضافه کردن آن به یک Swarm جدید تحت کنترل هکر، قابل توجه است.
این قابلیت به هکرها اجازه میدهد تا کنترل خود را بر چندین نمونه داکر به صورت هماهنگ گسترش دهند و به طور موثر سیستمهای تحت نفوذ و هک شده را به یک بات نت برای بهره برداری بیشتر تبدیل کنند.
در حال حاضر مشخص نیست که چه کسی پشت این حملات قرار دارد، اگرچه تاکتیکها، تکنیکها و رویههای اتخاذ شده نشان میدهند که با گروهی به نام TeamTNT همپوشانی دارند.
سرویسهایی مانند Docker و Kubernetes برای انجام حملات استخراج ارز دیجیتال (کریپتوجکینگ) در مقیاس بزرگ بسیار جذاب و حائز اهمیت هستند.
این حملات به endpointهای API داکر متصل به اینترنت و فاقد احراز هویت و دارای پیکربندی نادرست متکی هستند.