کدهای مخرب
با گسترش فرهنگ استفاده از رایانه و راهیابی آن به ادارات و منازل، این ابزار از حالت آکادمیک و تحقیقاتی خود به در آمده و مبدل به پارهای از نیازهای معمول زندگی شدهاست. ابداع واژه نفوذگر به دههٔ شصت میلادی در دانشگاه MIT آمریکا بر میگردد.در آن زمان نفوذگر به این صورت معنا میشد: نفوذگر کسی است که از سرکشی کردن به جزئیات سیستمهای قابل برنامه ریزی و نفوذ و رخنه در آن لذت میبرد و مصمم به شکست دادن توانایی محاسباتی ماشین در برابر هوش و ذکاوت بشری خویش است. با توجه به نوپا بودن شبکه اینترنت که عملا پس از ابداع و فراگیر شدن وب در دهه نود به یک پدیده جهانی مبدل شدهاست نمیتوان انتظار داشت که یک فرهنگ صحیح و غنی بر آن حاکم شده باشد. هرگاه تفکر و اندیشه یک نفوذگر در راستای انگیزههای نامتعادل و غیر انسانی قرار بگیرد، خطری جدی شبکهها و به تبع آن انسانها را تهدید خواهد کرد. کدها ی مخر ب براساس کارکردی که دارند به انواع مختلفی تقسیم و نام گذاری میشوند که نرمافزارهای ضد ویروس براساس این دسته بندیها قادر به تشخیص آنها میباشند . در این بخش به معرفی دسته بندیهای متداول میپردازیم و وجود ۳ مشخصه زیر را در هر دسته بررسی میکنیم : ۱-خود همتاسازی : این مشخصه بدین معنی است که کد مخرب با استفاده از تولید نسخههای مشابه خود انتشار پیدا کند. ۲-رشد جمعیت : این مشخصه بدین معنی است که کد مخرب در هنگام انتشار ، نسخههای جدید و متفاوت از خود را تولید نماید. ۳ -خاصیت انگلی : این مشخصه بدین معنی است که کد مخرب وجود مستقل ندارد یعنی به وجود یک برنامه به عنوان میزبان نیازمند است .برای مثال ویروسی که در فایلهای اجرایی کد خود راکپی میکند و با اجرای فایلهای اجرایی اجرا میشود نمونهای ازاین عملکرد انگلی است .بر اساس این ویژگیها کدهای مخرب را به انواع زیر تقسیم میکنند:
* بمب منطقی
* اسب تروجان
* درب پشتی
* ویروس
* کرم
* خرگوش
* جاسوس
* Adware
* روت کیت
که هر کدام را جداگانه بررسی میکنم:
بمب منطقی
یکی از قدیمی ترین انواع تهدیدهای نرمافزاری که قبل از ویروسها و کرمها وجود اشت و هم اکنون نیز به کار گرفته میشود بمب منطقی است. بمب منطقی به صورت یک کد در برنامه قانونی تعبیه شده و طوری تنظیم میگردد که در صورت حصول شرایط خاصی منفجر شود. این شرایط خاص که میتوانند بمب را منفجر کنند عبارتند از حضور یا عدم حضور یک فایل خاص، روز خاصی از هفته یا تاریخ مشخصی از سال و یا حتی هنگام استفاده فرد مشخصی از حساب شخصی. این برنامهها از دو قسمت تشکیل شدهاست : ۱- بدنه : بدنه به معنی عملی است که این برنامه انجام میدهد . این عمل هر چیزی میتواند باشد وبر مبنای تصمیم نویسنده برنامهاست ولی باید یک عمل مخرب باشد که در دسته بندیهای کدهای مخرب جای گیرد . ۲- راه انداز : راه انداز ، شرط منطقی برای کنترل اجرای برنامهاست بدین معنی که اگر این شرط فراهم آمده باشد بدنه برنامه اجرا میشود . برای نمونه این شرط میتواند یک شرط محلی (Local condition)باشد یعنی بمب منطقی برای اجرا مشخصههای از سیستم مقصد (قربانی) را بررسی میکند مانند زمان، عملیات ورود کاربران به سیستم .
اسب تروجان
تقریبا همه ما این داستان را شنیدهایم که وقتی سربازان یونانی شهر تروی را محاصره کردند تا مدتهای زیادی نتوانستند بدلیل حفاظت شدیدی که از دیوار شهر میشد،به درون شهر راه پیدا کنند و ماهها پشت دروازه شهر به محاصره ادامه دادند بدو آنکه موفق به فتح آن شوند.سرانجام برای نفوذ به شهر و شکستن محاصره به نقشهای که دختر فرمانده کشیده بود عمل کردند . آنها یک اسب چوبی بسیار عظیم ساختند و آن را به عنوان هدیه در جلوی دروازه شهر گذاشته و دور دست پنهان شدند.ساکنبن شهر غافل از اینکه درون اسب جنگجویان پنهان شدند آن را به داخل شهر خود آورده و به مناسبت ختم محاصره به جشن پرداختند .نیمه شب در حالی که اهالی شهر خسته و خواب الود از پا افتاده بودند جنگجویان ار اسب پیاده شده و دروازه شهر را گشودند و شهر را فتح کردند.هزاران پیش پس از این واقعه و در عصر حاضر بار دیگر این داستان تکرار میشود.البته در دنیای شبکههای کامپیوتر و آن هم نه به صورت افسانهای بلکه کاملا حقیقی و مخرب! اسب تروجان یک برنامه آلوده به کدهای اجرایی است که غالبا فریبنده یا کاملا معمولی دارند.این برنامهها پس از آنکه به دست خود کاربر برروی ماشین اجرا میشوند و همانند یک سرویس دهنده ،کنترل و هدایت آن ماشین را در اختیار نفوذ گر قرار میدهند.از آن به بعد نفوذگر است که تصمیم میگیرد که با آن ماشین چه کار کند.دادههای حیاتی مثل کلمات عبور را بدزدد یا فایلهای او را کاملا نابود کند یا آنکه از ماشین به عنوان یک قربانی برای حملات بعدی شبیه حملات DDos استفاده کند. این برنامهها در حقیقت برنامههایی هستند که به ظاهر یک عمل مفید و معمول انجام می دهند ولی در واقع به صورت پنهانی عامل اجرای یک عمل مخرب در سیستم مقصد خواهند بود. یک مثال برای اسب تروجان میتواند برنامهای باشد که نام کاربر و کلمه عبور را میرباید . کاربر که تصور میکند برنامه همان برنامه مفید میباشد آن نام کاربری و کلمه عبور را وارد میکند . اما تروجان مقادیر وارد شده را بعد از وارد کردن کاربر میرباید سپس یک پیغام مبنی بر خطای ورود اطلاعات به کاربر برمیگرداند. کاربر نیز دوباره اطلاعات را وارد میکند و برنامه ورود به سیستم اصلی اجرا میشود . کاربر بدون آنکه بفهمد نام کاربری و رمز عبور را به برنامه مخرب دادهاست !
قابلیتهای اسب تروای BO۲K
در بین تمام اسبهای تروای شناخته شده، BO۲Kدارای ویژگیهای ممتازی است که ان را از میان صدها نوع اسب تروا برجسته میکند .کارهایی که تنجام میدهد عبارتند از:
•عملیات روی پروسهها: سرویس دهنده BO۲K میتواند فهرست پروسههای در حال اجرا روی ماشین قربانی را به دست آورده و در اختیار نفوذگر قرار بدهد، سپس به دلخواه او هر یک از این پروسهها را از بین ببرد یا پروسه جدیدی را اجرا نماید. •تغییر در مسیر بستهها: BO۲K قادر است از تمام بستههایی که به ماشین قربانی میرسد، یک نسخه تولید کرده وآن را برای ماشین نفوذگر ارسال میکند.به این نحو نفوذگر قادر به استراق سمع خواهد بود. •تغییر مسیر برنامهٔ کاربردی: با این قابلیت BO۲K قادر است هر برنامه کاربردی را در ماشین قربانی اجرا کند تا به یک شماره پورت تعیین شده توسط نفوذگر گوش بدهد. بطورمثال او قادر است برنامه Telnet یا نت کت را روی ماشین قربانی اجرا کند. •کنترل ابزارهای چند رسانهای: با استفاده از BO۲K، نفوذگر قادر است بطور همزمان جریان تصاویر لحظه به لحظه صفحه ماشین قربانی را تماشا کند.در ضمن حرکت مکان نمای موس و فشار دکمههای صفحه کلید را تحت نظارت خواهد داشت.البته این قابلیتهای BO۲K از طریق نصب یک plug-in به نام BOPeep در اختیار او قرار میگیرد. plug-inهای دیگری هم هستند که با استفاده از آنها BO۲K قادر است دوربینهای قربانی را بکار بیندازد و تصاویر آن را برای نفوذگر ارسال نماید. • HTTP File Server: یکی از قابلیتهای تکنیکی BO۲K آنست که میتواند ماشین قربانی را تبدیل به یک سرویس دهنده سادهٔ HTTP نماید! برای همین نفوذگر بدون آنکه نیاز به هیچ نرمافزار خاصی داشته باشد میتواند با یک مرورگر عادی فایلهایی را از روی ماشین قربانی به ماشین خود منتقل کند.
آلوده شدن ماشینها به BO۲K از طریق کنترلهای Active X
کنترلهای Active X تکنولوژی خاصی هستند که توسط مایکروسافت ابداع شدند و به منظور مبادله کدهای اجرایی بین سرویس دهده وب و مرور گر کاربر نوشته میشود. در حقیقت Active X حاصل رقابت شرکت مایکروسافت با شرکت سان بود. مایکروسافت کنترلهای Active X را برای اجرا در مرورگر بگونه ای ارائه کرد که تمام قابلیتهای یک برنامه معمولی را داشته باشد، یعنی از طریق ارسال کنترلهای Active X هر کاری میتوان روی ماشین کاربر انجام داد البته برای حفط امنیت ، مایکروسافت کنترلهای Active X را با امضای دیجیتالی خاصی عرضه کرد. مرورگر وب قبل از اجرای یک کنترل Active X آن را احراز هویت میکند و در صورتی که سلامت آن تأیید شد آن را اجرا میکند .بسیاری از کاربران به دلیل مزاحمتهای مکرری که مرورگر در هنگام تأیید و احراز هویت این کدهای اجرایی به وجود آورده، در مرورگر خود گزینه بررسی هویت کنترلهای Active X را غیر فعال کردند که بسیار خطرناک است، چرا که یک کنترل Active X میتواند آلوده به یک سرویس دهنده اسب تروا باشد و با اجرا در مرورگر قربانی، به سرعت نصب خواهد شد.
درب پشتی
به هر مکانیزم و روشی که منجر به عبور یا در اصلاح دورزدن پروسه امنیتی سیستم مقصد شود و از این طریق موجب دسترسی نفوذگر به منابع سیستم گردد درب پشتی گویند . نمونههایی از درب پشتیها در زیر توضیح داده شدهاند: •تغییر در سطح دسترسی محلی : این نوع درپشتی میتواند یک حساب کاربری معمولی را به حساب کاربری Root یا Administrator که همان کاربر اصلی سیستم است تبدیل نماید
•اجرای فرمانهای منفرد از راه دور : نفوذگر میتواند با ارسال پیغام به سیستم مقصد یک تک فرمان را توسط درب پشتی در ماشین هدف اجرا نماید و نتیجه اجرای فرمان به نقوذگر برگردانده شود. •دسترسی به یک سطر فرمان از سیستم هدف از راه دور: این نوع با نام Remote Shell شناخته میشود . دراین روش نفوذگر به جای اجرای تک فرمانهایی در سیستم مقصد میتواند مجموعهای فرمانها را به صورت موازی بر روی سیستم هدف اجرا نماید. به صورت ساده میتوان گفت که گویی کیبورد سیستم مقصد در اختیار نفوذگر میباشد و از آن طریق عملیات دلخواه خود را انجام میدهد. •دسترسی از راه دور به سیستم مقصد از طریق برنامههای واسط گرافیکی : درب پشتی علاوه بر دسترسی به سطر فرمان اطلاعاتی نظیر حرکت موس ، باز وبسته شدن پنجرهها و امکان کنترل آنها را در اختیار نفوذگر قرار میدهد. البته از درب پشتیها برای مقاصد قانونی هم استفاده میشود مثلا برنامه نویسان برای اشکا ل زدایی از برنامههای سرویس دهنده شبکه با استفاده از دربهای پشتی در زمانی که برای احراز هویت یعنی شناساندن خود به عنوان کاربر مجاز به سیستم ، نیاز است صرفه جویی میکنند.
نت کت: در پشتی برای هر سیستمعامل سازگار با یونیکس
استفاده از نت کت برای باز کردن رخنه عبور در سیستمعامل است. با اجرای نت کت روی ماشین قربانی ،یک راه ساده و شفاف برای مبادله داده بین نفوذگر و قربانی ایجاد میشود. کدهای برنامه نت کت به صورت رایگان وباز در اختیار است.نفوذگر برنامه نت کت را با گزینه GAPING_SECURITY_HOLE ترجمه میکند . درج این گزینه موقع ترجمه آن در خط یک برنامه دیگر باعث میشود تا نت کت بتواند در هنگام برقراری ارتباط یک برنامه دیگر را اجرا کرده و دادههای دریافتی را به آن برنامه هدایت کند.
درهای پشتی پنهان شده در اسب تروا
اسب تروا برنامهای است که خود را همراه یک برنامه مفید وارد سیستم میکند و درپشتی ابزاری است که راه ورود به سیستم را خارج از عرف معمول میسر میسازد.برای یک نفوذگر پیدا کردن راهی که به طور مستقیم درپشتی را روی ماشین قربانی اجرا کند دشوار است و گاهی به تکنیکهای پیچیدهای مانند سریز پشته نیازمند است.ادغام یک در پشتی درون یک اسب تروا تکنیکی است که کاربر با دست خودش راه ورود به سیستم را برای دشمنان باز میکند. اسبهای تروا در دو دسته تقسیم بندی میشوند: • اسبهای تروا در سطح برنامههای کاربردی • اسبهای تروا در سطح سیستمعامل یا روت کیت
روت کیتهای معمولی
اسبهای تروا (مثل Sub۷,Bo۲k) و درهای پشتی (نت کت) برنامههای مستقلی هستند که نفوذگر آن را روی ماشین قربانی ارسال و اجرا مینماید. با توجه به استقلال این برنامهها کشف و آشکارسازی آنه چندان دشوار نیست (استقلال اسبهای تروا به این معناست که مثل برنامههای عادی دیگر اجرا میشود.) روت کیتها بسیار خائنانه تراز اسبهای تروا عمل میکنند، با دستکاری و تغییر در عملکرد مؤلفههای اصلی سیستمعامل، آنها را دگرگون کرده و راه حمله نفوذگر را از طریف رخنههایی در که در سیستمعامل آمده باز میکنند. بعد از آلوده شدن سیستمعامل، هرگاه ماشین قربانی بوت شود سیستمعامل راه نفوذگران را کاملا باز میکند. یعنی دیگر نیازی به اجرای هیچ برنامه کاربردی ندارد. سابقه تاریخی روت کیت به ابتدای دههٔ نود بر میگردد.در این سالها گروهای زیر زمینی و حرفهای نفوذگران بخشهایی از سیستمعامل را دستکاری کرده و آنها را از طریق محیط IRC منتشر کردند.با گسترش اینترنت و توسعه نرمافزارها وسیستمهای عامل، روت ک یتها نیز خطرناک تر شدند. امروزه روت ک یتها بگونهای پیاده سازی میشوند که در کمتر از ۱۰ ثانیه منتشر بشوند و خودشان را به طور خودکار نصب کنند.
روت کیتهای معمولی چه کارهایی میتوانند انجام دهند؟
در این بخش بررسی میکنیم وقتی که بخشی از مؤلفههای سیستمعامل توسط روت کیتها دستکاری و آلوده میشوند چه اتفاقی میافتد و چه راهی برای نفوذ باز میشود؟ حساسترین مؤلفهای که در سیستمعاملهای مبتنی بریونیکس در معرض خطر است برنامه اجرایی /bin/login است که ورود کاربران به سیستم را نظارت میکند. وقتی شما در محیط یونیکس یا لینوکس اقدام به ورود در سیستم مینمایید، برنامه /bin/login اجرا میشود. برنامه /bin/login مشخصه شناسایی کاربر و کلمه عبور را دریافت کرده و با مراجعه به فایل حسابهای کاربری ، کاربر را احراز هویت میکند.اگر در این فایل برای کاربر یک حساب و کلمه عبور تعریف شده باشد، به او مجوز عبور داده میشود. روت کیت شدن سیستمعامل به این معنا است که نفوذگر به نحوی برنامهٔ تحریف شده را با برنامه اصلی جابه جا میکند .این برنامه دستکاری شده رخنه نفوذ نام دارد،به نحوی که اجازه ورود با عالیترین مجوز را فراهم میکند.یهنی حتی اگر مسئول آن سیستم کلمه عبور خود را عوض کند یا کل فایل کلمات عبور را تغییر بدهد بازهم راه عبور نفوذگر باز خواهد بود، زیرا برنامه /bin/login به گونهای دستکاری شده که اصولا مراحل اجرای طبیعی احراز هویت برای نفوذگر اجرا نخواهد شد.
روت کیتهای معمولی برای استراق سمع
وقتی یک نفوذگر از طریق اسب تروا، در پشتی یا روت کیت، نفوذ خود را به سیستم سازماندهی میکند برای گسترش این نفوذ به ماشینهای دیگر اقدام به نصب نرمافزارهای اسنیفر برای استراق سمع دادههای دیگران میکند. مهمترین اطلاعاتی که نفوذگر به دنبال آنهاست کلمات عبور میباشد.اکثر نفوذگران بلافاصله بعد از فعال شدن روت کیت یک نرمافزار ساده برای استراق سمع بر روی ماشین قربانی نصب و اجرا میکنند. برای مثال با نصب یک ابزار ساده استراق سمع، کارکترهایی که در ابتدای یک نشست مثل Telnet,FTP,HTTP مبادله میشوند را ربوده و در یک فایل محلی ذخیره میکنند.
کثیف ترین نوع روت کیت: روت کیتهای سطح هسته سیستمعامل
روت کیتهای خطرناک تری هم وجود دارند که قلب سیستمعامل یعنی هستهٔ مرکزی را هدف قرار میدهند. اگر هستهٔ مرگزی سیستمعامل دستکاری و تحریف شده باشد دیگر هیچ ابزاری قادر به کشف آن نخواهد بود. زیرا ابزارهایی مانند Tripwire متکی به هستهٔ سیستمعامل هستند؛ هستهای که خودش آلودهاست اجرای فرمان نخواهد کرد. امروزه گروههای زیر زمینی و حرفهای حملات خود را از لایه کاربر به سطح هستهٔ سیستمعامل معطوف کرده و برای انواع محیطهای سازگار با یونیکس و window NT/۲۰۰۰ برنامه روت کیت نوشتهاند. هستهٔ سیستم عامال اولین بخشی است که در حافظه بار میشود و کنترل سیستم را به دست میگیرد. تمام دسترسیها به ابزار شبکهای،حافظه، دیسک و منابع سیستم تحت نظارت و کنترل دقیق هسته انجام میشود. تمام دسترسیهای یک پروسه به منابع سیستم، باید از طریق هسته انجام شود.به عنوان مثال وقتی یک پروسه میخواهد فایلی را باز کند، این تقاضا توسط فراخوانیهای سیستمی به هسته تسلیم میشود و هسته پس از بررسی مجوزهای ان فایل، این عمل را انجام میدهد. در چنین محیطی دسترسی مستقیم به دیسک ممکن نیست و به روشهای سختافزاری جلوگیری میشود.روشهایی که روت کیتهای معمولی انجام میدهند در حقیقت فریب هستهٔ سیستمعامل است در حالیکه روت کیتهای سطح سیستمعامل، هسته را بگونهای تغییر میدهند که عملیات هسته پنهانی در اختیار نفوذگر قرار بگیرد. ۶-۱-
توانائی تغییر مسیر اجرا
اولین کاری که یک هسته آلوده انجام میدهد آنست که تمام فراخوانیهای سیستم که از پروسهها به هسته میرسند را دریافت کرده و برخی از آنها را بطور غیرواقعی اجرا میکند. بعنوان مثال یک پروسه کاربر از هسته تقاضا میکند تا برنامه یا پروسهای با نام الف را اجرا کند. هسته، این تقاضا را پذیرفته و وانمود میکند که الف را اجرا کرده در حالی که بجای الف برنامه ب را اجرا نمودهاست، (ب در خدمت نفوذگر است) به این عمل «تغییر مسیر اجرا » گفته میشود. توانایی در تغییر مسیر اجرای برنامهها به نفوذگر اجازه میدهد تا سیستم قربانی را بدون آنکه متوجه چیزی شود، به نحو دلخواه تنظیم کند. حتی اگر قربانی از روشهای پیچیده رمزنگاری و امضاهای دیجیتالی برای حفظ امنیت دادههای خود استفاده کرده باشد. ۶-۲- مخفی نگاه داشتن فایلها در سطح هسته هسته آلوده، بجای اجرای برنامه /bin/login مثلاً برنامه /bin/backdoorlogin را اجرا میکند تا نفوذگر بتواند به سیستم وارد شود. شاید بهنظر برسد که شما با دیدن فهرست فایلهای درون شاخه /bin، بسادگی متوجه حضور برنامهای با نام backdoorlogin خواهید شد در حالیکه اینچنین نیست. روت کیتهای سطح هسته برای این مشکل هم چاره اندیشیدهاند و آن هم مخفی نگاه داشتن فایلهای مورد نظر نفوذگر است. این هستههای آلوده فقط فهرستی از فایلها را به کاربر نشان میدهند که نفوذگر اجازه داده باشد. برخی از شاخهها و فایلها به هیچوجه دیده نخواهند شد و کاربر اجازه دسترسی و اجرای آنها را ندارد.
مخفی نگاه داشتن پروسهها در سطح هسته
یکی دیگر از قابلیتهای روت کیتهای سطح هسته، توانایی آنها در مخفی نگاه داشتن پروسههایی است که اکنون روی سیستم در حال اجرا شدن هستند. بعنوان مثال وقتی برنامهای مثل نت کت اجرا میشود نام آن در فهرست پروسههای در حال اجرا قرار میگیرد. روت کیتهای سطح هسته، بگونهای هسته سیستمعامل را دستکاری میکنند که اسامی پروسههای مورد نظر نفوذگر در فهرست پروسههای در حال اجرا به کاربر اعلام نشود. لذا این پروسهها در عین فعالیت هیچ علامتی از حضور بر روی سیستم، (که منجر به کشف آنها میشود) ندارند.
مخفی نگاه داشتن ارتباطات شبکهای در سطح هسته
در شرایط عادی وقتی پروسهای به یک شماره پورت TCP یا UDP گوش میدهد، میتوان از طریق اجرای فرمان netstat -na آنرا آشکار کرد. فرمان netctat در محیطهای سازگار با یونیکس و انواع ویندوز حمایت میشود. این دستور متکی به هسته سیستمعامل است،یعنی هسته سیستمعامل تعیین میکند که کدام پورت فعال و باز است. اگر نفوذگر یک ابزار «در پشتی » مثل نت کت روی ماشین قربانی نصب کرده باشد، شماره پورتی که آن برنامه در حال گوش دادن است، لو خواهد رفت. روت کیتها میخواهند این موضوع پنهان بماند و شماره پورتهای مورد نظر نفوذگر در خروجی ظاهر نشود. هسته سیستمعامل بگونهای دستکاری میشود که بتواند در هنگام اجرای برنامههایی مثل netstat دروغ گفته و تعدادی از پورتهای باز را بسته اعلام کند.
چگونه روت کیتهای سطح هسته پیاده سازی میشوند؟
بسته به نوع سیستمعامل، روشهای متفاوتی یرای دستکاری هسته سیستمعامل وجود دارد. در اکثر سیستمهای عامل سازگار با یونیکس، راحت ترین راه دستکاری هسته، استفاده از قابلیتی است که LKM نامیده میشود. LKM قابلیتی است که اجازه میدهد برخی از ماجولهای هسته سیستمعامل طبق دلخواه یک برنامه نویس طراحی شده و در هنگام لزوم به درون هسته بار شود.بالاخص در لینوکس و سولاریس، از مکانیزم LKM در عالی ترین سطح برای گسترش و توسعه سیستمعامل استفاده میشود. . اگر قرار باشد برای پشتیبانی از یک ابزار جدید، هسته سیستمعامل از نوع بازسازی شود، سازندگان ابزار و ادوات سختافزاری و همچنین کاربران با مشکلات زیادی مواجه میشوند. در حالیکه میتوان از LKM بهره گرفت و ماجولی برای پشتیبانی از آن محصول طراحی کرد تا بتواند در حین اجرا به درون هسته بار شود. در حقیقت این ماجولها هسته سیستمعامل را توسعه میدهند و چون سطح دسترسی این ماجولها (به عنوان بخشی از هسته) در عالیترین سطح است لذا عملکرد بد این ماجولها میتواند، کل هسته را مختل کند و سیستم ناپایدار شود. ماجولهائی که به روش LKM بدرون هسته لینوکس یا سولاریس بار میشوند میتوانند به هر منبعی در سیستم دسترسی داشته باشند. تعداد روت کیت هائی که با مکانیزم LKM پیاده سازی شدهاند بسیار زیادند(بالاخص در لینوکس و سولاریس). البته راههای دیگری نیز برای دستکاری هسته سیستمعامل وجود دارد . این روشها برای سیستمعامل Windows NT که از LKM حمایت نمیکند کاربرد دارد و مبتنی بر patch هائی است که عملکرد هسته را تغییر میدهند.
پیشگیری از آلودگی روت کیتهای سطح هسته
با توجه به آنکه روت ک یتهای سطح هسته خطرناک ترین نوع آلودگیهای سیستمعامل و یک شکاف امنیتی وحشتنبک محسوب میشوند، لذا باید اقدامات پیشگیرانه جدی در سیستم خود اعمال نمایید هیچکس جز مسئول سیستم، دارای بالاترین سطح مجوز نباشد بررسی وجود روت کیتها با استفاده از تجربه و ذکاوت شخصی.
ابزارهای جستجوگر روت کیت
امروزه یکی از زمینههای فنی و پرطرفدار جبهه مبارزه با حملات، توسعه ابزارهای کشفهای سطح هستهاست. چرا که وقتی هسته سیستمعامل آلوده شد عملاً قلعه و پایگاه اصلی شما توسط دشمن فتح شدهاست و ابزارهای معمولی که به هسته وابستهاند ازکارآئی ساقط خواهند شد. بنابراین برای کشف روت ک یت به کمک یک هسته آلوده باید بسیار هوشمندانه عمل کرد زیرا میخواهید از سلاح دشمن بر علیه خودش استفاده کنید. یکی از ابزارهایی که در این خصوص معرفی شدهاست chkrootkit نام دارد که در آدرس زیر در دسترس میباشد: ftp.pangeia.br/pub/seg/pac
ویروس
ویروسها دستهای از کدهای مخرب هستند که مشخصه اصلی آنها خود همتا سازی هنگام اجرا به همراه برنامه میزبان میباشند . با این تعریف میتوان نتیجه گرفت برنامه ویروس دارای خاصیت انگلی است و همواره علاوه بر آسیب به سیستم نسخه یا نسخههایی از خود را تولید میکند. به برنامهای که کد ویروس به ان افزوده شده باشد برنامه آلوه میگویند. ویروسها عمل انتشار خود را برروی یک کامپیوتر و یا از طریق Floppy Disk ، USB ، CD-ROM و DVD-ROM برروی سیستمهای دیگر انجام میدهند. باید توجه داست که ویروسها قابلیت انتشار از طریق شبکه را ندارند.این قابلیت در دستهای دیگر از کدهای مخرب به نام کرم وجود دارد . به اولین نسل از ویروسها جرم گفته میشود . در حقیقت جرم اولین نسخه برنامه ویروس است که توسط برنامه نویس نوشته شده و بعد از اولین اجرا و قرار گرفتن در اولین برنامه میزبان ویروس شروع به تولید کدهای مشابه خود خواهد کرد. میتوان گفت اولین نسل ویروس با نسلهای دیگر متفاوت خواهد بود ویروسی که قادر به ایجاد نسخههای مشابه از خود نباشد بالقوه گفته میشود . این امر میتواند به دلایلی مثل بروز خطا در کد ویروس و یا مواجه شدن با نسخههایی از سیستمعامل که توسط نویسنده در نظر گرفته نشدهاند صورت گیرد.
کرم
این دسته برنامهها مشابه ویروسها دارای مشخصه اصلی خود همتا سازی هستند با این تفاوت که کرم خاصیت انگلی ندارد و انشار خود را از طریق شبکه انجام میدهد . یک کرم یک برنامهاست که میتواند خود را تکثیر کرده و کپیهای تکثیر شده را در عرض یک شبکه کامپیوتری از رایانهای به رایانه دیگر منتقل نماید.پس از ورود یه یک سیستم، کرم ممکن است فعال شده شروع به تکثیر نماید و مجددا انتشار بیابد.علاوه بر اتشار معمولا کرم کارهای ناخواستهای را انجام میدهد.یک ویروس پست الکترونیکی معمولا خواص یک کرم را داراست زیرا خود را از یک سیستم به سیستم دیگر منتقل میکند،ولی با این وجود ما به آن یک ویروس میگوییم زیرا برای انتقال به یک واسطه انسانی نیاز است. یک کرم به طور فعال به دنبال آلوده کردن سیستمهای دیگر است و هر ماشینی که فعال میشود خود به عنوان یک پایگاه داده فعال برای حمله به ماشینهای دیگر به کار میرود. برنامههای مربوط به کرمها، از ارتباطات شبکهای برای انتقال از یک سیستم به سیستم دیگر استفاده میکنند.همینکه یک کرم شبکه در در سیتم فعال گردید،می تواند به صورت یک ویروس یا باکتری عمل کرده یا یک اسب تروا در سیستم وارد کرده یا به هر میزان عملیات ویروسی یا مخرب انجام دهد. یک کرم شبکه همان خصوصیات ویروس کامپیوتری را از خود نشان میدهد:یک فاز نهفته،یک فاز شروع به فعالیت و یک فاز اجرا
خرگوش
به برنامهای اطلاق میشود که به سرعت تکثیر میگردد . به علت همین سرعت بالا در تکثیر به آن باکتری نیز گفته میشود. دو نوع خرگوش وجود دارد : • نوع اول Fork Bomb میباشد که به مصرف منابع سیستم نظیر فضای موجود در هارد دیسک میپردازد. در حقیقت یک عمل مشخص را به طور مداوم (حلقه بینهایت) آن قدر تکرار میکند که سیستم را از کار میاندازد. • نوع دوم در حقیقت یک نوع کرم محسوب میشود که به سرعت در شبکه منتقل میشود ولی در هر انتقال از یک ماشین به ماشین دیگر ، نسخه موجود در ماشین اول را پاک میکند.
جاسوس
این برنامه به صورت غیر مجاز یک سری اطلاعات سیستم هدف را جمع آوری کرده و آنها را به سیستم دیگر منتقل میکند. این اطلاعات میتوانند شامل موارد زیر باشند : اطلاعات کاربری مانند نام کاربر و کلمه عبور آدرسهای Email که بعدها میتوانند برای فرستادن Spam مورد استفاده قرار گیرند. اطلاعات مالی مانند شماره حسا ب بانکی و شماره کارت اعتباری. مجوز استفاده از نرمافزار
Adware
این برنامه عملکردی شبیه به جاسوس دارد با این تفاوت که برای مقاصد تجاری نوشته میشوند . بدین معنی که اطلاعاتی را از سیستم مقصد جمع آوری میکنند که به بهبود روشهای بازاریابی محصولات خود کمک میکنند . حتی میتوانند منجر به بازشدن صفحات تبلیغی توسط مرورگر اینترنت کامپیوتر مقصد گردند. این تکنیک را بسیاری از سایتهای تجاری برای جمع کردن مشتری استفاده میکنند از این همه دفعاتی که صفحهٔ یک سایت باز شود یک بار کاربر به سراغ آن سایت رفته و از اطلاعات ان استفاده میکند.
هانی پات
هر سال به تعداد هکرها و نفوذگران به سرورها و شبکههای اینترنتی اضافه میشود و هر روز اطلاعات با ارزشی از قبیل شمارههای حساب بانکی، شمارههای کاربری، پسوردها و ... دزدیده، خسارتهای مالی اعتباری زیادی به شرکتهای بزرگ وارد میشود. در این راستا برنامه نویسان ماهر تصمیم گرفتند جلوی حملات را بگیرند و هکرها را منحرف کنند. اطلاعات نادرست و گمراه کننده بهترین طعمه برای فریب هکر هاست. پس برنامه نویسان و دانشمندان سختافزار بعد از تلاش بسیار توانستند برنامهای طراحی کنند که نفوذگران را کمراه کرده و به دام میاندازد. این برنامه با دادن اطلاعات نادرست به هکر، باعث میشود هکر فکر کند که به اطلاعات مطلوب دست یافته و کار تمام شدهاست.
هانی پات یک منبع سیستم اطلاعاتی میباشد که بر روی خود اطلاعات کاذب و غیر واقعی دارد و با استفاده از ارزش و اطلاعات کاذب خود سعی میکند اطلاعات و فعالیتهای غیر مجاز و غیر قانونی بر روی شبکه را کشف و جمع آوری کند. به زبان ساده هانی پات یک سیستم یا سیستمهای کامپیوتری متصل به شبکه و یا اینترنت است که دارای اطلاعات کاذب بر روی خود میباشد. از عمد در شبکه قرار میگیرد تا به عنوان یک تله عمل کرده و مورد تهاجم یک هکر یا نفوذگر قرار بگیرد. با استفاده از این اطلاعات آنها را فریب داده و اطلاعاتی از نحوهٔ ورود آنها به شبکه و اهدافی که در شبکه دنبال میکنند، جمع آوری میکند. هانی پاتها به دو دلیل استفاده میشوند : اول این که نقاط ضعف سیستم را بشناسیم دلیل دوم جمعآوری اطلاعات لازم برای تعقیب و ردگیری نفوذگران است.
نتیجه گیری و جمع بندی
با توجه به آنچه گفته شد در بین کدهای مخرب روت کیت از همه قویتر است . کدهای مخرب دیگر با توجه به کاری که در سیستم انجام میدهند و تاثیراتی که بر جای میگذارند شناخته و توسط آنتی ویروسها از بین میروند اما روت کیت با تغییر در عملکرد مؤلفههای اصلی سیستمعامل ،خود را پنهان کرده و کسی قادر به تشخیص آن نمیباشد. روت کیت با به وجود آوردن رخنههایی در سیستمعامل راه را برای سایر کدهای مخرب باز میکنند یعنی دیگر هیچ نیازی به برنامههای کاربردی مانند BO۲K برای حمله نیست.ولی میتوان از هانی پات برای جلوگیری از نفوذ به شبکه استفاده کرد.
* بمب منطقی
* اسب تروجان
* درب پشتی
* ویروس
* کرم
* خرگوش
* جاسوس
* Adware
* روت کیت
که هر کدام را جداگانه بررسی میکنم:
بمب منطقی
یکی از قدیمی ترین انواع تهدیدهای نرمافزاری که قبل از ویروسها و کرمها وجود اشت و هم اکنون نیز به کار گرفته میشود بمب منطقی است. بمب منطقی به صورت یک کد در برنامه قانونی تعبیه شده و طوری تنظیم میگردد که در صورت حصول شرایط خاصی منفجر شود. این شرایط خاص که میتوانند بمب را منفجر کنند عبارتند از حضور یا عدم حضور یک فایل خاص، روز خاصی از هفته یا تاریخ مشخصی از سال و یا حتی هنگام استفاده فرد مشخصی از حساب شخصی. این برنامهها از دو قسمت تشکیل شدهاست : ۱- بدنه : بدنه به معنی عملی است که این برنامه انجام میدهد . این عمل هر چیزی میتواند باشد وبر مبنای تصمیم نویسنده برنامهاست ولی باید یک عمل مخرب باشد که در دسته بندیهای کدهای مخرب جای گیرد . ۲- راه انداز : راه انداز ، شرط منطقی برای کنترل اجرای برنامهاست بدین معنی که اگر این شرط فراهم آمده باشد بدنه برنامه اجرا میشود . برای نمونه این شرط میتواند یک شرط محلی (Local condition)باشد یعنی بمب منطقی برای اجرا مشخصههای از سیستم مقصد (قربانی) را بررسی میکند مانند زمان، عملیات ورود کاربران به سیستم .
اسب تروجان
تقریبا همه ما این داستان را شنیدهایم که وقتی سربازان یونانی شهر تروی را محاصره کردند تا مدتهای زیادی نتوانستند بدلیل حفاظت شدیدی که از دیوار شهر میشد،به درون شهر راه پیدا کنند و ماهها پشت دروازه شهر به محاصره ادامه دادند بدو آنکه موفق به فتح آن شوند.سرانجام برای نفوذ به شهر و شکستن محاصره به نقشهای که دختر فرمانده کشیده بود عمل کردند . آنها یک اسب چوبی بسیار عظیم ساختند و آن را به عنوان هدیه در جلوی دروازه شهر گذاشته و دور دست پنهان شدند.ساکنبن شهر غافل از اینکه درون اسب جنگجویان پنهان شدند آن را به داخل شهر خود آورده و به مناسبت ختم محاصره به جشن پرداختند .نیمه شب در حالی که اهالی شهر خسته و خواب الود از پا افتاده بودند جنگجویان ار اسب پیاده شده و دروازه شهر را گشودند و شهر را فتح کردند.هزاران پیش پس از این واقعه و در عصر حاضر بار دیگر این داستان تکرار میشود.البته در دنیای شبکههای کامپیوتر و آن هم نه به صورت افسانهای بلکه کاملا حقیقی و مخرب! اسب تروجان یک برنامه آلوده به کدهای اجرایی است که غالبا فریبنده یا کاملا معمولی دارند.این برنامهها پس از آنکه به دست خود کاربر برروی ماشین اجرا میشوند و همانند یک سرویس دهنده ،کنترل و هدایت آن ماشین را در اختیار نفوذ گر قرار میدهند.از آن به بعد نفوذگر است که تصمیم میگیرد که با آن ماشین چه کار کند.دادههای حیاتی مثل کلمات عبور را بدزدد یا فایلهای او را کاملا نابود کند یا آنکه از ماشین به عنوان یک قربانی برای حملات بعدی شبیه حملات DDos استفاده کند. این برنامهها در حقیقت برنامههایی هستند که به ظاهر یک عمل مفید و معمول انجام می دهند ولی در واقع به صورت پنهانی عامل اجرای یک عمل مخرب در سیستم مقصد خواهند بود. یک مثال برای اسب تروجان میتواند برنامهای باشد که نام کاربر و کلمه عبور را میرباید . کاربر که تصور میکند برنامه همان برنامه مفید میباشد آن نام کاربری و کلمه عبور را وارد میکند . اما تروجان مقادیر وارد شده را بعد از وارد کردن کاربر میرباید سپس یک پیغام مبنی بر خطای ورود اطلاعات به کاربر برمیگرداند. کاربر نیز دوباره اطلاعات را وارد میکند و برنامه ورود به سیستم اصلی اجرا میشود . کاربر بدون آنکه بفهمد نام کاربری و رمز عبور را به برنامه مخرب دادهاست !
قابلیتهای اسب تروای BO۲K
در بین تمام اسبهای تروای شناخته شده، BO۲Kدارای ویژگیهای ممتازی است که ان را از میان صدها نوع اسب تروا برجسته میکند .کارهایی که تنجام میدهد عبارتند از:
•عملیات روی پروسهها: سرویس دهنده BO۲K میتواند فهرست پروسههای در حال اجرا روی ماشین قربانی را به دست آورده و در اختیار نفوذگر قرار بدهد، سپس به دلخواه او هر یک از این پروسهها را از بین ببرد یا پروسه جدیدی را اجرا نماید. •تغییر در مسیر بستهها: BO۲K قادر است از تمام بستههایی که به ماشین قربانی میرسد، یک نسخه تولید کرده وآن را برای ماشین نفوذگر ارسال میکند.به این نحو نفوذگر قادر به استراق سمع خواهد بود. •تغییر مسیر برنامهٔ کاربردی: با این قابلیت BO۲K قادر است هر برنامه کاربردی را در ماشین قربانی اجرا کند تا به یک شماره پورت تعیین شده توسط نفوذگر گوش بدهد. بطورمثال او قادر است برنامه Telnet یا نت کت را روی ماشین قربانی اجرا کند. •کنترل ابزارهای چند رسانهای: با استفاده از BO۲K، نفوذگر قادر است بطور همزمان جریان تصاویر لحظه به لحظه صفحه ماشین قربانی را تماشا کند.در ضمن حرکت مکان نمای موس و فشار دکمههای صفحه کلید را تحت نظارت خواهد داشت.البته این قابلیتهای BO۲K از طریق نصب یک plug-in به نام BOPeep در اختیار او قرار میگیرد. plug-inهای دیگری هم هستند که با استفاده از آنها BO۲K قادر است دوربینهای قربانی را بکار بیندازد و تصاویر آن را برای نفوذگر ارسال نماید. • HTTP File Server: یکی از قابلیتهای تکنیکی BO۲K آنست که میتواند ماشین قربانی را تبدیل به یک سرویس دهنده سادهٔ HTTP نماید! برای همین نفوذگر بدون آنکه نیاز به هیچ نرمافزار خاصی داشته باشد میتواند با یک مرورگر عادی فایلهایی را از روی ماشین قربانی به ماشین خود منتقل کند.
آلوده شدن ماشینها به BO۲K از طریق کنترلهای Active X
کنترلهای Active X تکنولوژی خاصی هستند که توسط مایکروسافت ابداع شدند و به منظور مبادله کدهای اجرایی بین سرویس دهده وب و مرور گر کاربر نوشته میشود. در حقیقت Active X حاصل رقابت شرکت مایکروسافت با شرکت سان بود. مایکروسافت کنترلهای Active X را برای اجرا در مرورگر بگونه ای ارائه کرد که تمام قابلیتهای یک برنامه معمولی را داشته باشد، یعنی از طریق ارسال کنترلهای Active X هر کاری میتوان روی ماشین کاربر انجام داد البته برای حفط امنیت ، مایکروسافت کنترلهای Active X را با امضای دیجیتالی خاصی عرضه کرد. مرورگر وب قبل از اجرای یک کنترل Active X آن را احراز هویت میکند و در صورتی که سلامت آن تأیید شد آن را اجرا میکند .بسیاری از کاربران به دلیل مزاحمتهای مکرری که مرورگر در هنگام تأیید و احراز هویت این کدهای اجرایی به وجود آورده، در مرورگر خود گزینه بررسی هویت کنترلهای Active X را غیر فعال کردند که بسیار خطرناک است، چرا که یک کنترل Active X میتواند آلوده به یک سرویس دهنده اسب تروا باشد و با اجرا در مرورگر قربانی، به سرعت نصب خواهد شد.
درب پشتی
به هر مکانیزم و روشی که منجر به عبور یا در اصلاح دورزدن پروسه امنیتی سیستم مقصد شود و از این طریق موجب دسترسی نفوذگر به منابع سیستم گردد درب پشتی گویند . نمونههایی از درب پشتیها در زیر توضیح داده شدهاند: •تغییر در سطح دسترسی محلی : این نوع درپشتی میتواند یک حساب کاربری معمولی را به حساب کاربری Root یا Administrator که همان کاربر اصلی سیستم است تبدیل نماید
•اجرای فرمانهای منفرد از راه دور : نفوذگر میتواند با ارسال پیغام به سیستم مقصد یک تک فرمان را توسط درب پشتی در ماشین هدف اجرا نماید و نتیجه اجرای فرمان به نقوذگر برگردانده شود. •دسترسی به یک سطر فرمان از سیستم هدف از راه دور: این نوع با نام Remote Shell شناخته میشود . دراین روش نفوذگر به جای اجرای تک فرمانهایی در سیستم مقصد میتواند مجموعهای فرمانها را به صورت موازی بر روی سیستم هدف اجرا نماید. به صورت ساده میتوان گفت که گویی کیبورد سیستم مقصد در اختیار نفوذگر میباشد و از آن طریق عملیات دلخواه خود را انجام میدهد. •دسترسی از راه دور به سیستم مقصد از طریق برنامههای واسط گرافیکی : درب پشتی علاوه بر دسترسی به سطر فرمان اطلاعاتی نظیر حرکت موس ، باز وبسته شدن پنجرهها و امکان کنترل آنها را در اختیار نفوذگر قرار میدهد. البته از درب پشتیها برای مقاصد قانونی هم استفاده میشود مثلا برنامه نویسان برای اشکا ل زدایی از برنامههای سرویس دهنده شبکه با استفاده از دربهای پشتی در زمانی که برای احراز هویت یعنی شناساندن خود به عنوان کاربر مجاز به سیستم ، نیاز است صرفه جویی میکنند.
نت کت: در پشتی برای هر سیستمعامل سازگار با یونیکس
استفاده از نت کت برای باز کردن رخنه عبور در سیستمعامل است. با اجرای نت کت روی ماشین قربانی ،یک راه ساده و شفاف برای مبادله داده بین نفوذگر و قربانی ایجاد میشود. کدهای برنامه نت کت به صورت رایگان وباز در اختیار است.نفوذگر برنامه نت کت را با گزینه GAPING_SECURITY_HOLE ترجمه میکند . درج این گزینه موقع ترجمه آن در خط یک برنامه دیگر باعث میشود تا نت کت بتواند در هنگام برقراری ارتباط یک برنامه دیگر را اجرا کرده و دادههای دریافتی را به آن برنامه هدایت کند.
درهای پشتی پنهان شده در اسب تروا
اسب تروا برنامهای است که خود را همراه یک برنامه مفید وارد سیستم میکند و درپشتی ابزاری است که راه ورود به سیستم را خارج از عرف معمول میسر میسازد.برای یک نفوذگر پیدا کردن راهی که به طور مستقیم درپشتی را روی ماشین قربانی اجرا کند دشوار است و گاهی به تکنیکهای پیچیدهای مانند سریز پشته نیازمند است.ادغام یک در پشتی درون یک اسب تروا تکنیکی است که کاربر با دست خودش راه ورود به سیستم را برای دشمنان باز میکند. اسبهای تروا در دو دسته تقسیم بندی میشوند: • اسبهای تروا در سطح برنامههای کاربردی • اسبهای تروا در سطح سیستمعامل یا روت کیت
روت کیتهای معمولی
اسبهای تروا (مثل Sub۷,Bo۲k) و درهای پشتی (نت کت) برنامههای مستقلی هستند که نفوذگر آن را روی ماشین قربانی ارسال و اجرا مینماید. با توجه به استقلال این برنامهها کشف و آشکارسازی آنه چندان دشوار نیست (استقلال اسبهای تروا به این معناست که مثل برنامههای عادی دیگر اجرا میشود.) روت کیتها بسیار خائنانه تراز اسبهای تروا عمل میکنند، با دستکاری و تغییر در عملکرد مؤلفههای اصلی سیستمعامل، آنها را دگرگون کرده و راه حمله نفوذگر را از طریف رخنههایی در که در سیستمعامل آمده باز میکنند. بعد از آلوده شدن سیستمعامل، هرگاه ماشین قربانی بوت شود سیستمعامل راه نفوذگران را کاملا باز میکند. یعنی دیگر نیازی به اجرای هیچ برنامه کاربردی ندارد. سابقه تاریخی روت کیت به ابتدای دههٔ نود بر میگردد.در این سالها گروهای زیر زمینی و حرفهای نفوذگران بخشهایی از سیستمعامل را دستکاری کرده و آنها را از طریق محیط IRC منتشر کردند.با گسترش اینترنت و توسعه نرمافزارها وسیستمهای عامل، روت ک یتها نیز خطرناک تر شدند. امروزه روت ک یتها بگونهای پیاده سازی میشوند که در کمتر از ۱۰ ثانیه منتشر بشوند و خودشان را به طور خودکار نصب کنند.
روت کیتهای معمولی چه کارهایی میتوانند انجام دهند؟
در این بخش بررسی میکنیم وقتی که بخشی از مؤلفههای سیستمعامل توسط روت کیتها دستکاری و آلوده میشوند چه اتفاقی میافتد و چه راهی برای نفوذ باز میشود؟ حساسترین مؤلفهای که در سیستمعاملهای مبتنی بریونیکس در معرض خطر است برنامه اجرایی /bin/login است که ورود کاربران به سیستم را نظارت میکند. وقتی شما در محیط یونیکس یا لینوکس اقدام به ورود در سیستم مینمایید، برنامه /bin/login اجرا میشود. برنامه /bin/login مشخصه شناسایی کاربر و کلمه عبور را دریافت کرده و با مراجعه به فایل حسابهای کاربری ، کاربر را احراز هویت میکند.اگر در این فایل برای کاربر یک حساب و کلمه عبور تعریف شده باشد، به او مجوز عبور داده میشود. روت کیت شدن سیستمعامل به این معنا است که نفوذگر به نحوی برنامهٔ تحریف شده را با برنامه اصلی جابه جا میکند .این برنامه دستکاری شده رخنه نفوذ نام دارد،به نحوی که اجازه ورود با عالیترین مجوز را فراهم میکند.یهنی حتی اگر مسئول آن سیستم کلمه عبور خود را عوض کند یا کل فایل کلمات عبور را تغییر بدهد بازهم راه عبور نفوذگر باز خواهد بود، زیرا برنامه /bin/login به گونهای دستکاری شده که اصولا مراحل اجرای طبیعی احراز هویت برای نفوذگر اجرا نخواهد شد.
روت کیتهای معمولی برای استراق سمع
وقتی یک نفوذگر از طریق اسب تروا، در پشتی یا روت کیت، نفوذ خود را به سیستم سازماندهی میکند برای گسترش این نفوذ به ماشینهای دیگر اقدام به نصب نرمافزارهای اسنیفر برای استراق سمع دادههای دیگران میکند. مهمترین اطلاعاتی که نفوذگر به دنبال آنهاست کلمات عبور میباشد.اکثر نفوذگران بلافاصله بعد از فعال شدن روت کیت یک نرمافزار ساده برای استراق سمع بر روی ماشین قربانی نصب و اجرا میکنند. برای مثال با نصب یک ابزار ساده استراق سمع، کارکترهایی که در ابتدای یک نشست مثل Telnet,FTP,HTTP مبادله میشوند را ربوده و در یک فایل محلی ذخیره میکنند.
کثیف ترین نوع روت کیت: روت کیتهای سطح هسته سیستمعامل
روت کیتهای خطرناک تری هم وجود دارند که قلب سیستمعامل یعنی هستهٔ مرکزی را هدف قرار میدهند. اگر هستهٔ مرگزی سیستمعامل دستکاری و تحریف شده باشد دیگر هیچ ابزاری قادر به کشف آن نخواهد بود. زیرا ابزارهایی مانند Tripwire متکی به هستهٔ سیستمعامل هستند؛ هستهای که خودش آلودهاست اجرای فرمان نخواهد کرد. امروزه گروههای زیر زمینی و حرفهای حملات خود را از لایه کاربر به سطح هستهٔ سیستمعامل معطوف کرده و برای انواع محیطهای سازگار با یونیکس و window NT/۲۰۰۰ برنامه روت کیت نوشتهاند. هستهٔ سیستم عامال اولین بخشی است که در حافظه بار میشود و کنترل سیستم را به دست میگیرد. تمام دسترسیها به ابزار شبکهای،حافظه، دیسک و منابع سیستم تحت نظارت و کنترل دقیق هسته انجام میشود. تمام دسترسیهای یک پروسه به منابع سیستم، باید از طریق هسته انجام شود.به عنوان مثال وقتی یک پروسه میخواهد فایلی را باز کند، این تقاضا توسط فراخوانیهای سیستمی به هسته تسلیم میشود و هسته پس از بررسی مجوزهای ان فایل، این عمل را انجام میدهد. در چنین محیطی دسترسی مستقیم به دیسک ممکن نیست و به روشهای سختافزاری جلوگیری میشود.روشهایی که روت کیتهای معمولی انجام میدهند در حقیقت فریب هستهٔ سیستمعامل است در حالیکه روت کیتهای سطح سیستمعامل، هسته را بگونهای تغییر میدهند که عملیات هسته پنهانی در اختیار نفوذگر قرار بگیرد. ۶-۱-
توانائی تغییر مسیر اجرا
اولین کاری که یک هسته آلوده انجام میدهد آنست که تمام فراخوانیهای سیستم که از پروسهها به هسته میرسند را دریافت کرده و برخی از آنها را بطور غیرواقعی اجرا میکند. بعنوان مثال یک پروسه کاربر از هسته تقاضا میکند تا برنامه یا پروسهای با نام الف را اجرا کند. هسته، این تقاضا را پذیرفته و وانمود میکند که الف را اجرا کرده در حالی که بجای الف برنامه ب را اجرا نمودهاست، (ب در خدمت نفوذگر است) به این عمل «تغییر مسیر اجرا » گفته میشود. توانایی در تغییر مسیر اجرای برنامهها به نفوذگر اجازه میدهد تا سیستم قربانی را بدون آنکه متوجه چیزی شود، به نحو دلخواه تنظیم کند. حتی اگر قربانی از روشهای پیچیده رمزنگاری و امضاهای دیجیتالی برای حفظ امنیت دادههای خود استفاده کرده باشد. ۶-۲- مخفی نگاه داشتن فایلها در سطح هسته هسته آلوده، بجای اجرای برنامه /bin/login مثلاً برنامه /bin/backdoorlogin را اجرا میکند تا نفوذگر بتواند به سیستم وارد شود. شاید بهنظر برسد که شما با دیدن فهرست فایلهای درون شاخه /bin، بسادگی متوجه حضور برنامهای با نام backdoorlogin خواهید شد در حالیکه اینچنین نیست. روت کیتهای سطح هسته برای این مشکل هم چاره اندیشیدهاند و آن هم مخفی نگاه داشتن فایلهای مورد نظر نفوذگر است. این هستههای آلوده فقط فهرستی از فایلها را به کاربر نشان میدهند که نفوذگر اجازه داده باشد. برخی از شاخهها و فایلها به هیچوجه دیده نخواهند شد و کاربر اجازه دسترسی و اجرای آنها را ندارد.
مخفی نگاه داشتن پروسهها در سطح هسته
یکی دیگر از قابلیتهای روت کیتهای سطح هسته، توانایی آنها در مخفی نگاه داشتن پروسههایی است که اکنون روی سیستم در حال اجرا شدن هستند. بعنوان مثال وقتی برنامهای مثل نت کت اجرا میشود نام آن در فهرست پروسههای در حال اجرا قرار میگیرد. روت کیتهای سطح هسته، بگونهای هسته سیستمعامل را دستکاری میکنند که اسامی پروسههای مورد نظر نفوذگر در فهرست پروسههای در حال اجرا به کاربر اعلام نشود. لذا این پروسهها در عین فعالیت هیچ علامتی از حضور بر روی سیستم، (که منجر به کشف آنها میشود) ندارند.
مخفی نگاه داشتن ارتباطات شبکهای در سطح هسته
در شرایط عادی وقتی پروسهای به یک شماره پورت TCP یا UDP گوش میدهد، میتوان از طریق اجرای فرمان netstat -na آنرا آشکار کرد. فرمان netctat در محیطهای سازگار با یونیکس و انواع ویندوز حمایت میشود. این دستور متکی به هسته سیستمعامل است،یعنی هسته سیستمعامل تعیین میکند که کدام پورت فعال و باز است. اگر نفوذگر یک ابزار «در پشتی » مثل نت کت روی ماشین قربانی نصب کرده باشد، شماره پورتی که آن برنامه در حال گوش دادن است، لو خواهد رفت. روت کیتها میخواهند این موضوع پنهان بماند و شماره پورتهای مورد نظر نفوذگر در خروجی ظاهر نشود. هسته سیستمعامل بگونهای دستکاری میشود که بتواند در هنگام اجرای برنامههایی مثل netstat دروغ گفته و تعدادی از پورتهای باز را بسته اعلام کند.
چگونه روت کیتهای سطح هسته پیاده سازی میشوند؟
بسته به نوع سیستمعامل، روشهای متفاوتی یرای دستکاری هسته سیستمعامل وجود دارد. در اکثر سیستمهای عامل سازگار با یونیکس، راحت ترین راه دستکاری هسته، استفاده از قابلیتی است که LKM نامیده میشود. LKM قابلیتی است که اجازه میدهد برخی از ماجولهای هسته سیستمعامل طبق دلخواه یک برنامه نویس طراحی شده و در هنگام لزوم به درون هسته بار شود.بالاخص در لینوکس و سولاریس، از مکانیزم LKM در عالی ترین سطح برای گسترش و توسعه سیستمعامل استفاده میشود. . اگر قرار باشد برای پشتیبانی از یک ابزار جدید، هسته سیستمعامل از نوع بازسازی شود، سازندگان ابزار و ادوات سختافزاری و همچنین کاربران با مشکلات زیادی مواجه میشوند. در حالیکه میتوان از LKM بهره گرفت و ماجولی برای پشتیبانی از آن محصول طراحی کرد تا بتواند در حین اجرا به درون هسته بار شود. در حقیقت این ماجولها هسته سیستمعامل را توسعه میدهند و چون سطح دسترسی این ماجولها (به عنوان بخشی از هسته) در عالیترین سطح است لذا عملکرد بد این ماجولها میتواند، کل هسته را مختل کند و سیستم ناپایدار شود. ماجولهائی که به روش LKM بدرون هسته لینوکس یا سولاریس بار میشوند میتوانند به هر منبعی در سیستم دسترسی داشته باشند. تعداد روت کیت هائی که با مکانیزم LKM پیاده سازی شدهاند بسیار زیادند(بالاخص در لینوکس و سولاریس). البته راههای دیگری نیز برای دستکاری هسته سیستمعامل وجود دارد . این روشها برای سیستمعامل Windows NT که از LKM حمایت نمیکند کاربرد دارد و مبتنی بر patch هائی است که عملکرد هسته را تغییر میدهند.
پیشگیری از آلودگی روت کیتهای سطح هسته
با توجه به آنکه روت ک یتهای سطح هسته خطرناک ترین نوع آلودگیهای سیستمعامل و یک شکاف امنیتی وحشتنبک محسوب میشوند، لذا باید اقدامات پیشگیرانه جدی در سیستم خود اعمال نمایید هیچکس جز مسئول سیستم، دارای بالاترین سطح مجوز نباشد بررسی وجود روت کیتها با استفاده از تجربه و ذکاوت شخصی.
ابزارهای جستجوگر روت کیت
امروزه یکی از زمینههای فنی و پرطرفدار جبهه مبارزه با حملات، توسعه ابزارهای کشفهای سطح هستهاست. چرا که وقتی هسته سیستمعامل آلوده شد عملاً قلعه و پایگاه اصلی شما توسط دشمن فتح شدهاست و ابزارهای معمولی که به هسته وابستهاند ازکارآئی ساقط خواهند شد. بنابراین برای کشف روت ک یت به کمک یک هسته آلوده باید بسیار هوشمندانه عمل کرد زیرا میخواهید از سلاح دشمن بر علیه خودش استفاده کنید. یکی از ابزارهایی که در این خصوص معرفی شدهاست chkrootkit نام دارد که در آدرس زیر در دسترس میباشد: ftp.pangeia.br/pub/seg/pac
ویروس
ویروسها دستهای از کدهای مخرب هستند که مشخصه اصلی آنها خود همتا سازی هنگام اجرا به همراه برنامه میزبان میباشند . با این تعریف میتوان نتیجه گرفت برنامه ویروس دارای خاصیت انگلی است و همواره علاوه بر آسیب به سیستم نسخه یا نسخههایی از خود را تولید میکند. به برنامهای که کد ویروس به ان افزوده شده باشد برنامه آلوه میگویند. ویروسها عمل انتشار خود را برروی یک کامپیوتر و یا از طریق Floppy Disk ، USB ، CD-ROM و DVD-ROM برروی سیستمهای دیگر انجام میدهند. باید توجه داست که ویروسها قابلیت انتشار از طریق شبکه را ندارند.این قابلیت در دستهای دیگر از کدهای مخرب به نام کرم وجود دارد . به اولین نسل از ویروسها جرم گفته میشود . در حقیقت جرم اولین نسخه برنامه ویروس است که توسط برنامه نویس نوشته شده و بعد از اولین اجرا و قرار گرفتن در اولین برنامه میزبان ویروس شروع به تولید کدهای مشابه خود خواهد کرد. میتوان گفت اولین نسل ویروس با نسلهای دیگر متفاوت خواهد بود ویروسی که قادر به ایجاد نسخههای مشابه از خود نباشد بالقوه گفته میشود . این امر میتواند به دلایلی مثل بروز خطا در کد ویروس و یا مواجه شدن با نسخههایی از سیستمعامل که توسط نویسنده در نظر گرفته نشدهاند صورت گیرد.
کرم
این دسته برنامهها مشابه ویروسها دارای مشخصه اصلی خود همتا سازی هستند با این تفاوت که کرم خاصیت انگلی ندارد و انشار خود را از طریق شبکه انجام میدهد . یک کرم یک برنامهاست که میتواند خود را تکثیر کرده و کپیهای تکثیر شده را در عرض یک شبکه کامپیوتری از رایانهای به رایانه دیگر منتقل نماید.پس از ورود یه یک سیستم، کرم ممکن است فعال شده شروع به تکثیر نماید و مجددا انتشار بیابد.علاوه بر اتشار معمولا کرم کارهای ناخواستهای را انجام میدهد.یک ویروس پست الکترونیکی معمولا خواص یک کرم را داراست زیرا خود را از یک سیستم به سیستم دیگر منتقل میکند،ولی با این وجود ما به آن یک ویروس میگوییم زیرا برای انتقال به یک واسطه انسانی نیاز است. یک کرم به طور فعال به دنبال آلوده کردن سیستمهای دیگر است و هر ماشینی که فعال میشود خود به عنوان یک پایگاه داده فعال برای حمله به ماشینهای دیگر به کار میرود. برنامههای مربوط به کرمها، از ارتباطات شبکهای برای انتقال از یک سیستم به سیستم دیگر استفاده میکنند.همینکه یک کرم شبکه در در سیتم فعال گردید،می تواند به صورت یک ویروس یا باکتری عمل کرده یا یک اسب تروا در سیستم وارد کرده یا به هر میزان عملیات ویروسی یا مخرب انجام دهد. یک کرم شبکه همان خصوصیات ویروس کامپیوتری را از خود نشان میدهد:یک فاز نهفته،یک فاز شروع به فعالیت و یک فاز اجرا
خرگوش
به برنامهای اطلاق میشود که به سرعت تکثیر میگردد . به علت همین سرعت بالا در تکثیر به آن باکتری نیز گفته میشود. دو نوع خرگوش وجود دارد : • نوع اول Fork Bomb میباشد که به مصرف منابع سیستم نظیر فضای موجود در هارد دیسک میپردازد. در حقیقت یک عمل مشخص را به طور مداوم (حلقه بینهایت) آن قدر تکرار میکند که سیستم را از کار میاندازد. • نوع دوم در حقیقت یک نوع کرم محسوب میشود که به سرعت در شبکه منتقل میشود ولی در هر انتقال از یک ماشین به ماشین دیگر ، نسخه موجود در ماشین اول را پاک میکند.
جاسوس
این برنامه به صورت غیر مجاز یک سری اطلاعات سیستم هدف را جمع آوری کرده و آنها را به سیستم دیگر منتقل میکند. این اطلاعات میتوانند شامل موارد زیر باشند : اطلاعات کاربری مانند نام کاربر و کلمه عبور آدرسهای Email که بعدها میتوانند برای فرستادن Spam مورد استفاده قرار گیرند. اطلاعات مالی مانند شماره حسا ب بانکی و شماره کارت اعتباری. مجوز استفاده از نرمافزار
Adware
این برنامه عملکردی شبیه به جاسوس دارد با این تفاوت که برای مقاصد تجاری نوشته میشوند . بدین معنی که اطلاعاتی را از سیستم مقصد جمع آوری میکنند که به بهبود روشهای بازاریابی محصولات خود کمک میکنند . حتی میتوانند منجر به بازشدن صفحات تبلیغی توسط مرورگر اینترنت کامپیوتر مقصد گردند. این تکنیک را بسیاری از سایتهای تجاری برای جمع کردن مشتری استفاده میکنند از این همه دفعاتی که صفحهٔ یک سایت باز شود یک بار کاربر به سراغ آن سایت رفته و از اطلاعات ان استفاده میکند.
هانی پات
هر سال به تعداد هکرها و نفوذگران به سرورها و شبکههای اینترنتی اضافه میشود و هر روز اطلاعات با ارزشی از قبیل شمارههای حساب بانکی، شمارههای کاربری، پسوردها و ... دزدیده، خسارتهای مالی اعتباری زیادی به شرکتهای بزرگ وارد میشود. در این راستا برنامه نویسان ماهر تصمیم گرفتند جلوی حملات را بگیرند و هکرها را منحرف کنند. اطلاعات نادرست و گمراه کننده بهترین طعمه برای فریب هکر هاست. پس برنامه نویسان و دانشمندان سختافزار بعد از تلاش بسیار توانستند برنامهای طراحی کنند که نفوذگران را کمراه کرده و به دام میاندازد. این برنامه با دادن اطلاعات نادرست به هکر، باعث میشود هکر فکر کند که به اطلاعات مطلوب دست یافته و کار تمام شدهاست.
هانی پات یک منبع سیستم اطلاعاتی میباشد که بر روی خود اطلاعات کاذب و غیر واقعی دارد و با استفاده از ارزش و اطلاعات کاذب خود سعی میکند اطلاعات و فعالیتهای غیر مجاز و غیر قانونی بر روی شبکه را کشف و جمع آوری کند. به زبان ساده هانی پات یک سیستم یا سیستمهای کامپیوتری متصل به شبکه و یا اینترنت است که دارای اطلاعات کاذب بر روی خود میباشد. از عمد در شبکه قرار میگیرد تا به عنوان یک تله عمل کرده و مورد تهاجم یک هکر یا نفوذگر قرار بگیرد. با استفاده از این اطلاعات آنها را فریب داده و اطلاعاتی از نحوهٔ ورود آنها به شبکه و اهدافی که در شبکه دنبال میکنند، جمع آوری میکند. هانی پاتها به دو دلیل استفاده میشوند : اول این که نقاط ضعف سیستم را بشناسیم دلیل دوم جمعآوری اطلاعات لازم برای تعقیب و ردگیری نفوذگران است.
نتیجه گیری و جمع بندی
با توجه به آنچه گفته شد در بین کدهای مخرب روت کیت از همه قویتر است . کدهای مخرب دیگر با توجه به کاری که در سیستم انجام میدهند و تاثیراتی که بر جای میگذارند شناخته و توسط آنتی ویروسها از بین میروند اما روت کیت با تغییر در عملکرد مؤلفههای اصلی سیستمعامل ،خود را پنهان کرده و کسی قادر به تشخیص آن نمیباشد. روت کیت با به وجود آوردن رخنههایی در سیستمعامل راه را برای سایر کدهای مخرب باز میکنند یعنی دیگر هیچ نیازی به برنامههای کاربردی مانند BO۲K برای حمله نیست.ولی میتوان از هانی پات برای جلوگیری از نفوذ به شبکه استفاده کرد.
+ نوشته شده در دوشنبه چهاردهم تیر ۱۳۸۹ ساعت 7:30 توسط M V A
|