همانطور كه مي دانيد، برنامههای کاربردی تحت وب به عنوان بزرگترین هدف مهاجمین جهت نفوذ به زیرساختهای اطلاعاتی سازمانها تبدیل شدهاند. با توجه به رشد روزافزون حملات تحت وب و عدم کارایی سیستمهای تشخیص و جلوگیری از نفوذ محصول جدیدی در عرصه امنیت اطلاعات و ارتباطات با عنوان فایروال برنامههای کاربردی تحت وب (Web Application Firewall) به منظور مقابله با این حملات توسعه یافته است.
WAF یک نرم افزار؛سخت افزار و یا مجموعه ای از قوانین پیاده سازی شده بر روی پروتکل ارتباطی HTTP می باشد. به طور کلی این قوانین جهت جلوگیری از حملات معمول هکر ها به وب سایت ها مثل cross-site scripting ) XSS) و یا SQL injection و … می باشد.
یک WAF یک لایه امنیتی و کنترلی بین مشتریان و برنامه یا سرویس فراهم می کند. یک WAF تمامی دسترسیها به برنامه وب را با ابزارهای امنیتی و کنترلی ترافیک ورودی به برنامه وبسایت و ترافیک پاسخ از سمت برنامه وب را فیلتر میکند WAF با امن کردن ساختار برنامه و همچنین کاربر برنامه، مکمل فایروال در شبکه میباشد و لایه دیگری از امنیت را به ارمغان میآورد. برنامه ها و نرم افزارهای وبی می توانند با تهدیدات زیادی آسیب پذیر شوند که به وسیله فایروال ها در شبکه قابل تشخیص نمی باشند. برنامه ها می توانند در مقابل بسیاری از تهدیدات که قابل شناسایی به وسیله فایروال ها نیستند آسیب پذیر باشند تأثیر این نوع حملات می تواند بسیار شدید باشد.
با ایجاد چنین قوانینی بر ارتباطات HTTP می توان بسیاری از حملات هکرها را تشخص و مهار کرد و ترافیک را اعتبارسنجی کرد؛ نقش WAF در جلوگیری از حملات Zero Day ( ناشناخته و پتچ نشده) بر روی اسکریپت های تحت وب غیر قابل انکار است.
WAF را به شکل های مختلف می توان به اجرا درآورد؛ نوع اول به صورت یک ماژول قابل اضافه شدن به برنامه های موجود در Application Server است، نوع دوم به عنوان یک برنامه مجزا بر روی Application Server اجرا میشود و در نوع سوم به عنوان یک سیستم مستقل بر روی سخت افزار مجزا از سامانه اینترنتی نصب و راه اندازی میشود.
اخیراً سازمانها و مؤسسات مختلفی در زمینه امنیت برنامههای کاربردی بهصورت تخصصی، فعالیت مینمایند که بخشی از این فعالیتها منجر به تولید فایروالهای لایه برنامه کاربردی شده است. یکی دیگر از فعالیتهای این سازمانها، دستهبندی و گروهبندی حملات یا آسیبپذیریهای برنامههای کاربردی تحت وب است که این امر، منجر به توسعه دانش شده و از طرفی، کمک بسزایی در تولید محصولات امنیتی نموده است. انجمن OWASP و WASC و SANS از جمله سازمانهایی هستند که در این زمینه، دستهبندیهایی را ارائه نمودهاند. تهدیدات ارائه شده در مستندات WASC بسیار کامل و جامع است و از طرف دیگر تهدیدات ارائه شده در گزارشات سالیانه OWASP نیز بسیار مورد ارجاع قرار گرفته و محبوبیت بیشتری دارند. از مهمترین ویژگی های یک WAF خوب می توان به موارد زیر اشاره کرد:
- می تواند وب سرور را از دسترسی مستقیم کاربران اینترنتی پنهان سازد، به شکلی که همانند یک سپر حائل عمل کند.
- الگوی مناسبی برای درخواست ها و پارامترهای آنها مشخص کند و جلوی نفوذ از طریق حفره های ناشناخته در وب سرور و برنامه های آن را بگیرد.
- بلاک کردن در سطح برنامه (Request Deny) و شبکه (IP Blacklist)
- از حملاتی مانند مجبور کردن کاربر برخط به ارسال درخواست جعلی شامل اطلاعات هویتی خود (CSRF) و سرقت هویت (Session Hijacking) جلوگیری کند.
- به وسیله امتناع از ارسال پاسخ یا دوباره نویسی آن، مانع افشای اطلاعات شود.
- از گواهی امنیتی SSL (SSL Offloading) پشتیبانی کند.
- به مقابله با ۱۰ تهدید مخرب پروژه امنیت برنامه های مبتنی بر وب OWASP: Open Web Application Security Project) ) بپردازد.
- قابلیت توزیع بار بر روی سرورهای مختلف (Load Balance) و کاهش ترافیک به میزان ۳۰ تا ۶۰ درصد را داشته باشد.
- بتواند گزارش های متنوعی برای ارائه به مدیران سامانه و مراجع قضایی آماده کند.
- اعتبار بانک یا سازمان را در صورت سهل انگاری امنیتی پیمانکاران تولید کنندة برنامه های مبتنی بر وب، حفظ کند.
- یکی دیگر از مهمترین تهدیدها عدم رعایت مسائل امنیتی توسط تیم تولید کننده و یا فردی از تیم است. بسیاری از مشکلات امنیتی به خاطر خطای انسانی، نصب نسخه جدید و یا عدم پیش بینی خطاها توسط برنامه نویسان (Error Handling) صورت می گیرد، WAF با هزینة مناسب جلوی بروز چنین مشکلاتی را می گیرد.
انواع حملات قابل تشخیصتوسط WAF ها:
در مدل امنیتی WAF یکسری حملات لایه ۷ از جمله حملات زیر قابل تشخیص و مهار هستند:
- Protection against common attacks
- SQL Injection
- (Cross Site Scripting (XSS
- Cross-Site Request Forgery :CSRF
- Session Hijacking
- Buffer Overflow
- OS command injection
- Information leakage
- Denial of Service :DoS
- Malicious Robots
- Parameter Tampering
- Malicious and Illegal Encoding
- Directory Traversal
- Web Server and OS Attacks
- Site Reconnaissance
- Remote File Inclusion :RFI
لذا در نهايت مي توان چنين گفت كه:WAF یک ضرورت امنیتی برای مقابله با حملات در لایه برنامه است که با تنظیمات مناسب می تواند تقریباً از تمام این نوع حملات جلوگیری کند. باید در نظر داشت که WAF در زمینه های کاری سیستم ها و ابزارهای دیگر نظیر فایروال و IDS/IPS مداخله نمی کند و جایگزین آنها نخواهد بود، بلکه یک مکمل برای این سیستم ها و ابزارها محسوب میشود.