روت کیت چیست ؛ نحوه مقابله با rootkit
یادداشت ویراستار: این مطلب در مهر 1400 توسط کارشناسان سرور و شبکه فالنیک، بررسی و تایید شده است.
در میان بدافزارهای مختلفی که به سامانههای منفرد و زیرساختها حمله میکنند بدافزار روت کیت خطرناکترین آنها هستند، زیرا در بیشتر موارد شناسایی آنها سخت است و اگر موفق شوند خود را به هسته سیستمعامل یا میانافزار مولفههای زیرساختی نظیر پردازندههای مرکزی یا بایوس برسانند ممکن است برای همیشه روی سامانه باقی بمانند. در این مقاله قصد داریم به شکل کوتاه با rootkit و ماهیت مخرب آنها آشنا شویم.
- روت کیت چیست؟
- روت کیتها چگونه کار میکنند؟
- وظایف روت کیت چیست؟
- چرا شناسایی روت کیتها سخت است؟
- روت کیتها چگونه یک سامانه را قربانی میکنند؟
- طبقهبندی و انواع روت کیت
- راهکار محافظت در برابر روت کیت
- ابزارهای شناسایی روت کیتهای عادی
روت کیت چیست؟
ویروس Rootkit چیست؟ روت کیت خطرناکترین گونه بدافزاری است. روت کیتها همانند سایر گونههای بدافزاری، برنامههای کامپیوتری هستند که قدرت بالایی در اختفا دارند و قادر هستند در فایلها، تنظیمات رجیستری یا پردازهها پنهان شوند و به سرقت اطلاعات کاربران بپردازند. بهطور کلی، روت کیتها با هدف دسترسی از راه دور، کنترل سامانههای کامپیوتری یا شبکههای کامپیوتری و استخراج اطلاعات استفاده میشوند. بارزترین نشانه وجود روت کیت در یک سامانه کند شدن سرعت سامانه است که نشان میدهد عامل مخربی در پسزمینه مشغول فعالیت است.
روت کیتها چگونه کار میکنند؟
مکانیزم کاری بیشتر روت کیتها پیچیده است. عملکرد روت کیتها به این صورت است که پردازههایی را روی سیستمعامل قربانی (ویندوز، لینوکس و به ندرت مک) ایجاد کرده و به اجرا در میآورند که نرمافزارهایی مثلTask Manager قادر به مشاهده آنها نیستند. در ادامه در سیستمعاملهایی مثل ویندوز کلیدهایی در رجیستری ویندوز ایجاد میکنند که نقش پل ارتباطی را دارند و به روت کیت اجازه میدهند به اینترنت متصل شود. کانالهای ارتباطی بهگونهای ایجاد میشوند که ابزارهای شبکه مثل Netstat قادر به مشاهده آنها نیستند.
در مرحله بعد روت کیتها با ایجاد درهای پشتی روی سامانه قربانیان راه را برای ورود بدافزارها به سیستمعامل هموار میکنند. بدافزارهایی که توسط روت کیتها به سیستمعامل قربانیان وارد میشوند به دو گروه تقسیم میشوند:
- گروه اول، بدافزارهای پوششی هستند که توسط نرمافزارهای امنیتی به راحتی شناسایی میشوند. این بدافزارها با هدف ایجاد رخنهها یا به وجود آوردن شکافهایی در حافظه اصلی به سیستمعامل قربانی وارد میشوند و به منظور آمادهسازی زمینه برای ورود بدافزارهای اصلی به کار گرفته میشوند.
- گروه دوم بدافزارهایی هستند که توسط نرمافزارهای امنیتی شناسایی نمیشوند و با هدف استراق سمع و جمعآوری اطلاعات کاربران به سامانهها وارد میشوند. روت کیتها عمدتا با زبان برنامهنویسی اسمبلی و در نمونههای خاصتر با زبان سی ایجاد میشوند، به همین دلیل کمترین اندازه را دارند، سرعت اجرای آنها زیاد است و به راحتی از دید نرم افزارهای ضد روت کیت پنهان میشوند. با توجه به اینکه روت کیتها با هدف آلودهسازی هسته سیستم عامل طراحی میشوند قدرت و عملکرد آنها تقریبا نامحدود است.
وظایف روت کیت چیست؟
هنگامی که روت کیت روی سامانهای نصب میشود قادر به انجام چه کارهایی است؟ قدرت روت کیتها نسبت به سایر گونههای بدافزاری زیاد و تقریبا نامحدود است. هنگامی که یک روت کیت سامانهای را آلوده کند به هکرها اجازه انجام کارهای زیر را میدهد:
- اجرای دستورات از راه دور با مجوز مدیریتی.
- استخراج و سرقت اطلاعات که شامل رمزهای عبور و نامهای کاربری میشود.
- تغییر پیکربندی و تنظیمات سیستمعامل با هدف دسترسی سادهتر هکر به سامانه قربانی.
- نصب نرمافزارهای جعلی به جای نرمافزارهای امنیتی نصب شده یا نصب برنامههای ناخواسته. خوشبختانه در این زمینه مایکروسافت گامهای ارزشمندی برداشته و جدیدترین بهروزرسانی ارایه شده برای ویندوز 10 مانع نصب برنامههای ناخواسته میشود.
- نصب بدافزارها، ویروسها یا استخراجکنندگان رمزارز.
- متصل کردن سامانه کامپیوتری به شبکهای از باتنتها که قرار است برای اهدافی همچون پیادهسازی حملههای DDoS استفاده شوند.
روت کیتها با هدف آلودهسازی هسته سیستم عامل طراحی میشوند.
چرا شناسایی روت کیتها سخت است؟
یکی از مهمترین دلایلی که باعث میشود شناسایی روت کیتها سخت یا گاهی غیر ممکن شود تغییر مستمر مکانیزمهای حفاظتی این گونه مخرب است. به همین دلیل است که بیشتر ضدویروسها قادر به شناسایی روت کیتها نیستند یا تنها هنگامی قادر به حذف آنها هستند که اطلاعات کاملی از آنها در دسترس باشد.
در حالت کلی ضدویروسها و بدافزارها با ردیابی الگوهای رفتاری بدافزارها، امضا بدافزارها یا هرگونه مورد مشکوکی به سرعت فایل یا پردازه مخرب را به عنوان یک عامل مشکوک شناسایی کرده، آنرا قرنطینه کرده و نسخهای از فایل مشکوک را برای آزمایشگاه ضدویروسی ارسال میکنند. بیشتر بدافزارها به این شکل شناسایی میشوند، زیرا عملکردی در سطح لایه کاربری دارند و درست در همان نقطهای کار میکنند که ضدویروسها در آن متمرکز هستند.
اما بیشتر روت کیتها برای ورود به لایههای پایینتر سیستمعاملها نوشته میشوند و با توجه به اینکه شرکتهایی مثل مایکروسافت سیستمعاملهایی با کدهای بسته دارند و به تولیدکنندگان ضدویروسها اجازه دسترسی به این کدها را نمیدهند، در نتیجه ورود به بخشهای محافظت شده سیستمعامل برای ضدویروسها کار سختی است و مکانیزمهای حفاظتی ویندوز مانع دسترسی ضدویروسها به این بخشها میشوند.
پس چرا روت کیتها میتوانند به این بخش ورود پیدا کنند؟ زیرا هکرها سعی میکنند از آسیبپذیریهای روزصفر یا ضعفهای امنیتی مستتر در مولفههای سختافزاری برای ورود به این بخش استفاده کنند. به همین دلیل است که هنگامی که آسیبپذیریهایی در برخی از پردازندههای سیستمعامل اینتل شناسایی شد، این شرکت به سرعت وصلههایی برای آنها ارایه کرد و در نهایت اعلام کرد ترمیم برخی از آسیبپذیریها امکانپذیر نیست. البته همه روت کیتها نمیتوانند به این سطح از کرنل سیستمعامل وارد شوند، زیرا برنامهنویسی آنها هزینهبر، زمانبر و خاصمنظوره است و برای حمله به سازمانهای بزرگ یا اقدام بر علیه دولتها ساخته میشوند.
روت کیتها چگونه یک سامانه را قربانی میکنند؟
تمامی روت کیتهایی که تاکنون شناسایی شدهاند روی دستکاری نتایج و مهندسی معکوس متدها و توابعی که برنامههای کاربردی و سیستمی از آنها استفاده میکنند متمرکز هستند. برای روشن شدن این موضوع به مثال زیر دقت کنید:
Task Manager یک برنامه شناخته شده برای کاربران ویندوز است. کاری که این برنامه سیستمی انجام میدهد نشان دادن فهرستی از فرآیندهای در حال اجرا در حافظه، تراکنشهای در حال اجرا روی هارددیسک، کانالهای ارتباطی و برنامههایی که اقدام به تبادل اطلاعات میکنند و میزان مصرف منابع سیستمی است.
این برنامه برای انجام این فعالیتها از توابع معروفی مثل EnumProcesses استفاده میکند که قادر هستند فهرستی از شناسههای مربوط به پردازهها را نشان دهد. تابع فوق اطلاعات موردنیاز را از ساختار دادهای کرنل ویندوز استخراج میکند. هنگامی که یک rootkit به سامانهای وارد میشوند عملکرد تابع فوق را مختل میکند یا اطلاعاتی که تابع فوق ارایه میکند را به شکلی دستکاری میکند تا فهرست پردازهها به شکل فیلتر شده توسط Task Manager یا سایر ابزارها نشان داده شود.
مکانیزم فوق به روت کیت اجازه میدهد از دید ابزارهای نظارتی پنهان شود. مشابه همین تکنیک برای فریب سامانههای تشخیص و پیشگیری از نفوذ و ضدویروسها نیز استفاده میشود.
فضای کاربری بخشی از حافظه سیستمی است که برنامههای کاربردی، برخی درایورها و کدهایی که خارج از کرنل سیستمعامل قرار دارند در آن بخش اجرا میشوند. روت کیتهایی که در کرنل ویندوز یا لینوکس اجرا میشوند، خطرناکتر از فضای کاربری هستند، زیرا به اطلاعات مهمی همچون امضا دیجیتالی فایلها دسترسی دارند و میتوانند خود را به عنوان یک مولفه سیستمی تعریف کنند.
در این حالت هیچ ضدویروسی قادر به شناسایی آنها نخواهد بود. در حالت کلی، روت کیتها میتوانند توابع استخراجکننده اطلاعات سیستمی را دستکاری کرده، نتایج را فیلتر کرده و هنگامی که توابع ویندوز از سوی ابزارهای امنیتی فراخوانده میشوند، فهرستی از فایلها، موجودیتهای رجیستری و ارتباطات شبکه را نشان دهند که مشکل خاصی ندارند. به همین دلیل است که نرمافزارهای بزرگ امنیتی هیچگاه با زبانهای برنامهنویسی سطح بالا و به ویژه کتابخانههایی نظیر داتنت نوشته نمیشوند.
ضدویروسهای مبتنی بر کتابخانههایی شبیه به داتنت عملکردی ضعیفتر از نمونههای قدرتمندی مثل بیتدینفدر دارند. بیشتر ضدویروسها و ضدجاسوسافزارها روی فراخوانی توابع در زمان پیدا کردن فایلها و اسکن درایوها حساب میکنند، بنابراین فایلهایی که توسط روت کیتها پنهان میشوند کاملا نامریی خواهند بود. در این شرایط یک کامپیوتر آلوده میتواند در حالی که برنامه ضدویروس روی سامانه کاربر فعال است و هیچگونه گزارشی از آلودگی اعلام نمیکند به کار خود ادامه دهد.
روت کیتهای پیشرفته در لایههای پایینی سیستمعامل اجرا میشوند و برای اجرای عملیات مخرب، اجرای عملیات در سطح کرنل ویندوز و شنود دادهها استفاده میشوند.
طبقهبندی و انواع روت کیت
طراحی و ساخت روت کیت به منظور انجام عملیات خرابکارانه مختلفی انجام میشوند و هر یک قابلیتهای مخصوص خود را دارند. کارشناسان امنیتی روت کیتها را به گروههای زیر طبقهبندی کردهاند:
روت کیت کرنل: روت کیتهایی که برای دستکاری فایلهای سیستمی و حیاتی سیستمعاملها طراحی میشوند و میتوانند کدهای مخرب را به داخل ساختار دادهای کرنل سیستمعامل وارد کنند. در چنین شرایطی ضدویروسها هیچگاه متوجه اتفاقات مشکوک نمیشوند. متاسفانه اگر روت کیتهای کرنل دچار باگی شوند، عملکرد سیستم ناخواسته دستخوش تغییر میشود و در بیشتر موارد مجبور به تعویض سیستمعامل هستید.
روت کیت سختافزاری: این گروه از روت کیتها بهطور مستقیم MiddleWare سختافزارها را نشانه میروند. بهطور مثال، آسیبپذیری که توسط کریستفر دوماس، پژوهشگر امنیتی شناسایی شد نشان داد که پردازندههای اینتل به مدت 18 سال آلوده به آسیبپذیری بودند که به هکرها اجازه میداد، مدیریت سیستم پردازنده را به دست گرفته، UEFI را پاک کرده و در ادامه روت کیت را روی میان افزار (Firmware) سیستم نصب کرد. آسیبپذیری مذکور روی پردازندههای x86 اینتل شناسایی شد.
روت کیت هایپروایزر: روت کیتهای ناظر ارشد یا همان Hypervisor که روت کیت مجازی نیز نامیده میشوند، نسخه تکامل یافته روت کیتها هستند که از فناوریهای نوین برای آلودگی و پنهانسازی استفاده میکنند. این روت کیتها عمدتا در ارتباط با ایمیجها و مکانیزمهای داکر و کوبرنتیس فعالیت دارند و قادر هستند کنترل کامل یک ماشین مجازی را به دست گیرند.
روت کیت بارگذاریکننده: روت کیت BootLoader هنگامی که به سیستمی وارد میشود رکورد راهانداز اصلی (MBR) کامپیوتر که نحوه بارگذاری سیستمعامل را مشخص میکند آلوده میکند. گاهی اوقات رکورد راهانداز ولوم (VBR) را نیز آلوده میکند. با توجه به اینکه روت کیت فوق در رکورد راهانداز دیسک قرار میگیرد در ساختار سیستم فایلی سیستمعامل ظاهر نمیشود و ضدویروسها به سختی قادر به شناسایی و حذف آن هستند. در حالت کلی، هرگونه تلاش برای حذف روت کیت بوتلودر باعث از کار افتادگی سیستمعامل یا سختافزار میشود.
روت کیت RAM: روت کیت RAM از مکانیزم مقیم در حافظه استفاده میکند و تنها منابع آزاد در دسترس برنامهها را مصرف میکند.
روت کیت برنامه کاربردی: سادهترین نوع روت کیتها است که شناسایی آن ساده است، زیرا از رویکرد استتار در قالب فایلهای سیستمی یا برنامههای کاربردی استفاده میکند و در نتیجه ضدویروسها قادر به شناسایی و حذف آن هستند.
راهکار محافظت در برابر روت کیت
بهترین راهکار برای شناسایی و حذف rootkit، نظارت مستمر به شیوه دستی روی فعالیتهای نامنظم کامپیوتر و نظارت بر زمان ذخیره سازی فایلها روی رسانههای ذخیره ساز در بازههای زمانی مختلف است.
کاربران و به ویژه سازمانها برای آنکه از خود در برابر روت کیتها محافظت کنند باید وصلههای مربوط به نرمافزارها را نصب کنند، سیستمعامل را بهروز نگه دارند و از دانلود فایلهای مشکوک اجتناب کنند.
شناسایی و حذف روت کیتها فرآیند سخت و پیچیدهای است، زیرا برخی از آنها مکانیزمهای امنیتی خاص خود را دارند که هر زمان احساس کنند کاربر در حال پاک کردن مولفههای مخرب است، فایلهای سیستمی را پاک یا غیر قابل استفاده میکنند. علاوه بر این، در بیشتر موارد، هنگامی متوجه وجود روت کیتها میشوید که نسخههای پشتیبان نیز آلوده شدهاند. اگر احساس میکنید سامانهای آلوده به روت کیت است، مراحل زیر را دنبال کنید:
1. کامپیوتر باید در حالت ایمن و با قابلیت اتصال به شبکه بوت شود. برخی از روت کیتها اجازه نصب محصولات امنیتی را نمیدهند یا هنگامی که بسته امنیتی نصب شود، آنرا پاک میکنند. بنابراین باید کامپیوتر در حالت مطمئن و با قابلیت اتصال به شبکه (Safe Mode with Networking) راهاندازی شود تا دسترسی روت کیت به سامانه به حداقل برسد.
2. در مرحله بعد باید از ابزارهای شناسایی روت کیتها استفاده کنید. روت کیتها خانواده بزرگی دارند به همین دلیل یک پویشگر روت کیت واحد نمیتواند گونههای مختلف را شناسایی کند. به همین دلیل باید ترکیبی از اسکنرهای مختلف اجرا کنید. کارشناسان امنیتی دو ابزار Kaspersky TDSS Killer و Malwarebytes Antirootkit را پیشنهاد میکنند. ضدروت کیت Malwarebytes قابلیت شناسایی بیشتر روت کیتها را دارد. جالب آنکه روت کیت Malwarebytes میتواند آسیبهای وارده از جانب روت کیت به سیستمعامل را نیز شناسایی و برطرف کند که در نوع خود جالب است.
3. پس از شناسایی و حذف روت کیتها باید ردپاها را پاک کنید. RKill یک ابزار قدرتمند در این زمینه است که هرگونه فرآیند مرتبط با فعالیتهای مخرب را شناسایی و متوقف میکند.
نکته: روت کیتهایی که UEFI و BIOS یا MiddleWare سختافزارها را آلوده میکنند به سختی پاک میشوند و ضدروت کیتهای عادی در این زمینه چندان مفید نیستند. در این حالت باید بایوس سیستم را فلش کرده و نسخه جدیدی نصب کرد. البته دقت کنید، گاهی اوقات روت کیتها به اندازه پیچیده و پیشرفته هستند که مانع بایوس فلش میشوند. در این حالت باید به شرکتهای خدماتی مراجعه کنید.
ابزارهای شناسایی روت کیتهای عادی
در این بخش به چند مورد از ابزارهایی اشاره میکنیم که در زمینه شناسایی و حذف روت کیتها مفید هستند. البته به این نکته دقت کنید که توانایی آنها محدود است و قرار نیست همه روت کیتها را شناسایی کنند.
Hitman Pro: از اسکنرهایی است که برای شناسایی روت کیتها استفاده میشود. Hitman Pro میتواند روت کیتهای پنهان از دید ضدویروسها را شناسایی و حذف کند.
Norton Power Eraser: یک اسکنر رایگان است که برای شناسایی و حذف روت کیتها طراحی شده است. ابزار فوق قابلیت بررسی ترافیک و فعالیتهای مشکوک را دارد که همتراز با ابزارهای نظارت بر شبکهها است. به همین دلیل در زمان اجرا ممکن است هشدارهای کاذب مثبت زیادی را مشاهده کنید. در زمان نصب ابزار فوق دقت کنید که تیک گزینه Include Rootkit Scan را فعال کنید.
UnHackMe: نرمافزار فوق هر زمان نشانهای مبنی بر هک یک سامانه و باز شدن کانالی برای تزریق کدهای مخرب به سامانهای را شناسایی کند هشدارهای لحظهای به کاربر نشان میدهد. علاوه براین قابلیتهایی برای حذف کلیدها از رجیستری، فایلهای آلوده موقت و دریافت گزارشها ارایه میکند.
GMER: یکی دیگر از گزینههای قدرتمند در این زمینه است. عملکرد GMER به اندازهای مطلوب است که به موتور ضدویروس Avast نیز افزوده شده است. لازم به توضیح است که کار با ضدروت کیت فوق نیازمند دانش فنی است تا بتوانید پردازههای مخرب را شناسایی کنید. توصیه میشود کاربران عادی تنها برای پویش عادی سیستم از این محصول استفاده کنند، زیرا ممکن است فایلهای سیستمی را به اشتباه توسط این نرمافزار پاک کنید.
اگر سیستم شما هک شده مثلا دچار حمله باج افزار یا ویروس ها شده است میتوانید از تخصص کارشناسان فالنیک در زمینه تعمیر لپ تاپ و تعمیر سرور hp استفاده کنید.
سلام خسته نباشید چطوری میتونم با نویسنده این متن در ارتباط باشم یا یه کارشناس که ویروس شناس باشه خواهش میکنم جواب بدید کمکم کنید ممنون میشم.
درود بر شما
رامتین عزیز برای رفع مشکل خود با شماره 021-54591921 تماس بگیرید. همکاران ما در این زمینه به شما مشاوره خواهند داد.