فایروال شبکه مثل یک نگهبان دم در است: چک می‌کند چه کسی از کدام پورت وارد می‌شود. ولی وقتی یک هکر از طریق پورت ۴۴۳ — همان پورت HTTPS که کاملاً باز است — به سراغ سایت می‌آید، فایروال شبکه کاری نمی‌تواند بکند. اینجاست که WAF وارد می‌شود: فایروالی که محتوای درخواست‌ها را می‌فهمد، نه فقط پورت‌ها را.

WAF چیست؟

WAF مخفف Web Application Firewall است. این ابزار ترافیک HTTP/HTTPS بین کاربر و سرور را در لایه اپلیکیشن آنالیز می‌کند و درخواست‌های مخرب را قبل از رسیدن به اپلیکیشن شما بلاک می‌کند.

تفاوت با فایروال شبکه این است: فایروال شبکه می‌تواند بگوید «فقط پورت ۴۴۳ باز باشد.» ولی نمی‌تواند بفهمد داده‌ای که از این پورت می‌آید چه محتوایی دارد. WAF می‌تواند. WAF هر درخواست HTTP را باز می‌کند، محتوای URL، هدرها، و body را بررسی می‌کند، و تشخیص می‌دهد که آیا کسی دارد SQL injection می‌زند یا یک اسکریپت مخرب اجرا می‌کند.

WAF از چه چیزهایی محافظت می‌کند؟

WAF از مهم‌ترین حملات وب که در OWASP Top 10 لیست شده‌اند محافظت می‌کند:

  • SQL Injection (SQLi): هکر دستورات SQL مخرب را در فرم‌ها یا URL وارد می‌کند تا دیتابیس را دستکاری کند. WAF الگوهایی مثل ' OR '1'='1 را شناسایی و بلاک می‌کند
  • Cross-Site Scripting (XSS): تزریق JavaScript مخرب به صفحات وب. می‌تواند کوکی کاربران را بدزدد یا صفحات را دستکاری کند
  • Cross-Site Request Forgery (CSRF): فریب دادن کاربر برای ارسال درخواست ناخواسته به سایت
  • File Inclusion (LFI/RFI): دسترسی غیرمجاز به فایل‌های سرور یا اجرای کد از راه دور
  • Brute Force: حملات امتحان پسورد به صورت خودکار — WAF می‌تواند بعد از تعداد مشخصی تلاش ناموفق، IP را بلاک کند
  • Path Traversal: دسترسی به فایل‌های خارج از پوشه وب با ../../etc/passwd
  • Bot و Scraper: ربات‌های مخربی که محتوا می‌دزدند یا منابع مصرف می‌کنند

WAF چطور کار می‌کند؟

WAFها از چند روش ترکیبی استفاده می‌کنند:

Signature-Based (مبتنی بر امضا)

یک دیتابیس از الگوهای حمله شناخته‌شده دارند. مثلاً می‌دانند که UNION SELECT در یک URL معمولاً نشانه SQL injection است. هر درخواست را با این امضاها مقایسه می‌کنند. مزیت: سریع و دقیق. معایب: حملات جدید را نمی‌شناسد تا امضایشان به دیتابیس اضافه شود.

Anomaly-Based (مبتنی بر ناهنجاری)

رفتار معمول ترافیک را یاد می‌گیرند و هر چیزی که غیرعادی است را flag می‌کنند. مثلاً اگر یک IP در یک دقیقه ۵۰۰ درخواست به صفحه login بفرستد، WAF آن را مشکوک می‌داند.

Reputation-Based

از اطلاعات reputation IP ها استفاده می‌کنند. اگر IP در لیست سیاه باشد (مثلاً از شبکه‌های Tor، VPNهای مخرب، یا botnet های شناخته‌شده)، بلاک می‌شود.

انواع WAF

WAF نرم‌افزاری

روی سرور نصب می‌شود. بهترین مثال ModSecurity است که با Apache و Nginx کار می‌کند. OWASP Core Rule Set (CRS) هم یک مجموعه قوانین رایگان برای ModSecurity است که حملات رایج را پوشش می‌دهد.

مزایا: کنترل کامل، قابل سفارشی‌سازی. معایب: نیاز به منابع سرور، تخصص برای تنظیم.

WAF ابری

در شبکه بین کاربر و سرور قرار می‌گیرد. ترافیک اول به سرورهای WAF می‌رود، فیلتر می‌شود، بعد به سرور اصلی می‌رسد:

  • Cloudflare WAF: محبوب‌ترین، پلن رایگان هم دارد
  • AWS WAF: برای سایت‌های روی AWS
  • Imperva: برای enterprise
  • ArvanCloud WAF: گزینه ایرانی با سرورهای داخل کشور

مزایا: بدون نصب، آپدیت خودکار، محافظت DDoS هم دارد. معایب: وابستگی به سرویس ثالث، هزینه ماهانه برای پلن‌های پیشرفته.

