0

تهدیدات پنهانی اینترنتی،قسمت اول: Rootkit

 
mosadegh
mosadegh
کاربر طلایی3
تاریخ عضویت : بهمن 1388 
تعداد پست ها : 1778
محل سکونت : ایران

تهدیدات پنهانی اینترنتی،قسمت اول: Rootkit

یک Rootkit یک سیستم نرم افزاری است که از یک یا چندین برنامه تشکیل شده است. این نرم افزار برای پنهان کردن این واقعیت که سیستم شما مورد سوء استفاده قرار گرفته است طراحی شده است. یک فرد مهاجم ممکن است از Rootkit برای جایگزین کردن فایلهای اجرایی حیاتی سیستم با فایلهای مورد نظر خود استفاده نماید. این فایلها می توانند برای پنهان کردن پردازه ها و فایلهایی که فرد مهاجم نصب کرده است مورد استفاده قرار گیرند. نوعا Rootkitها با گول زدن و فریب دادن بخش امنیتی سیستم عامل و مکانیزمهای امنیتی مانند آنتی ویروسها و ابزارهای ضد جاسوسی، وجود خود را انکار می کنند. در اغلب موارد این Rootkitها تروجان نیز هستند و با فریب کاربر، وی را قانع می کنند که در حال اجرای برنامه امن و قابل اعتمادی است. تکنیکهای مورد استفاده برای انجام این کار شامل پنهان کردن پردازه های در حال اجرا از دید برنامه های کنترل کننده، یا پنهان کردن فایلها یا داده های سیستم از دید سیستم عامل می باشد. Rootkitها همچنین ممکن است یک در پشتی (back door) روی سیستم قربانی نصب کنند.
Rootkitها برای انواع مختلف سیستم عاملها مانند ویندوز، لینوکس، Mac OS و Solaris تولید می شوند. این برنامه های خرابکار اغلب بخشهایی از سیستم عامل را تغییر داده یا خود را به عنوان درایور و یا ماژولهای هسته ای نصب می کنند.


1- تاریخچه

واژه Rootkit بدوا به مجموعه ای از ابزارهای مدیریتی خرابکارانه برای سیستم عامل Unix اشاره می کند که بطور پنهانی مجوز دسترسی به Root سیستم را دارا هستند. اگر یک فرد مهاجم بتواند ابزارهای استاندارد مدیریتی یک سیستم را با یک Rootkit جایگزین کند، این ابزارهای تغییر یافته به فرد نفوذگر اجازه خواهند داد که در حالیکه فعالیتهای خود را از دید مدیر حقیقی پنهان می کند، دسترسی root را روی سیستم در دست داشته باشد. اولین rootkit شناخته شده در سال 1990 توسط Lane Davis و Steven Dake برای سیستم عامل SunOS 4.1.1 نوشته شد.
یک Rootkit نمی تواند امتیازات و اولویتهای دسترسی یک فرد مهاجم را پیش از نصب روی سیستم بالا ببرد. نصب نیز مستلزم این است که فرد نفوذگر دسترسی Root یا مدیر داشته باشد. این دسترسی می تواند بصورت فیزیکی و یا از طریق نفوذ در آسیب پذیریهای امنیتی رخ دهد. برنامه نصب rootkit می تواند به سادگی و بدون اطلاع مدیر (برای مثال از طریق یک تروجان) اجرا گردد. زمانی که این rootkit نصب گردد، دسترسی را در سطح مدیر نگه می دارد و حضور خود را از دید سایر پردازه ها پنهان می نماید.


2- موارد کاربرد

یک rootkit که بطور موفقیت آمیزی نصب شده باشد، به کاربران غیر قابل اعتماد و شناخته نشده اجازه می دهد که به عنوان مدیر به سیستم دسترسی داشته باشند، و بنابراین بتوانند کنترل کامل سیستم قربانی را بدست بگیرند. بیشتر rootkitها بطور طبیعی فایلها، پردازه ها، ارتباطات شبکه، بلوکهای حافظه، و یا ورودیهای رجیستری ویندوز را از سایر برنامه هایی که توسط مدیران برای تشخیص دسترسی های اولویت دار به منابع سیستم استفاده می شوند، پنهان می کنند. البته rootkitها همیشه خرابکار نیستند و می توانند برای مقاصد سازنده نیز مورد استفاده قرار گیرند.
بسیاری از rootkit ها برنامه های utility را پنهان می کنند. این دسته از rootkitها معمولا سعی می کنند که به سیستم قربانی نفوذ کرده و در اغلب موارد یک در پشتی (back door) نیز برای نفوذهای بعدی مهاجمان باقی می گذارند.
در مورد اینکه آیا rootkit جزو بدافزارها محسوب می شوند یا نه بحثهایی وجود دارد. کاربردهای قانونی زیادی برای rootkit ها وجود دارد. برای مثال مجریان قانون، والدین و یا کارفرمایان می توانند با استفاده از این ابزار فعالیت کارمندان یا فزرندان خود را روی سیستم خود کنترل نمایند. محصولاتی مانند eBlaster یا Spector Pro در حقیقت rootkit هایی هستند که به منظور چنین کنترلهایی استفاده می شوند.
اما اغلب توجهات به rootkit ها، روی rootkit های خرابکار و یا غیرقانونی که توسط مهاجمان مورد استفاده قرار می گیرند تمرکز می کند. در حالیکه ممکن است یک rootkit به نحوی روی یک سیستم از طریق یک ویروس یا تروجان نصب گردد، اما لزوما خود rootkit یک بدافزار نیست.


