به طور خلاصه و به بیان ساده فایروال (Firewall | دیوار آتش) بین شبکه و اینترنت قرار می گیرد و در جریان داده ها را هنگام ورود و خروج از شبکه کنترل می کند تا از تهدید های امنیتی احتمالی جلوگیری شود. در این مطلب پس از پاسخ به این پرسش که فایروال چیست، شرح خواهیم داده چرا فایروال باید هم داده های وروردی و هم داده های خروجی را بازرسی کند. همچنین درک خواهیم کرد که فایروال پروکسی، WAF و دیگر انواع فایروال چه هستند و با هم چه تفاوتی هایی دارند.
فایروال یک سیستم امنیتی است که بر اساس مجموعه ای از قوانین امنیتی، ترافیک شبکه را نظارت و کنترل می کند. فایروال ها معمولاً بین یک شبکه قابل اعتماد و یک شبکه غیرقابل اعتماد، اینترنت است. به عنوان مثال، شبکه های ادارات شرکت ها اغلب از فایروال برای محافظت شبکه خود در برابر تهدیدات آنلاین استفاده می کنند.
فایروال ها تصمیم می گیرند که آیا باید به ترافیک ورودی و خروجی اجازه عبور دهند یا خیر. آن ها می توانند به صورت سخت افزاری، نرم افزاری یا ترکیبی از هر دو ساخته شوند. واژه فایروال (دیوار آتش) در واقع از یک عملیات ساختمانی به اقتباس گرفته شود که در آن دیوار هایی در میان یا از میان ساختمان های طراحی شده برای محصور کردن آتش سوزی ساخته می شوند. به همین ترتیب، فایروال های شبکه نیز برای محدود کردن تهدیدات آنلاین مورد استفاده قرار می گیرند.
پیدایش فایروال به اواخر دهه 1980 باز می گردد. اولین دیوارهای آتش، بسته های داده خاصی را عبور می دادند یا مسدود می کردند. آن ها با بررسی هدرهای لایه شبکه و لایه انتقال، برای مشاهده آدرس IP و پورت مبدا و مقصد (مانند دیدن بخش های به و از در یک ایمیل) تصمیم می گرفتند که کدام بسته ها را عبور دهند و کدام را مسدود کنند. این کار از عبور ترافیک غیر مجاز جلوگیری می کرد و بسیاری اط حملات بدافزاری را متوقف می ساخت.
نسل بعدی فایروال ها، قابلیت های حالت مند (State full) را اضافه کردند و نسل های جدیدتر (مانند NGFW) توانایی بررسی ترافیک در لایه اپلیکشن رانیز به دست آورند. همان طور که قابلیت فایروال ها در طول زمان تکامل یافته، روش استقرار آن ها نیز تغییر کرده است. در ابتدا، دیوار های آتش دستگاه های سخت افزاری فیزیکی بودند که به زیرساخت شبکه شرکت ها متصل می شدند. اما با انتقال فرآیندهای کسب و کار به فضای ابری، هدایت تمام ترافیک شبکه از طریق یک جعبه فیزیکی، نا کارآمد شد. امروز دیوار آتش می توانند به صورت نرم افزاری یا مجازی در فضای ابری نیز اجرا شوند.
کاربرد اصلی فایروال، «امنیت» است. فایروالها میتوانند ترافیک مخرب ورودی را قبل از رسیدن به شبکه رهگیری کرده و همچنین از خروج اطلاعات حساس از شبکه جلوگیری کنند. فایروالها همچنین میتوانند برای فیلتر کردن محتوا استفاده شوند.
بهعنوان مثال، برای یک مدرسه میتوان فایروال را طوری پیکربندی کرد که از دسترسی کاربران شبکه به محتوای بزرگسالان جلوگیری شود. به همین ترتیب، در برخی کشورها، دولتها از فایروالهایی استفاده میکنند که میتوانند مردم آن کشور را از دسترسی به بخشهایی از اینترنت منع کنند. تمرکز این مقاله روی فایروالهایی است که برای امنیت پیکربندی شدهاند که انواع مختلفی دارند و لذا در ادامه به معرفی و شرح انواع فایروال پرداخته شده است.
در این بخش به معرفی و شرح هر یک از انواع فایروال میپردازیم. ابتدا به فایروالهای مبتنی بر پروکسی پرداخته میشود.
این نوع از فایروالها، پروکسیهایی هستند که بین کلاینتها و سرورها قرار میگیرند. کلاینتها به فایروال متصل میشوند و فایروال بستههای خروجی را بررسی میکند. سپس یک اتصال با گیرنده مورد نظر (وب سرور) برقرار میکند. به همین ترتیب، زمانی که وب سرور قصد دارد پاسخی را به کلاینت ارسال کند، فایروال آن درخواست را رهگیری میکند، بستهها را بررسی میکند و سپس پاسخ را از طریق اتصال جداگانه بین فایروال و کلاینت تحویل میدهد. فایروال مبتنی بر پروکسی به طور مؤثر از برقراری اتصال «مستقیم» بین کلاینت و سرور جلوگیری میکند.
یک برنامه یا اپلیکیشن «وابسته به حالت» (State full) در علوم کامپیوتر، برنامهای است که دادهها و اطلاعات مربوط به رویدادها و تعاملات قبلی را ذخیره میکند. «فایروال وضعیتمحور» به جای بررسی هر بسته بهصورت جداگانه، اطلاعات مربوط به اتصالات باز را ذخیره و از این اطلاعات برای تجزیهوتحلیل ترافیک ورودی و خروجی استفاده میکند. از آنجایی که فایروالهای وضعیتمحور همه بستهها را بررسی نمیکنند، سرعت آنها از دیوارهای آتش مبتنی بر پروکسی بیشتر است.
فایروالهای وضعیتمحور برای تصمیمگیری به زمینه و محتوای ارتباطات بسیار توجه میکنند. بهعنوان مثال، اگر فایروال بستههای خروجی مربوط به اتصالی را ثبت و ضبط کند که در آنها نوع خاصی از پاسخ درخواست شده، تنها به بستههای ورودی در همان اتصال اجازه میدهد که پاسخ درخواست شده را ارائه دهند. به عبارت دیگر، این فایروالها با توجه به پیشینه و وضعیت قبلی اتصالات، در ارتباط با پذیرش یا رد کردن بستههای جدید تصمیم میگیرند.
فایروالهای وضعیتمحور میتوانند از پورتها نیز محافظت کنند، به این صورت که تمام پورتها را بسته نگه میدارند، مگر اینکه بستههای ورودی درخواست دسترسی به یک پورت خاص را داشته باشند. این ویژگی میتواند در برابر نوعی حمله به نام «ردیابی پورت» (Port Scanning)، مقاومت ایجاد کند. لازم به توضیح است که یک درگاه شبکه یا همان پورت، محلی است که اطلاعات از آنجا ارسال میشود؛ پورت یک مکان فیزیکی نیست، بلکه یک نقطه پایانی ارتباطی به حساب میآید.
یک آسیبپذیری شناخته شده در دیوارهای آتش وضعیتمحور این است که میتوان آنها را با فریب یک کلاینت و درخواست نوع خاصی از اطلاعات، دستکاری کرد. وقتی مشتری آن پاسخ را درخواست کرد، مهاجم میتواند بستههای مخرب را که با آن معیار مطابقت دارند، از طریق دیوار آتش ارسال کند. به عنوان مثال، وبسایتهای ناامن میتوانند از کد جاوا اسکریپت برای ایجاد این نوع درخواستهای جعلی از یک مرورگر وب استفاده کنند.یک آسیبپذیری شناخته شده در دیوارهای آتش وضعیتمحور این است که میتوان آنها را با فریب یک کلاینت و درخواست نوع خاصی از اطلاعات، دستکاری کرد. وقتی مشتری آن پاسخ را درخواست کرد، مهاجم میتواند بستههای مخرب را که با آن معیار مطابقت دارند، از طریق دیوار آتش ارسال کند. به عنوان مثال، وبسایتهای ناامن میتوانند از کد جاوا اسکریپت برای ایجاد این نوع درخواستهای جعلی از یک مرورگر وب استفاده کنند.
فایروالهای نسل جدید یا «نسل بعدی» (Next-generation Firewalls | NGFW)، دیوارهای آتشی هستند که تواناییهای دیوارهای آتش سنتی را دارند، اما علاوه بر آن از ویژگیها و قابلیتهای افزودهای هم برخوردارند تا در برابر تهدیدهای موجود در لایههای دیگرِ مدل OSI نیز محافظت کنند. برخی از ویژگیهای اختصاصی فایروالهای نسل جدید عبارتند از:
در حالی که فایروالهای سُنتی به محافظت از شبکههای خصوصی در برابر وباپلیکیشنهای مخرب کمک میکنند، «فایروالهای وباپلیکیشن» (Web Application Firewall | WAF) به محافظت از وباپلیکیشنها در برابر کاربران مخرب کمک میکنند. یک فایروال WAF با فیلتر کردن و نظارت بر ترافیک HTTP بین یک وب اپلیکیشن و اینترنت، به محافظت از اپلیکیشن وب کمک میکند. معمولاً WAF وب اپلیکیشنها را در برابر حملاتی مانند «جعل درخواست میان سایتی» (Cross-Site Forgery)، «اسکریپتنویسی میان سایتی» (XSS | Cross-Site Scripting)، «ادغام فایل» (File Inclusion) و تزریق SQL، به همراه برخی موارد دیگر محافظت میکند.
با استقرار فایروال وباپلیکیشن در مقابل یک وباپلیکیشن، سپری بین وباپلیکیشن و اینترنت قرار خواهد گرفت. در حالی که یک فایروال مبتنی بر پروکسی از هویت ماشین کاربر با استفاده از یک واسط محافظت میکند، فایروال وباپلیکیشن نوعی پروکسی معکوس است که به وسیله عبور دادن کاربران از فایروال قبل از رسیدن به سرور از قرار گرفتن سرور در معرض دید محافظت میکند.
یک فایروال وباپلیکیشن بر اساس مجموعهای از قوانین عمل میکند که اغلب به آنها «Policy» (خط مشی | سیاست) گفته میشود. هدف این خط مشیها، محافظت در برابر آسیبپذیریهای موجود در اپلیکیشن به وسیله فیلتر کردن ترافیک مخرب است. بخشی از ارزش یک وباپلیکیشن از سرعت و سهولت اعمال تغییرات در سیاستها نشأت میگیرد که امکان واکنش سریعتر به انواع مختلف بُردارهای حمله را فراهم میکند؛ در طول یک حمله DDoS، «محدودسازی نرخ» (Rate Limiting) میتواند با تغییر سیاستهای فایروال به سرعت اعمال شود. محصولات تجاری فایروال وباپلیکیشن، همه روزه میلیونها کاربر وب را در برابر حملات محافظت میکنند.
فایروال بهعنوان سرویس (FWAAS)، مدلی جدیدتر برای ارائه قابلیتهای فایروال از طریق فناوری ابری است. این سرویس ممکن است «دیوار آتش ابری» نیز نامیده شود. FWAAS مانعی مجازی در اطراف پلتفرمهای ابری، زیرساخت و برنامهها ایجاد میکند؛ درست مانند دیوارهای آتش سُنتی که مانع محافظتی در اطراف شبکه داخلی یک سازمان ایجاد میکنند. FWAAS اغلب برای محافظت از داراییهای ابری و «چندابری» (Multi-Cloud) نسبت به فایروالهای سنتی مناسبتر است.
«فایروال شبکه» (Network Firewall) فایروالی است که از شبکه در برابر تهدیدات محافظت میکند. تقریباً تمام فایروالهای امنیتی، فایروال شبکه محسوب میشوند، هرچند فایروالها میتوانند از دستگاههای منفرد نیز محافظت کنند. در حالی که فایروالها بخش مهمی از امنیت شبکه هستند، این حوزه جنبههای دیگری از جمله «کنترل دسترسی»، «احراز هویت کاربران» و «کاهش حملات DDoS» نیز دارد.
در ابتدا، فایروالها دستگاههای سختافزاری بودند و برخی از فایروالهای سخت افزاری همچنان مورد استفاده قرار میگیرند، اما بسیاری از دیوارهای آتش مُدِرن و امروزی، نرمافزاری هستند؛ یعنی میتوانند روی انواع مختلف سختافزار اجرا شوند. در همین حال، فایروالهای FWAAS در بستر ابری میزبانی میشوند.
فایروال ابزار امنیتی مهمی است که در بین شبکه و اینترنت قرار گرفته و بر اساس قوانین امنیتی، ترافیک ورودی و خروجی را کنترل میکند. این ابزار میتواند نرمافزاری، سختافزاری یا ترکیبی از هر دو باشد و انواع متنوعی مانند فایروال پروکسی، فایروال حالتمند، فایروال نسل جدید، فایروال وب (WAF) و فایروال به عنوان سرویس (FWAAS) دارد. فایروالها با مسدود کردن ترافیک مخرب و تهدیدآمیز از نفوذ به شبکه جلوگیری و همچنین از خروج اطلاعات حساس از شبکه ممانعت میکنند.