WAF سخت‌افزاری

یک دستگاه فیزیکی که در شبکه قرار می‌گیرد. بسیار گران‌قیمت و مخصوص شرکت‌های بزرگ با نیازهای امنیتی بالا.

WAFهای رایج در هاستینگ

Imunify360

یکی از محبوب‌ترین راه‌حل‌های امنیتی برای سرورهای cPanel است. Imunify360 ترکیبی از WAF، آنتی‌ویروس، firewall و IDS/IPS است. بیشتر هاست‌های اشتراکی ایرانی از آن استفاده می‌کنند.

ModSecurity با OWASP CRS

ترکیب محبوب برای VPS ها. ModSecurity رایگان است و OWASP Core Rule Set قوانین خوبی دارد. نیاز به تنظیم دارد ولی قابلیت‌های زیادی ارائه می‌دهد.

apt install libmodsecurity3
git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/crs
cp /etc/nginx/crs/crs-setup.conf.example /etc/nginx/crs/crs-setup.conf

Cloudflare WAF

برای کسانی که از Cloudflare استفاده می‌کنند، WAF به صورت داخلی ارائه می‌شود. در پلن رایگان قوانین محدودی دارد ولی در پلن‌های Pro و Business کامل‌تر است.

تنظیمات WAF: حالت‌های مختلف

WAFها معمولاً سه حالت دارند:

  • Detection Mode: حملات را ثبت می‌کند ولی بلاک نمی‌کند. برای تست و عیب‌یابی
  • Prevention Mode: حملات را بلاک می‌کند. حالت عادی عملیاتی
  • Passive Mode: فقط نظاره‌گر است، بدون دخالت

توصیه عملی: اول با Detection Mode شروع کنید تا ببینید WAF چه چیزی را flag می‌کند. اگر false positive (بلاک کردن ترافیک معتبر) وجود داشت، قوانین را تنظیم کنید. سپس به Prevention Mode بروید.

WAF و False Positive: چالش اصلی

