معرفی وبلاگ
****وبلاگی جهت پاسخ به سوالات رایانه ای****
قراردادن ترفندهای جالب رایانه ای
(استفاده از مطالب این وبلاگ با ذکر نام وبلاگ بلامانع می باشد،با تشکر)
صفحه ها
دسته
آرشیو
آمار وبلاگ
تعداد بازدید : 314526
تعداد نوشته ها : 158
تعداد نظرات : 48
Rss
طراح قالب
موسسه‌·تبیان
ویرایش شده توسط:
Farshid7

RootKitها برنامه هایى هستند که از نظر ساختار کارى بسیار شبیه Trojan ها و Backdoor ها هستند ولى با این تفاوت که شناسایى RootKit بسیار مشکل تر از درب هاى پشتى است زیرا RootKit ها علاوه بر اینکه به عنوان یک برنامه کاربردى خارجى مثل شنونده Netcat و ابزارهاى درب پشتى مثل Sub7 بر روى سیستم اجرا مى شوند بلکه جایگزین برنامه هاى اجرایى مهم سیستم عامل و در مواقعى جایگزین خود هسته کرنل مى شوند و به هکرها این اجازه را مى دهند که از طریق درب پشتى و پنهان شدن در عمق سیستم عامل به آن نفوذ کنند و مدت زیادى با خیال راحت با نصب ردیابها ( Sniffer ) و دیگر برنامه هاى مانیتورینگ بر روى سیستم اطلاعاتى را که نیاز دارند بدست آورند.

 در دنیاى هکرها دو نوع RootKit اصلى وجود دارد که هر کدام تعریف جداگانه اى دارند:

  1. RootKit سنتى        

  2. RootKit سطح هسته

RootKit سنتى: RootKit هاى سنتى با شناسایى اولین RootKit بسیار قدرتمند در اویل سال 1990 در طول یک دهه گسترش پیدا کردند و تا آنجا پیش رفتند که امروزه انواع مختلفى از RootKit هاى سنتى وجود دارند که به طور عملى خودشان نصب شده و به هکرها اجازه مى دهند که به سرعت سیستم قربانى را فتح کنند. RootKit هاى سنتى براى سیستم عامل هاى مختلف نوشته شده اند ولى به طور سنتى بر روى سیستم هاى یونیکس مثلHP-UX - AIX - Linux - Solaris - SunOS و از این قبیل تمرکز کرده اند. ولى براى ویندوزهاى سرور مثل NT/2000 نیز RootKit هایى نوشته شده اند که جایگزین کتابخانه هاى پیوند پویا ( DLL ) شده و یا سیستم را تغییر می دهند ولی تعداد زیادی از RootKit ها برای سیستم هاى یونیکس نوشته شده اند. RootKit ها اجازه دسترسى Root یا Administrator را به ما نمى دهند و ما هنگامى قادر به نصب آْنها بر روى یک سیستم هستیم که دسترسى ریشه اى و مدیر یک سیستم را توسط روش هاى دیگرى مثل سرریز بافر ... به دست آورده باشیم. بنابراین یک RootKit یک سرى ابزارهایى است که با پیاده سازى یک درب پشتى و پنهان کردن مدارک استفاده از سیستم و ردپاها به هکر اجازه نگهدارى دسترسى سطح ریشه را مى دهد. ساختار کار تروجان ها به این صورت است که فایلى را در داخل هسته سیستم مثل پوشه System32 اضافه می کند و این فایل تمامی پسوردهای قربانی را Log کرده و برای هکر می فرستد و یا با باز کردن پورتی اجازه ورود هکر را از طریق پورت باز شده می دهد ولی RootKit هاى سنتى به جاى اینکه فایلى در هسته سیستم قربانى اضافه کنند، سرویسها و فایل هاى اصلى و مهم سیستم عامل قربانى را با یک نسخه تغییر یافته آن که عملیاتى مخرب انجام می دهد جایگزین مى کنند. برای مثال RootKit هاى معروف در سیستم های یونیکس برنامه /bin/loginرا که یکی از اساسی ترین ابزارهای امنیتی در Unix است را با یک نسخه تغییر یافته که شامل یک کلمه عبور درب پشتى براى دسترسی سطح ریشه می باشد عوض می کنند. سیستم هاى یونیکس از برنامه /bin/login براى جمع آورى و تست UserID هاى کلمات عبور استفاده می کند. /bin/login شناسه کاربرى و پسورد تایپ شده توسط کاربر را با فایل پسوردها مقایسه مى کند تا تعیین کند که پسورد داده شده توسط کاربر صحیح است یا خیر. اگر پسورد داده شده درست باشد روتین /bin/loginبه آن User اجازه ورود به سیستم را می دهد. linux RootKit 5  و Tornkit دو نمونه از RootKit هاى سنتى هستند که براى سیستم هاى Linux و Solaris نوشته شده اند. این RootKit ها به محض نصب شدن در سیستم قربانى خود را با سرویس هاى حیاتى و مهم سیستم عامل که در بالا ذکر شد جایگزین مى کنند.

