دیوارههای آتش یکی از مؤثرترین و مهمترین روشهای پیاده سازی "مصونیت شبکه" هستند و قادرند تا حد زیادی از دسترسی غیر مجاز دنیای بیرون به منابع داخلی جلوگیری کنند.دیوارههای آتش، مانند خندقهای دور قلعههای دوران قرون وسطی عمل میکنند. شکل 1 یکی از این قلعهها را نشان میدهد. خندق دور قلعه باعث میشود نفوذ به قلعه مشکل باشد.
انجمن Network Computer Security Association) NCSA) تعریف زیر را از دیوارههای آتش ارائه داده است."دیواره آتش یک سیستم یا ترکیبی از چندین سیستم است که یک سری محدودیت را بین دو یا چند شبکه اعمال میکند."در واقع یک دیواره آتش با محدودکردن دسترسی بین دو شبکه سعی میکند یکی را از دیگری محافظت کند. عموماً دیوارههای آتش به منظور محافظت شبکه خصوصی که به یک شبکه عمومی یا مشترک متصل است به کار گرفته میشوند. دیوارههای آتش یک نقطه محدود کننده را بین دو شبکه ایجاد میکند.
عملکرد دیوارههای آتش را میتوان در سه جمله خلاصه کرد:
- آنها افراد را موقع ورود در یک نقطه کاملاً کنترل شده محدود میسازد.
- آنها از نزدیک شدن خرابکاران به منابع داخلی جلوگیری میکنند.
- آنها افراد را موقع خروج در یک نقطه کاملاً کنترل شده محدود میسازند.
در واقع این نقطه کاملاً کنترل شده در مثال قلعههای قرون وسطایی همان پل متحرکی است که تنها در مواقع ورود و خروج افراد مشخص بر روی خندق قرار میگیرد و در دیگر موارد بسته است و در نقش درب قلعه عمل میکند. دیواره آتش اغلب در نقطهای که شبکه داخلی به شبکه خارجی متصل است قرار داده میشود (شکل 2). تمام ترافیکی که از سمت شبکه خارجی به شبکه داخلی وارد میشود و یا از شبکه داخلی به سمت شبکه خارجی، خارج میشود از دیواره آتش عبور میکند، به همین علت دیواره آتش فرصت و موقعیت مناسبی را داراست که تشخیص دهد آیا ترافیک عبوری مورد پذیرش هست یا خیر. اینکه چه ترافیکی مورد پذیرش هست به "سیاست امنیتی" (Security Policy)شبکه باز میگردد. سیاستهای امنیتی تعیین میکنند که چه نوع ترافیکهایی مجوز ورود و یا خروج را دارا هستند.
میتوان گفت یک دیواره آتش:
- یک جداساز است.
- یک محدودساز (Restrictor) است.
- یک آنالیزکننده (Analyzer) است.
یک دیواره آتش ممکن است:
- مسیریابی با چند لیست کنترل دسترسی باشد.
- نرم افزاری که روی یک PC یا یک سیستم Unix اجرا می شود، باشد.
- یک جعبه سخت افزاری اختصاصی باشد.
انواع پیچیده تر دیواره های آتش به صورت ترکیبی از چندین سیستم و راه حلهای Multi-computer و Multi-router پیاده سازی میشوند. شبکه های مختلف بسته به نیازهای امنیتی مختلف و هزینه ای که برای تأمین امنیت در نظر گرفته اند از دیوارههای آتش مختلف و روشهای پیاده سازی مختلف آنها استفاده میکنند.
یک دیواره آتش میتواند اجرای تصمیمات امنیتی را در یک نقطه متمرکزکند: همانطورکهگفته شد، دیواره آتش یک نقطه محدود کننده بین دو شبکه است. تمام ترافیک به داخل و از خارج باید از این نقطه باریک عبورکند و راه دیگری برای عبور ترافیک وجود ندارد. بدین ترتیب دیواره آتش قابلیت اعمال کنترل شدیدی را دارا خواهد بود و میتواند با اعمال ابزار مختلف تأمینکننده امنیت در این نقطه سطح قابل قبولی از امنیت را تضمین کند. در واقع چون همه چیز در یک کانال ارتباطی قابل کنترل است میتوان تصمیمات مختلفی را در ارتباط با امنیت شبکه گرفت و به اجرا در آوردن آنها را در یک نقطه متمرکز ساخت.
یک دیواره آتش میتواند سیاست امنیتی شبکه را به اجرا در آورد: میدانیم سرویسهای مختلفی در شبکهها وجود دارند و با گسترش اینترنت تنوع و تعداد آنها بسیار افزایش یافته است. اغلب این سرویسها ناامن هستند و هنگام استفاده و ارائه آنها باید دقت کرد. سیاست امنیتی شبکههای مختلف تعیین میکند که چه سرویسهایی در شبکه ارائه میشود و چه افرادی مجازند از این سرویسها استفاده کنند. دیوارههای آتش قادرند با پاسبانی و کنترل سرویسهای مختلف تنها به سرویسهای مجاز تعریف شده در سیاست امنیتی اجازه عبور دهند و بدین ترتیب سیاست امنیتی شبکه را به اجرا درآورند. سیاستهای امنیتی نهایتاً به تعدادی قوانین اجرایی تبدیل میشوند که دیوارههای آتش قادر خواهند بود تعداد زیادی از آنها را اجرا کنند. دیوارههای آتش ممکن است سرویسهای خطرناک و ناامن و را با اعمال محدویت تنها در شبکه داخلی اجازه دهند.
سیاستهای امنیتی مختلفی قابل اتخاذ هستند. مدیران یک شبکه ممکن است تنها به یک سیستم داخلی اجازه دهند. با دنیای بیرون در ارتباط باشد، در این صورت دیواره آتش تنها ترافیک متعلق به آن سیستم را از خود عبور خواهد داد.
ذکر این نکته ضروری است که پیادهسازیهای مختلف از دیوارههای آتش تواناییهای متفاوت در به اجرا در آوردن سیاستهای امنیتی دارند و بنابراین با استفاده از برخی از دیوارههای آتش ممکن است نتوان برخی از سیاستها را به اجرا در آورد.
یک دیواره آتش میتواند فعالیتهای مهم را ثبت کند: به این علت که تمام ترافیک از دیواره آتش عبور میکند، دیواره آتش یک مکان مناسب برای ثبت مجموعههای مختلف از فعالیتهاست. به عنوان تنها نقطه دسترسی، دیواره آتش میتواند ثبت کند که چه اتفاقاتی بین شبکه محافظت شده و شبکه بیرونی رخ میدهند. با دسته بندی این اطلاعات میتوان به نتایج خوبی در ارتباط با استفاده از شبکه، تهاجمهای در حال شکلگیری، مزاحمان و متخلفان داخلی و خارجی و.... دست یافت.
یک دیواره آتش قادر است سطوح مختلفی از امنیت را برای بخشهای مختلف پیادهسازی کند: از دیوارههای آتش گاهی برای جدا نگه داشتن یک بخش از بخشهای دیگر استفاده میشود. این حالت زمانی اتفاق میافتد که یک بخش از شبکه بیشتر از بخشهای دیگرحساس باشد و نیازمند امنیت بیشتری باشد. بدین ترتیب با استفاده از دیوارههای آتش میتوان بخشهای مختلف با سطوح امنیتی مختلف را ایجاد نمود. این مسأله باعث میشود بروز مشکلات امنیتی نتواند تمام سرتاسر شبکه را تحت تأثیر قرار دهد و برخی بخشهای مهمتر و حساستر مصون بمانند. دیوارههای آتش در مجموع قادرند شبکه را در برابر تهدیدات مختلف تا حد زیادی مورد محافظت قرار دهند، اما آنها راه حل امنیتی کامل و بدون عیبی نیستند. برخی از خطرات و مشکلات از کنترل دیواره آتش خارج هستند و برای مقابله با آنها باید از روشهایی مانند ایجاد مکانیزمهای قوی امنیت فیزیکی، " مصونیت میزبان" و آموزش کاربران و مدیران و... استفاده کرد.
یک دیواره آتش نمیتواند شبکه و منابع آن را از خرابکاران داخلی محافظتکند: دیواره آتش ممکن است بتواند از اینکه اطلاعات مفید سازمان از طریق خط ارتباطی شبکه به بیرون انتقال یابند جلوگیری کند اما هنگامی که این اطلاعات از خط ارتباطی عبور نمیکنند نمیتواند هیچکاری انجام دهد. کاربری ممکن است با استفاده از یک دیسک، Floppy، CD و یا تعدادی ورقه که آنها را در کیفش قرار میدهد اطلاعات حساس سازمان را به بیرون انتقال دهد. در مقابله با این نوع کاربران (که ممکن است اطلاعات داخل را عمداً و یا سهواً از روی غفلت افشا کنند)، دیوارههای آتش ناتوان هستند و هیچکاری از دستشان ساخته نیست. برخی از افراد داخلی سطوح دسترسی بالایی را در شبکه دارا هستند و مجازند به منابع مختلف در شبکه دسترسی داشته باشند، این افراد قادر خواهند بود سخت افزارها را خراب کنند، نرم افزارها و برنامههای مختلف را دچار مشکلکنند، به طور ماهرانهای برنامهها را تغییردهند، سطوح دسترسیها را دستکاری کنند و.... واقعیت این است که دیوارههای آتش در مقابله با این مشکلات کاری نمیتوانند انجام دهند.
یک دیواره آتش نمیتواند از بروز تمام مشکلات امنیتی جلوگیریکند: دیواره آتش برای مقابله با خطرات شناخته شده طراحی شده است. مدیران شبکه با شناختی که از حملات و خطرات مختلف دارند و با تصویب تعدادی قوانین و اجرای آنها توسط دیواره آتش سعی میکنند از بروز آنها جلوگیری کنند، اما واقعیت این است که روز به روز حملات و مشکلات امنیتی جدیدی به وجود میآیند و دیواره آتش نمیتواند به طور خودکار با این خطرات مقابله کند. دیواره آتش نیز مانند تجهیزات دیگر توسط مدیر سیستم پیکربندی میشود و پیرو دستوراتی است که مدیر میدهد. یک پیکربندی خوب تا حدودی قادر خواهد بود از خطرات جدید نیز جلوگیریکند. در این پیکربندی هیچ ترافیکی عبور داده نمیشود غیر از ترافیک مربوط به تعداد بسیار اندکی سرویس مطمئن. خرابکاران به طور مرتب راههای جدیدی برای نفوذ و خرابکاری پیدا میکنند. آنها یا از سرویسهای مطمئن شناخته شده سوء استفاده میکنند ویا مشکلاتی که تا کنون برای کسی رخ نداده (و بنابراین هیچ کس راجع به آنها چیزی نمیداند و به همین دلیل در هیچ دیواره آتشی در نظر گرفته نشده) را به کار میبندند. یک دیواره آتش را نمیتوان یک بار پیکربندی کرد و انتظار داشت برای همیشه شبکه را از هر خطری مورد محافظت قرار دهد.
یک دیواره آتش معمولاً نمیتواند از ورود ویروسها جلوگیری کند: اغلب دیوارههای آتش بخشهای مربوط به آدرس مبدأ و آدرس مقصد و شماره پورت مبدأ ومقصد شبکههای ورودی را مورد بازرسی قرار میدهند و به جزئیات داده توجهی ندارند. پیادهسازی بخش تشخیص ویروس و بررسی کامل داده بستهها در دیوارههای آتش زیاد عملی وکارا نیست. انواع بسیار زیادی از ویروسها وجود دارند و روشهای زیادی برای آنکه ویروس خودش را در داخل داده مخفیکند وجود دارد. تشخیص ویروس (Virus Detection) در یک بسته تصادفی از دادهای که از دیواره آتش عبور میکند بسیار مشکل است. برای تشخیص ویروس در بستهها نیازمندیهای زیر وجود دارد:
- تشخیص این مطلب که بخش داده بسته بخشی از یک برنامه است.
- مشخص کردن اینکه یک برنامه مجاز چگونه است و چه ویژگیهایی دارد.
- تشخیص این که تفاوتی بین این برنامه و مدل برنامههای بدون مشکل و مجاز وجود دارد و بنابراین برنامه یک ویروس است.
اغلب دیوارههای آتش ماشینهایی از انواع مختلف و با فرمتهای اجرایی مختلف را مورد محافظت قرار میدهند.
یک برنامه ممکن است یک برنامه کامپایل شده قابل اجرا و یا یک script باشد. علاوه بر این، بسیاری از برنامهها قبل از اینکه انتقال یابند به شکل یک Package در میآیند و به خوبی فشرده سازی میشوند. این مسایل باعث میشود پیچیدگی مسأله تشخیص ویروسها بالاتر رود و پیادهسازی آن مشکل باشد. با این همه باز هم نمیتوان تمامی منابع دیگر انتقال ویروسها را کنترل کرد. بسیاری از برنامهها ممکن است از طریق مودمهای اشخاصی که به اینترنت متصلند و از دیواره آتش رد نمی شوند download شوند و یا با یک floppy از محل سکونت به شبکه داخلی سازمان انتقال یابند و ... روش عملی تر مقابله با ویروسها استفاد از نرم افزارهای host-base virus protection است. آموزش کاربران و آگاه کردن آنها از خطرات ویروسها نیز می تواند مؤثر باشد.
در هر حال یک دیواره آتش قادر است در جهت بالا رفتن سطح امنیتی شبکه اقدامات مفیدی را انجام دهد. در ادامه مواردی که یک دیواره آتش قادر است انجام دهد و به امنیت شبکه کمک کند را مورد بررسی قرار میدهیم.
منبع: itc.itmavara.com











