نسخه جدیدی از بدافزار BambooToken که برای سیستمعامل لینوکس طراحی شده است، از پروتکل MQTT به عنوان کانال فرمان و کنترل (C2) استفاده میکند. این بدافزار به مهاجمان اجازه میدهد تا میزبانهای آلوده را شناسایی کرده، دستورات Shell را اجرا کنند و فایلها را از طریق Brokerهای MQTT استخراج نمایند.
تحلیل فنی و ساختار بدافزار
نمونه بررسی شده یک فایل اجرایی C++ با فرمت ELF (x86-64) است که تمامی پیکربندیها، مسیریابی وظایف و Payloadهای شبکه آن با استفاده از روتینهای XOR مبهمسازی (Obfuscation) شدهاند. این بدافزار در هنگام اجرا، یک مقدار پیکربندی ۵۹ بایتی را با عملیات XOR رمزگشایی میکند تا نام میزبان Broker و یک Topic گروهی سختافزاری (Hard-coded) را بازیابی کند.
مکانیسم ارتباطی و مدیریت قربانیان
- شناسایی منحصربهفرد: بدافزار برای هر قربانی یک Client ID با فرمت UUID ایجاد میکند. این ساختار به مهاجم اجازه میدهد دستورات کلی را برای تمام سیستمها (Broadcast) و دستورات خاص را برای هر میزبان به صورت مجزا ارسال کند.
- پورت ارتباطی: ارتباطات به صورت پیشفرض روی پورت TCP 2883 برقرار میشود.
- Daemonization: این بدافزار از قابلیت double-fork برای تبدیل شدن به یک پردازش پسزمینه (Daemon) استفاده میکند تا از ترمینال جدا شده و در دایرکتوری ریشه (/) فعالیت کند.
قابلیتهای عملیاتی (Payloads)
بدافزار BambooToken سه مسیر اصلی برای اجرای عملیات دارد:
- Host Inventory (ONLINE): جمعآوری اطلاعات سیستم شامل نام کاربری، Hostname، نسخه OS، Machine ID، آدرس MAC، IP داخلی، مدل CPU و شناسههای پردازش (PID).
- Remote Shell (SHELL): ایجاد یک Worker اختصاصی که دستورات JSON را دریافت کرده و از طریق
/bin/sh -cاجرا میکند. خروجیها در بافرهای ۱۰۲۴ بایتی جمعآوری و بازگردانده میشوند. - File Management (FILEEX): پشتیبانی از لیست کردن دایرکتوریها، آپلود، دانلود و حذف فایلها. نکته جالب در این بخش، وجود یک غلط املایی در فیلد
flies(به جای files) است که میتواند به عنوان یک شاخص شناسایی (Indicator) برای تحلیلگران SOC مورد استفاده قرار گیرد.
تحلیل رمزنگاری و شناسایی شبکه
بدافزار برای مبهمسازی Topicهای MQTT از یک کلید XOR تکرار شونده استفاده میکند. برای مثال، عبارت ONLINE به رشته 647e7d7b7d71 تبدیل میشود. با توجه به اینکه این بدافزار از TLS استفاده نمیکند، ترافیک آن در صورت رمزگشایی XOR، به راحتی قابل شناسایی است.
توصیههای دفاعی برای تیمهای SOC
برای شناسایی این تهدید، مانیتورینگ موارد زیر توصیه میشود:
- بررسی ترافیک خروجی MQTT از سرورهای لینوکس، بهویژه روی پورت 2883.
- جستجوی Topicهایی با ساختار UUID یا شناسههای گروهی خاص BambooToken.
- شناسایی Payloadهای رمزگشایی شده حاوی کلمات کلیدی ONLINE، SHELL، FILEEX و فیلد متمایز flies.