مجموعه بدافزار Drovorub سیستم عامل لینوکس را آلوده می کند

آژانس امنیت ملی و دفتر تحقیقات فدرال ایالات متحده گزارشی منتشر کرد، که بر اساس آن 85 مرکز اصلی خدمات ویژه اداره اصلی ستاد کل نیروهای مسلح روسیه (85 GCSS GRU) از یک مجموعه بدافزار به نام "Drovorub" استفاده می شود. Drovorub شامل یک روت کیت به شکل یک ماژول هسته لینوکس، ابزاری برای انتقال فایل ها و تغییر مسیر پورت های شبکه و یک سرور کنترل است. بخش کلاینت می تواند فایل ها را دانلود و آپلود کند، دستورات دلخواه را به عنوان کاربر اصلی اجرا کند و پورت های شبکه را به گره های دیگر شبکه هدایت کند.

مرکز کنترل Drovorub مسیر فایل پیکربندی را با فرمت JSON به عنوان آرگومان خط فرمان دریافت می کند:

{
"db_host" : " "،
"db_port" : " "،
"db_db" : " "،
"db_user" : " "،
"db_password" : " "،

"lport" : " "،
"lhost": " "،
"ping_sec" : " "،

"priv_key_file" : " "،
"عبارت" : " »
}

MySQL DBMS به عنوان یک Backend استفاده می شود. پروتکل WebSocket برای اتصال کلاینت ها استفاده می شود.

مشتری دارای پیکربندی داخلی است، از جمله URL سرور، کلید عمومی RSA، نام کاربری و رمز عبور. پس از نصب روت کیت، پیکربندی به صورت یک فایل متنی با فرمت JSON ذخیره می شود که توسط ماژول هسته Drovoruba از سیستم مخفی می شود:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"کلید": "Y2xpZW50a2V5"
}

در اینجا "id" یک شناسه منحصر به فرد صادر شده توسط سرور است که در آن 48 بیت آخر با آدرس MAC رابط شبکه سرور مطابقت دارد. پارامتر "کلید" پیش‌فرض یک رشته رمزگذاری‌شده در base64 است که "کلید مشتری" توسط سرور در هنگام دست دادن اولیه استفاده می‌شود. علاوه بر این، فایل پیکربندی ممکن است حاوی اطلاعاتی در مورد فایل های مخفی، ماژول ها و پورت های شبکه باشد:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"کلید": "Y2xpZW50a2V5"،
"مانیتور" : {
"فایل" : [
{
"فعال": "درست"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask" : "testfile1"
}
],
"مدول" : [
{
"فعال": "درست"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask" : "testmodule1"
}
],
"خالص" : [
{
"فعال": "درست"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"port" : "12345",
"پروتکل": "tcp"
}
] }
}

یکی دیگر از اجزای Drovorub عامل است؛ فایل پیکربندی آن حاوی اطلاعاتی برای اتصال به سرور است:

{
"client_login" : "user123",
"client_pass" : "pass4567",
"مشتری" : "e391847c-bae7-11ea-b4bc-000c29130b71"،
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100"،
"server_port" :"45122"،
"server_uri" :"/ws"
}

فیلدهای "clientid" و "clientkey_base64" در ابتدا وجود ندارند؛ آنها پس از ثبت نام اولیه در سرور اضافه می شوند.

پس از نصب، عملیات زیر انجام می شود:

  • ماژول هسته بارگذاری می شود که قلاب ها را برای تماس های سیستمی ثبت می کند.
  • مشتری با ماژول هسته ثبت نام می کند.
  • ماژول کرنل فرآیند کلاینت در حال اجرا و فایل اجرایی آن را روی دیسک پنهان می کند.

یک شبه دستگاه، به عنوان مثال /dev/zero، برای برقراری ارتباط بین مشتری و ماژول هسته استفاده می شود. ماژول هسته تمام داده های نوشته شده روی دستگاه را تجزیه می کند و برای انتقال در جهت مخالف سیگنال SIGUSR1 را به مشتری ارسال می کند و پس از آن داده ها را از همان دستگاه می خواند.

برای شناسایی Lumberjack، می‌توانید از تجزیه و تحلیل ترافیک شبکه با استفاده از NIDS استفاده کنید (فعالیت شبکه مخرب در خود سیستم آلوده قابل شناسایی نیست، زیرا ماژول هسته سوکت‌های شبکه مورد استفاده، قوانین فیلتر شبکه و بسته‌هایی را که می‌توانند توسط سوکت‌های خام رهگیری شوند را پنهان می‌کند) . در سیستمی که Drovorub نصب شده است، می توانید ماژول هسته را با ارسال دستور مخفی کردن فایل شناسایی کنید:

فایل تست لمسی
echo "ASDFZXCV:hf:testfile" > /dev/zero
ls

فایل "testfile" ایجاد شده نامرئی می شود.

روش های دیگر تشخیص شامل حافظه و تحلیل محتوای دیسک است. برای جلوگیری از عفونت، توصیه می شود از تأیید امضای اجباری هسته و ماژول ها استفاده کنید که از نسخه 3.7 هسته لینوکس در دسترس هستند.

این گزارش حاوی قوانین Snort برای تشخیص فعالیت شبکه Drovorub و قوانین Yara برای شناسایی اجزای آن است.

به یاد بیاوریم که 85 GTSSS GRU (واحد نظامی 26165) با این گروه مرتبط است. APT28 (خرس فانتزی)، مسئول حملات سایبری متعدد است.

منبع: opennet.ru