چکیده:

فایروال می تواند یک برنامه نرم افزاری و یا یک وسیله سخت افزاری باشد که مانند فیلتر از ورود اطلاعات ناخواسته به سیستم کامپیوتری و یا شبکه کامپیوتری جلوگیری کند. اگر بسته ای از اطلاعات توسط فیلترهای فایروال ، بسته ناخواسته تشخیص داده شود اجازه ورود به سیستم را نخواهد داشت.

firewall اگر با نحوه جابجایی بسته های اطلاعات در شبکه آشنا باشید خواهید دید که چگونه یک فایروال می تواند از کامپیوتر حفاظت کند. تصور کنید در شرکتی کار می کنید که دارای ۵۰۰ کارمند است. شرکت مذکور دارای صدها کامپیوتر می باشد که توسط کارت شبکه به هم متصل اند و از طریق خطوط پرسرعت به اینترنت متصل می شوند. بدون مجهز بودن این شرکت به فایروال هر کس در اینترنت می تواند به تمام سیستم های موجود در شبکه دسترسی داشته باشد. و یا یک هکر حرفه ای می تواند به راحتی از طریق FTP و Telnet تمام کامپیوترهای آن شرکت را مورد بررسی قرار دهد. اگر یکی از کارمندان مرتکب اشتباهی شود و یک شکاف امنیتی در شبکه بوجود آورد، هکرها می توانند به کامپیوتر دست یابند و از آن شکاف نهایت استفاده را ببرند. اما با نصب فایروال مناسب می توان کاملا این موارد را بر طرف کرد.

اگر شرکت در هر یک از نقاط اتصال به اینترنت یک فایروال نصب کند و به اعمال و اجرای قوانین امنیتی بپردازد می تواند درصد هک شدن و تهدیدات را به میزان قابل توجهی کاهش دهد. برای روشن شدن موضوع به مثال زیر توجه کنید:

یکی از موارد امنیتی که در شرکت فرضی ممکن است اعمال شود کنترل ترافیک FTP است. چون در بین ۵۰۰ کامپیوتر موجود در شرکت تنها یکی از آنها مجاز به دریافت ترافیک FTP و پاسخ به درخواست های آن می باشد و درخواست ها نیز فقط مجازند با همان یک سیستم ( FTP Server ) ارتباط داشته باشند و نه با سیستم های دیگر. بنابراین شرکت می تواند از طریق فایروال قوانینی را وضع نماید تا کاربران راه دور فقط با همان یک سیستم ارتباط برقرار نماید. مانند آنچه برای FTP گفته شد را می توان برای دیگر سرورها از جمله Telnet Server , Web Server و غیره تعریف کرد. همچنین شرکت می تواند نحوه ارتباط کارکنان خود را به شبکه اینترنت و وب سایت های مختلف کنترل نماید.

Firewall به زبان ساده:

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

