روتکیت (به انگلیسی: Rootkit) مجموعهای از نرمافزارهاست که کنترل یک سیستم رایانهای را به دست میگیرد. در این نوع حمله، کاربر سیستم متوجه حضور روتکیت نخواهد شد و هکر رایانه توانایی تغییر تمامی تنظیمات رایانه را دارد.
رایانهای که تحت سلطه روتکیت و نهایتاً هکر قرار میگیرد را زامبی (به انگلیسی: Zombie) مینامند. اگر ضایعهای در شبکه رایانهها پیدا شود، با پیگیری آن به زامبی میرسیم و هکر نمیتواند ردیابی شود.
روتکیت بدافزارهایی هستند که اغلب، آنها را به خودی خود نمیتوان مخرب یا خطرناک دانست، بلکه قرار گرفتن آنها در کنار ویروسها یا کرمهای اینترنتی یا نوع استفاده از آنهاست که به آنان ماهیتی خطرناک میبخشد. به عنوان یک تعریف میتوان گفت که روتکیت ابزاری نرمافزاری است که به وسیلهٔ آن این امکان وجود دارد تا فایل، پروسه یا کلیدی خاص در رجیستری را پنهان نمود. روتکیتها اغلب در سطح سیستمعامل فعالیت کرده و با تغییراتی که در سیستمعامل یا منابع آن انجام میدهند، به مقاصد خود دست پیدا میکنند. به علت قابلیت پنهانسازی قوی اینگونه برنامهها، شناسایی آنها یا برنامههایی که توسط آنها پنهان گردیده اغلب مشکل بوده و این امر میتواند مشکلاتی را برای کاربران به وجود آورد. به عنوان مثال برخی از روتکیتها پس از اجرا بر روی سیستم کاربر، کرمی را از دل خود بیرون آورده و بر روی سیستم کاربر اجرا مینمایند. سپس با قابلیتهای خاص خود آن را از دید کاربر مخفی میکنند و کرم مزبور به راحتی به فعالیتهای مخرب خود به دور از چشم کاربر ادامه میدهد.[۱]
روتکیتها برنامههایی هستند که از نظر ساختار کاری بسیار شبیه Trojanها[۲] و Backdoorها[۲] هستند، ولی با این تفاوت که شناسایی روتکیت بسیار مشکلتر از دربهای پشتی است زیرا روتکیتها جایگزین برنامههای اجرایی مهم سیستم عامل شده و در گاهی مواقع خود را در هسته تزریق میکنند و به هکرها این اجازه را میدهند که از طریق در پشتی و پنهان شدن در عمق سیستم عامل به آن نفوذ کنند.
بهطور کلی دو نوع روتکیت وجود دارد روتکیت سنتی، روتکیت سطح هسته.
سونی به منظور حفظ محصولات این شرکت از سی دیهای کپی شده غیرمجاز، روی برخی از سی دیهای خود یک ویروس روت کیت وارد کرده تا میزان قابل استفاده بودن آنها را در کامپیوتر مصرفکنندهها پایین بیاورد. در ابتدا سکوت شرکت سونی در عدم اعتراف به وجود این ویروس سر و صدای زیادی ایجاد کرد.
کاربرد
روتکیتهای سنتی با شناسایی اولین روتکیت بسیار قدرتمند در اویل سال ۱۹۹۰ در طول یک دهه گسترش پیدا کردند. روتکیتهای سنتی برای سیستم عاملهای مختلف نوشته شدهاند ولی بهطور سنتی بر روی سیستمهای یونیکس تمرکز کردهاند؛ ولی برای ویندوزهای سرور مثل NT/2000 نیز روتکیتهایی نوشته شدهاند که جایگزین کتابخانههای (DLL) شده[۳] یا سیستم را تغییر میدهند ولی تعداد زیادی از روتکیتها برای سیستمهای یونیکس نوشته شدهاند.
روتکیتها اجازه دسترسی Root را به ما نمیدهند و ما هنگامی قادر به نصب آنها بر روی یک سیستم هستیم که دسترسی ریشهای و مدیر یک سیستم را توسط روشهای دیگری مثل سرریز بافر به دست آورده باشیم؛ بنابراین یک روتکیت یک سری ابزارهایی است که با پیادهسازی یک در پشتی و پنهان کردن مدارک استفاده از سیستم و ردپاها به هکر اجازه نگهداری دسترسی را میدهد.[۴]
روتکیتهای سنتی به جای اینکه فایلی در هسته سیستم قربانی اضافه کنند، سرویسها و فایلهای اصلی و مهم سیستم عامل قربانی را با یک نسخه تغییر یافته آن که عملیاتی مخرب انجام میدهد جایگزین میکنند.
هکرها با پوشاندن چشم و گوشهای مدیران سیستم که توسط روتکیت انجام میشود میتوانند به صورت مؤثری حضورشان را در یک سیستم مخفی نگه دارند. lrk5 و Tornkit دو نمونه از روتکیتهای سنتی هستند که برای سیستمهای Linux و Solaris نوشته شدهاند. این روتکیتها به محض نصب شدن در سیستم قربانی خود را با سرویسهای حیاتی و مهم سیستم عامل جایگزین میکنند.[۵]
روتکیتهای سطح هسته نسبت به نوع سنتی بسیار حرفهای تر هستند و از نظر سطح پنهانسازی بسیار پا را فراتر از نوع سنتی گذاشتهاند زیرا این روتکیتها در سطح ریشه پیادهسازی میشوند و این کار شناسایی و کنترل کردن آنها را بسیار مشکلتر کردهاست. روتکیتهای سطح هسته به ما کنترل کاملی از سیستم اصلی و یک امکان قدرتمند برای جایگیری میدهد.
خود هسته در حالی که یک کرنل زیبا و کارآمد به نظر میرسد تبدیل به یک اسب تروا میشود و در حقیقت Kernel فاسد میشود ولی صاحب سیستم از این موضوع بیخبر میماند.
چند تا از معروفترین روتکیتهای سطح هسته Knrak و Adore برای سیستمهای لینوکس، Plasmoid برای سیستمهای Solaris و روتکیت سطح هسته ویندوز NT برای سیستمهای سرور ویندوز نام دارند.
منابع
علیرضا محمدیفر (زمستان ۱۳۸۷)، «آزار افزار چیست و چگونه کار میکند»، برگزیده مقالههای ماهنامه ریزپردازنده، ش. ۱۷، ص. ۸