در میان بدافزارهای مختلفی که به سامانههای منفرد و زیرساختها حمله میکنند بدافزار روت کیت خطرناکترین آنهااست، زیرا در بیشتر موارد، شناسایی آنها سخت است و اگر موفق شوند خود را به هسته سیستمعامل یا میانافزار مولفههای زیرساختی نظیر پردازندههای مرکزی برسانند ممکن است برای همیشه روی سامانه باقی بمانند. در این مقاله قصد داریم به شکل کوتاه با rootkit و ماهیت مخرب آن آشنا شویم.
تعریف روت کیت
روت کیتها همانند سایر گونههای بدافزاری، برنامههای کامپیوتری هستند که قدرت بالایی در اختفا دارند و قادر هستند در فایلها، تنظیمات رجیستری یا پردازهها پنهان شوند و به سرقت اطلاعات کاربران بپردازند. بهطور کلی، روت کیتها با هدف دسترسی از راه دور، کنترل سامانههای کامپیوتری یا شبکههای کامپیوتری و استخراج اطلاعات استفاده میشوند. بارزترین نشانه وجود روت کیت در یک سامانه کند شدن سرعت سامانه است که نشان میدهد عامل مخربی در پسزمینه مشغول فعالیت است.
روت کیتها چگونه کار میکنند؟
مکانیزم کاری بیشتر روت کیتها پیچیده است. عملکرد روت کیتها به این صورت است که پردازههایی را روی سیستمعامل قربانی ایجاد کرده و به اجرا در میآورند. در ادامه در سیستمعاملهایی مثل ویندوز کلیدهایی در رجیستری ویندوز ایجاد میکنند که نقش پل ارتباطی را دارند و به روت کیت اجازه میدهند به اینترنت متصل شود. کانالهای ارتباطی بهگونهای ایجاد میشوند که ابزارهای شبکه قادر به مشاهده آنها نیستند.
در مرحله بعد روت کیتها با ایجاد درهای پشتی روی سامانه قربانیان راه را برای ورود بدافزارها به سیستمعامل هموار میکنند. بدافزارهایی که توسط روت کیتها به سیستمعامل قربانیان وارد میشوند به دو گروه تقسیم میشوند:
گروه اول، بدافزارهای پوششی هستند که توسط نرمافزارهای امنیتی به راحتی شناسایی میشوند. این بدافزارها با هدف ایجاد رخنهها یا به وجود آوردن شکافهایی در حافظه اصلی به سیستمعامل قربانی وارد میشوند و به منظور آمادهسازی زمینه برای ورود بدافزارهای اصلی به کار گرفته میشوند.
گروه دوم، بدافزارهایی هستند که توسط نرمافزارهای امنیتی شناسایی نمیشوند و با هدف استراق سمع و جمعآوری اطلاعات کاربران به سامانهها وارد میشوند. روت کیتها عمدتا با زبان برنامهنویسی اسمبلی و در نمونههای خاصتر با زبان سی ایجاد میشوند، به همین دلیل کمترین اندازه را دارند، سرعت اجرای آنها زیاد است و به راحتی از دید نرم افزارهای ضد روت کیت پنهان میشوند. با توجه به اینکه روت کیتها با هدف آلودهسازی هسته سیستم عامل طراحی میشوند قدرت و عملکرد آنها تقریبا نامحدود است.
وظایف روت کیت چیست؟
قدرت روت کیتها نسبت به سایر گونههای بدافزاری زیاد و تقریبا نامحدود است. هنگامی که یک روت کیت سامانهای را آلوده کند به هکرها اجازه انجام کارهای زیر را میدهد:
- اجرای دستورات از راه دور با مجوز مدیریتی
- استخراج و سرقت اطلاعات که شامل رمزهای عبور و نامهای کاربری میشود
- تغییر پیکربندی و تنظیمات سیستمعامل با هدف دسترسی سادهتر هکر به سامانه قربانی
- نصب نرمافزارهای جعلی به جای نرمافزارهای امنیتی نصب شده یا نصب برنامههای ناخواسته
- نصب بدافزارها، ویروسها یا استخراجکنندگان رمزارز
- متصل کردن سامانه کامپیوتری به شبکهای از باتنتها که قرار است برای اهدافی همچون پیادهسازی حملههای DDoS استفاده شوند
چرا شناسایی روت کیتها سخت است؟
یکی از مهمترین دلایلی که باعث میشود شناسایی روت کیتها سخت یا گاهی غیر ممکن شود تغییر مستمر مکانیزمهای حفاظتی این گونه مخرب است. به همین دلیل است که بیشتر ضدویروسها قادر به شناسایی روت کیتها نیستند یا تنها هنگامی قادر به حذف آنها هستند که اطلاعات کاملی از آنها در دسترس باشد.
در حالت کلی ضدویروسها و بدافزارها با ردیابی الگوهای رفتاری بدافزارها، امضا بدافزارها یا هرگونه مورد مشکوکی به سرعت فایل یا پردازه مخرب را به عنوان یک عامل مشکوک شناسایی کرده، آنرا قرنطینه کرده و نسخهای از فایل مشکوک را برای آزمایشگاه ضدویروسی ارسال میکنند. بیشتر بدافزارها به این شکل شناسایی میشوند، زیرا عملکردی در سطح لایه کاربری دارند و درست در همان نقطهای کار میکنند که ضدویروسها در آن متمرکز هستند.
اما بیشتر روت کیتها برای ورود به لایههای پایینتر سیستمعاملها نوشته میشوند و با توجه به اینکه شرکتهایی مثل مایکروسافت سیستمعاملهایی با کدهای بسته دارند و به تولیدکنندگان ضدویروسها اجازه دسترسی به این کدها را نمیدهند، در نتیجه ورود به بخشهای محافظت شده سیستمعامل برای ضدویروسها کار سختی است و مکانیزمهای حفاظتی ویندوز مانع دسترسی ضدویروسها به این بخشها میشوند.
روت کیتها چگونه یک سامانه را قربانی میکنند؟
تمامی روت کیتهایی که تاکنون شناسایی شدهاند روی دستکاری نتایج و مهندسی معکوس متدها و توابعی که برنامههای کاربردی و سیستمی از آنها استفاده میکنند متمرکز هستند. برای روشن شدن این موضوع به مثال زیر دقت کنید:
Task Manager یک برنامه شناخته شده برای کاربران ویندوز است. کاری که این برنامه سیستمی انجام میدهد نشان دادن فهرستی از فرآیندهای در حال اجرا در حافظه، تراکنشهای در حال اجرا روی هارددیسک، کانالهای ارتباطی و برنامههایی که اقدام به تبادل اطلاعات میکنند و میزان مصرف منابع سیستمی است.
این برنامه برای انجام این فعالیتها از توابع معروفی استفاده میکند که قادر هستند فهرستی از شناسههای مربوط به پردازهها را نشان دهد. هنگامی که یک rootkit به سامانهای وارد میشوند عملکرد تابع فوق را مختل میکند یا اطلاعاتی که تابع فوق ارائه میکند را به شکلی دستکاری میکند تا فهرست پردازهها به شکل فیلتر شده توسط Task Manager یا سایر ابزارها نشان داده شود.
انواع روت کیت
طراحی و ساخت روت کیت به منظور انجام عملیات خرابکارانه مختلفی انجام میشوند و هر یک قابلیتهای مخصوص خود را دارند. کارشناسان امنیتی روت کیتها را به گروههای زیر طبقهبندی کردهاند:
روت کیت کرنل: روت کیتهایی که برای دستکاری فایلهای سیستمی و حیاتی سیستمعاملها طراحی میشوند و میتوانند کدهای مخرب را به داخل ساختار دادهای کرنل سیستمعامل وارد کنند.
روت کیت سختافزاری: این گروه از روت کیتها بهطور مستقیم سختافزارها را نشانه میروند.
روت کیت هایپروایزر: روت کیتهای ناظر ارشد که روت کیت مجازی نیز نامیده میشوند، نسخه تکامل یافته روت کیتها هستند که از فناوریهای نوین برای آلودگی و پنهانسازی استفاده میکنند. این روت کیتها عمدتا در ارتباط با ایمیجها و مکانیزمهای داکر و کوبرنتیس فعالیت دارند و قادر هستند کنترل کامل یک ماشین مجازی را به دست گیرند.
روت کیت بارگذاریکننده: این روت کیت هنگامی که به سیستمی وارد میشود رکورد راهانداز اصلی (MBR) کامپیوتر که نحوه بارگذاری سیستمعامل را مشخص میکند آلوده میکند. گاهی اوقات رکورد راهانداز ولوم (VBR) را نیز آلوده میکند. با توجه به اینکه روت کیت فوق در رکورد راهانداز دیسک قرار میگیرد در ساختار سیستم فایلی سیستمعامل ظاهر نمیشود و ضدویروسها به سختی قادر به شناسایی و حذف آن هستند.
روت کیت برنامه کاربردی: سادهترین نوع روت کیتها است که شناسایی آن ساده است، زیرا از رویکرد استتار در قالب فایلهای سیستمی یا برنامههای کاربردی استفاده میکند و در نتیجه ضدویروسها قادر به شناسایی و حذف آن هستند.
راهکار محافظت در برابر روت کیت
بهترین راهکار برای شناسایی و حذف rootkit، نظارت مستمر به شیوه دستی روی فعالیتهای نامنظم کامپیوتر و نظارت بر زمان ذخیره سازی فایلها روی رسانههای ذخیره ساز در بازههای زمانی مختلف است.
کاربران و به ویژه سازمانها برای اینکه از خود در برابر روت کیتها محافظت کنند باید وصلههای مربوط به نرمافزارها را نصب کنند، سیستمعامل را بهروز نگه دارند و از دانلود فایلهای مشکوک اجتناب کنند.
شناسایی و حذف روت کیتها فرآیند سخت و پیچیدهای است، زیرا برخی از آنها مکانیزمهای امنیتی خاص خود را دارند که هر زمان احساس کنند کاربر در حال پاک کردن مولفههای مخرب است، فایلهای سیستمی را پاک یا غیر قابل استفاده میکنند. علاوه بر این، در بیشتر موارد، هنگامی متوجه وجود روت کیتها میشوید که نسخههای پشتیبان نیز آلوده شدهاند. اگر احساس میکنید سامانهای آلوده به روت کیت است، مراحل زیر را دنبال کنید:
کامپیوتر باید در حالت ایمن و با قابلیت اتصال به شبکه بوت شود. برخی از روت کیتها اجازه نصب محصولات امنیتی را نمیدهند یا هنگامی که بسته امنیتی نصب شود، آنرا پاک میکنند. بنابراین باید کامپیوتر در حالت مطمئن و با قابلیت اتصال به شبکه راهاندازی شود تا دسترسی روت کیت به سامانه به حداقل برسد.
در مرحله بعد باید از ابزارهای شناسایی روت کیتها استفاده کنید. روت کیتها خانواده بزرگی دارند به همین دلیل یک پویشگر روت کیت واحد نمیتواند گونههای مختلف را شناسایی کند. به همین دلیل باید ترکیبی از اسکنرهای مختلف اجرا کنید. پس از شناسایی و حذف روت کیتها باید ردپاها را پاک کنید.