دسته بندی سایت
پیوند ها
فهرست مطالب
عنوان صفحه
1 مقدمه............................................................................................................................... 1
فصل اول:
1-1 انواع حملات ............................................................................................................... 1
1-1-1 حملات رد سرویس.................................................................................................. 1
1-1-2 حملاتی که به منظور بدست آوردن اطلاعات صورت ميگیرند....................................... 4
1-1-3 حملاتی که سرویسدهی روی شبکه را دچار مشکل ميکنند........................................... 4
1-2-امنیت پروتکلها............................................................................................................. 5
1-2-1 پیچیدگی سرویس .................................................................................................... 5
1-2-2 سوء استفاده از سرویس.............................................................................................. 6
1-2-3 اطلاعات ارائه شده توسط سرویس.............................................................................. 6
1-2-4 میزان دیالوگ با سرویسگیر......................................................................................... 6
1-2-5 قابلیت پیکر بندی سرویس ........................................................................................ 7
1-2-6 نوع مکانیزم احراز هویت استفاده توسط سرویس.......................................................... 7
فصل دوم:
2 فایروالهای packet- fkiter................................................................................................... 9
2-1 فيلترهاي stateless......................................................................................................... 9
2-1-1 کنترل بستهها بر اساس نوع پروتکل............................................................................. 9
2-1-2 کنترل بستهها بر اساس آدرس IP................................................................................ 9
2-1-3 کنترل بستهها بر اساس پورتهای TCP/UDP............................................................... 10
2-1-4 کنترل بستهها از روی سایر اطلاعات موجود در سرآیند............................................... 11
2-1-5 مشکلات فیلترهای استاندارد..................................................................................... 12
2-1-6 کنترل بستهها توسط سیستم عامل............................................................................... 13
2-2 فیلترهای stateful......................................................................................................... 13
2-3 مشکلات فیلترها.......................................................................................................... 14
فصل سوم:
3 NAT............................................................................................................................. 15
3- انواع ترجمه آدرس در NAT.......................................................................................... 17
3-1-ترجمه پویا................................................................................................................. 17
3-1-2 ترجمه ایستا............................................................................................................ 18
3-1-3 توزیع بار................................................................................................................ 18
3-1-4 افزونگی (Redundancy)........................................................................................... 19
3-2 مشکلات NAT........................................................................................................... 19
3-3 پراکسی...................................................................................................................... 20
3-3-1 عملکردهای امنیتی پراکسی....................................................................................... 21
3-3-2 پنهان کردن اطلاعات سرویسگیرها............................................................................ 22
3-3-3 بستن يک سري URL.............................................................................................. 22
3-3-4 کنترل کنترل محتویات بستهها.................................................................................... 22
3-3-5 اطمینان از سالم بودن بستهها..................................................................................... 23
3-3-6 کنترل روی دسترسیها............................................................................................. 23
3-4 تاثیر پراکسی در سرعت............................................................................................... 23
3-4-1 cache کردن............................................................................................................ 23
3-4-2 توزيع بار ............................................................................................................... 24
3-4-3 مشکلات پراکسی ................................................................................................... 24
3-5سیستمهای تهاجم یاب ................................................................................................. 26
3-5-1 سیستمهای تهاجم باب بر مبنای بازرسی.................................................................... 27
3-5-2 سیستمهای تهاجم یاب طعمه ................................................................................... 28
3-6 IP Filter..................................................................................................................... 29
3-6-1 نصب IP Filter روی Solaris.................................................................................... 30
3-6-2 پیاده سازی یک فیلتر با استفاده از IP filter................................................................. 30
فصل چهارم:
4 Snort............................................................................................................................. 36
4-1 مود Sniffer................................................................................................................. 37
4-2 مود Packet logger...................................................................................................... 38
4-3 مود تهاجم یاب شبکه................................................................................................... 39
4-3-1 فیلترهای BPF......................................................................................................... 40
4-3-2 فایل پیکربندی Snort .............................................................................................. 42
4-3-3 Perprocessorها ..................................................................................................... 43
4-3-4 قوانین تهاجم یاب................................................................................................... 45
4-3-5 ماجولهای خروجی................................................................................................. 45
4-4 SAINT...................................................................................................................... 47
4-4-1 فایل پیکربندی......................................................................................................... 48
4-4-2 خط فرمان.............................................................................................................. 52
4-4-3 فرمت بانک اطلاعاتی............................................................................................... 55
4-4-4 بانک اطلاعاتی Facts................................................................................................. 5
4-4-5 بانک اطلاعاتی all-hosts......................................................................................... 557
4-4-6 بانک اطلاعاتی todo................................................................................................ 57
4-4-7 بانک اطلاعاتی CVE............................................................................................... 57
4-4-8 آنالیز خروجی......................................................................................................... 57
منابع و مآخذ ..................................................................................................................... 60
1 مقدمه
این متن به بررسی انواع سیستمهای امنیتی و بررسی نقاط ضعف و قوت هر کدام ميپردازد. در این بخش مقدماتی در مورد امنیت پروتکها و انواع حملات بیان ميشود و بخشهای بعدی به بررسی دقیق انواع فایروال (فیلتر[1]، NAT [2]و پراکسی[3]) و سیستمهای تهاجم یاب[4] ميپردازد. سپس سه نمونه از نرم افزارهای مفید امنیتی Snort, IPF) و SAINT) معرفی ميگردد.
1-1 انواع حملات
در این قسمت یک سری از روشهای متدول برای جمله به شبکههای کامپیوتری توضیح داده ميشود و در مورد هر کدام مشخصات و نحوه شناسایی آن حمله بیان شده است. این حملات در چهار دسته عمده تقسیم بندی شده اند:
- حملات رد سرویس یا DoS[5]
- حملات استثماری[6]
- حملاتی که به منظور بدست آوردن اطلاعات صورت ميگیرند.[7]
- حملاتی که سرویسدهی روی شبکه را دچار مشکل ميکنند.[8]
1-1-1 حملات رد سرویس
این نوع حملات با ایجاد یک بار زیاد و غیر عادی روی سرورها باعث از کار افتادن سرویسهای ارائه شده توسط آنها ميشوند. از آنجا که انجام دادن این نوع حمله ساده است. لذا بیشتر متداول ميباشد. این قسمت بيشتر این حملات را توضیح ميدهد:
Ping of Death
این حمله از طریق بستههای ICMP صورت ميگیرد. حجم بستههای ICMP به 64KB محدود ميشود و بستههایی که در سر آیند آنها حجم بسته بیشتر از این مقدار بیان شده (در حالیکه نیست) ممکن است در سمت گیرنده مشکلاتی ایجاد کنند چون بسیاری از سیستم عاملها کنترل دقیقی روی بستههای معیوب ندارند. این نوع حمله نبستاً قدیمی است و امروزه تمام سیستم عاملها قادر به تشخیص آن ميباشند.
Teardrop
این حمله از طریق Fragmentهای IP صورت ميگیرد. یک Fragment شامل اطلاعاتی است که بیان ميکند چه قسمتی از بسته داخل آن قرار دارد. بسیاری از سیستمها ممکن است با گرفتن Fragmentهایی که متعلق به یک بسته بوده و با هم تناقض دارند (یک قسمت از بسته در دو Fragment قرار داشته باشد) دچار مشکل شوند. این نوع حمله نیز قدیمی است.
UDP Flooding
این حمله با استفاده از سرویسهای chargen , echo صورت ميگیرد. با فرستادن یک درخواست جعلی از طرف یک سرویس echo برای یک سرویس chargen ميتوان به راحتی حجم زیادی از ترافیک را روی شبکه ایجاد کرد.
SYN Fooding
این حمله با فرستادن SYN پروتکل TCP صورت ميگیرد. برای یک سرور دریافت یک بسته SYN به معنی گرفتن فضایی از حافظه برای آن ارتباط و فرستادن یک بسته ACK در پاسخ ميباشد. فضای حافظه تخصیص داده شده تا زمان timeout یا بسته شدن ارتباط باقی ميماند. اگر تعداد زیادی بسته SYN فرستاده شود موجب اتلاف قسمت عمده ای از حافظه ميشود، هر چند فرستادن بستههای ACK نیز زمان و پردازش زیادی لازم دارد. این حمله در نهایت سرور را به وضعیتی ميکشاند که قادر به قبول ارتباط جدید نمی باشد. از آنجا که فرستنده بسته SYN در این حمله منتظر پاسخ نمی ماند ميتواند بستهها را قبل از فرستاندن تغییر دهد و هر بار یک آدرس تصادفی بجای آدرس فرستنده آنها قرار دهد. در این صورت تشخیص حمله بسیار مشکل ميشود.
Land Attack
این حمله شبیه SYN Fooding ميباشد. در این حمله یک بسته SYN برای سرور ارسال ميشود که آدرس فرستنده و گیرنده آن هر دو آدرس خود سرور است. سرور پس از دریافت این بسته پاسخ آن را برای خودش ميفرستد که نتیجه ای مشابه SYN Fooding به همراه دارد.
Smurf Attack
این حمله از طریق بستههای ICMP صورت ميگیرد. در این حمله یک بسته ICMP Reqest داخل شبکه فرستاده ميشود که آدرس reply آن آدرس broadcast شبکه ميباشد. چنین بستههایی معمولاً ترافیک بالایی داخل شبکه ایجاد ميکنند.
Fragle Atack
این حمله شبیه Smurf Attack است ولی بجای بستههای ICMP از بستههای UDP استفاده ميکند.
E-mail Bombs
این نوع حمله شامل فرستادن نامههای بزرگ بطور مداوم برای یک سیستم است. از آنجا که سمت فرستنده و گیرنده دارای بار نسبتاً مساوی هستند از این روش کمتر ميتوان بعنوان یک DoS واقعی استفاده کرد.
Malfrmed Attacks
بسیاری از سرویسها هنگام دریافت بستههایی که دارای خطا ميباشند با مشکل مواجه ميشوند چون کنترل دقیق روی بستههای معیوب ندارند و این بستهها باعث ایجاد مشکل در برنامه سرور ميشوند. یک تقسیم بر صفر یا سرریز بافر ميتواند سرور را از کار بیندازد یا سبب دسترسی افراد غیر مجاز به آن شود. هر سرویسی ممکن است در معرض این حمله قرار بگیرد چون در هر لحظه امکان پیدا شدن یک bug در برنامه مربوطه وجود دارد. بیشترین مواردی که از این حمله مشاهده شده بر روی سرویسهای وب و پست الکترونیکی بوده است.
حملات استثماری
این نوع حملات بیشتر برای بدست آوردن کنترل مستقیم روی یک ماشین انجام ميشود. مهمترین این حملات از قرار زیر ميباشند:
حدس زدن Password
بسیاری از سرورها برای ارائه سرویس نیاز به احراز هویت کاربران از طریق Password دارند. برنامههایی وجود دارند که یک سری کلمات (اسامی، کلمات dictionary، اعداد، ...) را بطور اتوماتیک تست ميکنند تا به یک Password معتبر دسترسی پیدا کنند.
Trojan Horse
Trojan Horse به برنامه ای گفته ميشود که اغلب توسط یک مهاجم روی سیستم نصب ميشود و اطلاعاتی در مورد سیستم به خارج از شبکه ميفرستد یا راهی برای دسترسی غیر مجاز به سیستم فراهم ميکند که به آن backdoor ميگویند. Trojan Horse معمولاً برنامه کوچکی است که به سادگی نصب ميشود و از دید کاربر نیز پنهان ميماند.
Buffer Overrun
اکثر سرورها برای رسیدگی به درخواستهایی که از شبکه دریافت ميکنند فضایی از حافظه را به عنوان بافر اختصاص ميدهند. اغلب برنامهها حجم این بافر را به یک مقدار ثابت محدود ميکنند یا به بستههای رسیده اطمینان کرده و اندازه بستهها را از روی اطلاعات سر آیند آنها استخراج ميکنند. این پدیده معمولاً زمانی اتفاق ميافتد که طول یک بسته از مقدار در نظر گرفته شده برای بافربیشتر باشد یا اطلاعات غلط در مورد طول خود به برنامه بدهد. برای مثال اگر طول یک بسته 256 بایت باشد ولی در اطلاعات غلط در مورد طول خود معرفی شده باشد 240 بایت بسته داخل بافر قرار ميگیرد و 16 بایت اضافی در یک مکان دیگر از حافظه نوشته ميشود و منجر به از بین رفتن اطلاعات آن قسمت حافظه ميشود. در این حالت با قرار دادن کد ماشین در 16 بایت آخر بسته ممکن است بتوان این کد را روی سرور اجرا کرده کنترل سرور را بدست آورد.
1-1-2 حملاتی که به منظور بدست آوردن اطلاعات صورت ميگیرند
این نوع حملات هیچگونه صدمه ای به سیستم نمی زنند و تنها برای بدست آوردن اطلاعات جهت حملات بعدی مورد استفاده قرار ميگیرند. مهمترین اطلاعاتی که یک مهاجم ميتواند بدست آورد در مورد آدرس سیستمهای داخل شبکه، سیستم عامل روی آنها، پورتهای باز این سیستمها و کاربران روی آنها ميباشد. برای پیدا کردن آدرسهای داخل شبکه از نرم افزارهایی استفاده ميشود که برای یک دسته از آدرسها پیغام TCMP Request ميفرستد. با دریافت پاسخ این بستهها سیستمهای موجود در داخل شبکه شناسایی ميشوند و هر کدام از این آدرسها برای حملات بعدی مورد بررسی قرار ميگیرند. قبل از حمله باید اطلاعات خاصی در مورد هر سیستم بدست آورد که این اطلاعات ميتواند شامل سیستم عامل، پورتهای باز و کاربران معتبر روی آن سیستم باشد. برنامههایی تحت عنوان Port Scanner وجود دارند که ميتوانند با فرستادن بستههای خاصی به سیستم اطلاعاتی در مورد پورتهای باز، سرویسهای موجود روی سیستم و سیستم عامل آنها بدست بیاورند. Port Scannerها انواع مختلف دارند و بعضا از روشهایی استفاده ميکنند که به سختی قابل تشخیص ميباشند. برای تشخیص نام کابران روی سیستم نیز ميتوان از سرویسهایی نظیر Finger استفاده کرد. سرویسFinger در سیستم عاملهای مبتنی بر Unix اطلاعات مفیدی در مورد کاربران ارائه ميکند ولی از این سرویس برای پیدا کردن نام کاربران معتبر نیز ميتوان استفاده کرد.
1-1-3 حملاتی که سرویسدهی روی شبکه را دچار مشکل ميکنند
این نوع حملات بر روی سرورهای شبکه اعمال ميشود و آنها را وادار ميکند اطلاعات اشتباه به سرویسگیرها بدهند. این حملات معمولا راه را برای حملات بعدی باز ميکند. دو نمونه از این حملات عبارتند از:
DNS Cache Pllution
از آنجایی که سرورهای DNS هنگام رد و بدل کردن اطلاعات با سرورهای دیگر از مکانیزم امنیتی خاصی استفاده نمی کنند مهاجمین ميتوانند با دادن اطلاعات غلط به سرور DNS آنها را وادار کنند اطلاعات اشتباه به سرویسگیرها بدهند. سپس سرویسگیرها از همین اطلاعات غلط استفاده ميکنند. در این حالت بجای وصل شدن به یک سایت خاص ممکن است به سایت مهاجمین وصل شوند.
Email جعلی
تولید نامههای جعلی از طریق سرور پست الکترونیکی کار بسیار ساده است چون هیچ مکانیزم امنیتی خاصی برای احراز هویت کاربران استفاده نمی شود. این کار به سادگی پیگربندی اشتباه یک سرویسگیر ميباشد. با ارسال نامههای جعلی برای کاربران از طرف اشخاص مورد اطمینان آنها ميتوان باعث نصب یک Trojan Horse روی سیستم آنها، ارسال اطلاعات محرمان در پاسخ نامه، یا اتصال کاربران به یک سایت خاص شد.
1-2 امنیت پروتکلها
در این قسمت یک سری پروتکلهای متداول که بر پایه IP کار ميکنند از لحاظ امنیتی مورد بررسی قرار ميگیرند. از آنجا که هر کدام از این پروتکلها برای ارائه یک سرویس بکار ميروند، دو اصطلاح پروتکل و سرویس معمولاً بجای یکدیگر بکار ميروند. میزان آسیب پذیری یک سرویس یا پروتکل با پاسخ داده به سئوالات زیر مشخص ميشود:
- سرویس مربوطه چقدر پیچیدگی دارد؟
- این سرویس چگونه ميتواند مورد سوء استفاده قرار بگیرد؟
- چه اطلاعاتی در مورد شبکه توسط سرویس افشا ميشود؟
- چه مقدار دیالوگ با سرویسگیر انجام ميشود؟
- سرویس تا چه حد قابلیت پیکربندی و برنامه نویسی دارد؟
- چه سرویسهای دیگری بر پایه این سرویس قرار گرفته اند؟
- این سرویس چه مکانیزمی برای احراز هویت سرویسگیرها استفاده ميکند؟
1-2-1 پیچیدگی سرویس
سرویسهای پیچیده خیلی زودتر از سرویسهای ساده مورد تهاجم قرار ميگیرند. سرویس echo یک سرویس ساده است که تمام کاراکترهای ارسالی از طرف سرویسگیر را دوباره برای وی ميفرستد. این سرویس بیشتر برای مقاصد تست مورد استفاده قرار ميگیرد. در مقابل سرویس پست الکترونیکی یک سرویس پیچیده ميباشد که نامههای الکترونیکی را رد و بدل ميکند. بسیاری از سرویسهای مرتبط با این سرویس مانند IMAP, POP نیاز به احراز هویت کاربر قبل از ارائه سرویس به وی دارند، هر چند در مقابل سرویس SMTP نامهها را بدون توجه به فرستنده آنها (هر کاربری که باشد، حتی یک کاربر قلابی) ارسال ميکند. اگر اطلاعات مربوط به password کاربران افشا گردد، مکانیزم امنیتی و احراز هویت فریب داده شود، یا حتی خود سرویس به گونه ای مورد تهاجم واقع ميشود که اطلاعات محرمانه شبکه را به بیرون منتشر کند، هر کدام از این شرایط امنیت شبکه در معرض خطر بزرگی قرار گرفته است.
1-2-2 سوء استفاده از سرویس
یک سرویس ميتواند به خودی خود یک سرویس ساده و بی خطر باشد، ولی ميتواند در مقاصد مخرب نیز مورد استفاده قرار گیرد. سرویس chargen یک سرویس UNIX برای تولید مداوم کارکترهای ASCII ميباشد. این سرویس از آنجا که کاراکترهای تصادفی تولید ميکند برای تست نرم افزارهای شبکه یک ابزار قدرتمند ميباشد. این سرویس ميتواند به سادگی مورد سوء استفاده قرار گیرد. برای مثال فرض کنید که یک بسته SYN با آدرس فرستند تحریف شده برای این سرویس فرستاده شود. در مقابل سرویس سیل عظیمی از کاراکتر را برای کسی که آدرس وی بجای آدرس فرستند در بسته قرار دارد فرستاده خواهد شد. در این حالت ایجاد کننده این بار ترافیکی بدون اینکه هزینههای مصرف کرده باشد جریان بستهها را بین دو آدرس دلخواه ایجاد ميکند.
1-2-3 اطلاعات ارائه شده توسط سرویس
بعضی سرویسها در عمل بسیار ساده اند ولی ميتوانند برای شبکه خطرناک باشند. سرویس finger برای راحتی کاربران UNIX طراحی شده است. این سرویس یک سری اطلاعات در مورد accountهای موجود در سیستم ارائه ميکند. مهاجمین ميتوانند از این سرویس برای پیدا کردن accountهای فعال سیستم استفاده کنند. پیدا کردن نام یک account معتبر ميتواند نقطه شروع مناسبی برای حمله به سیستم باشد.
1-2-4 میزان دیالوگ با سرویسگیر
امن کردن یک سرویس با دیالوگ ساده به مراتب راحتتر از امن کردن سرویسی است که نیاز به دیالوگهای پیچیده با سرویسگیر دارد. برای مثال سرویس HTTP (در نسخههای اولیه و بدون در نظر گرفتن ASP, CGI و موارد مشابه) یک پروتکل ساده است که در آن سرویسگیر تقاضای یک سری منابع را به سرور ميدهد و سرور نیز بدون توجه به وضعیت ارتباط موجود در صورت امکان منابع در خواست شده را برای سرویسگیر تهیه ميکند. (این ارتباط بصورت Stateless است). امن کردن یک ارتباط Stateful به مراتب مشکلتر است. مخصوصاً اگر سرویس نیاز به احراز هویت سرویسگیر نیز داشته باشد و درخواستها و پاسخهای بین سرور و سرویسگیر موجب تغییر در وضعیت ارتباط شود.
1-2-5 قابلیت پیکربندی سرویس
هر اندازه سرویس قابل پیکربندی و برنامه ریزی باشد امکان بروز اشتباه در این تنظیمات بیشتر ميشود و در نتیجه امکان پیدا شدن bugهای مختلف در آن بسیار زیاد است. از این رو سرورهایی مانند Exchange Server و Internet Information Server (یا هر وب سروری که امکان اجرا کردن برنامههایی را برای تولید صفحات HTML در آن وجود داشته باشد) ممکن است دارای مشکلات امنیتی باشند که همه آنها در حال حاضر شناخته شده نیستند و به مرور زمان پدید ميآیند.
1-2-6 نوع مکانیزم احراز هویت استفاده شده توسط سرویس
سرویسهایی که نیاز به احراز هویت سرویسگیر دارند از دو طرف در معرض خطرات امنیتی قرار دارند: اول اینکه خود مکانیزم استفاده شده ممکن است ضعیف باشد و این امر باعث سوء استفاده از سرویس ميشود. دوم اینکه اغلب کاربران از یک password برای سرویسهای مختلف استفاده ميکنند و در صورت لو رفتن password یک سرویس سایر سرویسها نیز در معرض خطر قرار ميگیرند. یک نمونه بارز این خطر سرویس POP است. این سرویس اغلب از passwordهای خود سیستم برای احراز هویت کاربران استفاده ميکند و بسیاری از سرورهای POP امکان رد و بدل کردن passwordها بطور امن را ندارند. در صورت لو رفتن یک password سرویس POP کل سیستم در معرض تهدیدهای امنیتی قرار ميگیرد.
در انتهای این قسمت یک جدول تهیه شده است که میزان فاکتورهای ذکر شده را برای تعدادی از سرویسهای معمول ارائه ميکند:
[1] - Pachet Filter
[2] - Nework Address Translation
[3] - Proxy
[4] - Inrusion Detection Systems
[5] - Denial – of – service attacks
[6] - Exploitation attacks
[7] - Information gathering attacks
[8] - Disinformation attacks.
مبلغ واقعی 16,000 تومان 50% تخفیف مبلغ قابل پرداخت 8,000 تومان
محبوب ترین ها
پرفروش ترین ها