اگر فیلم ماتریکس را دیده باشید، به خوبی میدانید که ماتریکس دنیایی را به تفسیر کشاند که در آن برنامههای کامپیوتری به مبارزه با انسانها میپرداختند. در حالی که این فیلم از زوایای مختلفی مورد بررسی قرار گرفت، اما ممکن است یک نکته ظریف در آن فیلم به دقت مورد تحلیل قرار نگرفته باشد. در آن فیلم شما با گونهای از کدهای کامپیوتری روبرو بودید که دقیقا نمیدانستید قرار است چه کاری را انجام دهند. درست شبیه کدهای مخربی که در دنیای امنیت با آنها سروکار داریم و به نام روتکیت از آنها یاد میکنیم.
یک روتکیت میتواند فرآیندهایی را ایجاد کند که روی ویندوز یا سیستمعاملهای دیگر اجرا شده اما از دید ابزارهایی همچون Task Manager ویندوز به دور باشد. کلیدهای رجیستری را ایجاد کند که در بخش regedit ویندوز قابل مشاهده نباشند، ارتباطات شبکهای را ایجاد کرده که از دید Netstat پنهان باشند. فناوری به کار گرفته شده در روتکیتها از آن جهت خطرناک است که به نرمافزارهای مخرب و بدافزارها اجازه میدهد پوشش خود را کاملا حفظ کرده و به بهترین شکل به سامانههای هدف خسارت وارد کنند. قدرت و کارآیی روتکیتها تنها محدود به دور ماندن از چشم کاربران خلاصه نمیشود، فناوری به کار گرفته شده در روتکیتها به اندازهای قدرتمند است که به بدافزارها اجازه میدهد خود را از دید برنامههای ضدویروس و ضدجاسوسافزار دور نگه دارند. در این میان چند مورد کاربرد قانونی برای استفاده از روتکیتها تعریف شده است. بهطور مثال، برخی از شرکتها نرمافزارهای امنیتی ویژهای را طراحی میکنند که به کاربران این قابلیت را میدهند تا پوشههای کاملا مخفی را بر مبنای این فناوری ایجاد کرده و اطلاعات حساس و محرمانه خود را که تمایلی ندارند سایر کاربران آنرا مشاهده کنند، درون این پوشهها نگهداری کنند. البته این نرمافزارها بیشتر از سوی کاربرانی مورد استفاده قرار میگیرد که از کامپیوترهای مشترک با سایر کاربران دیگر استفاده میکنند.
روتکیتها برای دسترسی از راه دور یا کنترل یک سامانه کامپیوتری بدون اطلاع کاربر مورد استفاده قرار میگیرند. در نتیجه اگر مشاهده کردید که سرعت کامپیوتر شما به یکباره کاهش پیدا کرده باید به آلوده بودن سامانه خود مشکوک شوید
روتکیتها پس از نصب، چه فعالیتهایی انجام میدهند؟
زمانی که یک روتکیت روی سامانهای نصب میشود، به هکرها اجازه میدهد فایلها را از راه دور اجرا کرده، اطلاعات را به سرقت برده، تنظیمات کامپیوتر را تغییر داده، نرمافزارهای جعلی را به جای نرمافزارهای امنیتی نصب کرده، بدافزارهای پنهان را نصب کرده و یک سامانه کامپیوتری را به باتنتی تبدیل کند. همچنین با توجه به ضریب بالای اختفا، روتکیتها به سختی قابل شناسایی هستند. با توجه به اینکه روتکیتها بهطور مستمر از مکانیزمهای متفاوتی برای اختفا استفاده میکنند، در نتیجه هر ضدویروسی قادر نیست روتکیتها را شناسایی کرده یا در زمان درست آنها را حذف کند. البته اگر فرض کنیم سایر ضدویروسها در این زمینه عملکردی صددرصدی دارند. در نتیجه بهترین راهکار برای شناسایی روتکیتها نظارت مستمر به شیوه دستی روی فعالیتهای نامنظم کامپیوتر، اسکن امضا و تحلیل شیوه ذخیرهسازی فایلها در بازههای زمانی مختلف است. کاربران و به ویژه سازمانها برای آنکه از خود در برابر روتکیتها محافظت کنند باید وصلههای مربوط به نرمافزارها را نصب کرده، سیستمعامل خود را بهروز نگه داشته و از دانلود فایلهای مشکوک اجتناب کنند.
روتکیتها چگونه به یک سامانه کامپیوتری حمله میکنند؟
همه روتکیتها بر توانایی دستکاری نتایج و تغییر عملکرد توابعی که در یک برنامه کلیدی/ سیستمی مورد استفاده قرار گرفته، تکیه میکنند. اجازه دهید این جمله را با ذکر مثالی روشنتر کنیم. برنامه Task Manager را تصور کنید. این مولفه ویندوزی برای نشان دادن فهرستی از همه فرآیندهای در حال اجرا روی یک سامانه مورد استفاده قرار میگیرد. این برنامه از یکی از توابع شناخته شده ویندوز به نام EnumProcesses برای نشان دادن فهرستی از شناسههای مربوط به پردازهها استفاده میکند. تابع مذکور این اطلاعات را از ساختار دادهای که درون کرنل قرار دارد، به دست میآورد. یک روتکیت سعی میکند فراخوانی را متوقف کرده یا به گونهای دستکاری کند تا پردازههایی که قرار است به عنوان نتایج خروجی تابع نشان داده شوند، به شکل فیلتر شده نشان داده شود. با اینکار روتکیت موفق خواهد شد خود را از دید ابزارهای نظارتی پنهان کند. روتکیتها میتوانند در هسته ویندوز یا در فضای کاربری (user-space) اجرا شوند. فضای کاربری به بخشی از حافظه سیستمی گفته میشود که برنامههای کاربردی، یکسری از درایورها و همه کدهایی که خارج از هسته سیستمعامل هستند، در آن بخش اجرا میشوند. البته روتکیتهایی که در هسته ویندوز اجرا میشوند، خطرناکتر هستند. اما در مجموع روتکیتها این توانایی را دارند تا فراخوانی توابع را دستکاری کرده، نتایج را فیلتر کرده و در نتیجه زمانی که توابع ویندوز از سوی ابزارهای نظارتی اجرا میشوند و فهرستی از فایلها، موجودیتهای رجیستری و ارتباطات شبکه را نشان میدهند، از دید برنامهها و کاربران خود را پنهان کنند. با توجه به اینکه اکثر ضدویروسها و برنامههای ضدجاسوسافزاری روی فراخوانی توابع به ویژه در زمان پیدا کردن فایلها و اسکن درایوها حساب ویژهای باز میکنند، فایلهای پنهان ایجاد شده از سوی روتکیتها میتوانند به شکل کاملا نامریی از دید ضدویروسها به حیات خود ادامه دهند. در این حالت یک ماشین به سادگی میتواند آلوده شود، در حالی که برنامه ضدویروس روی سامانه کاربر فعال است و هیچگونه گزارشی از آلودگی اعلام نمیکند. در حالت کلی روتکیتهای معمولی در سطوح پایین سیستمعامل اجرا شده و به منظور اجرای عملیات مخرب، اجرای عملیات در سطح کرنل ویندوز به منظور شنود دادهها مورد استفاده قرار میگیرند.
روتکیتها در چه سطحهایی ظاهر میشوند؟
روت کیتها در سطح کرنل و فضای کاربری قادر هستند اجرا شوند. روتکیتهای سطح کرنل برای آنکه اجرا شوند نیاز دارند تا کدی را به درون هسته مرکزی ویندوز تزریق کنند. این روتکیتها دسترسی سطح پایین به دستورالعملهایی را که برای مقداردهی اولیه فرمانها روی یک کامپیوتر به آنها نیاز است، در اختیار دارند. در اغلب روتکیتهای سطح کرنل به یک راهانداز دستگاه (device driver) یا فایل .sys نیاز دارند. برای این منظور روتکیتهای سطح کرنل ممکن است مسیر معتبر اجرای یک دیوایس درایور را دنبال کرده و کدهایی را به آن تزریق کرده یا از طریق یکسری فرآیندهای ناشناخته کدهایی را به شکل مستقیم به درون کرنل تزریق کنند. زمانی که اینکار انجام شد، روتکیت قادر است نتایج حاصل از فراخوانی توابع اجرا شده درون کرنل را تغییر داده یا ساختارهای کرنل را ویرایش کند.
روتکیتها در اغلب موارد با کمک اسبهای تروجان دانلود شده و روی پلتفرم هدف با دسترسی سطح کاربر اجرا میشوند. در ادامه گذرواژهها و سایر اطلاعات مربوط به لاگین را جمعآوری کرده تا در نهایت بتوانند سطح دسترسی مدیر را به دست آورند. رویکردی که به آن ارتقا امتیاز گفته میشود. رویکرد تخریبی روتکیتها کاملا متفاوت از بدافزارها بوده و به شکلی تدریجی و آرام سامانههای کامپیوتری را تخریب کرده و از کار میاندازند. روتکیتهای سطح کاربر از پردازههای دارای اولویت پایین برای غیرفعال کردن نرمافزارهای امنیتی استفاده میکنند. اما در مقابل روتکیتهای سطح کرنل قدرت تخریب بیشتری دارند و به دلیل اینکه در زمان اضافه کردن کدهای مخرب به بخشهایی از کرنل سیستمعامل حضور خود را مخفی نگه داشته، سریعتر از سیستمعامل اجرا شده، قادر هستند از مکانیزمهای رمزنگاری عبور کرده و کانالهای ناپیدایی را برای دسترسی نامحدود به سیستمعامل ایجاد کرده، شناسایی و پاک کردن آنها از سطح کرنل و سطح راهانداز سیستمعامل پیچیده است، قادر هستند روی حافظه هسته استقرار پیدا کرده و هیچگونه ردپایی از خود روی هارددیسک بر جای نگذارند و خطرناکتر از رویتکیتهای سطح کاربر هستند.
کاربران و کارشناسان امنیتی دو راهکار برای بررسی این موضوع که آیا دستگاهی به یک روتکیت آلوده شده یا خیر در اختیار دارند. نظارت بر رویدادهای رخ داده در یک کامپیوتر و اسکن سامانه کامپیوتری دو راهکاری هستند که پیش روی کاربران قرار دارد.
روتکیتها با دستکاری نتایج ارائه شده از سوی فراخوانی توابع، قادر هستند به بخشهای مختلف یک سیستم دسترسی پیدا کنند
در راهکار مرتبط به اسکن یک سامانه کامپیوتری شما به ابزارهایی نیاز دارید که بتوانند فضای کاربر (user-space) را اسکن کرده و اطلاعات مربوط به کرنل را نشان دهند. نکتهای که لازم است به آن توجه داشته باشید این است که در سطح کرنل نباید هیچگونه اطلاعات پنهانی را مشاهده کنید، اما این موضوع در ارتباط با فضای کاربر صادق نیست. در حال حاضر ابزارهای مختلفی برای این منظور در اختیار کاربران قرار دارد که چنین سطح از اسکنی را انجام دهند. ابزار حذف روتکیتهای بیتدیفندر، ابزار شناسایی روتکیتهای ارائه شده از سوی شرکت ESET و همچنین ابزاری که چندی پیش از سوی اینتل ارائه شده از جمله این موارد هستند. بهکارگیری این ابزارها از آن جهت کارآمد است که قادر هستند منابع پنهانی سیستمی را که روتکیتها از آنها استفاده میکنند، شناسایی کنند. تکنیک فوق از آن جهت ایدهآل است که شما به خوبی میتوانید منابعی را که به شکل پنهانی از سوی روتکیتها مورد استفاده قرار گرفتهاند، شناسایی کنید. با وجود این، روش فوق نقطه ضعفهایی نیز دارد. اول آنکه اگر کرنل خودش در معرض تهدید قرار گرفته باشد، فرآیند اسکن از درون فضای کرنل ممکن است تحت تاثیر روتکیت قرار گرفته باشد. اینکه پویش از طریق این ابزارها تا چه اندازه تحت تاثیر آلودهسازی یک روتکیت قرار گرفته، به جزییات دقیق مربوط به نحوه اسکن و اجرای روتکیت بستگی دارد. از آنجا که اطلاعات زیادی در ارتباط با هسته ویندوز در دسترس نیست، به سختی میتوان اطمینان حاصل کرد که اسکن این دادهها همواره نتایج صحیحی را نشان دهند. همچنین روتکیتها این توانایی را دارند تا در زمان اسکن همه فرآیندهای در حال اجرا را به غیر از فرآیندهای مربوط به خود نشان دهند.
راهکار دیگری که پیش روی کاربران قرار دارد بر پایه رویدادهای سیستمی و نظارت مستمر بر رویدادهایی است که عملکرد یک روتکیت نصب شده را نشان میدهند. این برنامهها به نام سامانههای پیشگیری از نفوذ (IPS) شناخته میشوند. این سامانهها به دقت رفتار یک برنامه و کرنل را زیر نظر میگیرند. البته فراموش نکنید سامانههای پیشگیری از نفوذی که فضای کاربری را تحت نظارت قرار میدهند ممکن است همانند سایر برنامههای سطح کاربر در برابر روتکیتها آسیبپذیر باشند. این سامانهها میتوانند فرآیند بارگذاری ماژولهای کرنل را شناسایی کرده و مسدود کنند. با این حال، مسدود کردن همه ماژولهای کرنل تقریبا عملی غیرممکن است. بیشتر برنامههای معتبر اقدام به نصب ماژولهای کرنل میکنند. بهطور مثال برنامههای ضدویروس از ماژولهای کرنل در راستای انجام اسکنهای سفارشی استفاده میکنند. اما این امکان وجود دارد که به جای غیرفعال کردن بارگذاری ماژولها از رویکرد دیگری همچون نگاه کردن به برخی از خصلتهای نصبکننده و برنامههای مرتبط استفاده کنید. با توجه به اینکه یک روتکیت و برنامه بدافزاری مرتبط با آن در اغلب موارد رفتار مشترکی از خود نشان میدهند، به احتمال زیاد ویژگیهای یکسانی خواهند داشت. با تحلیل یکسری ویژگیهای مشترک رفتاری احتمال شناسایی روتکیتها افزایش پیدا میکند. این مکانیزم در اصطلاح تخصصی اکتشاف رفتاری نام داشته که برای شناسایی کلاسهای دیگری از تهدیدات همچون تروجانها، باتها و جاسوسافزارها نیز مورد استفاده قرار میگیرد.
در نهایت
روتکیتها برای کاربران کامپیوتر یک تهدید جدی به شمار میروند. تهدیدی که به سرعت در حال افزایش است. آنها با فعالسازی کدهای مخرب مانع از آن میشوند تا نرمافزارهای ضدویروس به راحتی آنها را شناسایی کنند. فراموش نکنید روتکیتها با دستکاری نتایج ارائه شده از سوی فراخوانی توابع، قادر هستند به بخشهای مختلف یک سیستم دسترسی پیدا کنند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