آموزشامنیت

حذف تروجان لینوکسی XORDDoS از سرور لینوکسی و راهکار پیشگیری

آلوده شدن سرورهای لینوکسی به این تروجان دو نشانه اصلی دارد:
۱- load بالای سرور بشکلی که عملا سرور توانایی پاسخگویی به سایر درخواستها بجز خود تروجان را ندارد. خوشبختانه این بدافزار چیزی رو حذف یا رمزگذاری نمیکنه. فقط سرور شما رو به شبکه زامبی خودش وصل میکنه و سرور میره تو حالت DoS. به همین دلیل عبارت DDoS تو اسمش گنجونده شده.
۲- حضور پروسس های مشکوک و ناشناخته با cpu load بالا. عکس زیرو داشته باشین:

این عکسو زمانی گرفتم که اول روی پروسس مشکوک kill –STOP زده بودم. اولین کارو لو دادم ;-)

اقدامات لازم:

۱٫ اول یه top بگیرین تا بدونین همین الان چه پروسس مشکوکی داره cpu رو میخوره. تو مورد ما همونی هست که تو عکس میبینید. ولی خب کافیه یکبار kill کنیدش. خواهید دید با هر بار kill شدن (معمولا پس از ۳ ثانیه) با اسامی جدید رخ نمایی خواهد نمود! پس تا الان پروسس با PID مساوی ۲۲۶۷۴ مشکوکه. این PID رو یه جایی نگه دارین که الان لازمش داریم.

۲٫ این تروجان فایلهای اجرایی خود را در مسیر usr/bin/ قرار میدهد بنابراین باید تمامی آن فایلهای مخرب را دستی پاک کنید. بشکل زیر عمل کنید:

اینو جلوتر هم گفتم و اشاره کردم که اگه فقط پروسس رو kill یا kill -9 کنید پروسس مشابه دیگه ای ساخته میشه. واسه الان فقط kill -STOP PID کنین تا تروجان نتونه پروسس جدیدی بسازه.
خب حالا برین به مسیر usr/bin/. اونجا به یک فایل هم نام اون پروسس مشکوکه که پیدا کردین و توی top هم دیده میشه وجود داره. بعلاوه کلی فایل دیگه با اسامی مختلف. پس تو مثال ما باید یک فایل با نام hgmjzjkpxa وجود داشته باشه. این فایلو که تو مرحله قبل kill –STOP کردینش رو حالا nano کنین (یا vim کنین یا حالا هر چی). چی توش میبینین؟ به محتواش خوب دقت کنید. لازم نیست تحلیلش کنید فقط خوب بخاطر مبارک بسپارید چون قراره تک تک فایلهای موجود در usr/bin/ رو با همین روش محتواشون رو چک کنین و هر کدوم که الگویی شبیه پروسس مشکوک داشت با

حذف کنین.  ممکنه تعدادش زیاد باشه ممکنه هم نباشه. پس فعلا برین همه فایلهای مشابه پروسس مشکوک رو از مسیر usr/bin/ دستی بردارید.

اخطار: حواستون باشه تو اجرای rm سوتی ندین یوقت نزنین همه دارو ندارتون رو پاک کنین! فقط روی خود فایل مشکوک تو همین مسیر usr/bin/ بزنین.

 

۳٫ فایل اجرایی اصلی و مرجع این تروجان بنام libudev.so بوده و معمولا در مسیر lib/libudev.so قرار داره. اگه اونجا نبود با “find / -type f –name “libudev.so پیداش کنین. این فایل مسئول ایجاد همون پروسسی هست که cpu رو میخوره یعنی hgmjzjkpxa.
این فایل همچنین داخل cron.hourly یک job مخصوص به خودش بنام cron.sh میسازه و اسکریپت اولیه خودش رو در /etc/rc*.d قرار میده (مسیر فوق در Debian و CentOS میتونه بشکل /etc/rc.d/{init,rc{1,2,3,4,5}}.d باشه). پس هم باید دسترسی پوشه /lib رو ازش پس بگیرید هم فایل libudev.so رو حذف کنید. دستور زیر کارتون رو راه میندازه:

 

۴٫ حالا تمام فایلهای موجود در مسیرهای /etc/rc{0,1,2,3,4,5,6,S}.d را که امروز تولید شده اند رو پاک کنید.

  • برای اینکه بفهمید کدوم فایلها در داخل پوشه های rc مال امروزه از ls –lh استفاده کنید.
  • برای دیدن آخرین تغییرات از ls –lrt استفاده کنید.

هر فایل مشکوکی که الگوی نامگذاری مشابه پروسس مشکوک داشت رو از داخل پوشه های rc حذف کنید. مثلا S01hgmjzjkpxa. یا حتی ممکنه اسم libudev رو داشته باشه مثلا: K01libudev. اینا رو دستی با rm –f پاک کنین.

۵٫ داخل پوشه /etc/cron.hourly/ یک اسکریپت بنام gcc.sh وجود دارد. با rm –f پاکش کنید.

۶٫ با دستور زیر crontab سرور رو ویرایش کنید. این دستور طوری crontab را تغییر میدهد که اولا مقادیر cron ست شده روی سرور از قبل حفظ شود، ثانیا مقدار تنظیم شده توسط شل تزریق شده یعنی gcc.sh را نیز حذف میکند:

 

۷٫ تا الان از دست تروجان خلاص شدید اما چون این تروجان از از طریق حملات brute force وارد شده و خواهد شد باید همین همینجا یه بار رمز root رو تغییر بدین و یه reboot ناز به سرور بدین. یه رمز تصادفی و طویل مثلا ۲۰ کاراکتری بذارید، سرور رو ریبوت کنید و تمام!

بعد از ریبوت یه top دیگه بگیرید. هیچ پروسس مشکوکی نباشد داشته باشید و cpu load باید عادی و متناسب با ترافیک سرور باشه. در نهایت با دستور زیر دسترسی قبلی lib/ و etc/crontab/ رو به حالت قبل برگردونید:

 

پیشگیری

۸٫ اول از همه توصیه میشود دسترسی root به ssh را با اعمال ACL محدود کنید و مثلا در ACL خود دسترسی به root به ssh را به ip های مشخصی محدود کنید.
۹٫ دوم اینکه راهکارهای ضد Brute Force را جدی بگیرید. تنظیم و تیونینگ CSF/LDF در لینوکس رو جدی بگیرید. همچنین ابزار قدیمی و قدرتمند fail2ban هم هست که مختص حملات brute force ساخته شده و البته نمیتونید همزمان با CSF/LFD ازش استفاده کنین. یکیشو باید بردارید.
۱۰٫ سیستم عامل تون رو آپدیت نگه دارین؛ در ویندوز با تنظیم schedule و در لینوکس با cron.
۱۱٫ راهکار ضد بدافزار قوی داشته باشین و آپدیت نگهشون دارین. یادتون باشه بهترین آنتی ویروس های دنیا هم بعضی بدافزارها رو bypass میکنن. وای بحال آنتی ویروس آپدیت نشده!
۱۲٫ از ابزارهایی که تغییرات روی فایل سیستم رو گزارش میدن استفاده کنید. مانند fail2ban در لینوکس. میتونید fail2ban رو طوری تنظیم کنید که به محض انجام تغییر روی فایل سیستم براتون ایمیل بیاد.

نوشته های مشابه

۲ دیدگاه

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

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

بستن