یک راننده ماشین و یک موتور ماشین را درنظر بگیرید. اگر داخل موتور جرقه، انفجار یا آتشسوزی رخ دهد، چه چیزی باید جلوی آسیب رساندن به راننده را بگیرد؟ قطعاً باید دیواری بین آتش و راننده ایجاد شود. در زمینه شبکه، اسم این دیوار Firewall است.
یک شبکه مبتنی بر فایروال را درنظر بگیرید. این شبکه میتواند فیزیکی یا مجازی سازی شده اجرا شود. که به این مجازی سازی اصطلاحاً VM (Virtual Machine) میگویند.
قطعاً کار این فایروال، محافظت از شبکه است.
ما در شبکه دو قسمت داریم. فرض کنید سمت چپ شبکه “قسمت قابل اعتماد” وجود داشته باشه. جایی که سعی میکنیم از آن محافظت کنیم. و سمت راست شبکه هم بهعنوان “قسمت غیرقابل اعتماد” ما درنظر گرفته میشود. هرچیزی که اینجاست غیرقابل اعتماد است. در ادامه بهطور دقیق به این قسمتهای قابل/غیرقابل اعتماد خواهیم پرداخت.
اما کار اصلی فایروال چیست؟
اگر از فایروالی که بین “قابل اعتماد” و “غیرقابل اعتماد” قرار دارد بپرسیم که چطور کار میکند؟ چطور اطلاعات را از خودش عبور میدهد؟ به چه چیزهایی “نه” میگوید؟ و….
پاسخ فایروال این است که: من به هرچیزی که بخواهد از قسمت غیرقابل اعتماد، به قسمت قابل اعتماد بیاید، نه میگویم! قسمتهای غیرقابل اعتماد مثل اینترنت یا branch officeها هستند. که اگر سعی کنند وارد قسمت قابل اعتماد، یعنی سیستمهای شبکه شدهی ما بشوند، من به آنها پاسخ منفی خواهم داد و ترافیکشان را از دور خارج میکنم.
اما اگر احتیاج باشد که استثنا قائل شویم چه؟ میشود کاری کرد که فایروال به دلخواه ما کار کند؟ باید بگوییم که شاید!
یعنی فایروال به ما اجازه میدهد که یک سری سوراخهایی را درون آن ایجاد کنیم، تا آن ترافیکی که میخواهیم در شبکه به آن اجازه عبور بدهیم را، از خودش رد کند.
مثلاً اگر بخواهیم ترافیکی را از branch office به ادمین بفرستیم، یا اگر بخواهیم از اینترنت، ترافیکی را به سرورهای خودمان وارد کنیم، میتوانیم با این روش آنها را انجام دهیم.
اما یادتان باشد که به طور کلی، فایروال به همه چیز " نه" میگوید! به هر تبادلی " نه" میگوید!
این ما هستیم که باید برای فایروال تعیین کنیم که به چه چیزهایی اجازه بدهد و به چه چیزهایی اجازه ندهد.
مثلاً اگر کاربر ما، بخواهد وارد اینترنت شده و اطلاعاتی را بردارد باید چه کنیم؟ اگر کاربر بخواهد وارد اینترنت شده و به سرور مورد علاقهاش وصل شود، چیزی را دریافت کند و سرور بخواهد برای او پاسخی بفرستد (این پاسخ میتواند در قالب هرچیزی باشد) اولین مشکلی که داریم، فایروال است. در اینجا فایروال سریع به میان میآید و نمیگذارد که سرور داخل اینترنت، به سیستمهای ما چیزی ارسال کند و جلوی آن را خواهد گرفت. اما اگر برای فایروال تعیین کنیم که از محل داخلی خودمان (یا اصطلاحاً local خودمان)، به ترافیکی که در حال ورود و خروج است اجازه بدهد، فایروال از دستور ما تبعیت خواهد کرد.
حالا چطور این کار را انجام دهیم؟
بیشتر فایروالها گزینهای به نام stateful دارند. معنی این گزینه دقیقاً این است که ما از فایروال میخواهیم که کاربرمان را دقیقاً به خاطر بسپارد. این باعث میشود که وقتی کاربر از داخل، خارج شود، stateful موقعیت و یا مکالمهای که کاربر موقع خروج، با سرور انجام داده را به یاد بیاورد.
درنتیجه فایروال به کاربر ما و ترافیکی که میخواهد وارد سرور کند پاسخ مثبت خواهد داد. بنابراین وقتی به stateful یک فایروال مراجعه میکنیم، تمام چیزی که در اختیار داریم، یک فایروال است که میتواند درخواستهای اولیهای که از فایروال عبور میکند را به یاد بیاورد.
یکی دیگر از ویژگیهای اضافی که فایروال میتواند به ما ارائه کند، URL filtering است. ما از این طریق میتوانیم سطح شبکهی سازمان خودمان را کنترل کنیم. میتوانیم وبسایتهایی که کاربرانمان به آنها دسترسی دارند را کنترل کنیم. بنابراین اگر کاربر ما بخواهد به سایت 1، 2 یا 3 برود، چون ترافیک باید از فایروال عبور کند (و خب فایروال هم یک سری قوانین خاص درمورد اجازه دادن و ندادن دارد)، فایروال فقط به یک سری وبسایتهای مطمئن و دستهبندی شده جواب مثبت میدهد، و بقیه را ……… نه، رد میکند!
این سختگیری فایروال کجا به درد میخورد؟
ما ممکن است اطلاعات حساس یا شخصی درون سازمان خودمان داشته باشیم، که نخواهیم به بیرون نشر پیدا کنند. چیزهایی مثل شمارههای کارت ملی، شماره کارت اعتباری و حساب بانکی و چیزهای دیگر.
ویژگی دیگری که فایروال میتواند ارائه دهد، DLP است. DLPمخفف (data loss prevention) یا همان پیشگیری از دست دادن دادههاست.
این قابلیت اینطور عمل میکند که وقتی ترافیکی در حال عبور از فایروال است، اگر چیزهایی مثل شماره کارت بانکی و اطلاعات حساسی که گفتیم درون آنها وجود داشته باشد، میتواند به آن پاسخ منفی دهد و ترافیک را عبور ندهد. این کار انجام میشود تا از نشر اطلاعات به خارج از شبکه جلوگیری شود.
پس میتوانیم بگوییم بسیاری از فایروالها دارای یک گزینه خوب به نام آنالیز هستند که وظیفه آنالیز کردن ترافیکهایی که از فایروال عبور میکنند را دارند. اما چرا این کار را میکنند؟ این کار به این دلیل انجام میدهند تا از نفوذ یا از به سرقت رفتن اطلاعات جلوگیری کنند.
اما چون فایروال بین دو شبکه واقع شده است، چیزهایی را میبیند که برایش شبیه حمله یا محتوای مشکوک است. البته گاهی ممکن است این چیزهای مشکوک، مربوط به ویروسها یا malware ها باشند. فایروال در این نقطه تشخیص میدهد و قطعاً به عبور آنها جواب منفی خواهد داد. ترافیک مربوطه را عبور نمیدهد و سپس به شما هشدار میدهد که چنین چیزی قصد ورود به شبکه را دارد.
در همین رابطه بخوانید:
نسل بعدی فایروالها به کمک سازمانها میآیند
همینطور که فایروالها کامل و کاملتر میشوند، نسل بعدی فایروالها به نام NGFW در دسترس قرار میگیرند. قطعاً نسل بعدی فایروالها، آپشنهای پیشرفتهای را ارائه میکنند.
یک ویژگی دیگری که در فایروالها وجود دارد، آپشن UTM است. UTMبرای مدیریت تهدیدهای یکپارچه ارائه شده است. حتماً میدانید که تهدیدهای یکپارچه چیست!
مزیت دیگری که بعضی از فایروالهای نسل بعدی دارند، این است که آنها میتوانند هوش داشته باشند و با همان هوشی که دارند، اطلاعات را از فضای ابری یا همان cloud یادبگیرند. این یادگیریها میتواند در جایی به کمک آنها بیاید، که حمله جدیدی از جای دیگر صورت گرفته و فایروالها با استفاده از این قدرت تشخیصشان، آن حملهها را پیدا کرده و متوقف خواهند کرد. این جلوگیری میتواند بلاک کردن IP آدرس یا هرچیز دیگری باشد. مهم این است که فایروال با آن هوش تهدیدی، میتواند بفهمد ترافیکی که از سمت آن منبع آدرسها به سمت او میآید، میتواند خرابیای ایجاد کند یا نه؟
اینجا باید بگوییم که کمپانیهای بسیاری امروزه سرورهایشان را در فضای cloud راهاندازی میکنند. حالا اگر این طور باشد، چطور میتوانیم بین کاربری که به سرور ما در فضای cloud وصل شده است، و فضای اینترنت، فایروال ایجاد کنیم؟
جواب این است که ما میتوانیم از سرویسهای ابری برای فایروالهایمان استفاده کنیم.
فایروالهای وب اپلیکیشن را هم جدی بگیرید!
Web Application Firwalls یا همان WAF، فایروال نرم افزاری تحت وب است که برای این مواقع ساخته شده است.
فرض کنید که در سمت راست ما “کاربر” قرار دارد و در سمت چپ ما “سرور” قرار دارد. حال میتوانیم بین آنها فضایی بگذاریم به نام C که به معنی cloud یا همان فضای ابری است. حالا ترافیکی داریم که از سمت کاربر به سمت ارائه دهندهی ابری یا همانc میرود. که این جا، کار WAF یا سرویسهای فیلترینگ شروع میشود. حالا ارائه دهندهی ابری درخواست را انتقال میدهد. اگر تایید شود و اجازه داده شود، ترافیک به سرورهای ما انتقال داده خواهد شد.
به گونهای که انگار داریم ترافیک را بین کاربر و سرور قرار میدهیم، در حالی که سرور به سمت WAFمیرود. فایروال این کار را انجام میدهد تا مطمئن شود که ترافیک مشکلی ندارد.
حالا یکی دیگر از کارهایی که میتوانیم انجام دهیم این است که فایروالها را روی خود سیستم کاربرها اجرا کنیم. به این نوع فایروالها، فایروالهای شخصی میگویند و رفتار فایروال شخصی اینگونه است:
فایروال شخصی میگوید من اجازه ندارم هیچ ترافیکی را وارد سیستم کنم. (این را نرم افزاری میگوید که به عنوان یک فایروال شخصی روی این کامپیوتر کار میکند)
بنابراین اگر کاربر به یک وب سرور در خارج از محیط شبکه خودش وارد شود، و پاسخ به سمت فایروال شخصی بیاید، میتوانیم بگوییم که “خب طبیعیه و منتظرش بودیم”! وقتی که در یک زمان یکسان، ترافیکی از سمت یک هکر تلاش کند که به کامپیوتر کاربر ورود کند، فایروال شخصی آنجا ورود پیدا میکند و میگوید “من منتظر ورودت نبودم، پس نه تنها پاسختو نمیدم، بلکه کلا از شبکه خارجت میکنم”!