رفتن به محتوا

فایروال (WAF)

WAF (فایروال اپلیکیشن وب) هر درخواست را پیش از رسیدن به سایت شما بررسی می‌کند و مواردی را که شبیه حمله‌اند رد می‌کند — SQL injection، XSS، path traversal، command injection و بقیه‌ی فهرست همیشگی.

فایروال nsin مدیریت‌شده است: با مجموعه‌قوانین OWASP Core Rule Set عرضه می‌شود و nsin آن را به‌روز نگه می‌دارد. شما امضای حمله نمی‌نویسید — فقط تعیین می‌کنید WAF کجا اعمال شود و چقدر سخت‌گیر باشد.

  1. به قوانینافزودن قانونWAF بروید.
  2. مسیرها را روی همه‌چیز بگذارید یا به بخشی از سایت محدود کنید.
  3. سخت‌گیری و حساسیت را تنظیم کنید (پایین‌تر).
  4. ابتدا در حالت آزمایشی ذخیره کنید.

دو تنظیم مشخص می‌کنند چه چیزی مسدود شود:

  • سخت‌گیری (سطح paranoia، ۱ تا ۴). چند بررسی اجرا شود. سطح ۱ حملات آشکار را با کمترین هشدار اشتباه می‌گیرد. سطح‌های بالاتر موارد ظریف‌تر را می‌گیرند و درخواست‌های سالم بیشتری را هم علامت می‌زنند. بیشتر سایت‌ها باید روی ۱ یا ۲ بمانند.
  • حساسیت (آستانه). هر درخواست با فعال‌کردن بررسی‌ها امتیاز جمع می‌کند؛ وقتی امتیاز به این عدد برسد درخواست مسدود می‌شود. عدد کمتر یعنی سخت‌گیرتر.

یک سقف بازرسی بدنه هم وجود دارد: چه مقدار از بدنه‌ی درخواست بررسی شود، به کیلوبایت. آپلودهای بزرگ فقط تا همان اندازه بررسی می‌شوند تا سرعت حفظ شود. مقدار صفر بازرسی بدنه را کاملاً غیرفعال می‌کند.

همیشه با حالت آزمایشی شروع کنید

Section titled “همیشه با حالت آزمایشی شروع کنید”

قانون WAF می‌تواند در حالت آزمایشی اجرا شود: هر درخواست را ارزیابی می‌کند و ثبت می‌کند چه چیزی را مسدود می‌کرد، اما همه‌چیز عبور می‌کند.

  1. قانون را در حالت آزمایشی بسازید.
  2. یکی دو روز با ترافیک عادی رها کنید.
  3. مانیتورینگلاگ WAF را باز کنید و ببینید چه گرفته است.
  4. اگر ترافیک واقعی در آن هست، تنظیمش کنید (پایین‌تر). وگرنه اعمالی‌اش کنید.

این مهم‌ترین عادت در کار با WAF است. رفتن مستقیم به حالت اعمالی روی سایت پرترافیک، راه خراب‌کردن صفحه‌ی پرداخت خودتان است.

گاهی درخواست سالم شبیه حمله به‌نظر می‌رسد — ویرایشگر یک CMS که HTML می‌فرستد، یا فرمی که واقعاً متنی شبیه SQL دارد. لاگ WAF نشان می‌دهد کدام بررسی با شناسه‌ی خود فعال شده است.

سه راه دارید، از دقیق‌ترین به کلی‌ترین:

  1. مستثنا کردن همان شناسه‌ی قانون در قانون WAF. بقیه دست‌نخورده می‌مانند.
  2. محدودکردن مسیرها تا WAF آن نقطه را پوشش ندهد.
  3. کاهش سخت‌گیری برای کل قانون.

گزینه‌ی اول را ترجیح دهید. خاموش‌کردن WAF روی بخش مدیریت به‌خاطر یک هشدار اشتباه، دقیقاً همان‌جایی را بی‌محافظ می‌کند که بیشترین نیاز را دارد.

یک چیدمان رایج و مؤثر:

  1. یک قانون WAF روی کل سایت با سخت‌گیری ۱.
  2. یک قانون WAF سخت‌گیرانه‌تر محدود به /admin/* یا API شما.
  3. محدودیت نرخ روی /login.
  4. قوانین مسدودسازی برای مسیرهایی که اصلاً سرویس نمی‌دهید (/wp-login.php در سایتی که وردپرس نیست).

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

آیا WAF سایتم را کند می‌کند؟ بازرسی در لبه و در چند میلی‌ثانیه انجام می‌شود. سقف بازرسی بدنه همان چیزی است که آپلودهای بزرگ را بی‌تأثیر نگه می‌دارد.

اگر روی سرورم فایروال دارم باز هم به WAF نیاز دارم؟ WAF حملات را پیش از مصرف پهنای باند و CPU سرور شما متوقف می‌کند. مکمل چیزی است که خودتان اجرا می‌کنید، نه جایگزین آن.

بازدیدکننده‌ی مسدودشده صفحه‌ی nsin را می‌بیند. می‌توانید آن را با صفحه‌ی خودتان عوض کنید — به صفحات خطای سفارشی ببینید.