rootkit یک برنامه یا مجموعهای از ابزارهای نرم افزاری مخرب است که به عامل تهدید امکان دسترسی از راه دور و کنترل آن روی یک کامپیوتر یا سیستم دیگر را میدهد.
اگرچه این نوع نرمافزار کاربردهای قانونی مانند ارائه خدمات پشتیبانی به کاربر نهایی از راه دور را نیز دارد، اما اکثر rootkit ها یک backdoor روی سیستمهای قربانیان باز میکنند تا نرمافزارهای مخربی از جمله ویروسها، باجافزارها، برنامههای keylogger یا سایر بدافزارها را از طریق آن وارد کنند و یا از سیستم برای حملات گسترده امنیتی شبکه استفاده میکنند.
rootkitها اغلب سعی میکنند با غیرفعال کردن ضدبدافزار و نرمافزار آنتیویروس نقطه پایانی، از شناسایی نرمافزارهای مخرب جلوگیری کنند.
rootkitها که میتوانند در dark web خریداری شوند، قادرند در حین حملات فیشینگ نصب شوند یا به عنوان یک تاکتیک مهندسی اجتماعی برای فریب کاربران به منظور اعطای مجوز نصب rootkitها روی سیستمهایشان، مورد استفاده قرار بگیرند و اغلب به مجرمان سایبری راه دور امکان دسترسی به سیستم را میدهند.
یک روت کیت پس از نصب به Actor راه دور امکان دسترسی و کنترل اکثر جنبههای سیستم عامل را میدهد. برنامههای آنتی ویروس قدیمی اغلب برای شناسایی rootkitها مشکل داشتند، اما امروزه، اکثر برنامههای ضد بدافزار میتوانند rootkitهای پنهان شده در سیستم را اسکن و حذف کنند.
rootkitها چگونه کار میکنند؟
از آنجایی که rootkit ها به خودی خود نمیتوانند پخش شوند، برای آلوده کردن رایانهها به روشهای مخفی وابسته هستند. هنگامی که کاربران ناآگاه به برنامههای نصب کنندۀ روت کیت اجازه نصب روی سیستم را میدهند، آنها نصب شده و تا زمانی که هکرها آنها را فعال کنند پنهان میمانند.
rootkit ها حاوی ابزارهای مخربی از جمله سارقان اعتبار بانکی و رمز عبور، keylogger ها، غیرفعال کنندههای آنتی ویروس و رباتها برای حملات DDoS هستند.
rootkit ها از طریق همان روشهای معمولی مانند هر نرمافزار مخرب دیگری نصب میشوند، از جمله با کمپینهای فیشینگ ایمیل، فایلهای مخرب اجرایی، فایلهای PDF مخرب یا اسناد Microsoft Word، اتصال به درایوهای مشترکی که در معرض خطر قرار گرفتهاند یا دانلود نرمافزار آلوده به روت کیت از وبسایتهای خطرناک.
در طول یک حمله rootkit چه مواردی میتواند به خطر بیفتد؟
برخی از پیامدهای حمله روت کیت عبارتند از:
- آلودگی بدافزار:
یک rootkit میتواند نرمافزار مخربی را روی رایانه، سیستم یا شبکه نصب کند که حاوی ویروسها، تروجانها، کرمها، باجافزارها، جاسوسافزارها، ابزارهای تبلیغاتی مزاحم و سایر نرمافزارهای مضر است و عملکرد دستگاه، سیستم یا حریم خصوصی اطلاعات آن را به خطر میاندازد.
- حذف فایلها:
rootkit ها خود را از طریق یک backdoor در سیستم، شبکه یا دستگاه نصب میکنند که این امر میتواند در حین login اتفاق بیفتد یا در نتیجه آسیبپذیری در نرم افزار امنیتی یا سیستم عامل باشد. پس از آن rootkit میتواند به طور خودکار نرم افزارهایی را اجرا کند که فایلها را میدزدند یا حذف میکنند.
- رهگیری اطلاعات شخصی:
rootkit هایی که بهعنوان payload rootkit شناخته میشوند، معمولا از keylogger هایی استفاده میکنند که بدون اجازه، کلیدهایی که کاربر میفشارد را ضبط میکند.
در سایر موارد، این rootkit ها ایمیلهای حاوی اسپم ارسال میکنند که وقتی کاربران آنها را باز کردند rootkit را نصب میکنند. در هر دو مورد، روت کیت اطلاعات شخصی مانند شماره کارت اعتباری و دادههای بانکداری آنلاین که به مجرمان سایبری منتقل میشود را سرقت میکند.
- سرقت دادههای حساس:
با ورود به سیستم، شبکه و رایانهها، rootkit ها میتوانند بدافزارهایی را نصب کنند که به دنبال اطلاعات حساس و اختصاصی هستند که معمولاً این کار با هدف کسب درآمد از آن دادهها یا ارسال آن ها به منابع غیرمجاز صورت میگیرد.
Keylogger ها، screen scraper ها، جاسوس افزارها، ابزارهای تبلیغاتی مزاحم، backdoor ها و رباتها همگی روشهایی هستند که rootkit ها برای سرقت دادههای حساس استفاده میکنند.
- تغییر تنظیمات سیستم:
هنگامی که rootkit وارد یک سیستم، شبکه یا رایانه میشود، میتواند تنظیمات سیستم را تغییر دهد. rootkit میتواند به حالت مخفیانهای در سیستم جای گیرد که تشخیص توسط نرم افزار امنیتی استاندارد را دشوار کند.
rootkit ها همچنین میتوانند به صورت دائم در سیستم وجود داشته باشند و راهاندازی مجدد سیستم، حذف آنها را دشوار یا غیرممکن میکند. یک روت کیت میتواند امکان دسترسی مداوم را برای مهاجم فراهم کند یا امتیازات مجوز امنیتی را برای تسهیل دسترسی تغییر دهد.
علائم آلوده شدن به روت کیت ها
اگرچه هدف توسعه دهندگان rootkit جلوگیری از شناسایی برای نصب و ماندن روی سیستم قربانی است و آلودگی به rootkit علائم قابل شناسایی چندانی ندارد، با این حال چهار شاخص زیر نشان میدهد یک سیستم به خطر افتاده است:
- توقف اجرای ضد بدافزار: یک برنامه ضد بدافزار که فقط اجرای آن متوقف شده نشان دهندۀ یک آلودگی فعال روت کیت است.
- تغییر خودبهخودی تنظیمات ویندوز: اگر تنظیمات ویندوز بدون هیچ اقدام خاصی توسط کاربر تغییر کند، ممکن است به دلیل وجود rootkit باشد. سایر رفتارهای غیرعادی، مانند تغییر یا ناپدید شدن تصاویر پسزمینه صفحه، قفل یا تغییر آیتمهای پینشده در Task Bar نیز میتواند نشاندهنده آلودگی rootkit باشد.
- مشکلات مربوط به عملکرد: عملکردی که به طور غیرعادی کند شده و یا استفاده بیش از حد از CPU و تغییر مسیرهای مرورگر نیز ممکن است حاکی از آلوده شدن به روت کیت باشد.
- قفل شدن کامپیوتر: زمانی که کاربران نمیتوانند به رایانه خود دسترسی داشته باشند یا رایانه به ورودی ماوس یا صفحه کلید پاسخ نمیدهد.
انواع rootkit ها
rootkit ها بر اساس نحوه آلوده کردن، عملکرد یا ماندگاری در سیستم هدف به صورت زیر طبقهبندی میشوند:
-
Kernel mode rootkit
این نوع rootkit برای تغییر عملکرد سیستم عامل طراحی شده است. روت کیت معمولاً کد خود و گاهی ساختارهای داده خود را به بخشهایی از هسته سیستمعامل، اضافه میکند.
بسیاری از rootkitهای مود کرنل از این واقعیت که سیستمعاملها به درایورهای دستگاه یا ماژولهای قابل بارگذاری اجازه میدهند با همان سطح از امتیازات سیستم مانند هسته سیستمعامل اجرا شوند، سوء استفاده میکنند.
بنابراین rootkit ها به عنوان درایورهای دستگاه یا ماژول ایجاد میشوند تا از شناسایی آنها توسط نرمافزار آنتی ویروس جلوگیری شود.
-
User mode rootkit
به عنوان rootkit برنامه نیز شناخته میشود و مانند یک برنامه کاربر معمولی اجرا میشود. rootkitهای مود کاربر ممکن است مانند سایر برنامههای معمولی در هنگام راهاندازی سیستم مقداردهی اولیه شوند یا توسط dropper ها به سیستم تزریق شوند. نوع روش، بستگی به سیستم عامل دارد.
به عنوان مثال، یک روت کیت ویندوز معمولاً روی دستکاری عملکردهای اساسی فایل های کتابخانه لینک پویا ویندوز تمرکز میکند، اما در سیستم یونیکس، rootkit ممکن است جایگزین یک برنامه کاربردی کامل شود.
-
Bootkit یا bootloader rootkit
این نوع rootkit ها، Master Boot Record یک هارد دیسک یا سایر دستگاههای ذخیرهسازی متصل به سیستم مورد نظر را آلوده میکنند. bootkitها میتوانند فرآیند boot را دگرگون کرده و پس از آن کنترل سیستم را به دست آورند. در نتیجه برای حمله به سیستمهایی که از رمزگذاری کامل دیسک استفاده میکنند قابل استفاده هستند.
-
Firmware rootkit
که از نرم افزار تعبیه شده در سیستم عامل یک سیستم بهره میبرد، خود را در image های سیستم عامل مورد استفاده در کارتهای شبکه، سیستمهای اصلی ورودی/خروجی، روترها یا سایر لوازم جانبی یا دستگاهها نصب میکند.
-
Memory rootkit
اکثر آلودگیهای روت کیت میتوانند برای مدت طولانی در سیستمها باقی بمانند، زیرا خود را روی دستگاههای ذخیرهسازی دائمی سیستم نصب میکنند، اما rootkitهای حافظه خود را در حافظه رایانه یا RAM بارگذاری میکنند. rootkitهای حافظه فقط تا زمانی که RAM سیستم پاک شود (معمولاً پس از restart رایانه) باقی میمانند.
-
Virtualized rootkit
این rootkit ها بهعنوان بدافزاری در قالب یک Hypervisor که یک یا چند ماشین مجازی را کنترل میکند، اجرا میشوند. rootkitها در محیط hypervisor-VM متفاوت از ماشین فیزیکی عمل میکنند.
در یک محیط VM، ماشینهای مجازی که توسط ماشین hypervisor اصلی کنترل میشوند، به نظر میرسد که به طور عادی کار میکنند، زیرا هیچگونه افت قابل توجهی در سرویس یا عملکرد ماشینهای مجازی که به hypervisor متصل هستند را نشان نمیدهند.
این مساله به روت کیت این امکان را میدهد تا اقدام مخرب خود را با شانس شناسایی کمتری انجام دهد، زیرا به نظر میرسد همه ماشینهای مجازی متصل به hypervisor به طور عادی کار میکنند.
چگونه از حمله rootkit جلوگیری کنیم؟
اگرچه شناسایی حمله روت کیت دشوار است، اما سازمان میتواند استراتژی دفاعی خود را به روشهای زیر ایجاد کند:
- استفاده از نرم افزارهای آنتی ویروس و ضد بدافزار قوی: به طور معمول، شناسایی روت کیت به add-onهای خاصی برای بستههای ضد بدافزار یا نرم افزار اسکنر anti rootkit خاص نیاز دارد.
- بهروز نگه داشتن نرم افزار: کاربران روت کیت به طور مداوم سیستم عاملها و سایر سیستمها را برای آسیبپذیریهای امنیتی بررسی میکنند.
ارائه دهندگان نرمافزارهای سیستم عامل و سیستم از این موضوع آگاهند، بنابراین هر زمان که حفرههای امنیتی را در محصولات خود کشف کنند، فوراً یک بهروزرسانی امنیتی برای رفع آنها منتشر میکنند. به عنوان بهترین روش، IT باید بلافاصله نرم افزار را هر زمان که نسخه جدیدی برای آن منتشر میشود، بهروز کند.
- نظارت بر شبکه: نرمافزار نظارت و مشاهده شبکه میتواند در صورت وجود سطح بالای فعالیت غیرعادی در هر نقطه از شبکه فوراً به IT هشدار دهد. برای مثال اگر nodeهای شبکه به طور ناگهانی آفلاین شوند یا هر علامتی در شبکه وجود داشته باشد که میتواند به عنوان یک ناهنجاری تلقی شود.
- آنالیز رفتار: شرکتهایی که خطمشیهای امنیتی قوی ایجاد میکنند و به طور مستمر بر رعایت آن نظارت دارند، میتوانند خطر rootkitها را کاهش دهند.
به عنوان مثال، اگر کاربری معمولا در طول روز و در کالیفرنیا به سیستم دسترسی دارد، به طور ناگهانی به عنوان کاربری در اروپا و در شب ظاهر شود، یک هشدار تهدید برای بررسی به IT ارسال شود.
شناسایی و حذف rootkit
هنگامی که یک روت کیت سیستمی را به خطر میاندازد، امکان انجام فعالیتهای مخرب زیاد است، اما سازمانها میتوانند اقداماتی را برای اصلاح سیستم در معرض خطر انجام دهند.
حذف روت کیت میتواند دشوار باشد، بهویژه برای rootkitهایی که در کرنلهای سیستمعامل، میانافزار یا در بخشهای boot دستگاه ذخیرهسازی قرار گرفتهاند. با وجودی که برخی نرمافزارهای antirootkit میتوانند برخی از rootkitها را شناسایی و حذف کنند اما حذف کامل آنها دشوار است.
یکی از روشهای حذف rootkit نصب مجدد سیستم عامل است که در بسیاری از موارد آلودگی را از بین میبرد. حذف bootloader rootkitها ممکن است نیاز به استفاده از یک سیستم clean داشته باشد تا سیستم عامل امنی را برای دسترسی به رسانه آلوده در اختیار داشته باشد.
راهاندازی مجدد یک سیستم آلوده به روت کیت حافظه، آلودگی را از بین میبرد، اما ممکن است برای از بین بردن کانون آلودگی به اقدامات بیشتری نیاز باشد، که به شبکههای فرمان و کنترل با حضور در شبکه محلی یا اینترنت عمومی مرتبط باشد.
نمونههایی از حملات روت کیت
- حملات فیشینگ و مهندسی اجتماعی:
هنگامی که کاربران، ایمیلهای اسپم را باز میکنند و ناخواسته نرم افزارهای مخرب را دانلود میکنند، روت کیتها میتوانند وارد رایانه شوند.
همچنین rootkitها از keyloggerهایی استفاده میکنند که اطلاعات ورود به سیستم کاربر را ضبط میکنند. پس از نصب، rootkit میتواند به هکرها اجازه دسترسی به اطلاعات حساس کاربر را بدهد و کنترل سیستم عامل کامپیوتر را در دست بگیرد.
- حملات rootkit برنامه:
Rootkit ها میتوانند خود را روی برنامههای کاربردی معمولی مانند صفحهگسترده و نرمافزار واژه پرداز نصب کنند. هکرها از rootkitهای برنامه برای دسترسی به اطلاعات کاربران، هنگامی که آنها برنامههای آلوده را باز میکنند، استفاده میکنند.
- حملات شبکه و اینترنت اشیا (IoT):
تهدیدهای امنیتی قابل توجهی با دستگاههای اینترنت اشیا و edge computing انجام میشوند که فاقد اقدامات امنیتی دیگر سیستمها و رایانههای متمرکز هستند.
هکرها این آسیبپذیریها را با قرار دادن rootkitها در لبههای ورودی پیدا کرده و از آنها سوء استفاده میکنند. این امر rootkit را قادر میسازد تا در سراسر شبکه پخش شود، رایانهها و ایستگاههای کاری را تحت کنترل درآورده و آنها را به عنوان رایانههای زامبی از کنترل خارج کند.
- حملات سیستم عامل:
پس از ورود به سیستم، یک روت کیت مود کرنل میتواند به سیستم عامل حمله کند. این حمله میتواند شامل تغییر عملکرد سیستم عامل، کند کردن عملکرد سیستم و حتی دسترسی و حذف فایلها باشد.
rootkit های مود کرنل معمولاً زمانی وارد سیستم میشوند که کاربر ناخواسته یک ایمیل مخرب را باز میکند یا فایل دانلود شده از یک منبع غیرقابل اطمینان را اجرا میکند.
- حملات سرقت کارت اعتباری و اسکن:
هکرها از rootkitها برای آلوده کردن swiperها و اسکنرهای کارت اعتباری استفاده کرده و آنها را برای ثبت اطلاعات کارت اعتباری و ارسال اطلاعات به سرورهای کنترل شده توسط هکرها برنامهریزی کردهاند.
برای جلوگیری از این امر، شرکتهای کارت اعتباری، کارتهای حاوی تراشه را ارائه کردند که در برابر حمله غیرقابل نفوذ هستند.