3- انواع Rootkit
 

  • Rootkit های دائمی
    یک Rootkit دائمی هر بار که سیستم راه اندازی می شود فعال می گردد. از آنجایی که چنین بدافزاری شامل کدی است که باید به طور خودکار در هر بار راه اندازی سیستم یا ورود کاربر اجرا گردد، باید این کد در یک حافظه دائمی مانند رجیستری یا سیستم فایل ذخیره شود و روشی در نظر گرفته شود که بدون دخالت کاربر، این کد اجرا گردد.
  • Rootkit های مبتنی بر حافظه
    Rootkit های مبتنی بر حافظه بدافزارهایی هستند که کد دائمی ندارند و بعد از راه اندازی مجدد سیستم زنده نمی مانند.
  • Rootkit های مد کاربر
    روشهای زیادی وجود دارند که Rootkit ها با استفاده از آنها از کشف شدن خود جلوگیری می کنند. برای مثال، یک rootkit مد کاربر ممکن است جلوی تمامی درخواستهای ارسالی به APIهای FindFirstFile/FindNextFile ویندوز را که توسط ابزارهای مرور سیستم فایل استفاده می شود بگیرند.
    API اصلی ویندوز بعنوان یک رابط بین کلاینتهای مد کاربر و سرویسهای مد هسته عمل می کند. Rootkit های مد کاربر که پیچیده تر هستند جلوی سیستم فایل، رجیستری، و توابع شمارش پردازه های API اصلی را می گیرند. این کار جلوی کشف آنها توسط برنامه های اسکن کننده را می گیرد.
  • Rootkit های مد هسته
    Rootkit های مد هسته حتی می توانند قدرتمندتر نیز باشند، چراکه نه تنها می توانند API اصلی را در مد هسته دستکاری کنند، بلکه همچنین می توانند بطور مستقیم ساختارهای داده مد هسته را دستکاری نمایند. یک تکنیک معمول برای پنهان کردن حضور یک پردازه بدافزار این است که آن پردازه از فهرست پردازه های فعال هسته حذف گردد. از آنجاییکه API های مدیریت پردازه، به محتویات این فهرست اعتماد و تکیه می کنند، پردازه بدافزار در ابزارهای مدیریت پردازه مانند Task Manager یا Process Explorer نمایش داده نخواهد شد.

4- تشخیص Rootkit