بزرگ‌ترین چالش WAF، false positive است — وقتی ترافیک معتبر به اشتباه بلاک می‌شود. مثال‌های رایج:

  • فرم ثبت‌نام که نام کاربری با apostrophe دارد (مثل O'Brien) — WAF ممکن است آن را SQL injection تشخیص دهد
  • ویرایشگر متن وردپرس که HTML ارسال می‌کند — ممکن است به عنوان XSS بلاک شود
  • API های مشروع که پارامترهای غیرمعمول می‌فرستند

برای رفع: قانون خاص را در whitelist بگذارید. مثلاً در ModSecurity می‌توان یک rule خاص را برای یک URL مشخص غیرفعال کرد.

WAF و OWASP Top 10

OWASP سازمانی است که هر چند سال یک‌بار لیست ۱۰ آسیب‌پذیری رایج وب را منتشر می‌کند. WAFهای خوب باید همه این ۱۰ نوع حمله را پوشش دهند. آخرین نسخه شامل موارد مهمی مثل Injection، Broken Access Control، Security Misconfiguration و SSRF می‌شود. WAF بیشتر روی Injection، پیکربندی‌های امنیتی، و SSRF تمرکز دارد. موارد دیگر نیاز به اقدامات توسعه‌ای دارند که WAF نمی‌تواند آن‌ها را پوشش دهد.

آیا WAF کافی است؟

نه! WAF یک لایه محافظت است، ولی جایگزین کد امن نمی‌شود. همیشه این اصول را رعایت کنید:

  • از Prepared Statement برای کوئری‌های دیتابیس استفاده کنید
  • ورودی‌های کاربر را validate و sanitize کنید
  • PHP، وردپرس، و افزونه‌ها را آپدیت نگه دارید
  • پسوردهای قوی و احراز هویت دو مرحله‌ای استفاده کنید

WAF یک دفاع عمیق است — وقتی آسیب‌پذیری در کد وجود دارد، WAF از بهره‌برداری از آن جلوگیری می‌کند. ولی اتکای صرف به WAF کافی نیست.

WAF در برابر حملات DDoS: چه نقشی دارد؟

خیلی‌ها WAF و محافظت DDoS را با هم اشتباه می‌گیرند. اینها دو مفهوم جداگانه‌اند، هرچند بعضی ابزارها هر دو را ارائه می‌دهند.

یک حمله DDoS معمولاً با حجم بالایی از درخواست‌های ساده، سرور را اشباع می‌کند. فایروال‌های شبکه و CDNها بهتر از WAF با این نوع حملات کنار می‌آیند. WAF در مقابل حملات لایه اپلیکیشن (Layer 7) که هوشمندانه‌تر هستند و درخواست‌های ظاهراً معتبر می‌فرستند، موثرتر است.

Cloudflare هر دو را ارائه می‌دهد: هم DDoS protection و هم WAF. این ترکیب برای اکثر وب‌سایت‌ها ایده‌آل است. اگر سایت شما قبلاً به حمله DDoS خورده یا در معرض آن است، حتماً هر دو لایه را فعال کنید.

لاگ‌گیری و تحلیل با WAF

یکی از ارزشمندترین ویژگی‌های WAF، همان لاگ‌هایی است که تولید می‌کند. بررسی منظم این لاگ‌ها به شما می‌گوید:

  • کدام URL‌ها بیشتر مورد حمله قرار می‌گیرند
  • کدام IP یا کشورها منبع بیشترین حمله هستند
  • چه نوع حملاتی علیه سایت شما امتحان شده
  • آیا یک حمله هدفمند در جریان است یا سکن‌های اتوماتیک

این اطلاعات نه تنها برای پاسخ به حوادث امنیتی مفید است، بلکه می‌تواند ضعف‌های سایت را هم نشان دهد. اگر WAF مدام یک URL خاص را flag می‌کند، شاید بهتر باشد آن صفحه را امن‌تر کنید.

سوالات متداول

آیا WAF باعث کند شدن سایت می‌شود؟

WAFهای مدرن تاثیر ناچیزی روی سرعت دارند. Cloud WAFهایی مثل Cloudflare حتی می‌توانند سایت را سریع‌تر کنند چون CDN هم دارند. WAFهای نرم‌افزاری روی سرور کمی منابع مصرف می‌کنند ولی با تنظیمات درست این تاثیر به حداقل می‌رسد.

WAF false positive چیست و چطور رفعش کنیم؟

False positive وقتی است که WAF یک ترافیک معتبر را به اشتباه مخرب تشخیص دهد و بلاک کند. برای رفع: قانون خاص را در whitelist بگذارید یا حساسیت آن قانون را کمتر کنید. اگر از ModSecurity استفاده می‌کنید، می‌توانید یک rule را برای یک URL مشخص disable کنید.

آیا WAF با CDN سازگار است؟

بله، در واقع خیلی از CDNها مثل Cloudflare، WAF را هم ارائه می‌دهند. وقتی از Cloudflare استفاده می‌کنید، هم از CDN و هم از WAF آن بهره‌مند می‌شوید. ترافیک اول از WAF Cloudflare رد می‌شود و بعد به سرور شما می‌رسد.

Imunify360 چیست و آیا ارزش دارد؟

Imunify360 یک راه‌حل امنیتی جامع برای سرورهای لینوکس است که شامل WAF، آنتی‌ویروس، IDS/IPS، و فایروال می‌شود. برای سرورهای cPanel بسیار مناسب است و یکی از استانداردهای صنعت شده. اگر روی VPS یا سرور اختصاصی هستید، Imunify360 یک گزینه قوی برای امنیت کلی سرور است.

WAF برای سایت‌های وردپرسی: نکات خاص

وردپرس به خاطر محبوبیت بالایش، هدف اصلی حملات خودکار در اینترنت است. بات‌های مخرب دائماً در حال اسکن سایت‌های وردپرسی هستند تا آسیب‌پذیری‌های افزونه‌ها، تم‌ها، یا هسته وردپرس را پیدا کنند. WAF برای این سایت‌ها بیش از هر جای دیگری ضروری است.

چند نکته خاص برای وردپرس:

  • مسیر /wp-login.php و /xmlrpc.php اولین اهداف هستند. WAF باید rate limiting قوی روی اینها داشته باشد
  • اگر XML-RPC استفاده نمی‌کنید، آن را کاملاً مسدود کنید — منبع اصلی حملات brute force است
  • پوشه wp-admin را به IP های مجاز محدود کنید
  • افزونه Wordfence یا Sucuri Security برای وردپرس، WAF سطح اپلیکیشن را مستقیم در وردپرس ادغام می‌کنند

اگر هم WAF سرور (مثل ModSecurity) و هم افزونه WAF وردپرس (مثل Wordfence) داشته باشید، امنیت دولایه خواهید داشت — که ایده‌آل‌ترین حالت است.

جمع‌بندی

WAF یک ابزار ضروری برای امنیت وب است. اگر هاستتان WAF دارد (مثل Imunify360)، حتماً فعالش کنید. اگر ندارد، از Cloudflare WAF رایگان استفاده کنید — این اقدام ساده می‌تواند سایت شما را از بسیاری از حملات رایج محافظت کند.

برای سایت‌های حساس‌تر مثل فروشگاه‌های آنلاین یا سایت‌هایی که اطلاعات کاربران نگه می‌دارند، سرمایه‌گذاری روی WAF پیشرفته‌تر توجیه دارد. به یاد داشته باشید که WAF یک لایه از دفاع است — امنیت واقعی نیاز به رویکرد چندلایه دارد: کد امن، به‌روزرسانی منظم، و WAF.