WAF چیست؟
حتما در زمینه وب با اصطلاح WAF یا همان فایروال وب اپلیکیشن (Web Application Firewall) برخورد داشتهاید. ابزاری است که به شما کمک میکند تا از وب سایت (در اصل وب اپلیکیشن Web Application) خود مراقبت کنید! بنابراین با اضافه کردن یک WAF به ساختار وب سایت خود، بین وب اپلیکیشن و دنیای بیرون یک لایه محافظتی ایجاد میکنید.
در حقیقت این ابزار برای اینکه از وب سایت شما محافظت کند، درخواستهای ورودی/خروجی (همان درخواستهای HTTP و ...) به وب سایت شما را بررسی و کنترل میکند و اگر رفتار مشکوکی در درخواستها مشاهده کند، اقدامات لازم را انجام میدهد. پس میتوان گفت که عموما یک فایروال در لایه 7 از OSI Layers (همان لایه Application یا کاربرد) کار میکند. البته ناحیه فعالیت WAF تنها در لایه 7 نیست و در سطوح دیگر نیز کاربرد دارد که در ادامه آنها را بررسی میکنیم.
عموما این ابزار برای جلوگیری از حملاتی همانند Stored XSS و Reflected XSS و Cross-Site Forgery و File Inclusion و SQL Injection و دیگر تهدیدات تحت وب مورد استفاده قرار میگیرد. اما مواردی که نام بردیم، از شایعترین تهدیداتی هستند که برای جلوگیری از آنها از WAF استفاده میشود.
WAF چگونه کار میکند؟
همانطور که گفتیم WAF در لایه 7 کار میکند. پس عملکرد آن برروی بستههای HTTP میباشد و دائم در حال آنالیز آنها خواهدبود. WAF ها یک سری معیار در نظر دارند که اگر ترافیکی شامل این معیارها باشد آن را Malicious تشخیص میدهند.
اگر بخواهیم یک مثال ساده بیاوریم، در بسیاری از WAFها برای جلوگیری از حملات XSS اجازه وارد کردن عبارات حساس از کاربر گرفته میشود. یعنی کاربر این اجازه را ندارد که "هر" ورودی دلخواهی(برای مثال در قسمت جستجو) را به سایت بدهد .
مثلا در اینجا ما یک وب سایت داریم و تلاش داریم که در قسمت جستجوی آن یک تلاش ساده برای حمله XSS انجام دهیم. همانطور که از ویدئو "حملات مبتنی بر کاربردهای وب Reflected XSS" بهخاطر دارید، یکی از سادهترین روشها برای اینکه متوجه شویم وب سایت هدف به این دسته از حملات آسیبپذیر است، تست کردن یک آلرت جاوا اسکریپت میباشد، بنابراین در این سایت نیز اقدام به جستجوی عبارت زیر در قسمت Search سایت میکنیم:
اما پس از وارد کردن عبارت بالا و فشردن کلید Enter، به خطای زیر مواجه میشویم:
این پیامِ اخطار از طرف WAF برای ما ارسال شده است. تصویر گویای همه چیز هست، به درستی رفتار غیرمعمول و البته Malicious ما را تشخیص داده است و البته دسترسی ما به سایت را متوقف کرده است. همانطور که قابل مشاهده است، جزییاتی از دلیل بلاک شدن را نیز شرح داده است: "تلاش برای XSS تشخیص داده شد و بلاک شد."
اما WAF چطور آن را تشخیص داد؟
WAF دائما در حال چک کردن درخواستهای HTTP میباشد و درخواستی که در این عکس از سمت مرورگر من به سمت سرور رفته است نیز مستثنا نیست و توسط این ابزار مورد بررسی قرار گرفته است. از آنجایی که در این درخواست نیز شامل عبارت زیر است، درخواست ما غیرمجاز تشخیص داده میشود:
<script>alert("error!")</script>
پس از اینکه درخواست توسط WAF نامتعارف تشخیص داده شد، ترافیک را مسدود میکند.
WAF برای تشخیص هر یک از این بستههای نامتعارف، مکانیزم متفاوتی دارد.
دستهبندی WAFها
WAFها را از جوانب مختلفی میتوان دستهبندی کرد. در این جا به لحاظ کاربرد و جایگاه در یک شبکه آنها را دستهبندی میکنیم.
WAF مبتنی بر شبکه
همان Network-based WAF است که عموما سخت افزاری میباشد. این نوع از WAFها عموما در شبکه محلی (Local) اپلاینس شما قرار میگیرد. به بیان دیگر، یک سختافزار است که تمام دادههای در حال رد و بدل را زیر نظر میگیرد. مزیت این نوع از WAF در سرعت بالای آن است و در عوض هزینه آن زیاد است.
WAF مبتنی بر ابر
همان Cloud-based WAF است. این نوع از فایروال را میتوان نسل جدید WAF دانست که با سرویسهای ابری همراه شده است. با توجه به ماهیت فضای ابری، نیازی به استقرار این نوع از فایروال درون شبکه داخلی نیست و میتوان آن را در فضایی خارج از محیط شبکه داخلی نصب کرد.
WAF مبتنی بر میزبان
همان Host-based WAF است. به عنوان یک پلاگین برای وب اپلیکیشن و یا به عنوان یک نرمافزار خارجی برروی شبکه نصب میشود. این نوع از فایروال عموما هزینه کمتری دارد و همچنین قابلیت شخصی سازی بیشتری در آن به کاربر داده میشود.
- ۹۹/۰۷/۱۰