تشخیص یک rootkit در بیان بسیار ساده تر از عمل است. در حقیقت بر خلاف ویروسها و ابزارهای جاسوسی، هیچ برنامه یا نرم افزاری تا کنون تولید نشده است که بتواند تمامی rootkit ها را پیدا و حذف نماید.
راههای مختلفی برای اسکن حافظه یا بخش فایلهای سیستمی در مورد وجود rootkit موجود است، ولی اغلب آنها دارای ابزار خودکار نیستند و ابزارهایی که وجود دارند نیز اغلب برای تشخیص و حذف یک نوع rootkit خاص ساخته شده اند. یک روش دیگر این است که به دنبال رفتارهای غیر منطقی و عجیب روی سیستم کامپیوتری بگردیم. اگر چیز مشکوک و غیر معمولی مشاهده گردد، شاید بتوان گفت که سیستم شما قربانی یک rootkit شده است.
فایلهای باینری Rootkit ها در اغلب موارد –حداقل تا زمانیکه توسط کاربر اجرا شده و خود را پنهان نمایند- توسط برنامه های آنتی ویروس مبتنی بر امضا یا مبتنی بر heuristic قابل تشخیص هستند. یک سری محدودیتهای ذاتی در مورد هر برنامه ای که که بخواهد rootkit ها را تشخیص دهد و در عین حال روی سیستمی که مشکوک به وجود rootkit است قرار داشته باشد وجود دارد. Rootkit ها برنامه هایی هستند که بسیاری از ابزارها و کتابخانه های سیستم هسته را که تمام برنامه های سیستم به آنها بستگی دارند تغییر می دهند. برخی rootkit ها سعی می کنند که سیستم عامل حاضر را از طریق ماژولهای قابل بارگذاری روی لینوکس (و برخی دیگر از انواع یونیکس)، و نیز از طریق درایورهای مجازی قطعه های خارجی روی پلت فورمهای ویندوز تغییر دهند. مشکل اساسی در مورد تشخیص rootkit این است که اگر سیستم عامل حاضر تغییر یافته باشد، دیگر قابل اعتماد نخواهد بود. در نتیجه ادعاهای سیستم عامل در مورد تغییرات بدون مجوز در خود سیستم عامل یا اجزای آن معتبر نخواهد بود. بعبارت دیگر، فعالیتهایی مانند درخواست فهرست پردازه های در حال اجرا یا درخواست فهرست تمام فایلهای موجود در یک دایرکتوری، لزوما به نتیجه ای منطبق با چیزی که طراحان آن منظور داشته اند نخواهد رسید. فقط آن دسته از تشخیص دهنده های rootkit ها که روی سیستمهای live اجرا می شوند کار می کنند، چرا که rootkit ها هنوز آنقدر گسترش نیافته اند که خود را از این تشخیص دهنده ها پنهان نمایند.
بهترین و قابل اعتمادترین روش برای تشخیص rootkit در سطح سیستم عامل این است که کامپیوتر را خاموش کرده، و سپس با بالا آمدن مجدد آن از روی یک CD-ROM یا درایو USB قابل اعتماد، حافظه آن را بررسی نمایید. یک rootkit که در حال اجرا نباشد نمی تواند وجود خود را پنهان نماید، و بیشتر برنامه های آنتی ویروس rootkit ها را شناسایی خواهند کرد. Rootkit های در حال اجرا سعی می کنند از خود به وسیله کنترل پردازه های در حال اجرا و مسدود کردن فعالیت آنها تا زمان پایان یافتن عملیات اسکن، محافظت نمایند.
در نهایت بسیاری از متخصصین امنیت توصیه می کنند که یک بازسازی کامل در مورد سیستمی که توسط rootkit مورد سوء استفاده قرار گرفته است باید انجام داد. دلیل این مساله این است که حتی اگر شما فایلها یا پردازه های مرتبط با rootkit را کشف کنید، بدست آوردن اطمینان 100 درصد از این موضوع که تمامی اجزای rootkit را حذف کرده اید بسیار مشکل است. تنها در حالتی می توانید با خیال راحت به کار خود بپردازید که کل سیستم را پاک کرده و از اول شروع کرده باشید.


5- برای محافظت از خود چه کاری می توانید انجام دهید؟

اگر شما عادات خوب امنیتی را به کار بگیرید، خطر سوء استفاده از کامپیوتر خود را کاهش می دهید:
 

  • استفاده از آنتی ویروس
    نرم افزار آنتی ویروس بیشتر انواع ویروسها را شناسایی کرده و شما را در برابر آنها محافظت می کند، بنابراین ممکن است شما بتوانید این ویروس را قبل از اینکه ضربه ای به شما بزند تشخیص داده و از سیستم خود پاک کنید. از آنجایی که افراد مهاجم بطور مداوم در حال نوشتن ویروسهای جدید هستند، باید همیشه تعریف ویروسها را در آنتی ویروس خود به روز نگه دارید. برخی از تولید کنندگان آنتی ویروس نرم افزارهای ضد rootkit نیز عرضه می کنند.
  • نصب فایروال
    فایروالها ممکن است بتوانند با مسدود کردن ترافیک خرابکار قبل از ورود آن به کامپیوتر شما و نیز با محدود کردن ترافیک ارسالی توسط شما، از برخی انواع مشکلات جلوگیری نمایند. برخی سیستم عاملها خود دارای یک فایروال هستند، ولی شما باید اطمینان حاصل کنید که این فایروال فعال است.
  • استفاده از کلمات عبور مناسب
    کلمات عبوری را انتخاب کنید که افراد مهاجم نتوانند به آسانی آن را حدس بزنند. از کلمات عبور مختلف برای حسابهای کاربری متفاوت خود استفاده کنید. و در نهایت اینکه ترجیحا به سیستم خود اجازه ندهید که کلمات عبور شما را به خاطر بسپارد.
  • به روز نگه داشتن نرم افزارها
    اصلاحیه های نرم افزاری را نصب کنید. به این ترتیب افراد مهاجم نمی توانند از آسیب پذیریهای شناخته شده روی سیستم شما سوء استفاده نمایند. بسیاری از سیستم عاملها به طور خودکار عملیات به روز رسانی را انجام می دهند. اگر سیستم عامل شما نیز چنین امکانی دارد، حتما آن را فعال نمایید.
  • پیروی از توصیه های امنیتی
    جوانب احتیاط را در هنگام استفاده از ایمیل و مرورگرهای وب رعایت کنید و خطر فعالیتهای خرابکارانه را بر روی سیستم خود را کاهش دهید
فسا-پسا

.تفکر از تخصص مهمتر است📌

سه شنبه 9 تیر 1394  6:37 AM
تشکرات از این پست
دسترسی سریع به انجمن ها