RootKit سطح هسته : این نوع از RootKit ها نسبت به نوع سنتى بسیار حرفه اى تر هستند و از نظر سطح پنهان سازى بسیار پا را فراتر از نوع سنتى گذاشته اند زیرا این RootKit ها در سطح ریشه پیاده سازى مى شوند و این کار شناسایى و کنترل کردن آنها را بسیار مشکل تر کرده است. RootKit هاى سطح هسته به ما کنترل کاملى از سیستم اصلى و یک امکان قدرتمند براى جایگیرى می دهد. یک هکر با ایجاد تغییرات اساسى در خود هسته، مى تواند سیستم را در سطحى بسیار اساسى کنترل کرده و قدرت زیادى براى دسترسى به درب پشتى و پنهان شدن در ماشین را به دست آورد. خود هسته در حالى که یک کرنل زیبا و کارآمد به نظر مى رسد تبدیل به یک اسب تروا مى شود و در حقیقت Kernel فاسد مى شود ولى صاحب سیستم از این موضوع بى خبر مى ماند. درحالی که یک RootKit سنتى جایگزین برنامه هاى سیستمى حیاتى مثل برنامه هاى ifconfig - ls ... مى شود ، یک RootKit سطح هسته در حقیقت جایگزین هسته می شود و یا آن را تغییر می دهد. تمامى فایل ها - دستورها - پردازشها و فعالیت هاى شبکه اى در سیستم آلوده به RootKit هسته پنهان می شوند و تمامى اعمال به سود هکر ضبط می شود. اغلب RootKit هاى سطح ریشه توسطLKM ها پیاده سازى می شوند. نصب RootKit هاى سطح هسته اى که توسطLKM ها پیاده سازى شده باشد، بسیار راحت است. براى مثال براى نصبKnrak Rootkit که براى هسته لینوکس نوشته شده است، یک هکر که با Account سطح ریشه یا همان Root به آن سیستم وصل است تنها کافی است insmod knark.o, را تایپ کند و ماژول نصب می شود و منتظر دستورات هکر مى ماند و حتى نیازى به بوت کردن دوباره سیستم هم ندارد. RootKit هاى سطح هسته برای ویندوز NT هم وجود دارند که یک Patch را بر روى خود هسته اجرایى ویندوز NT بدون استفاده ازLKM ها اعمال مى کند.

 چند تا از معروف ترین RootKit هاى سطح هسته Knrak و Adore براى سیستم هاى لینوکس ، Plasmoid براى سیستم هاى Solaris و RootKit سطح هسته ویندوز NT براى سیستم هاى سرور ویندوز نام دارند.

مهمترین راه مقابله با RootKit هاى سنتى و RootKit هاى سطح هسته این است که به هکرها ها اجازه ندهید از دسترسى حساب مدیر استفاده کنند. در مرحله بعد اگر فرض کنیم که با بى احتیاطى ما ، هکرى توانست بر روى سیستم ما RootKit نصب کند، یکى از راه هاى تست این که سیستم ما RootKit شده است یا خیر استفاده از دستورEcho است.

امروزه ابزارهاى مختلفى براى آنالیز برنامه Rootkit/bin/login وجود دارد که مشخص می کنند آیا RootKit شناخته شده اى نصب شده است یا خیر. این ابزارها وقتی که بر روى سیستم نصب می شوند به صورت دوره اى فایل هاى مهم بر روى سیستم را مثل /bin/login چک می کنند تا از وجود RootKit باخبر شوند که برنامه ChRootkit ابزارى جالب در این زمینه است ولی درکل بهترین راه دفاع در برابر RootKit ها استفاده از تکنولوژی اثر انگشت دیجیتالی قوى می باشد تا به صورت دوره اى درستى فایل های سیستم بحرانی را تحقیق نماید.

در آخر ذکر این نکته لازم است که اگر سیستم شما با تمام این ملاحظات آلوده به RootKit شد بهترین راه از بین بردن آن فرمت هسته و نصب مجدد سیستم عامل است.


دسته ها : بدافزارها
1389/3/14 14:55
X