castle-firewall البته این گونه حمله ها به قلعه بخشی از ماجراست، تهدید اصلی آن جاسوسانی هستند که در تاریکی شب پشت دیوارها مخفی می شوند و سد ها را بدون اینکه دیده شوند وشناسایی شوند پشت سد گذاشته اند و به هدفشان نزدیکترند. خوب حالا در این قلعه و با این سیستم امنیتی چه سیاست هایی را باید در پیش گرفت؟ تا کی باید به مردم اجازه داد در آن قلعه باشند .آیا به عنوان مثال کارهایی را برای ثبت خود به عنوان فرد مجاز، باید انجام دهند؟ بازرگانان و اهالی محلی شهر اجازه عبور و مرور در سوپر مارکت ها و کار در محوطه قلعه را دارند و می توانند کالاهای خود را بدست آورند یا تحویل دهند. در شب دروازه ها بسته می شوند و کالا ها داخل قلعه آورده می شوند معمولا بعد از یک بازرسی دقیق! (با این مقایسه سوپر مارکت حکم WEB server یا FTP server عمومی را دارند که برای دسترسی های عمومی با آنها وصل می شوید.

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

در زمان صلح حاکم قلعه می تواند مردم عادی شهر بازرگانان و یا اشخاص مهم را از نواحی دیگر ببینند. هر ملاقات مستقیم با رئیس یا ملکه با یک الگوریتم اولویت داده می شود. ولی اگر شرایط سیاسی خاصی پیش آید حاکم ممکن است از ملاقات مستقیم با ملاقات کنندگان دوری کند در این مورد قرار دادی گذاشته می شود که ملاقات کنندگان با یک عامل یا کار گذار از طرف ملکه ملاقات کنند که این عامل پیغام ها را می رساند. Proxy server نقش این عامل را بازی می کند. (اگر دقیق نمی دانید Proxy server چیست و چه می کند زیاد نگران نباشید در این مقاله کمی اطلاعات در این زمینه خواهید یافت) ممکن است سیاست ورود و خروج این گونه باشد که مثلا نگهبان قلعه می داند چه کسانی از قلعه بیرون رفته اند و تنها به کسانی اجازه ورود می دهد که قبلا خارج شده اند.

در هر حال یک قلعه اگر بخواهد خوب و محکم و امن باشد، علاوه بر چیزهایی که گفته شد باید سیستم بازسازی هم داشته باشد که اگر قسمتی ضربه دید بتوان آن را دوباره زنده کرد و همچنین باید یک مدیریت بر قوانین قلعه حکومت کند، چون سیاست ها از قلعه ای به قلعه ای دیگر و از زمانی تا زمان دیگر فرق می کند.

Firewall چیست؟

Firewall سیستمی است بین کاربران یک شبکه محلی و یک شبکه بیرونی مثل Internet که ضمن نظارت بر دسترسی ها، بر تمام سطوح ورود و خروج اطلاعات را تحت نظر دارد و در واقع از شبکه های کامپیوتری محافظت می کند . این می تواند یک ابزار سخت افزاری باشد یا یک نرم افزار که روی یک کامپیوتر امن اجرا می شود. در هر حال باید رابط حداقل دو شبکه را داشته باشد . یکی شبکه ای که در آن می نشیند و باید از آن محافظت کند و دیگری یک شبکه بیرونی.

یک Firewall در نقطه اتصال یا gateway بین دو شبکه می نشیند.

hardware-firewall فایروال سخت افزاری

software-firewall فایروال نرم افزاری

Firewall چه می کند؟

یک Firewall ترافیکی را که بین دو شبکه عبور می کند را امتحان و بررسی می کند تا ببیند آیا ملاقاتها طبق معیارهای خاصی صورت می گیرد یا نه. در واقع بسته های TCP و IP قبل و بعد از ورود به شبکه وارد دیوار آتش می شوند و منتظر می مانند تا طبق معیارهای امنیتی خاصی پردازش شوند. حاصل این پردازش احتمال وقوع سه حالت است:

۱- اجازه عبور بسته داده می شود (Accept Mode )
2- بسته حذف می شود (Blocking Mode )
3- بسته حذف می شود وپیغام مناسب به مبدا ارسال بسته فرستاده می شود (Response Mode)

(به غیر از پیغام حذف بسته می توان عملیاتی نظیر اخطار، ردگیری و جلوگیری از ادامه استفاده از شبکه و توبیخ هم در نظر گرفت)

در حقیقت دیوار آتش محلی است برای ایست و بازرسی بسته های اطلاعاتی به گونه ای که بسته ها بر اساس تابعی از قواعد امنیتی و حفاظتی پردازش شده و برای آنها مجوز عبور یا عدم عبور صادر شود. اگر P مجموعه ای از بسته های ورودی به سیستم دیوار آتش در نظر گرفته شود و S مجموعه ای متناهی از قواعد امنیتی باشد داریم :

X=F(P,S)

F تابع عملکرد Firewall و X نتیجه بسته (شامل سه حالت Response,Accept و Blocking ) خواهد بود. همانطور که همه جا ایست و بازرسی وقت گیر و اعصاب خردکن است Firewall نیز می تواند به عنوان یک گلوگاه باعث بالا رفتن ترافیک، تاخیر و بن بست در شبکه شود. بن بست زمانی است که بسته ها آنقدر در حافظه دیوار آتش معطل می شوند تا طول عمرشان تمام شده و فرستنده اقدام به ارسال مجدد آنها کرده و این کار به طور متناوب تکرار شود.

به همین دلیل Firewall نیاز به طراحی صحیح و دقیق دارد تا از حالت گلوگاهی خارج شود. البته تاخیر درFirewall اجتناب ناپذیر است فقط باید به گونه ای باشد که بحران ایجاد نکند.

بیایید کمی جزئی تر به این مسئله نگاه کنیم، اگر از دیدگاه نظریه صف به یک دیوار آتش یا همان Firewall نگاه کنیم می توان تخمینی از تاخیر تحمیل شده به هر بسته را بدست آورد. معمولا تابع توزیع بسته ها را در شبکه های اطلاعاتی پوآسون در نظر می گیرند. فرض کنید λn متوسط انتقال بسته IP در واحد زمان از شبکه N به دیوار آتش و λm متوسط انتقال بسته در واحد زمان از شبکه M باشد.q را احتمال عبور بسته PM و r را احتمال عبور بسته PN فرض کنید.

(۱-q).λm+(1-r).λn = متوسط بسته های حذف شده
r.λn = متوسط انتقال بسته از دیوار آتش به M
q.λm = متوسط انتقال بسته از دیوار آتش به N

طبق نظریه صف اگر دیوار آتش بخواهد از نقش گلوگاهی خود بکاهد بایستی به گونه ای طراحی شود که نسبت متوسط خروجی بسته ها از دیوار آتش (u) به ورودی بسته ها (یعنی نسبت μ/λ) تا حد امکان زیاد باشد که این کار منوط به افزایش سرعت پردازش، داشتن حافظه کافی برای ذخیره بسته های پردازش نشده و هرچه سریع تر کردن تابع تصمیم گیری می باشد. مشکل زمانی حاد می شود که دیوار آتش مجبور باشد برای تصمیم گیری و اجازه عبور تعدادی از بسته ها را نگه دارد تا تصمیم گیری بر اساس مجموعه ای از بسته ها انجام شود. این نکته در ادامه آشکار تر خواهد شد.

Firewall چگونه کار می کند؟

دو متدولوژی در Firewall استفاده می شود. Firewall می تواند به تمام ترافیک اجازه عبور دهد تا اینکه به معیار مشخصی برسد یا اینکه به هیچ کس اجازه عبور ندهد مگر اینکه به معیار مشخصی برسد.

این معیارها از یک Firewall به Firewall دیگر تفاوت می کند. Firewall ها می توانند به محتوی داده حساس باشند یا آدرس مبدا و مقصد و شماره پورت و یا … تصمیم نهایی در مورد پذیرش یا رد بسته، بستگی به لایه شبکه ای دارد که روی آن کار می کند. Firewall ها روی لایه های مختلفی از شبکه سوار می شوند تا معیارهای مختلفی را برای محدود کردن ترافیک به کار برند. همانطور که می دانیم مدل شبکه OSI 7 لایه دارد. (لایه ۱ : لایه فیزیکی، لایه ۲: لایه پیوند داده ها، لایه ۳: لایه شبکه، لایه ۴ : لایه انتقال، لایه ۵: لایه جلسه، لایه۶: لایه ارائه (نمایش)،لایه ۷: لایه کاربرد)
و مدل شبکه اینترنت (لایه ۱ : واسط شبکه، لایه۲: لایه شبکه، لایه ۳: لایه انتقال، لایه۴: لایه کاربرد)
حال مختصر بپردازیم به اینکه Firewall چگونه کار می کند.

از آنجایی که معماری شبکه به صورت لایه لایه است و اینترنت هم از مدل TCP/IP حمایت می کند، ما بیشتر توضیحاتمان را روی این مدل می آوریم. در مدل TCP/IP برای انتقال یک واحد اطلاعات از لایه چهارم بر روی شبکه، باید تمام لایه ها را گذراند و هر لایه برای انجام وظیفه خود تعدادی فیلد مشخص به ابتدای بسته اطلاعاتی اضافه کرده و آن را تحویل لایه زیرین می دهد. قسمت اعظم کار یک دیوار آتش تحلیل فیلدهای اضافه شده در هر لایه وسرایند بسته می باشد. در بسته ای که وارد دیوار آتش می شود به تعداد لایه ها سرایند مختلف وجود خواهد داشت. معمولا سرایند لایه اول (لایه فیزیکی یا network-interface از شبکه اینترنت) اهمیت چندانی نخواهد داشت. چرا که محتوای این فیلدها فقط روی کانال فیزیکی از شبکه محلی معنا دارند و در گذر از هر شبکه یا مسیریاب این فیلدها عوض خواهد شد. بیشترین اهمیت در سرایندی است که در لایه های دوم سوم و چهارم شبکه به یک واحد از اطلاعات اضافه خواهد شد:

در لایه شبکه دیوار آتش فیلدهای بسته IP را پردازش و تحلیل می کند.
در لایه انتقال دیوار آتش فیلدهای بسته های TCP یا UDP را پردازش و تحلیل می کند.
در لایه کاربرد دیوار آتش فیلدهای سرایند و همچنین محتوای خود داده ها را بررسی می کند. (مثلا سرایند و محتوی یکه نامه الکترونیکی یا یک صفحه وب می تواند مورد بررسی قرار گیرد.)

با توجه به لایه لایه بودن معماری شبکه لاجرم دیوار آتش نیز باید لایه لایه طراحی شود. (البته توجه به این نکته مهم است که این به این معنا نیست که همه Firewall ها همه این لایه ها و قابلیت ها را دارند، بلکه بسته به کاربرد در بعضی انواع Firewall فقط برخی لایه های آن پیاده سازی می شود.)
اگر یک بسته در یکی از لایه های دیوار آتش شرایط عبور را احراز نکند همان جا حذف شده و به لایه های بالاتر ارجاع نمی شود بلکه این امکان وجود دارد که آن بسته جهت پیگیری های امنیتی نظیر ثبت و ردگیری به سیستمی جانبی تحویل داده شود.

سیاست امنیتی یک شبکه مجموعه ای متناهی از قواعد امنیتی است که بنابر ماهیتشان در یکی از سه لایه دیوار آتش تعریف می شوند، به عنوان مثال:

۱-  قواعد تعیین آدرس های ممنوع در اولین لایه از دیوار آتش
۲-  قواعد بستن برخی از سرویس ها مثل Telnet یا FTP در لایه دوم
۳-  قواعد تحلیل سرایند متن یک نامه الکترونیکی یا صفحه وب در لایه سوم

لایه اول دیوار آتش :

لایه اول در دیوار آتش بر اساس تحلیل بسته IP و فیلدهای سرایند این بسته کار می کند و در این بسته فیلدهای زیر قابل نظارت و بررسی هستند :
• آدرس مبدا برخی ماشین های داخل و یا خارج شبکه با آدس IP خاص حق ارسال بسته نداشته باشند و بسته های آنها به محض ورود به دیوار آتش حذف شود.

• آدرس مقصد : برخی ماشین های داخل و یا خارج شبکه با آدرس IP خاص حق دریافت بسته نداشته باشند و بسته های آنها به محض ورود به دیوار آتش حذف شود.

• شماره شناسایی یک دیتاگرام : بسته هایی که متعلق به یک دیتاگرام خاص هستند حذف شوند.

• شماره پروتکل : بسته هایی که متعلق به پروتکل خاصی در لایه بالاتر هستند می توانند حذف شوند.
یعنی بررسی اینکه بسته متعلق به چه پروتکلی از لایه بالاتر است و آیا برای تحویل به آن پروتکل مجاز است یا نه؟
• زمان حیات بسته : بسته هایی که بیش از تعداد مشخصی مسیریاب را طی کرده باشند مشکوک هستند و باید حذف شوند.

• بقیه فیلدها بنابر صلاحدید و قواعد امنیتی مسئول دیوار آتش قابل بررسی هستند.

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

لایه دوم دیوار آتش :

در این لایه از فیلدهای سرایند لایه انتقال برای تحلیل بسته استفاده می شود. عمومی ترین فیلدهای بسته های لایه انتقال جهت بازرسی در دیوار آتش عبارتند از:

• شماره پورت پروسه مبدا و شماره پورت پروسه مقصد : با توجه با آنکه پورت های استاندارد شناخته شده هستند ممکن است مسئول یک دیوار آتش بخواهد سرویس FTP (انتقال فایل) فقط در محیط شبکه محلی امکان پذیر باشد و برای تمام ماشین های خارجی این سرویس وجود نداشته باشد، بنابراین دیوار آتش می تواند بسته های TCP با شمار پورت ۲۰ و ۲۱ (مربوط به FTP ) که قصد ورود یا خروج از شبکه را دارند حذف کند . یکی دیگر از سرویس های خطرناک که ممکن است مورد سوءاستفاده قرار گیرد Telnet است که می تواند به راحتی پورت ۲۳ را مسدود کند یعنی بسته هایی که شماره پورت مقصدشان ۲۳ است حذف شوند.

• فیلد شماره ترتیب و فیلد acknowledgment : این دو فیلد نیز بنا بر قاعد تعریف شده توسط مسئول شبکه قابل استفاده هستند.
از خصوصیات این لایه آن است که تمام تقاضاهای برقراری ارتباط TCP تا مراحل دست تکانی سه گانه اش به اتمام نرسد انتقال داده امکان پذیر نیست لذا قبل از مبادله هرگونه داده دیوار آتش می تواند مانع برقراری هرگونه ارتباط شود. یعنی دیوار آتش می تواند تقاضای برقراری ارتباط TCP را قبل از ارائه به ماشین مقصد بررسی نماید و در صورت غیرقابل اعتماد بودن مانع از برقراری ارتباط شود. دیوار آتش در این لایه نیاز به جدولی از پورت های غیر مجاز دارد.

لایه سوم دیوار آتش :

در این لایه حفاظت بر اساس نوع سرویس و برنامه کاربردی انجام می شود یعنی با در نظر گرفتن پروتکل در لایه چهارم به تحلیل داده ها می پردازد. تعداد سرایند های در این لایه بسته به نوع سرویس بسیار متنوع و فراوان است. بنابراین در لایه سوم دیوار آتش برای هر سرویس مجزا (مثل سرویس پست الکتریکی، سرویس FTP، سرویس وب و … ) باید یک سلسله پردازش و قواعد امنیتی مجزا تعریف شود و به همین دلیل حجم و پیچیدگی پردازش در قسمت سوم بسیار زیاد است .

توصیه موکد آن است که تمام سرویس های غیر ضروری و شماره پورت هایی که مورد استفاده نیستند در لایه دوم مسدود شوند تا کار در لایه سوم کمتر شود. به عنوان مثال فرض کنید موسسه نظامی سرویس پست الکتریکی خود را دایر کرده ولی نگران فاش شدن برخی از اطلاعات محرمانه است در این حالت دیوار آتش در لایه سوم می تواند کمک کند تا برخی از آدرس های پست الکترونیکی مسدود شود . در عین حال می تواند در متون نامه های رمز نشده دنبال برخی از کلمات کلیدی حساس بگردد و متون رمزگذاری شده را در صورتی که موفق به رمز گشایی آن نشود حذف نماید.

به عنوان مثالی دیگر یک مرکز فرهنگی علاقه مند است قبل از تحویل صفحه وب به یک کاربر درون آن را از لحاظ وجود برخی از کلمات کلیدی بررسی کند و اگر کلماتی با معیارهای فرهنگی مطابقت ندارد درون متن صفحه یافت شود و آن صفحه را حذف نماید.

نویسنده: محمد مهدی کسائیان

منبع

468 ad 

ارسال پاسخ