۱۳۸۹ تیر ۲۷, یکشنبه

میان‌برنامه - درباره Rootkitها و ناگفته‌هایی از پرونده 1

تعریف مساله

مدتی پیش در مورد کرم کانفیکر (کیدو) مطلبی نوشتم. یکی از موضوعاتی که به منظور طولانی نشدن مطلب از پرداختن به آن خودداری کردم و فقط اشاره‌ای به آن شد، توضیحی در مورد روت‌کیت (Rootkit) بودن این کرم بود.
روت‌کیت در اصطلاح امنیت نرم‌افزار، به نوعی بدافزار (Malware) گفته می‌شود که با دستکاری کردن برخی توابع سیستم‌عامل، تلاش می‌کند حضور خود را از دید پنهان کند و یا در کار آن خللی ایجاد کند. روت‌کیت در واقع از شوم‌ترین انواع بدافزار است، چرا که در تئوری اگر کامپیوتری مبتلا به یک روت‌کیت قوی شود هرگز و با هیچ ابزاری از درون سیستم‌عامل نمی‌توان از وجود روت‌کیت مطلع شد یا آن را از بین برد. (البته همواره می‌توان از خارج از سیستم‌عامل و به کمک یک سیستم‌عامل سالم و بدون روت‌کیت، آن را شناسایی کرد)
به عنوان مثال: یک روت‌کیت می‌تواند فایل‌های مربوط به خود را از چشم سیستم‌عامل و تمامی برنامه‌ها (مثل آنتی‌ویروس) پنهان کند.
اما در عمل شناخت روت‌کیت از درون سیستم‌عامل میسر است، چرا که روت‌کیت‌ها عملا قادر به شبیه‌سازی کلیه توابع مرتبط سیستم‌عامل نیستند و فقط برخی از متداول‌ترین آنها را تغییر می‌دهند. از این رو می‌توان با مقایسه رفتار توابع مختلف سیستم و یافتن ناهمگونی در آنها به وجود روت‌کیت پی برد. بر همین اساس برنامه‌هایی وجود دارند که کارشان تشخیص روت‌کیت‌ها (شناخته شده و حتی ناشناخته) است.
در همان مثال قبل: معمولا می‌توان با رفتن به سراغ توابع سطح پایین کار با هارد دیسک، و مطابقت دادن ساختار فایل‌سیستم با آنچه سیستم‌عامل نشان می‌دهد ناهماهنگی‌ها را کشف و به وجود روت‌کیت پی برد.

مثال واقعی

کرم کانفیکری که در پرونده 1 با آن برخورد داشتیم نیز دارای یک بخش روت‌کیت بود که، با دستکاری توابع سیستمی، از ارتباط با سایت‌های امنیتی جلوگیری می‌کرد. اتفاقا نحوه کشف آن بسیار جالب بود که در ادامه مطلب می‌خوانید:
هنگامیکه متوجه شدم کامپیوتر سایت microsoft.com را نمی‌آورد، برای فهمیدن علت از دستور ping استفاده کردم. نتیجه چنین بود:
> ping microsoft.com
Ping request could not find host microsoft.com. Please check the 
name and try again.
که نشان می‌دهد مشکلی در سرویس DNS وجود داشته و موفق نشده است آدرس سایت را پیدا کند. بنابراین با دستور nslookup موضوع را بررسی کردم و با کمال تعجب با پاسخی مانند زیر روبرو شدم:
>nslookup microsoft.com
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
Name:    microsoft.com
Addresses:  207.46.197.32, 207.46.232.182
وقتی یکبار دیگر ping را اجرا کردم و باز همان پاسخ قبلی را دریافت کردم یقین پیدا کردم که موضوع از بدافزاری غیرعادی نشات می‌گیرد. بسیاری از بدافزارها مانع دسترسی به سایت‌های امنیتی می‌شوند، اما این کار معمولا با دستکاری فایل hosts و برگرداندن یک آدرس جعلی انجام می‌گیرد. در حالیکه در اینجا ping اصلا آدرسی را پیدا نمی‌کرد و این نشان می‌داد این تغییر به نحو هوشمندانه‌تری (و احتمالا با تغییر توابع سیستمی) انجام شده است.
نهایتا هنگامیکه برنامه Kido Killer مشغول پاکسازی کرم بود، پیغامی را مبنی بر پاکسازی یکی از توابع سرویس DNS نمایش داد که تاییدی بر تردیدهای قبلی بود.

کلمات کلیدی: Conficker, Kido, Rootkit, Windows, Worm, امنیت, روت کیت, ویندوز, کانفیکر, کرم, کیدو

۱ نظر:

  1. جالب بود. این سیستم مرتضی آخر درست شد یا نه ؟ :)

    سجاد جدیداً پر کار شدی! ای ول این هم کامل و آموزنده بود. مرسی

    پاسخحذف