پروژه مقاله در مورد امنیت شبکه تحت pdf دارای 70 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد پروژه مقاله در مورد امنیت شبکه تحت pdf کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی پروژه مقاله در مورد امنیت شبکه تحت pdf ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن پروژه مقاله در مورد امنیت شبکه تحت pdf :
فهرست مطالب
عنوان صفحه
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 مقدمه
این متن به بررسی انواع سیستمهای امنیتی و بررسی نقاط ضعف و قوت هر کدام میپردازد. در این بخش مقدماتی در مورد امنیت پروتکها و انواع حملات بیان میشود و بخشهای بعدی به بررسی دقیق انواع فایروال (فیلتر ، NAT و پراکسی ) و سیستمهای تهاجم یاب میپردازد. سپس سه نمونه از نرم افزارهای مفید امنیتی Snort, IPF) و SAINT) معرفی میگردد.
1-1 انواع حملات
در این قسمت یک سری از روشهای متدول برای جمله به شبکههای کامپیوتری توضیح داده میشود و در مورد هر کدام مشخصات و نحوه شناسایی آن حمله بیان شده است. این حملات در چهار دسته عمده تقسیم بندی شده اند:
– حملات رد سرویس یا DoS
– حملات استثماری
– حملاتی که به منظور بدست آوردن اطلاعات صورت میگیرند.
– حملاتی که سرویسدهی روی شبکه را دچار مشکل میکنند.
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 کل سیستم در معرض تهدیدهای امنیتی قرار میگیرد.
در انتهای این قسمت یک جدول تهیه شده است که میزان فاکتورهای ذکر شده را برای تعدادی از سرویسهای معمول ارائه میکند:
نام سرویس پورت و پروتکل پیچیدگی میزان سوء استفاده اطلاعات ارائه شده دیالوک با سرویسگیر قابلیت پیکربندی
DHCP UDP
68 نسبتاً پیچیده متوسط متوسط کم متوسط
Chargen TCP& UDP
19 ساده زیاد ــ ــ ــ
Daytime UDP
13 ساده کم ــ کم ــ
Discard UDP
13 ساده کم ــ کم ــ
DNS UDP
53 پیچیده زیاد کم کم زیاد
Echo UDP
7 ساده کم ــ کم ــ
Finger TCP
79 ساده متوسط زیاد کم متوسط
FTP TCP
20&21 پیچیده زیاد متوسط زیاد زیاد
Gopher TCP
70 ساده کم کم کم کم
HTTP TCP
80 پیچیده زیاد متوسط زیاد زیاد
IMAP TCP
143 ساده کم متوسط کم کم
IDAP TCP &
UDP
389 پیچیده کم متوسط متوسط متوسط
NetBIOS TCP
137-139 پیچیده زیاد زیاد زیاد کم
NFS TCP&
2049 پیچیده زیاد زیاد زیاد متوسط
POP3 TCP
110 ساده متوسط متوسط کم کم
Queue UDP
17 ساده کم ــ کم ــ
RPC(sun) UDP
111 متوسط زیاد زیاد زیاد زیاد
RSH TCP
514 متوسط زیاد زیاد زیاد کم
SMTP TCP
25 پیچیده متوسط متوسط متوسط زیاد
SNMP UDP
161 متوسط زیاد زیاد کم متوسط
Telnet TCP
23 ساده زیاد زیاد کم ــ
TFTP UDP
69 ساده زیاد متوسط کم کم
فصل دوم:
2 فایروالهای packet-filter
packet-filterها ابتدایی ترین نوع فایروال میباشند. اولین اقدام در جهت امنیت پروتکل TCP/IP نیز همین فیلترها میباشند که عملکرد خود را از طریق چک کردن سرآیند بستهها انجام میدهند. فیلترها به تنهایی نمی توانند امنیت کامل برای شبکه برقرار کنند و باید همراه با انواع دیگر فایروال مانند NAT و پراکسی استفاده شوند، همانطور که NAT و پراکسی نیز نمی تواند بدون یک فیلتر قوی عملکرد مناسب داشته باشند.ها به تفصیل مورد بحث قرار خواهد گرفت.
2-1 فیلترهای stateless
فیلترها معمولاً مسیر یا بهایی هستند که با توجه به اطلاعات موجود در سرآیند بستهها در مورد رد شدن آن تصمیم میگیرند. فیلترها از لحاظ تئوری میتوانند این کار را بر اساس تمام فیلدهای موجود در سرآیند بسته انجام دهند، ولی عملاً این کار بر اساس فیلدهای زیر انجام میشود که بیشتر متداول هستند:
– پروتکل لایه شبکه و جلسه
– آدرس IP
– پورت TCP/UDP
– شماره fragment
– اطلاعات مربوط به source routing
2-1-1کنترل بستهها بر اساس نوع پروتکل
این نوع فیلترها بستهها را بر اساس فیلد پروتکل موجود در سرآیند کنترل میکنند. از فیلد پروتکل میتوان برای مشخص کردن یک سری از سرویسها مانند UGMP, ICMP, TCP, UDP استفاده کرد. برای مثال اگر یک سرویس TCP مانند وب توسط یک سرور ارائه میشود میتوان سایر سرویسها مانند UDP را بست. فیلد پروتکل خیلی کلی است و از روی آن نمی توان کنترل مناسبی روی بستهها داشت.
2-1-2 کنترل بستهها بر اساس آدرس IP
این نوع فیلترها میتوانند برقراری ارتباط به (یا از ) یک سری آدرسهای مختلف را محدود کنند. اکثر فیلترها همه آدرسها را باز گذاشته و دسترسی به یک سری خاص آدرسها را میبندند یا بر عکس این کار را انجام میدهند. یعنی دسترسی به همه آدرسها را میبندند ویک سری آدرسهای خاص را باز میگذارند. این دو سیاست به ترتیب سیاست accept و سیاست deny نامیده میشوند. سیاست accept معمولاً مزیتی برای شبکه محسوب نمی شوند چون در این حالت کنترل لازم روی همه آدرسها وجود ندارد و هیچ تضمینی نیست که مهاجمینی که آدرسهای آنها بسته شده است از آدرسهای دیگر استفاده نکنند. سیاست deny خیلی
امن تر میباشد، در این حالت میتوان مطمئن شد کسانی که اطلاعات کافی در مورد آنها موجود میباشد دسترسی به شبکه دارند.
فیلترهای خوب میتوانند دسترسیها را بر اساس پروتکل کنترل کنند. برای مثال میتوان دسترسی همه را به سرویس HTTP باز گذاشت ولی فقط به کاربران شبکه داخلی اجازه استفاده از سرویس Telnet را داد. در فیلترهای ساده معمولاً فقط میتوان دسترسی آدرسهای خاصی را به یک سرویس باز گذاشت یا بست و برای یک سرویس خاص نمی توان با آدرسهای مختلف رفتار متفاوتی داشت. باید این نکته را در نظر بگیرید که فیلد آدرس فرستنده که در بسته IP وجود دارد آدرسی نیست که بسته از آن آمده است و این آدرس قابل جعل کردن است. از این نقطه ضعف میتوان برای فرستادن بستههای غیر مجاز به داخل شبکه استفاده کرد؛ البته پاسخ این بستهه
ا برای آدرس جعل فرستاده میشود. راههایی وجود دارد که میتوان بر این مشکل غلبه کرد؛ برای مثال میتوان با استفاده از تکنیک source routing آدرس بازگشت بسته را نیز تعیین کرد، هر چند هنوز هم میتوان از این نقطه ضعف برای فرستادن بستههایی که نیازی به برگشت آنها نیس (مانند حملات DoS) استفاده کرد. مهاجم باید یک آدرس IP را که اجازه عبور از فیلتر را دارد پیدا کند و بسته را از طرف آن بفرستد.
2-1-3 کنترل بستهها بر اساس پورتهای TCP/UDP
فیلدهای مربوط به پورتهای UDP, TCP معمولترین فاکتور برای کنترل بستهها میباشند چون
این اطلاعات به دقت مشخص میکند که یک بسته به چه منظور فرستاده شده است. فیلتر کردن پورتها همچنین تحت عنوان فیلتر کردن پروتکلها نیز شناخته میشود چون هر کدام از این پورتها یک پروتکل سطح بالا را مشخص میکنند. پروتکلهای متداولی که بر اساس شماره پورتهای UDP, TCP فیلتر میشوند عبارتند از:
Daytime DNS NetBIOS Session Echo
HTTP IMAP Quote Gopher
NFS FTP POP Whois
Telnet SNMP RSH SMTP
NNTP X windows
در مورد پورتها نیز مانند آدرسهای IP دو نوع سیاست deny, accept وجود دارد. در مورد پورتها بر خلاف آدرسهای IP سیاست accept نیز میتواند مفید باشد چون اکثر حملات از طریق یک سری پورت شناخته شده انجام میگیرد. معروفترین این پورتها عبارتند از:
– Tenlnet: باز گذاشتن این پورت به مهاجمین اجازه دستور روی سیستم را میدهد که بیشترین دسترسی ممکن را برای آنها فراهم میآورد.
– NetBIOS Session: باز گذاشتن این پورت روی سیستمهای Windows یا سرور
های SMB به مهاجمین اجازه دسترسی به فایل سیستم را میدهد.
– POP: در صورت امکان باید این پورت بسته باشد. در این پورتکلpassword کاربران بصورت رمز نشده روی شبکه فرستاده میشود و مهاجمین میتوانند با آنالیز کردن بستهها password کاربران را به دست بیاورند. در صورتی که سرویس POP ارائه میشود یا باید بوسیله SSL یا از طریق VPN امن شود.
– NFS: عملکرد این پورت برای سیستمهای مبتنی بر UNIX دقیقاً مانند پورت NetBIOS برای سیستمهای Windows میباشد.
پورتهایی که در اینجا ذکر شد از اهمیت زیادی برخوردارند چون در صورتی که مورد حمله قرار بگیرند میتوانند باعث شوند فرد مهاجم کنترل کامل بر روی سیستم داشته باشد. پورتهای دیگر مانند DNS از اهمیت کمتری برخوردارند، چون در صورت مورد حمله واقع شدن باعث صدمه دیدن یک سری اطلاعات خاصی میشوند و فرد مهاجم نمی تواند کنترل کامل بر روی
سیستم داشته باشد. به همین علت دارای اهمیت کمتری برای مهاجمین میباشند.
2-1-4 کنترل بستهها از روی سایر اطلاعات موجود در سرآیند
سرآیند بستههای IP علاوه بر فیلدهای استاندارد که ذکر شد شامل اط
لاعات دیگری نیز میباشند که از روی آنها میتوان در مورد رد شدن یک بسته تصمیم گرفت. Fragmentation, source routing تکنیکهایی هستند که توسط پروتکل IP پشتیبانی میشوند و امروزه چندان استفاده ای ندارند. مهاجمین از این دو تکنیک برای حمله کردن به شبکهها استفاده میکنند.
2-1-4-1 source routing
Source roting برای مشخص کردن مسیر دقیقی که پاسخ یک بسته IP برای رسیدن به مقصد باید از آن عبور کند استفاده میشود. از این امکان بیشتر برای تست و عیب یابی شبکهها استفاده میشده است ولی امروزه توسط مهاجمین استفاده میشود. آنها با استفاده از IP spoofing یک بسته با آدرس فرستنده جعلی ایجاد میکنند و سپس با استفاده از source routing کاری میکنند که پاسخ آن بجای گیرنده اصلی برای آنها فرستاده شود. دو نوع source routing وجود دارد. در نوع اول آدرس یک یا چند مسیریاب سر راه مشخص میشود و در نوع دوم تمامی مسیر تا مقصد مشخص میشود که نوع اول بیشتر توسط مهاجمین مورد استفاده قرار میگیرد.
2-1-4-2 fragmentation
Fragmentation برای انتقال بستههای IP بزرگ از مسیریابهایی است که اندازه frame در آنها کوچک است. این مسیریابی بستهها را به تعدادی frame میشکنند که از شماره 0 شمارهگذاری میشوند. این frame ها در مقصد سرهم شده و بسته اولیه را دوباره میسازند. از آنجا که مهمترین اطلاعات لازم برای کنترل بستهها (شماره پورت TCP و UDP ) فقط در frame شماره 0 وجود دارد، روی frameهای بعدی هیچگونه کنترلی وجود ندارد و اغلب فیلترها آنها را عبور میدهند.بعضی سیستمها کل framهای دریافتی را حتی بدون fram شماره 0 سرهم میکنند و در صورتی که یک بسته IP سالم را تشکیل دهند آن را پردازش میکنند. از این رو مهاجمین نیز میتوانند یک سری fram تولید کنند که از شماره 1 به بعد یک بسته IP سالم را تشکیل بدهند. از آنجا که اکثر فیلترها فقط fram شماره 0 را بررسی میکنند و سایر framها از فیلتر عبور میکنند با این روش میتوان یک بسته کامل را از فیلتر عبور داد. از این رو بستههای fragment شده نباید اجازه ورود به شبکه را داشته باشند.
2-1-5 مشکلات فیلترهای استاندارد
این نوع فیلترها دو مشکل عمده دارند که مانع از این میشود که بطور کامل موثر واقع شوند:
این فیلترها محتویات بسته را نمی توانند چک کنند.
فیلترها برای تعیین سرنوشت بستهها فقط از اطلاعات سرآیند بسته استفاده میکنند و محتوای آنها را بررسی نمی کنند. در این صورت اگر ترافیک HTTP که وارد شبکه میشود یک Trojan Horse باشد فیلتر متوجه آن نخواهد شد؛ و یا اگر یک نامه الکترونیکی که به پورت 25 سرور فرستاده میشود دارای اطلاعاتی باشد که منجر به از کار افتادن سرور شود باز فیلتر متوجه آن نخواهد شد. برای بررسی اینگونه موارد نیاز به یک پراکسی در لایه بالا برای هر سرویس میباشد که محتویات بسته را با توجه به پروتکل استفاده شده بررسی کند.
این فیلترها وضعیت ارتباطات موجود را نگهداری نمی کنند.
فیلترهای statelessهیچ اطلاعاتی در مورد وضعیت ارتباطات فعال نگهداری نمی کنند. این فیلترها تصمیم گیری در مورد سرنوشت بستهها را بسته به بسته انجام میدهند و تنها فاکتوری که در این میان تصمیم گیری میکند اطلاعات سرآیند هر کدام از بستههاست.
2-1-6 کنترل بستهها توسط سیستم عامل
بسیاری از سیستم عاملهای جدید امکان کنترل بستهها را بعنوان بخشی از پشته TCP/IP خود دارند. این بدان معناست که روی هر سرور بسته به سرویسی که ارائه میشود میتوان رفتار متفاوتی با بستهها داشت. در این روش بستهها در مقصد آنها یعنی آخرین مسیری که از آن عبور میکنند کنترل میشوند. ممکن است چنین به نظر بیاید که با وجود اعمال سیاستهای امنیتی در فایروالها و مسیریابهای شبکه ایجاد فیلتر بر روی هر سرور یک کار اضافی است، چون این کار را بر روی فایروالها و مسیریابها نیز میتوان انجام داد. ولی این نکته را باید در نظر بگیرد که هیچ سیستم
امنیتی مرزی قادر به جلوگیری از حملات داخلی یا حملات از طریق کانالهای VPN و اتصالاتdial-up نمی باشد. بعنوان یک اقدام امنیتی علاوه بر اینکه یک فایروال در نقاط ورود بستهها به شبکه از شبکه محافظت میکند بهتر است هر سرور نیز یک فیلتر مخصوص به خود سر راه بستهها قرار دهد تا اطمینان حاصل شود که فقط سرویسهایی را که لازم است ارائه میکند.
2-2 فیلترهای stateful
فیلترهای استاندارد مشکلات زیاد دارند که همه آنها از این حقیقت ناشی میشوند که یک بسته به تنها حاوی اطلاعات کافی برای تصمیم گیری در مورد سرنوشت آن نمی باشد چون این بسته جزئی از یک ارتباط بزرگتر است. فیلترهای stateful این مشکل را با نگهداشتن وضعیت تمام ارتباطات موجود و تصمیم گیری از روی این وضعیتها حل کرده اند. فیلترهای stateful وضعیت هر ارتباط را در لایههای شبکه و جلسه نگهداری میکنند، سپس از این اطلاعات برای تشخیص اینکه یک بسته در پاسخ یک درخواست داخلی فرستاده شده یا نه (به احتمال زیاد به قصد خرابکاری ارسال شده) استفاده میکنند.
اغلب فیلترهای استاندارد به بستههایی که برای پورتهای بالای 1024 فرستاده شدهاند اجازه عبور میدهند و فرض میشود که اینها همه بستههایی هستند که در پاسخ به درخواستهای داخلی فرستاده شده اند. این یک سیاست ضعیف است چون ممکن است یک Trojan Horse نیز به یک پورت بالای 1024 گوش کند و بتوان از بیرون از شبکه به آن وصل شده اطلاعات در مورد شبکه بدست آورد یا اقدام به خرابکاری کرد.
وقتی یک سیستم از شبکه داخلی تقاضای برقراری ارتباط با یک سرور خارج از شبکه میکند یک بسته TCP SYN ایجاد کرده و به سرور میفرستد. قبل از اینکه بسته به سرور برسد فیلتر سر راه اطلاعات بسته را بررسی میکند. چون این یک بسته برای ایجاد ارتباط است یک رکورد برای آن ارتباط در جدول ارتباطات موجود ایجاد شده و وضعیت ارتباط نیز ثبت میگردد. هنگامی که پاسخ بسته بر میگردد فیلتر با مقایسه آدرس فرستنده و گیرنده و وضعیت ارتباط مربوطه متوجه میشود که این همان پاسخی است که قرار است برسد و بسته را به سمت مقصدش میفرستد. اگر بسته ای برای شبکه ارسال شود که هیچ رکورد متناظر با آن در جدول وجود نداشته باشد بسته از فیلتر نمی تواند عبور کند. این عملکرد در شکل1-2 نشان داده شده است. به محض اینکه بستههای مربوط به بستن ارتباط از سوی سرور و سرویسگیر رد و بدل میشوند رکورد مربوط به آن ارتباط از جدول حذف میشود. بستن ارتباط نیز در شکل 2-2 نشان داده شده است.
شکل 1-2 شکل 2-2
2-3مشکلات فیلترها
فیلترها (استاندارد و stateful) دارای مشکلاتی هستند که مهاجمان از آنها برای دور زدن این فیلترها استفاده میکنند. از جمله این ضعفها میتوان موارد زیر را نام برد:
اطلاعات مربوط به پورتهای UDP, TCP فقط در fragment شماره 0 وجود دارند
بعضی سیستم عاملها کنترل دقیقی روی ترتیب framentها ندارند و به محض اینکه fragment آخر را دریافت کنند کل fragmentها را سرهم میکنند و در صورتی که یک بسته کامل تشکیل شود آن را به لایه بالاتر منتقل میکنند. بعضی از این ضعف استفاده کرده ویک بسته کامل را fragment کرده ولی آنها را از1 شماره گذاری میکنند. در طرف گیرنده اطلاعات مربوط به پروتکل شبکه که در fragment شماره 1 قرار دارد توسط فیلتر نادیده گرفته میشود و بنابراین تمام fragm
entها از فیلتر عبور میکنند و یک بسته کامل IP را تشکیل میدهند.
بسیاری از فیلترها بستههای ارسالی برای پورتهای بالای 1024 را عبور میدهند.
این مشکل فقط مربوط به فیلترهای استاندارد میشود که در قسمتهای قبل نیز در مورد آن توضیح داده شده است. فیلترهای stateful تمام تقاضاهایی را که برای برقراری ارتباط فرستاده میشوند شناسایی کرده و جلوی آنها را که مجاز نیستند میگیرند.
NATهای داخلی میتوانند فیلتر را فریب دهند.
اگر کسی در داخل شبکه قادر به راه اندازی یک سرویس NAT بر روی سیستم خود باشد میتواند بستههایی را که به یک پورت فیلتر نشده فرستاده میشوند ترجمه کرده و به یک پورت فیلتر شده روی یک سرور بفرستد. با استفاده از پراکسی نیز میتوان این کار را انجام داد. در این مورد در قسمتهای بعد توضیح داده خواهد شد.
فصل سوم:
3 NAT
سیستم NAT درسهای IP شبکه محلی را به آدرسهای یکتا برای استفاده بر روی اینترنت تبدیل میکند. هر چند این روش برای ایجاد آدرسهای بیشتر برای استفاده در شبکه داخلی ابداع شده است ولی میتوان از آن برای مخفی کردن اطلاعات مربوط به سیستمهای داخلی نیز استفاده کرد. NAT میتواند تمام اطلاعات مربوط به پروتکلهای TCP/IP شبکه داخلی را مخفی کند و از دید خارج چنین به نظر برسد که تمام ترافیک از یک آدرس خاص منتشر میشود. NAT همچنین این
امکان را فراهم میکند که هر محدوده آدرسی را بتوان برای سیستمهای داخلی استفاده کرد، بدون اینکه کوچکترین مشکلی برای شبکه پیش بیاید. فایروال برای این منظور آدرس و شماره پورت مبدا تمام بستههایی را که از شبکه داخلی فرستاده میشوند عوض میکند. آدرس خود فایروال (یا هر آدرس دیگری که فایروال به آن پاسخ میدهد) بجای آدرس مبدا و یک شماره پورت بجای شماره پورت مبدا قرار میگیرد. این شماره پورت برای شناسایی آدرس و شماره پورت مبدا بسته بکار میرود و اطلاعات مربوطه در یک جدول نگهداری میشود. هنگام برگشت پاسخ بسته از اطلاعات این جدول برای پیدا کردن گیرنده آن استفاده میشود. در واقع فایروال بین یک س
ری سوکت داخلی و یک سری سوکت خارجی ارتباط ایجاد میکند. شکل 1-3 این عملکرد را با یک مثال توضیح میدهد.
شکل 1-3
در این مثال یک سیستم داخلی با آدرس10117 میخواهد ارتباط HTTP با یک سیستم خارجی با آدرس 1921681315برقرار کنند. یک بسته برای مثال از 10117:1234 به 1921681315:80 فرستاده میشود. فایروال یا مسیریاب سر راه (با آدرسهای 10111و 128111211) این بسته را گرفته و این رکوردها را در یک جدول ثبت میکند:
– مبدا: 10117:1234
– مقصد: 1921681315:80
– مبدا بسته تولید شده: 1281101211:15465
سپس بسته را با اطلاعات جدید میفرستد، یعنی سرور وب یک تقاضا از طرف 1281101211:15465 دریافت میکند. هنگام پاسخ دادن نیز سرور بستهها را برای همین آدرس میفرستد. فایروال هنگام دریافت بسته جدول داخلی را برای پیدا کردن گیرنده واقعی بسته جستجو میکند. اگر اطلاعات رکورد مربوطه با اطلاعات سرآیند بسته مطابقت داشت بسته پس از اعمال تغییر لازم برای گیرنده واقعی بسته (10117:1234) فرستاده میشود. اگر رکورد مربوطه پیدا نشد یا اطلاعات سرآیند بسته با رکورد مربوطه مطابقت نداشت بسته اجازه عبور پیدا نمی کند.
از آنجا که NAT فقط از یک سری جایگزینی ساده در لایه شبکه استفاده میکند و مانند پراکسیها نیازی به اجرای عملیاتهای پیچیده ندارد میتواند در بسیاری موارد با سرعتی نزدیک به سرعت routing عمل کند.
3-1 انواع ترجمه آدرس در NAT
خیلی از فایروالها از روشهای مختلفی برای ترجمه آدرس استفاده میکنند. چهار عملکرد اصلی NAT به ترتیب میزان استفاده در زیر آمده است:
– ترجمه ایستا (porwarding): حالتی است که سیستم خاص (مثلاً یک سرور) همیشه دارای ترجمه آدرس ثابتی است که امکان برقراری ارتباط از طرف سیستمهای خارجی با آن را فراهم میکند.
– ترجمه پویا (اتوماتیک): حالتی است که یک عده از سیستمهای داخلی از یک یا چند آدرس برای ارتباط با شبکه خارجی استفاده میکنند. این روش برای مخفی کردن مشخصات سیستمهای داخلی یا گسترش محدوده آدرسهای مورد استفاده در شبکه داخلی استفاده میشود.
– توزیع بار: در این حالت یک آدرس ثابت به یک سری آدرس دیگر ترجمه میشود که همه سرورهایی هستند که به یک درخواست خاص پاسخ میدهند. این روش برای توزیع بار یک سرویس پرترافیک بر روی یک سری سرور استفاده میشود.
– افزونگی (Redundancy): در حالتی که یک شبکه از چند روش برای اتصال به اینترنت استفاده میکند از این روش استفاده میشود تا در صورت قطع شدن هر کدام از مسیرها از مسیر دیگر استفاده شود.
3-1-1 ترجمه پویا
ترجمه پویا سیستمهای داخلی را از طریق تعویض آدرسهای آنها با یک آدرس دیگر محافظت میکند. تا زمانی که یک سیستم داخلی با یک سیستم خارجی ارتباط برقرار نکرده است هیچ رکوردی در مورد آن در جدول داخلی فایروال وجود ندارد و در نتیجه هیچ راهی برای برقراری ارتباط با آن وجود ندارد. توجه کنید که فایروال فقط مانع از این میشود که سیستمهای خارجی با یک سیستم داخلی ارتباط برقرار کنند. اگر سیستم داخلی به یک سرور خطرناک در بیرون شبکه وصل شود یا یک Trojan Horse روی سیستم باشد که به یک سرور خارجی متصل شود دقیقاً مانند حالتی است که هیچ فایروالی در میان نیست. به همین علت استفاده از NAT به تنهایی برای امنیت شبکه کافی نیست.
فریب زدن سیستم برای وصل شدن به یک سرور کار ساده ای است. فرض کنید یک نامه الکترونیکی از طرف رئیس برای یکی از کارمندان فرستاده میشود که در آن وی خواسته شده که به یک سرور وب وصل شود. به احتمال خیلی قوی آن کارمند بدون فکر کردن به آن سرور وصل خواهد شد. جعل کردن نامه الکترونیکی نیز کار خیلی ساده ای است.
تعداد کل ارتباطاتی که از طریق یک فایروال NAT میتواند ترجمه شود محدود است. از آنجا که در سرآیند IP فقط 16 بیت برای شماره پورت در نظر گرفته است این تعداد به 65536محدود میشود. البته در بسیاری از سیستم عاملها این تعداد به 50000نیز کاهش مییابد، چون بعضی از این پورتها برای مصارف خاصی رزرو شده اند.
3-1-2 ترجمه ایستا
ترجمه ایستا (یا port forwarding) در مواردی استفاده میگیرد که یک سرویس
خاص داخل شبکه ارائه میشود که باید از بیرون شبکه قابل دسترسی باشد. در بعضی شرایط هم که از پروتکلی استفاده میشود که برای درست کار کردن باید آدرس یا شماره پورت خاصی داشته باشد از ترجمه ایستا استفاده میشود.
برای قرار دادن یک سرور پست الکترونیکی داخل شبکه باید یک مسیر ثابت از فایروال تا خود سرور ایجاد شود. اگر آدرس سرور 101121 و آدرس خارجی فایروال نیز 1281101211 باشد این مسیر میتواند از 101121:25 به 101121:25 باشد. اگر بیش از یک سرور داخل شبکه باشد میتوان برای هر کدام از آنها یک پورت فایروال را اختصاص داد. تمام این سرورها با یک آدرس خاص مشخص میشوند در صورتی که هر کدام از آنها را یک سرور خاص مدیریت میکند.
3-1-3 توزیع بار
بعضی از فایروالها میتوانند با استفاده از NAT کار توزیع بار را روی شبکه انجام دهند. توزیع بار یعنی توزیع ترافیک یک سرویس روی چند سرور، مثلاً تقاضاهایی که برای یک سایت وب خیلی پرطرفدار فرستاده میشود روی سرورهای مختلف پخش شود. این توزیع میتواند براساس میزان بار موجود در هر کدام از سرورها یا از طریق الگوریتم round-robin باشد. برای تصمیم گیری از طریق میزان بار موجود، هر سرور باید راهی برای دادن اطلاعات در این مورد به فایروال داشته باشد. از آنجا که هیچ راه استانداردی برای این کار نیست خود فایروال باید یک راه مخصوص برای خود داشته باشد. به همین دلیل هم اغلب فایروالها از روش round-roubin استفاده میکنند و فرض میکنند که همه سرورها یک میزان بار را دارند. به این نکته توجه کنید که توزیع بار فقط ب
رای پروتکلهایی قابل استفاده است که stateless باشد یا وضعیت ارتباط در سمت سرویسگیر نگهداری شود.
3-1-4 افزونگی (Redundancy)
این نوع ترجمه آدرس ترکیبی از ترجمه پویا و توزیع بار میباشد. در این حالت فایروال از طریق چند اتصال مختلف به اینترنت وصل میشود و روی هر کدام از آنها یک آدرس مجزا دارد. هنگامی که یک سرویسگیر از داخل شبکه تقاضای برقراری ارتباط با یک سرور خارجی را میکند، فایروال با توجه به وضعیت اتصالات یک مسیر (ارزانترین مسیر) را برای برقراری ارتباط با سرور انتخاب میکند. سپس با استفاده از ترجمه پویا آدرس سرویسگیر روی آدرس فایروال ترجمه میشود و تقاضای مورد نظر
برای سرور فرستاده میشود. در این حالت فایروال بار سرویسگیرهای داخلی را روی چند مسیر مختلف توزیع میکند. شکل 2-3 این عملکرد را توضیح میدهد. قطع شدن هر کدام از این اتصالات به منزله پر شدن بار آن اتصال در نظر گرفته میشود و فایروال هیچ سرویسگیر جدیدی را از آن مسیر عبور نخواهد داد. هر چند پروتکهای stateful نیاز به برقراری مجدد ارتباط دارند، پروتکلهای
statelessفقط با یک پیغام خطا مواجه میشوند و بعد از آن تمام ارتباطات آنها از طریق مسیر جدید برقرار میشود بدون اینکه متوجه شوند چه اتفاقی افتاده است.
شکل2-3
3-2 مشکلات NAT
بعضی پروتکلها هستند که از طریق NAT قابل استفاده نمی باشند. از این جمله اند:
– پروتکلهایی که نیاز به برقراری ارتباط مجدد با سرویسگیر دارند: هیچ مسیر مشخصی به سمت سرویسگیر وجود ندارد. پروتکلهای IRC, RSH, (video conferencing) H.323 از این دسته اند.
– پروتکلهایی که آدرسهای TCP/IP را داخل اطلاعات بسته قرار میدهند: اطلاعات داخل بسته با اطلاعات سرآیند یکسان نیست: در حقیقت اطلاعات داخل بسته اشتباه میباشد. پروتکل FTP از این دسته پروتکلهاست.
– پروتکلهایی که اطلاعات سرآیند TCP/IP را رمز میکنند: فایروال قادر به خواندن اطلاعات سرآیند و تغییر آدرسها یا شماره پورتها نیست. پروتکل PPTP از این دسته پروتکلهاست.
-پروتکلهایی که از آدرس فرستنده برای چک کردن مسائل امنیتی استفاده میکنند: اطلاعات سرآیند بسته عوض شده و نمی توان از آن بعنوان یک معیار استفاده کرد. پروتکل Sqlnet2 از این دسته پروتکلهاست.
-علاوه بر این پروتکل ICMP نیز با NAT مشکل دارد. نرم افزار ICMP بعضی وقتها قسمت اول بسته اصلی را (که شامل آدرسهای ترجمه نشده میباشد) داخل پیغام ICMP قرار میدهد. البته از لحاظ امنیتی هیچ لزومی ندارد که بستههای ICMP بتوانند از فایروال عبور کنند.
استفاده از NAT یک سری مشکلات امنیتی نیز دارد که به مواردی از آنها در اینجا اشاره میشود:
ترجمه ایستا=عدم امنیت
استفاده از ترجمه ایستا سیسمتهای داخلی را محافظت نمی کند. استفاده از ترجمه ایستا فقط آدرس و شماره پورت سرویسگیر را بصورت یک به یک عوض میکند و هیچ مکانیزم امنیتی روی ارتباط ایجاد شده بر قرار نمی کند برای محافظت از یک سرویس داخل شبکه باید از پراکسی استفاده کرد.
یک ارتباط همیشه دوطرفه است.
وقتی یک سرویسگیر با یک سرور ارتباط برقرار میکند، یک ارتباط از سرور به سمت سرویسگیر نیز ایجاد میشود. برقراری ارتباط با بعضی سرورها (مثلاً یک وب سایت) ممکن است منجر ب
ه بروز مشکلات امنیتی در شبکه شود. از آنجا که روی تمام ارتباطات ایجاد شده از طرف شبکه داخلی نمی توان کنترل داشت بهتر است برای هر سرویس از پراکسی استفاده کرد تا محتویات بسته که وارد شبکه میشوند کنترل شود.
3-3 پراکسی
پراکسیها در ابتدا برای cache کردن صفحات وب طراحی شده بودند. در روزهای اولیه اینترنت ارتباط برقرار کردن با منابع دیگر نسبتاً کند بود. وب سایت کوچک بود و صفحات وب ثابت (ایستا) بودند. به همین دلیل cache کردن این صفحات کار مفیدی بود. در دنیای امروز سرعت دسترسی به اینترنت خیلی افزایش یافته است، وب به یک دنیای بی سروته تبدیل شده و صفحات وب نیز به سرعت به روز در میآیند و محتوای آنها نیز پویا است. از این رو cache کردن صفحات وب چندان کار مفیدی نیست. پراکسیها امروزه برای مقاصد دیگر استفاده میشوند. آنها میتوانند مشخصات کاربران واقعی یک شبکه را پشت یک سیستم واحد مخفی کنند، URLها را فیلتر کنند، محتویات صفحات را کنترل کرده و مانع از ورود موارد مشکوک به شبکه داخلی شوند.
بسیاری از پراکسیهای حقیقی ابزارهای دیگری مانند NAT و فیلتر را نیز همراه دارند که به آنها کمک میکند تا یک ابزار کامل برای امن کردن شبکه باشند. این متن فقط به بررسی پراکسیهای خالص میپردازد. پراکسیها بیشتر برای سرویس وب استفاده میشوند چون از ابتدا برای این سرویس طراحی شده اند، ولی برای سرویسهای دیگر نیز میتوان از آنها استفاده نمود و مسلماً عملکرد آنها نیز کاملاً متفاوت خواهد بود. مثالهای این متن در مورد پراکسی سرویس وب است، ولی قابل تعمیم به سایر سرویسها نیز میباشند.
یک پراکسی به تمام تقاضای برقراری ارتباط که از شبکه داخلی فرستاده میشوند گوش میدهد و بمحض اینکه یک تقاضا از طرف یک سیستم فرستاده میشود در خواست مربوطه را دریافت کرده و آن را از طرف خودش برای سرور مربوطه میفرستاد و پاسخ سرور را برای سرویسگیر داخلی ارسال میکند. شکل 1-4 این فرایند را بیان میکند.
شکل 1-4
3-3 -1 عملکردهای امنیتی پراکسی
عمل تبدل تقاضا از سرویسگیر به پراکسی و قرار دادن پراکسی بین شبکه داخلی و خارجی دارای مزایای امنیتی زیر است:
– پراکسی اطلاعات مربوط به سیستمهای داخل شبکه را پنهان میکند.
– پراکسی میتواند جلوی یک سری از URLها را بگیرد.
– پراکسی میتواند با چک کردن محتویات صفحات وب جلوگیری یک سری از اطلاعات خطرناک مانند ویروس یا Trojan Horse را بگیرد.
– پراکسی میتواند سالم رسیدن اطلاعات دریافتی را چک کند.
– پراکسی یک نقطه واحد برای کنترل و log کردن فراهم میکند.
3-3-2 پنهان کردن اطلاعات سرویسگیرها
مهمترین عملکرد پراکسی پنهان کردن اطلاعات سرویسگیرهاست. درست مانند NAT یک پراکسی طوری رفتار میکند که از دید شبکه خارجی کل ترافیک متعلق به یک سیستم واحد به نظر بیاید. تفاوت پراکسی با NAT دراین است که پراکسی در لایه transport کار میکند و فقط برای یک سرویس خاص این کار را انجام میدهد. عملکرد پراکسی چیزی فراتر از
عوض کردن یک سری آدرس و شماره پورت میباشد و آن نیز به این صورت است: بسته ای که از داخل شبکه فرستاده شده توسط پراکسی دریافت میشود. درست مانند اینکه مقصد بسته خود پراکسی باشد. این بسته سپس بعنوان یک تقاضا برای سرور مربوطه فرستاده شده و پاسخ آن به سرویسگیر داخلی تحویل داده میشوند. از آنجا که کل بسته دوباره ایجاد میشود، فقط یک پروتکل خاص (HTTP) میتواند از پراکسی رد شود نه پروتکلهای دیگر
یکی از کاربدرهای خوب دیگر پراکسی استفاده از یک راه اتصال به اینترنت برای چند سیستم است. با نصب یک پراکسی ساده روی یک سیستم، سیستمهای دیگر میتوانند از طریق آن به اینترنت وصل شوند.
3-3-3 بستن یک سری UBL
با داشتن پراکسی میتوان جلوی دسترسی سیستمهای داخلی به یک سری منابع (سایتهای porno, hack;) را بست. این کار به سادگی انجام میشود: پراکسی م
یتواند قبل از اینکه درخواست سرویسگیررا برای سرور ارسال کند آدرس سرور را با یک پایگاه داده یا یک لیست چک کند و در صورتی که آدرس سرور غیر مجاز شناخته شود درخواست جدید از طرف پراکسی ایجاد نمی شود و عملاً سرویسگیرنمی تواند به سرور مربوط متصل شود.
3-3-4 کنترل محتویات بستهها
از آنجا که پراکسی در لایه transport کار میکند و مخصوص یک سرویس
خاص میباشد میتواند محتویات بسته را نیز چک کند، به همین دلیل از پراکسی میتوان برای کنترل محتویات بستهها نیز استفاده کرد و موارد مشکوک را سر راه حذف کرد. برای مثال میتوان از پراکسی وب برای حذف کردن برنامههای ActiveX و اپلتهای جاوا، یا از پراکسی SMTP برای چک کردن نامهها (وجود ویروس، نامههای SPAM;) قبل از دریافت آنها استفاده کرد.
3-3-5 اطمینان از سالم بودن بستهها
بعضی از سرویسها bugهایی دارند که با استفاده از این bugها میتوان مشکلاتی برای آنها ایجاد کرد. مشهورترین این حملات buffer-overflowاست. به نمونههای قدیمی این حملات دقت کنید: در سرویس SMTP سیستمهای مبتنی بر UNIX اگر حجم نامه از آنچه در ابتدای آن ذکر شده بیشتر باشد باعث میشود برنامه ای که در این فضای اضافی قرار دارد اجرا شود. در بعضی سرورهای وب اگر سایز URL بیشتر از 256 کاراکتر باشد موجب اجرای برنامه موجود در فضای اضافی میشود. این نوع حملات همه با فرستادن بستههای معیوب به سرور انجام میشوند و نمونههای آنها زیادند که به مرور زمان با پیدا شدن یک bug جدید یک نوع جدید این حملات کشف میشود. بهترین راه برای امان ماندن از این حملات چک کردن بستههای رسیده از لحاظ سالم و کامل بودن است. از آنجایی که این نوع بستهها فقط با چک کردن اطلاعات داخل بسته بدست میآیند، فقط توسط یک پراکسی قابل تشخیص میباشند نه در لایههای پایینتر.
3-3-6 کنترل روی دسترسیها
پراکسی تنها نقطه ای از شبکه است که سیستمهای داخلی از طریق آن میتوانند به یک سرویس (مثلاً HTTP) روی اینترنت دسترسی داشته باشند و به همین دلیل نقطه خوبی برای اعمال کنترل روی اطلاعات رد و بدل شده میباشد. پراکسی میتواند دسترسی به سرویس را برحسب کاربر کنترل کند، میزان استفاده از سرویس را بر حسب کاربر محاسبه کند، لیست سایتهایی را که توسط کاربران دیده شده نگهداری کند، و حتی هنگام بروز مشکلات امنیتی خاص alarm ایجاد کند.
علاوه بر سرویسهای امنیتی که توسط پراکسی ارائه میشود، پراکسی میتواند عملکرد قابل توجهی در افزایش سرعت دسترسی به شبکه داشته باشد:
– پراکسی میتواند اطلاعاتی را که از طرف شبکه داخلی مرتب درخواست میشوند cache کرده و از این طریق دسترسی به شبکه خارجی را تا حد ممکن کاهش دهد.
– پراکسی میتواند عمل توزیع بار را روی چند سرور داخلی انجام دهد.
3-4-1 cache کردن
پراکسیها در ابتدا به همین منظور ایجاد شده اند. البته با تغییراتی که در دنیای وب صورت گرفته است cache کردن صفحات زیاد مفید نیست، مخصوصاً صفحاتی که با ابزارهایی مانند ASP نوشته میشوند مرتب تغییر محتوا میدهند. فقط در برخی موارد که دسترسی به یک یا چند سایت مشخص از طرف کاربران شبکه داخلی زیاد انجام میشود cache کردن صفحات اصلی، اشکال و اپلتها میتواند مفید باشد.
3-4-2 توزیع بار
اغلب پراکسیهای جدید میتوانند در نقش پراکسی معکوس نیز عمل کنند؛ یعنی سرویسگیرهای خارجی را به سرورهای داخلی متصل میکنند. در حقیقت کاری که در این میان انجام میگیرد توزیع بار سرویسگیرهای خارجی روی سرورهای داخلی میباشد. بسیاری از و سرورهای جدید به علت حجیم بودن عملکردشان نمی توانند روی یک سیستم واحد قرار بگیرند. بیشتر برنامه نویسی سمت سرور (…,CGI JSP, ASP) و تجارت الکترونیکی باعث افزایش بار روی سرور میشوند. در این حالت پراکسی تمام درخواستها را از سرویسگیرهای خارجی دریافت کرده و آنها را به سمت
سرورهای داخلی هدایت میکند. این کار بسیار مشابه توزیع بار از طریق NAT است، با این تفاوت که در NAT این کار در لایه شبکه انجام میشد ولی در پراکسی در لایه transport است.
3-4-3 مشکلات پراکسی
پراکسی دارای یک سری مشکلات میباشد که در این قسمت به آنها اشاره میشود. پراکسی از کل شبکه داخلی بخوبی محافظت میکند، ولی در عوض خودش در معرض خطر قرار دارد. بعضی از مشکلات امنیتی پراکسی از قرار زیر است:
نقطه شکست واحد
شبکه ای که دارای یک نقطه اتصال و کنترل است، دارای یک نقطه شکست نیز میباشد. با از کار افتادن پراکسی اتصال کل شبکه به اینترنت قطع خواهد شد. پراکسیها، مسیریابها و فایروالها همگی تا حدی دارای این مشکل میباشند. این مشکل در مورد مسیریابها با تعریف کردن مسیرهای دیگر به اینترنت حل میشود. فایروالها نسبت به پراکسیها امن ترند چون فایروالها دارای ابزارهایی مانند فیلتر میباشند و قادر به محافظت از خود میباشند. برای برقراری امنیت در لایههای پایین خود پراکسی باید دارای ابزاری برای فیلتر کردن بستهها باشد یا از فیلتر خود سیستم عامل برای محافظت استفاده کند.
محدودیت روی سرویسگیرها
اگر یک سرویس قرار باشد از طریق پراکسی قابل دسترسی باشد، سرویسگیرها باید بدانند که چگونه با پراکسی رابطه برقرار کنند (اصلاً با پراکسی ارتباط برقرار کنند). یک سرویسگیر و برای اینکه با پراکسی کار کند باید طوری تنظیم شود که بستهها را بجای سرور مقصد باری پراکسی بفرستد. اگر یک سرویسگیر قادر به این کار نباشد، نمی توان ازپراکسی برای آن سرویس استفاده کرد. این مشکل برای سرویسهایی مانند FTP وجود دارد. برای سرویسگیرهای FTP که با اغلب سیستم عاملها عرضه میشوند دارای این قابلیت نمی باشند. در این موارد میتوان نسخه ای از نرم افزار را که استفاده از پراکسی را پشتیببانی میکند تهیه کرد. استفاده از
NAT نیز میتواند این مشکل را حل کند چون در NAT میتوان آدرس فرستنده و گیرنده بسته را تغییر داد. در این حالت بستهها بدون اینکه تنظیم خاصی در سرویسگیرها انجام شود از طرف فایروال برای پراکسی فرستاده میشوند. چون پراکسی از دید سرویسگیرها دیده نمی شود به آن transparent proxy میگویند.
تمام سرویسها باید پراکسی داشته باشند.
برای برقراری امنیت روی تمام سرویسهای شبکه، باید برای تمامی آنها از پراکسی استفاده کرد. تنها پراکسی میتواند بستههای یک سرویس خاص را بررسی کرده و موارد مشکوک را سر راه حذف کند. در ضمن بعضی سرویسها را (از جمله آنهایی که نیاز به برقراری ارتباط معکوس روی سرویسگیر دارند) نمی توان پشت NAT قرار داد و برای آنها باید از پراکسی استفاده کرد. چون پراکسی جدولی از ارتباطات تشکیل شده را نگهداری میکند میتواند ارتباطات معکوس را در صورت لزوم برقرار کند.
پیکربندی اولیه
معمولاً پیکربندی اولیه پراکسیها از لحاظ امنیتی چندان محکم نیست و در صورتی که تصحیح نشود میتواند خطر بزرگی برای شبکه باشد، علت آن این است که پراکسیها بیشتر برای به اشتراک گذاشتن ارتباط به اینترنت (و معمولاً برای کاربران غیر تکنیکی) تهیه میشوند نه برای مقاصد امنیتی.
علاوه بر موارد ذکر شده در بالا، پراکسی از لحاظ سرعت هم یک مشکل دارد:
ایجاد گلوگاه
پراکسی مانند مسیریاب و فایروال به تنها محل عبور سرویسگیرها تبدیل میشود و به همین علت ممکن است بار زیادی روی آن باشد. پراکسی برخلاف مسیریاب و فایروال در لایه بالاتر کار میکند و بستههای دریافتی را دوباره تولید میکند، به همین علت سرعتش به مراتب کمتر از مسیریاب و فایروال است. برای حل این مشکل باید به مرور زمان و افزایش کاربران تعداد پراکسیها را افزایش داد و هر سری از کاربران را به یکی از آنها متصل کرد.
3-5 سیستمهای تهاجم یاب
فایروالها نقش بسیار مهمی در تامین امنیت شبکه دارند. آنها تا حد ممکن مانع نفوذ مهاجمین به شبکه میشوند، ولی قویترین فایروالها نیز قادر به برقراری امنیت صددرصد نمی باشند و بعضی از مهاجمین میتوانند از آنها عبور کرده دست به اعمال خرابکانه بزنند. در حالت خیلی خوشبینانه تنها میتوان logهای فایروال نشانههایی از حمله را پیدا کرد، آن هم بعد از وقوع آن.
برای روشن شدن بیشتر موضوع بعنوان مثال عملکرد یک کرم اینترنتی را در نظر بگیرید. یک کاربر داخل شبکه یک نامه الکترونیکی از طرف یکی از دوستانش دریافت میکند که در آن مثلاً آخرین نسخه از بازی دلخواه وی قرار دارد، با اجرا کردن برنامه یک Trojan Horse بر روی سیستم کاربر نصب میشود که سر فرصت و هنگامی که کاربر با سیستم کاری ندارد با باز کردن ارتباط به سمت یک سرور شروع به فرستادن اطلاعات مهم داخل شبکه برای آن میکند. چنین مکانیزمی توسط فیلترها قابل تشخیص نیست چون معمولاً چنین سرورهایی روی یک پورت مجاز مانند HTTP اجرا میشوند. در این حالت فقط پراکسیها میتوانند با کنترل محتویات بستهها چنین مکانیزمهایی را تشخیص دهند. مهاجمین میتوانند حتی بهتر نیز عمل کنند. آنها میتوانند سرور خود را روی پورت FTP (با هر پورت دیگری که اطلاعات باینری از طریق آن مبادله میشود) اجرا کنند. سرور و برنامه Trojan Horse طوری تنظیم میشوند که قبل از فرستادن اطلاعات اصلی با مبادله یک سری بستهها طوری وانمود کنند که یک ارتباط مجاز را برقرار میکنند. چنین حمله ای توسط پراکسی نیز قابل تشخیص نمی باشد. در این حالت حتی در logهای فایروال نیز نشانه ای از حمله دیده نمی شود، چون تمام مبادلات انجام شده مجاز میباشد. این قسمت با معرفی سیستمهای تهاجم یاب با IDS به بررسی چگونگی محافظت از شبکه در مقابل حملاتی که فایروال قادر به تشخیص آنها نمی باشد میپردازد.
سیستمهای تهاجم یاب نرم افزارهایی هستند که با بررسی ترافیک شبکه و از روی یک سری نشانهها این حملات را تشخیص میدهند. این نوع سیستمها در کنار فایروال و برای ایجاد امنیت بیشتر بکار میروند. یک سیستم تهاجم یاب میتواند فقط از
یک سیستم و یا از تمامی سیستمهای تهاجم یاب در قبال موارد مشکوک و حملات آنها را به دو دسته فعال (active) و انفعالی (passive) تقسیم میکند. سیستمهای تهاجم یاب فعال میتوانند طوری برنامه ریزی شوند که به محض بروز یک مورد مشکوک عکس العمل مناسب نشان میدهند (قطع ارتباط مشکوک، تولید یک هشدار، ;)، ولی سیستمهای تهاجم انفعالی فقط اتفاقات رخ داده را ثبت میکنند که بعداً میتوانند مورد بررسی قرار گیرند دو تکنیک مختلف برای طراحی سیستمهای تهاجم یاب وجود دارد که در ادامه به آنها اشاره میشود.
3-6 سیستمهای تهاجم یاب بر مبنای بازرسی
این نوع سیستمها متداولترین نوع تهاجم یاب میباشند. نحوه عملکرد آنها بدین صورت است که فعالیت یک سیستم یا شبکه را زیر نظر میگیرند و از طریق یک سری قوانین تعریف شده و یا مقایسه با وضعیت عادی سیستم موارد مشکوک را کشف میکنند. تهاجم یابها از فاکتورهای زیر برای کشف موارد مشکوک استفاده میکنند.
• نشانههایی که از تحلیل ترافیک شبکه بدست میآیند مانند portscan با وصل شدن به پورتهای غیر مجاز
• نحوه بهره گیری از منابع سیستم مانند پردازنده و حافظه و یا برقراری ارتباط با شبکه در زمانهای غیر عادی که نشانه یک حمله اتوماتیک میباشد.
• نحوه استفاده از فایل سیستم مانند وجود فایلهای تازه ایجاد شده، تغییرات در فایلهای سیستم عامل یا تغییرات در account کاربران
• سیستمهای تهاجم یاب چند نوع مختلف میباشند:
• تهاجم یابهای قانون پذیر: این سیستمها حملات را از روی یک سری قوانین تشخیص میدهند هر کدام این قوانین یک روش شناخته شده برای حمله را مشخص میکنند که یک سری نشانهها با یک دنباله از فعالیتها را برای کشف حمله بکار میبرند. وصل شدن به یک پورت خاص یا تغییرات در فایلهای سیستم عامل از جمله این نشانهها میباشند.
• تهاجم یابهای آماری: این سیستمها با مقایسه وضعیت فعلی سیستم با وضعیت طبیعی آن حملات را کشف میکنند. این روش برای کشف حملات جدید و ناشناخته مناسب است ولی در عوض قادر به تشخیص بسیاری حملات بسیار ساده شناخته شده نب
اشد و آنها را بعنوان رفتار طبیعی سیستم در نظر بگیرد. واضح است که این روش حملات را پس از وقوع آنها میتواند کشف کند.
• تهاجم یابهای هیبرید: این نوع سیستمها ترکیب دو روش قبلی را بکار میبرند. حملات شناخته شده را بوسیله قوانین مناسب و حملات ناشناخته را با تحلیل آماری کشف میکنند. بسیاری از این نوع سیستمها قادرند پس از کشف یک حمله ناشناخته قوانین مربوط به آن را نیز ایجاد کنند که از آن پس برای تشخیص آن نوع حمله بکار میرود.
3-6-1سیستمهای تهاجم یاب طعمه
این نوع سیتسمها به ظاهر مانند یک سرویس بر روی شبکه هستند ولی به محض اینکه کسی قصد استفاده از آنها را داشته باشد یک هشدار امنیتی تولید میکنند. یک سیستم تهاجم یاب طعمه مانند یک سرور به نظر میآید که به خوبی از آن محافظت نمی شود و به همین علت به سرعت جلب توجه میکند. از این طریق توجه مهاجمین جلب سیستمی میشود که برای شبکه هیچ اهمیت عملیاتی ندارد و به محض اولین استفاده مهاجم از آن یک هشدار امنیتی تولید میشود که مدیر شبکه را از وقوع حمله با خبر میکند. تهاجم یاب طعمه میتواند یک یا چند سرویس روی یک سرور، یک سرور مجزا و یا یک شبکه مجزا (به ندرت) باشد. در حالت اول تهاجم یاب چند سرویس TCP/IP بر روی یک سیستم ایجاد میکند که از آنها در شبکه استفاده نمی شود (مانند سرویس chargen .echo یا NFS). در بعضی موارد این سرویسها حتی عملکرد سرویس را نیز ندارند و در پاسخ درخواستها فقط timeonut برمی گردانند و فقط وصل شدن به پورت را تشخیص میدهد. راه حل موثرتر استفاده از یک سیستم کامل بعنوان طعمه است. تنها کاری که باید انجام شود این است که یک نسخه از یک سیستم عامل مورد نظر به همراه تمام سرویسهای معمول روی سیستم طعمه ایجاد کرد و NAT شبکه را طوری تنظیم نمود که تمام درخواستها را به این سیستم بفرستد، سپس با اضافه کردن قوانین لازم ترافیک سرویسهای خاصی مانند SMTP,WWW را به سرورهای مربوط فرستاد. کسی که شبکه را scan میکند تمام سرویسهای سیستم بعلاوه سرویسهای واقعی شبکه را با هم میبیند و اینگونه به نظر میآید که همه متعلق به یک سیستم واحد میباشند. از آنجا که حمله کردن سرویسهای طعمهNFS) یا (NetBIOS به مراتب ساده تر است مهاجمین ترجیح میدهند در ابتدا آنها را امتحان کنند و همین باعث تولید هشدار امنیتی میشود. در این مرحله میتوان به مهاجمین اجازه داد به کار خود ادامه دهندو روشهایی را که برای حمله به سیستم استفاده میکنند شناسایی کرد. مهاجمین پس از مدتی متوجه موضوع میشوند که تمهیدات امنیتی مناسب توسط مدیر شبکه برای مقابله با آنان در نظر گرفته شده است. حتی میتوان یک کپی
از سرویسهای شبکه را نیز بر روی این سیستم طعمه قرارداد که مهاجمین دیرتر متوجه موضوع شوند و مدیر شبکه فرصت بیشتری برای امن کردن سرورهای اصلی داشته باشد.
قبل از راه اندازی یک سیستم تهاجم یاب در شبکه باید چند نکته را در نظر داشت:
سیستمی که قرار است تهاجم یاب بر روی آن نصب شود از امنیت کافی برخوردار باشد.
زمان سیستم باید صحیح باشد، چون در غیر این صورت اطلاعات ثبت شده و هشدارهای تولید شده توسط سیستم ارزش چندانی نخواهند داشت.
مکان قرار گرفتن سیستم در شبکه باید مشخص شود. اگر تهاجم یاب بین شبکه فایروال و شبکه خارجی قرار گیرد تمامی حملات را شناسایی میکند، ولی اگر بین فایروال و شبکه داخلی قرار بگیرد فقط حملاتی را که از فایروال عبور میکنند شناسایی میکند.
فصل چهارم:
IP Filter 6
IP Filter یک نرم افزار است که میتوان از آن بعنوان NAT با فیلتر استفاده کرد. این نرم افزار میتواند در فرم یک ماجول قابل load یا بعنوان قسمتی از kernel استفاده شود. IP Filter اکنون بعنوان بخشی از سیستم عامل FreeBSD عرضه میشود و عملکرد آن روی سیستم عاملهای زیر نیز کاملاً تست شده است:
– Solaris /Solaris-x86 2.3-8
– SunOS 4.1.1-4.1.4
– NetBSD 1.0-1.4
– FreeBSD 2.0.0-2.2.8
– BSD/OS -1.1-4
– IRIX 6.2
– OpenBSD 2.0-2.6
– HP-UX 11.00
– QNX Port
این نرم افزار از طریق آدرسهای زیر در دسترس میباشد:
– ftp: //coombs.anu.edu.au/pub/net/ip-filter/
– http://commb.anu.edu.au/~avalon
/
مستندات تکنیکی (HOWTO) IP filter نیز از طریق آدرس http://www.obfuscatio.org/ipf/ قابل دسترسی میباشد.
خصوصیتهای این نرم افزار به طور خلاصه از قرار زیر است:
– می تواند بستههایی را که از کارت شبک
فیلتر کند.
– می تواند بسته را بر حسب پروتکل لایه شبکه فیلتر کند.
– می تواند بستهها را بر حسب پروتکل IP فیلتر کند.
– می تواند جلوی بستههای fragment شده را بگیرد.
– می تواند جلوی بستههایی که فیلد قسمت IP option آنها پر شده بگیرد که بستههای source-route جزء این دسته به شمار میآیند.
– میتواند در جواب بستههایی که اجازه عبور پیدا نمیکنند بسته ICMP error یا TCP reute بفرستد.
– اطلاعات مربوط به وضعیت جریان بستههای ICMP,UDP,TCP را نگهداری میکند.
– اطلاعات مربوط به fragmentهای یک بسته را نگهداری میکند.
– میتواند بعنوان یک NAT کار کند.
– می تواند از redirection برای ایجاد ارتباطات یک transparent proxy استفاده کند.
– می تواند سرآیند بستهها را به یک برنامه برای احراز هویت پاس دهد.
– می تواند یک سری از بستههای مشخص را برای log کردن روی یک device بفرستد.