لوگوی ارتباط افزار افق
بستن

بررسی بدافزار لینوکسی perfctl

بررسی بدافزار لینوکسی perfctl

فهرست مطالب

بدافزار پیچیده لینوکسی به نام perfctl در 3 الی 4 سال گذشته با استفاده از روش‌ها و تکنیک‌های منحصر به فردی، میلیون‌ها سرور لینوکسی را تهدید و هزاران سرور را قربانی خود کرده است. پس از بررسی هزاران گزارش امنیتی، محققان شرکت امنیتی Aqua متوجه می‌شوند که تمامی آن‌ها یک IoC مشترک دارند که اشاره به این بدافزار دارد. در این مقاله به بررسی ساختار، اجزاء، روش‌های گریز از تشخیص، مکانیزم تثبیت و روش‌های تشخیص آن خواهیم پرداخت.

perfctl malware

بدافزار perfctl ناشناس، پیچیده و پنهان است که از تکنیک‌های پیچیده‌ای به شرح زیر استفاده می‌کند:

  • استفاده از روت کیت برای تثبت حضور
  • در هنگام ورود کاربر، تمامی فعالیت‌های خود متوقف کرده و منتظر بی کار ماندن سرور می‌ماند
  • از سوکت‌ یونیکس برای ارتباط داخلی و از TOR برای ارتباطات خارجی استفاده می‌کند
  • پس از اجرا، فایل اجرایی خود را حذف می‌کند و به صورت بی صدا در پس زمینه به صورت سرویس فعال می‌ماند.
  • خود را از حافظه اصلی به مکان‌ها مختلفی در دیسک تحت نام‌ها متفاوت کپی می‌کند
  • با ایجاد یک بکدور راه ارتباطی خود با شبکه TOR را باز می‌کند
  • از آسیب پذیری Polkit (CVE-2021-4043) برای ارتقا دسترسی خود استفاده می‌کند

در تمامی بررسی‌های انجام شده، از این بدافزار برای اجرای استخراج رمزارز و در برخی سناریو‌ها به عنوان proxy-jacking از سرور قربانی استفاده شده است. در طی یکی از تست‌های سندباکس که توسط Aqua انجام شده، بازیگر تهدید با استفاده از در پشتی ایجاد شده توسط بدافزار به هانی پات دسترسی پیدا کرده با انتقال ابزارهایی سعی در شناخت محیط سندباکس و اطلاع از عملیات را داشته است.

نام perfctl  از ترکیب perf که یک ابزار ماینتورینگ منابع لینوکس است و ctl که معمولا به معنای کنترل کامند لاین است، تشکیل شده. این نام گذاری به نظر مجاز و بی ازار می‌آید و شانس نادیده گرفته شدن توسط مدیران شبکه را بالا می‌برد. همچنین این بدافزار خود را در بین پردازه‌های سیستمی جا می‌زند.

Attack Flow

فایل اصلی در اثر اکسپلویت شدن یک آسیب پذیری یا نتظیمات اشتباه از یک سرور HTTP که توسط هکر کنترل می‌شود دانلود می‌گردد. نمونه‌ای که در مقاله بررسی شده به نام httpd می‌باشد که دارای چندین مرحله اجرایی می‌باشد و نشان دهنده طراحی منحصر به فردی برای اطمینان از پایداری و گریز از تشخیص می‌باشد. پس از اجرا، فایل اصلی خود را از روی حافظه به یک محل جدید در دایرکتوری /tmp کپی می‌کند، از محل جدید اجرا شده، پردازه اصلی را متوقف و فایل اصلی را پاک می‌کند تا رد پای خود از بین ببرد.

فایل اصلی از محل جدید در /tmp و تحت نام دیگر اجرا می‌شود. این نام گذاری جدید مربوط به پردازنده اجرا کننده فایل اصلی می‌باشد و باعث می‌شود پردازه جدید کمتر مشکوک به نظر برسد. در این مقاله بدافزار با نام جدید sh خود را اجرا کرده است. بدافزار با اکسپلویت کردن آسیب پذیری CVE-2021-4043  سعی می‌کند دسترسی روت در سرور را به دست بیاورد.

در ادامه بدافزار perfctl خود در چندین مکان جدید کپی می‌کند و نام آن‌ها را از فایل‌های سیستمی معمول انتخاب می‌کند. همچنین یک روت کیت و چندین ابزار لینوکسی دستکاری شده در مسیر کاربر قرار می‌دهد تا به عنوان user land rootkit عمل کنند. همچنین یک ماینر و نرم افزار پروکسی در بعضی مواقع، از سرور بدافزار به سرور قربانی منتقل و اجرا می‌شود.

