با توجه به گسترش روز افزون تکنولوژی و نیاز به مطرح شدن افراد/شرکت ها و سایت موسسات در فضای مجازی اینترنت/اینترانت نگرانی بسیار بزرگی پدیدار خواهد شد که چیزی نیست جز امنیت وب سایت.
آیا سیستم های مدیریت محتوا واقعا در محیطی امن اطلاعات کاربران را نگه داری می کنند و در نهایت امنیت اطلاعات حفظ می شود؟
با توجه به اینکه تمامی کاربران سطح اینترنت به سایت ها دسترسی دارند، این مورد اهمیت بسیاری پیدا می کند که چه کاربری می بایست چه نوع اطلاعاتی را از یک سایت مشاهده نماید؟
آیا شخصی می تواند خارج از چارت تعیین شده به اطلاعاتی که مجاز به دیدن آنها نیست دسترسی یابد ؟

waf مخفف کلمه Web Application Firewall می باشد و همان طور که از نام آن پیداست یک نوع فایروال هست.
فایروال یک سیستم امنیتی است که ترافیک بین شبکه، سرور یا یک برنامه را کنترل می کند. فایروال ها نرم افزاری و یا سخت افزاری هستند. دو نوع رایج فایروال ها :
- فایروال لایه شبکه
- فایروال برنامه وب
تفاوت این دو نوع فایروال در مکانیزم هایی است که فایروال ها برای ارسال و دریافت اطلاعات از یک zone امنیتی به zone دیگر از آنها استفاده میکنند. سازمان جهانی استاندارد (ISO) و OSI model، برای شبکه ۷ لایه تعریف کرده اند. لایه هایی که برای عملکرد درست، به سرویس هایی که توسط لایه پایین تر ارائه میشود احتیاج دارند. چیزی که اینجا اهمیت پیدا میکند این است که هرچه اطلاعات در لایه های پایین تری جابه جا شوند، میزان نظارت و کنترلی که فایروال بر روی آنها دارد کمتر خواهد بود.

فایروالهای لایه شبکه:
در این نوع، فایروال هیچ کاری به محتوای بستههای ارسالی یا دریافتی ندارد و فقط طبق سربرگها و هدرهای(header) بستهها تصمیم گیری میکند .این نوع فایروالها معمولاً به دلیل این که مقایسه های کلی را انجام نمیدهند، سرعت بسیار بالاتری نسبت به سایر فایروالها دارند. فایروال لایه شبکه میتواند تا حداکثر چهار لایه (از ۱ تا ۴) از مدل OSI را فیلتر کند، از مرحله یک تا سوم که لایه فیزیکی تا شبکه است و لایه چهارم (انتقال) که برای فهمیدن پورت مقصد استفاده میکند.
در صورتی که با وجود ارسال درخواستی مخرب به سمت سروری هیچ پاسخی از آن دریافت نکنید، این موضوع بیانگر این واقعیت است که به احتمال زیاد از یک فایروال لایه شبکه استفاده شده است.
فایروالهای برنامه های کاربردی تحت وب:
فایروالهای لایه کاربردی میتوانند کل یک بسته را آنالیز کنند که شامل سربرگها و محتوای آن است. برعکس فایروال لایه شبکه که به محتوا کاری نداشت، در این نوع فایروال فیلتر اصلی بر روی محتوای پکتها (همان دادههایی که درحال انتقال اند مثلاً ممکن است دادههای مربوط به یک فایل، صفحه اینترنتی، ایمیل و … باشد) ، اعمال میشود. waf فایروالی از این نوع می باشد. این نوع فایروالها در زمره پراکسی هایی که در جلوی برنامه های کاربردی قرار میگیرند، جای دارند؛ بنابرین این فایروالها کل ترافیک عبوری از شبکه را رصد نمیکنند. این فایروال ها با نظارت بر ترافیک شبکه قبل از رسیدن به برنامه وب، می توانند درخواست ها را قبل از ارسال آن ها به سمت برنامه وب تجزیه و تحلیل کنند.
این قابلیت همان مزیت waf ها در مقابل IPS هاست. چونکه IPS ها به گونه ای طراحی شده اند که تمام ترافیک شبکه را مورد بررسی قرار دهند، در حالی که WAF ها می توانند لایه application را به طور کامل تجزیه و تحلیل کنند.
بیش از 75 درصد از حملاتی که منجر به دسترسی غیر مجاز هکرها به اطلاعات می گردد، از طریق Web صورت می گرد. به این دلیل که دسترسی به وب سرور هم دسترسی به دیتای اصلی یک سایت است و هم راه نفوذ را برای ورود به سایر سرورهای یک Data Center مقدور می سازد.
حملاتی که WAF در لایه 7 از بروز آنها روی وب سرور جلوگیری می نماید به شرح ذیل می باشند:
- 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 را بر روی یک برنامه شناسایی کند. ابزارهایی مثل:
NMAP
wafw00f
Checking the response headers
Checking Response Body
...
شناسایی waf به کمک nmap :
nmap -p80 --script http-waf-detect <host>

شناسایی waf به کمک اسکریپت wafwoof:
wafw00f.py <url>

شناسایی وجود waf این کمک را به نفوذگران میکند که آنها برای نفوذ به سایت هدف از روش های pypass برای waf موجود استفاده می کنند.
به یاد داشته باشید که WAF یک واسطه خوبی برای برقراری امنیت بهتر است، اما شما نمی توانید نرم افزار را آسیب پذیر کنید و برای امنیت به WAF احتیاج داشته باشید.
منابع: https://k4linux.com/2017/07/nmap-wafw00f-identifying-a-web-application-firewall.html
https://www.parsdata.com/technical-articles/what-is-waf