بهطور خلاصه و به بیان ساده، «فایروال» (Firewall | دیوار آتش) بین شبکه و اینترنت قرار میگیرد و جریان دادهها را هنگام ورود و خروج از شبکه کنترل میکند تا از تهدیدهای امنیتی احتمالی جلوگیری شود. در این مطلب پس از پاسخ به این پرسش که فایروال چیست، شرح خواهیم داده چرا فایروال باید هم دادههای ورودی و هم دادههای خروجی را بازرسی کند. همچنین درک خواهیم کرد که فایروال پروکسی، WAF و دیگر انواع فایروال چه هستند و با هم چه تفاوتهایی دارند.
فایروال چیست؟
فایروال یک سیستم امنیتی است که بر اساس مجموعهای از قوانین امنیتی، ترافیک شبکه را نظارت و کنترل میکند. فایروالها معمولا بین یک شبکه قابل اعتماد و یک شبکه غیرقابل اعتماد قرار میگیرند که اغلب شبکه غیرقابل اعتماد، اینترنت است. بهعنوان مثال، شبکههای ادارات و شرکتها اغلب از فایروال برای محافظت شبکه خود در برابر تهدیدات آنلاین استفاده میکنند.
فایروالها تصمیم میگیرند که آیا باید به ترافیک ورودی و خروجی اجازه عبور دهند یا خیر. آنها میتوانند بهصورت سختافزاری، نرمافزاری یا ترکیبی از هر دو ساخته شوند. واژه «فایروال» (دیوار آتش) در واقع از یک عملیات ساختمانی به اقتباس گرفته شده که در آن دیوارهایی در میان یا از میان ساختمانهای طراحی شده برای محصور کردن آتشسوزی ساخته میشوند. به همین ترتیب، فایروالهای شبکه نیز برای محدود کردن تهدیدات آنلاین مورد استفاده قرار میگیرند.
تاریخچه فایروال
پیدایش فایروال به اواخر دهه ۱۹۸۰ بازمیگردد. اولین دیوارهای آتش، بستههای داده خاصی را عبور میدادند یا مسدود میکردند. آنها با بررسی هِدرهای لایه شبکه و لایه انتقال، برای مشاهده آدرس IP و پورت مبدأ و مقصد (مانند دیدن بخشهای «به» و «از» در یک ایمیل)، تصمیم میگرفتند که کدام بستهها را عبور دهند و کدام را مسدود کنند. این کار از عبور ترافیک غیرمجاز جلوگیری میکرد و بسیاری از حملات بدافزاری را متوقف میساخت.
نسل بعدی فایروالها، قابلیتهای «حالتمند» (Stateful) را اضافه کردند و نسلهای جدیدتر (مانند NGFW) توانایی بررسی ترافیک در لایه اپلیکیشن را نیز به دست آوردند. همانطور که قابلیتهای فایروالها در طول زمان تکامل یافته، روش استقرار آنها نیز تغییر کرده است. در ابتدا، دیوارهای آتش دستگاههای سختافزاری فیزیکی بودند که به زیرساخت شبکه شرکتها متصل میشدند. اما با انتقال فرآیندهای کسب و کار به فضای ابری، هدایت تمام ترافیک شبکه از طریق یک جعبه فیزیکی، ناکارآمد شد. امروزه دیوارهای آتش میتوانند به صورت نرمافزاری یا مجازی در فضای ابری نیز اجرا شوند.
ضرورت استفاده از فایروال چیست؟
کاربرد اصلی فایروال، «امنیت» است. فایروالها میتوانند ترافیک مخرب ورودی را قبل از رسیدن به شبکه رهگیری کرده و همچنین از خروج اطلاعات حساس از شبکه جلوگیری کنند. فایروالها همچنین میتوانند برای فیلتر کردن محتوا استفاده شوند.
بهعنوان مثال، برای یک مدرسه میتوان فایروال را طوری پیکربندی کرد که از دسترسی کاربران شبکه به محتوای بزرگسالان جلوگیری شود. به همین ترتیب، در برخی کشورها، دولتها از فایروالهایی استفاده میکنند که میتوانند مردم آن کشور را از دسترسی به بخشهایی از اینترنت منع کنند. تمرکز این مقاله روی فایروالهایی است که برای امنیت پیکربندی شدهاند که انواع مختلفی دارند و لذا در ادامه به معرفی و شرح انواع فایروال پرداخته شده است.
آشنایی با انواع فایروال
در این بخش به معرفی و شرح هر یک از انواع فایروال میپردازیم. ابتدا به فایروالهای مبتنی بر پروکسی پرداخته میشود.
فایروالهای مبتنی بر پروکسی
این نوع از فایروالها، پروکسیهایی هستند که بین کلاینتها و سرورها قرار میگیرند. کلاینتها به فایروال متصل میشوند و فایروال بستههای خروجی را بررسی میکند. سپس یک اتصال با گیرنده مورد نظر (وب سرور) برقرار میکند. به همین ترتیب، زمانی که وب سرور قصد دارد پاسخی را به کلاینت ارسال کند، فایروال آن درخواست را رهگیری میکند، بستهها را بررسی میکند و سپس پاسخ را از طریق اتصال جداگانه بین فایروال و کلاینت تحویل میدهد. فایروال مبتنی بر پروکسی به طور مؤثر از برقراری اتصال «مستقیم» بین کلاینت و سرور جلوگیری میکند.
فایروال وضعیتمحور یا حافظهدار
یک برنامه یا اپلیکیشن «وابسته به حالت» (Stateful) در علوم کامپیوتر، برنامهای است که دادهها و اطلاعات مربوط به رویدادها و تعاملات قبلی را ذخیره میکند. «فایروال وضعیتمحور» به جای بررسی هر بسته بهصورت جداگانه، اطلاعات مربوط به اتصالات باز را ذخیره و از این اطلاعات برای تجزیهوتحلیل ترافیک ورودی و خروجی استفاده میکند. از آنجایی که فایروالهای وضعیتمحور همه بستهها را بررسی نمیکنند، سرعت آنها از دیوارهای آتش مبتنی بر پروکسی بیشتر است.
فایروالهای وضعیتمحور برای تصمیمگیری به زمینه و محتوای ارتباطات بسیار توجه میکنند. بهعنوان مثال، اگر فایروال بستههای خروجی مربوط به اتصالی را ثبت و ضبط کند که در آنها نوع خاصی از پاسخ درخواست شده، تنها به بستههای ورودی در همان اتصال اجازه میدهد که پاسخ درخواست شده را ارائه دهند. به عبارت دیگر، این فایروالها با توجه به پیشینه و وضعیت قبلی اتصالات، در ارتباط با پذیرش یا رد کردن بستههای جدید تصمیم میگیرند.
فایروالهای وضعیتمحور میتوانند از پورتها نیز محافظت کنند، به این صورت که تمام پورتها را بسته نگه میدارند، مگر اینکه بستههای ورودی درخواست دسترسی به یک پورت خاص را داشته باشند. این ویژگی میتواند در برابر نوعی حمله به نام «ردیابی پورت» (Port Scanning)، مقاومت ایجاد کند. لازم به توضیح است که یک درگاه شبکه یا همان پورت، محلی است که اطلاعات از آنجا ارسال میشود؛ پورت یک مکان فیزیکی نیست، بلکه یک نقطه پایانی ارتباطی به حساب میآید.
یک آسیبپذیری شناخته شده در دیوارهای آتش وضعیتمحور این است که میتوان آنها را با فریب یک کلاینت و درخواست نوع خاصی از اطلاعات، دستکاری کرد. وقتی مشتری آن پاسخ را درخواست کرد، مهاجم میتواند بستههای مخرب را که با آن معیار مطابقت دارند، از طریق دیوار آتش ارسال کند. به عنوان مثال، وبسایتهای ناامن میتوانند از کد جاوا اسکریپت برای ایجاد این نوع درخواستهای جعلی از یک مرورگر وب استفاده کنند.
فایروالهای نسل جدید
فایروالهای نسل جدید یا «نسل بعدی» (Next-generation Firewalls | NGFW)، دیوارهای آتشی هستند که تواناییهای دیوارهای آتش سنتی را دارند، اما علاوه بر آن از ویژگیها و قابلیتهای افزودهای هم برخوردارند تا در برابر تهدیدهای موجود در لایههای دیگرِ مدل OSI نیز محافظت کنند. برخی از ویژگیهای اختصاصی فایروالهای نسل جدید عبارتند از:
- «بازرسی عمیق بسته» (DPI | Deep Packet Inspection): فایروالهای NGFW نسبت به فایروالهای سنتی، بازرسی عمیقتری از بستهها انجام میدهند. این بازرسی عمیق میتواند به مواردی مانند محتوای بستهها و اینکه چه برنامهای توسط بستهها در حال دسترسی است، توجه کند. این امر به فایروال امکان میدهد قوانین فیلترینگ ریزتری را اعمال کند.
- «آگاهی از برنامه» (Application Awareness): با فعال کردن این ویژگی، فایروال از برنامههای در حال اجرا و پورتهایی که این برنامهها استفاده میکنند، آگاه میشود. این قابلیت میتواند در برابر انواع خاصی از بدافزارها که هدف آنها متوقف کردن یک فرایند در حال اجرا و سپس تصرف پورت آن است، محافظت کند.
- «آگاهی از هویت» (Identity Awareness): این ویژگی به فایروال اجازه میدهد قوانینی را بر اساس هویت، مانند اینکه از کدام کامپیوتر استفاده میشود، کدام کاربر وارد سیستم شده است و غیره، اعمال کند.
- «ایجاد محیط ایزوله» (Sandboxing): فایروالها میتوانند بخشهایی از کدهای مرتبط با بستههای ورودی را جدا کرده و آنها را در یک محیط «ایزوله» (Sandbox) اجرا کنند تا اطمینان حاصل شود رفتار مخربی ندارند. نتایج این آزمون سندباکس میتواند به عنوان معیاری برای تصمیمگیری در مورد این موضوع استفاده شود که آیا باید به بستهها اجازه ورود به شبکه داده شود یا خیر.
فایروالهای وباپلیکیشن (فایروال کاربرد وب | WAF)
در حالی که فایروالهای سُنتی به محافظت از شبکههای خصوصی در برابر وباپلیکیشنهای مخرب کمک میکنند، «فایروالهای وباپلیکیشن» (Web Application Firewall | WAF) به محافظت از وباپلیکیشنها در برابر کاربران مخرب کمک میکنند. یک فایروال WAF با فیلتر کردن و نظارت بر ترافیک HTTP بین یک وب اپلیکیشن و اینترنت، به محافظت از اپلیکیشن وب کمک میکند. معمولاً WAF وب اپلیکیشنها را در برابر حملاتی مانند «جعل درخواست میان سایتی» (Cross-Site Forgery)، «اسکریپتنویسی میان سایتی» (XSS | Cross-Site Scripting)، «ادغام فایل» (File Inclusion) و تزریق SQL، به همراه برخی موارد دیگر محافظت میکند.
با استقرار فایروال وباپلیکیشن در مقابل یک وباپلیکیشن، سپری بین وباپلیکیشن و اینترنت قرار خواهد گرفت. در حالی که یک فایروال مبتنی بر پروکسی از هویت ماشین کاربر با استفاده از یک واسط محافظت میکند، فایروال وباپلیکیشن نوعی پروکسی معکوس است که به وسیله عبور دادن کاربران از فایروال قبل از رسیدن به سرور از قرار گرفتن سرور در معرض دید محافظت میکند.
یک فایروال وباپلیکیشن بر اساس مجموعهای از قوانین عمل میکند که اغلب به آنها «Policy» (خط مشی | سیاست) گفته میشود. هدف این خط مشیها، محافظت در برابر آسیبپذیریهای موجود در اپلیکیشن به وسیله فیلتر کردن ترافیک مخرب است. بخشی از ارزش یک وباپلیکیشن از سرعت و سهولت اعمال تغییرات در سیاستها نشأت میگیرد که امکان واکنش سریعتر به انواع مختلف بُردارهای حمله را فراهم میکند؛ در طول یک حمله DDoS، «محدودسازی نرخ» (Rate Limiting) میتواند با تغییر سیاستهای فایروال به سرعت اعمال شود. محصولات تجاری فایروال وباپلیکیشن، همه روزه میلیونها کاربر وب را در برابر حملات محافظت میکنند.
فایروال بهعنوان سرویس | Firewall-as-a-service | FWaaS
فایروال بهعنوان سرویس (FWaaS)، مدلی جدیدتر برای ارائه قابلیتهای فایروال از طریق فناوری ابری است. این سرویس ممکن است «دیوار آتش ابری» نیز نامیده شود. FWaaS مانعی مجازی در اطراف پلتفرمهای ابری، زیرساخت و برنامهها ایجاد میکند؛ درست مانند دیوارهای آتش سُنتی که مانع محافظتی در اطراف شبکه داخلی یک سازمان ایجاد میکنند. FWaaS اغلب برای محافظت از داراییهای ابری و «چندابری» (Multi-Cloud) نسبت به فایروالهای سنتی مناسبتر است.
فایروال شبکه چیست؟
«فایروال شبکه» (Network Firewall) فایروالی است که از شبکه در برابر تهدیدات محافظت میکند. تقریباً تمام فایروالهای امنیتی، فایروال شبکه محسوب میشوند، هرچند فایروالها میتوانند از دستگاههای منفرد نیز محافظت کنند. در حالی که فایروالها بخش مهمی از امنیت شبکه هستند، این حوزه جنبههای دیگری از جمله «کنترل دسترسی»، «احراز هویت کاربران» و «کاهش حملات DDoS» نیز دارد.
فایروالها مبتنی بر نرمافزارند یا سختافزار محور؟
در ابتدا، فایروالها دستگاههای سختافزاری بودند و برخی از فایروالهای سخت افزاری همچنان مورد استفاده قرار میگیرند، اما بسیاری از دیوارهای آتش مُدِرن و امروزی، نرمافزاری هستند؛ یعنی میتوانند روی انواع مختلف سختافزار اجرا شوند. در همین حال، فایروالهای FWaaS در بستر ابری میزبانی میشوند.
جمعبندی
فایروال ابزار امنیتی مهمی است که در بین شبکه و اینترنت قرار گرفته و بر اساس قوانین امنیتی، ترافیک ورودی و خروجی را کنترل میکند. این ابزار میتواند نرمافزاری، سختافزاری یا ترکیبی از هر دو باشد و انواع متنوعی مانند فایروال پروکسی، فایروال حالتمند، فایروال نسل جدید، فایروال وب (WAF) و فایروال به عنوان سرویس (FWaaS) دارد. فایروالها با مسدود کردن ترافیک مخرب و تهدیدآمیز از نفوذ به شبکه جلوگیری و همچنین از خروج اطلاعات حساس از شبکه ممانعت میکنند.