در بخش command-and-control، یک سوکت یونیکس باز شده و دو فایل جدید در /tmp برای ذخیره سازی داده ایجاد می‌شود که بروی عملیات بدافزار تاثیر می‌گذارد. این داده‌ها شامل، وقایع میزبان، مکان‌های فایل کپی شده، نام پردازه‌ها، گزارش ارتباطات، توکن‌ها و گزارشات اضافی است. به علاوه، بدافزار با ایجاد متغییر‌های محیطی داده‌هایی که در اجرا و رفتار آن تاثیر دارد را ذخیره می‌کند.

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

در شکل زیر جریان کامل حمله قابل مشاهده است

جریان حمله perfctl

یکی از خصیصه‌های این بدافزار ایجاد تعداد بسیار زیادی فایل در مسیر‌های مختلف است که به طور معمول در مسیرهای /tmp , /usr , /root قرار دارند. شکل زیر نشان دهنده مسیر فایل‌های ایجاد شده می‌باشد.

perfctl locations

حمله perfctl زیر ذره‌بین

فایل اصلیhttpd، پک شده، اطلاعات دیباگر حذف و مبهم سازی شده است. در صورتی که آدرس دانلود را در مرورگر وارد کنید، عدد 1 در صفحه نمایش داده می‌شود. در صورتی که سعی کنید فایل .php را بدون user agent مخصوص دانلود کنید نیز فایلی با محتوای عدد 1 دریافت خواهید کرد. این پاسخ از سمت سرور هکر کاملا تمیز است، اما اگر آدرس دانلود را با user agent  مشخصی باز کنید، بدافزار با حجم 9 مگابایت دانلود خواهد شد. این روش در نوع خود بسیار زیرکانه است.

پس از دانلود و اجرای بدافزار، perfctl خود را از حافظه اصلی و با نام دیگری در یک مسیر جدید ذخیره می‌کند و پروسس فعلی را متوقف می‌کند تا از محل جدید و با نام جدید اجرا شود. این تکنیک با نام process masquerading  یا process replacement شناخته می‌شود و برای جلوگیری از شناسایی و مبهم سازی استفاده می‌گردد. این تکنیک باعث سخت شدن دنبال کردن جریان اجرای بدافزار توسط کارشناسان و شکارچیان تهدید می‌شود.

پایداری

این بدافزار با دستکاری فایل اسکریپت ~/.profile که وظیفه تنظیم متغییرهای محیطی در زمان لاگین کاربر را بر عهده دارد، مسیر فایل اجرایی خود را در آن قرار می‌دهد تا با هر بار لاگین شدن کاربر، بدافزار نیز اجرا شود.

فایل به اسم wizlmsh فایل باینتری کوچکی است که در مسیر /usr/bin قرار داده می‌شود تا به عنوان یک سرویس پس زمینه فعال باشد. وظیفه آن اجرای فایل اصلی (httpd) می‌باشد.

perfctl persistance

جلوگیری از تشخیص

روت کیت چندین وظیفه دارد که یکی از آن‌ها، توابع سیستمی را هوک کند و عملکرد آن‌ها را تغییر دهد. این روت کیت یک فایل ELF 64-bit  با پسورد .so است که نام آن libgcwarp.so می‌باشد. این روت کیت با استفاده از کلمه کلیدی LD_PRELOAD خود را پیش از سایر کتابخانه‌ها بارگزاری می‌کند.

این روت کیت عملکرد جالبی دارد، یکی از آن‌ها شامل دستکاری کتابخانه libpam است. این کتابخانه وظیفه احراز هویت و authorization را برعهده دارد. روت کیت با چسباندن خود به کتابخانه توانایی انجام عملیات غیرمجاز در زمان احراز هویت مانند: جلوگیری از بررسی پسورد، استخراج اطلاعات کاربری یا تغییر رفتار مکانیزم احراز هویت را خواهد داشت.

علاوه بر آن، این روت کیت از کتابخانه libcap نیز استفاده می‌کند به خصوص تابع pcap_loop که با استفاده از آن می‌توان ترافیک شبکه را کپچر کرد. این کار روت کیت برای جلوگیری از احتمال ضبط ترافیک بدافزار می‌باشد.

بازیگر تهدید همچنین از چندین روت کیت در فضای کاربر نیز استفاده می‌کند. این ابزارها از نام‌های مجاز همچون ldd استفاده می‌کنند که دستکاری شده‌اند و دارای عملیات مخفیانه‌ای هستند.

تاثیر اصلی

یکی از اصلی‌ترین تاثیرات این حمله، سوء استفاده از منابع سخت افزاری سیستم است. اصلی‌ترین هدف این بدافزار نصب ماینر رمز ارز مونرو (XMRIG) و استفاده حداکثری از CPU برای استخراج رمز ارز است. این ماینز نیز همچنین پک شده و رمزگذاری شده است و از TOR برای اتصال به استخرهای ماین ارز دیجیتال استفاده می‌کند.

