رفتن به محتوا
nsin docs

WAF (فایروال)

WAF (Web Application Firewall) هر درخواست را بررسی می‌کند و حمله‌ها را مسدود می‌کند: SQL injection، cross-site scripting، path traversal، command injection.

WAF انسین مدیریت‌شده است، روی OWASP Core Rule Set، و توسط nsin به‌روز نگه داشته می‌شود. شما signature نمی‌نویسید — فقط کجا و چقدر سخت‌گیرانه را تنظیم می‌کنید.

  1. Rules → Add Rule → WAF.
  2. path ها را روی همه بگذارید، یا به یک بخش محدود کنید.
  3. strictness و sensitivity را تنظیم کنید (پایین).
  4. اول در dry run ذخیره کنید.
تنظیمچه می‌کند
Strictness (paranoia level، ۱ تا ۴)چه بررسی‌هایی اجرا شوند. ۱: فقط حمله‌های واضح. بالاتر: حمله‌های ظریف‌تر، false positive بیشتر. بیشتر سایت‌ها: ۱ تا ۲.
Sensitivity (threshold)با هر بررسی که trip می‌شود score بالا می‌رود؛ در این score، block می‌شود. پایین‌تر یعنی سخت‌گیرتر.
Body inspection limitچند کیلوبایت از body بررسی شود؛ upload ها به همین سقف می‌خورند. 0 یعنی رد شدن از آن.

یک قانون dry-run آنچه را که مسدود می‌کرد log می‌کند اما همه‌چیز را رد می‌کند.

  1. قانون را در dry run بسازید.
  2. یکی دو روز بگذارید.
  3. Monitoring → WAF log را بررسی کنید.
  4. اگر ترافیک واقعی گرفتار شد: تنظیمش کنید (پایین). وگرنه، اجرایی کنید.

WAF log می‌گوید کدام بررسی با rule id تطبیق یافته — از دقیق‌ترین راه‌حل به کلی‌ترین:

  1. آن rule id را exclude کنید. بقیه همچنان کار می‌کنند.
  2. path ها را محدودتر کنید تا WAF آن endpoint را رد کند.
  3. strictness کل قانون را کم کنید.

راه اول را به از دست دادن محافظت ناحیه‌ی admin ترجیح دهید.

  1. یک قانون WAF، کل سایت، strictness ۱.
  2. یک قانون WAF سخت‌گیرتر روی /admin/* یا API شما.
  3. Rate limiting روی /login.
  4. Block rule برای path هایی که هرگز serve نمی‌کنید، مثل /wp-login.php روی سایتی که WordPress نیست.

بازدیدکننده‌های واقعی مسدود شدند. در WAF log پیدایش کنید، rule id را یادداشت کنید، exclude کنید. چند id برای یک ویژگی: به‌جایش path را محدود کنید.

WAF سایتم را کند می‌کند؟ نه — بررسی روی edge است، در چند میلی‌ثانیه؛ body limit سرعت را حفظ می‌کند.

با وجود firewall سرور هم بازش لازم دارم؟ بله — پیش از این‌که هزینه‌ی bandwidth و CPU بدهید جلوی حمله را می‌گیرد.

بازدیدکننده‌های مسدودشده صفحه‌ی nsin را می‌بینند. صفحه‌ی 403 خود nsin است، نه شما — قوانین error page فقط 5xx را پوشش می‌دهند. ببینید صفحات خطای سفارشی.