همچنین، در بعضی از موارد دیده شده است که از سرور قربانی به عنوان پروکسی استفاده شود. محققان گزارش‌هایی از آدرس‌های bitping.com, earn.fm, speedshare.app, and repocket.com.  مشاهده کردند. برای مثال وبسایت repocket.com که متعلق به پتلفرم Repocket می‌باشد که در ازای استفاده از پهنای باند استفاده نشده، امکان درآمد زایی دارد.

اطلاعات بیشتر

سه سرور دانلود perfctl توسط Aqua شناسایی شده که آدرس آی پی آنها : 46.101.139.173, 104.183.100.189 and 198.211.126.180 می‌باشد. دو آدرس ابتدایی به نظر می‌رسد که سرورهای آسیب پذیری باشند که توسط بازیگر تهدید هک شده و آدرس سوم متعلق به خود هکر است. تمامی این آدرس حاوی فایل‌های آلوده استفاده شده در این حملات می‌باشند. دربیشتر حملات فایل‌های آلوده از سرور با آی پی آدرس 46.101.139.173 بروی سیستم بارگذاری می‌شود.

صفحه دانلود perfctl

در بررسی این سرورهای دانلود 3 فایل اصلی که در این حملات استفاده می‌شود کشف شده که در بین فایل‌های وبسایت به خوبی پنهان شده‌اند. فایل‌هایی با نام avatar.php و checklist.php فایل‌های اصلی http را بروی سیستم قربانی بارگذاری می‌کنند.

محققان فایل‌هایی را بروی این وبسایت‌های پیدا کرده‌اند که برای اکسپلویت پیکربندی‌های اشتباه و سرورهای آسیب پذیر استفاده می‌شود. لیست بلند بالایی از 20 هزار دایرکتوری وجود دارد که به دنبال فایل‌های پیکربندی و سکرت‌ها لو رفته می‌گردد.

نحوه شناسایی perfctl

برای شناسایی این بدافزار پیچیده به دنبال افزایش ناگهانی در استفاده از CPU و کندی در سیستم باشید. این علائم نشان دهنده فعالیت ماینر رمز ارز مخصوصا در زمان عدم استفاده از سرور می‌باشد.

مانیتورینگ رفتار مشکوک سرور

  1. دایرکتوری‌های /tmp، /usr و /root را بررسی کنید و هر گونه فایل اجرایی مشکوک را شناسایی کند. فایل هایی با نام perfctl, sh, libpprocps.so, perfcc, libfsnkdev.so در این مسیر مشکوک می‌باشد. همچین با بررسی دایرکتوری /home و در /.local/bin فایل‌هایی با نام ldd و top روت کیت‌های فضای کاربر می‌باشند.
  2. مصرف منابع را ماینتور کنید و فایل‌هایی اجرایی مانند httpd یا sh که رفتار غیر معمول دارند و یا از مکان‌های غیر منتظره‌ای مانند /tmp اجرا شده اند را شناسایی کنید.
  3. لاگ‌های سیستم را برای دستکاری فایل‌های ~/.profile و /etc/ld.so.preload بررسی کنید.

آنالیز ترافیک شبکه

  1. ترافیک شبکه را بررسی کنید و ارتباطات TOR که با آی پی‌های خارجی 67.172.162, 176.10.107.180 ارتباط دارند را پیدا کنید.
  2. ترافیک خروجی به سمت استخرهای استخراج رمز ارز و پروکسی را شناسایی کنید.
  3. ارتباط با آی پی آدرس‌های آلوده 101.139.173, 104.183.100.189, and 198.211.126.180 را بررسی کنید.

بررسی یکپارچگی فایل‌ها

دستکاری در فایل‌ ابزارهای سیستمی همچون ldd، top، lsof و crontab که ممکن است با نسخه آلوده و مخرب جایگزین شده باشند را بررسی کنید.

IoC های perfctl

TypeValueComment
IP Addresses211.234.111.116Attacker IP
IP Addresses46.101.139.173Download server
IP Addresses104.183.100.189Download server
IP Address198.211.126.180Download server
Domainsbitping.comProxy-jacking service
Domainsearn.fmProxy-jacking service
Domainsspeedshare.appProxy-jacking service
Domainsrepocket.comProxy-jacking service
FilesMD5: 656e22c65bf7c04d87b5afbe52b8d800Malware
FilesMD5: 6e7230dbe35df5b46dcd08975a0cc87fCryptominer
FilesMD5: 835a9a6908409a67e51bce69f80dd58aRootkit
FilesMD5: cf265a3a3dd068d0aa0c70248cd6325dIdd
FilesMD5: da006a0b9b51d56fa3f9690cf204b99ftop
FilesMD5: ba120e9c7f8896d9148ad37f02b0e3cbwizlmsh

0 دیدگاه

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *