SOC Operations Guide
How security analysts should deploy, tune, and investigate with FLY Enterprise WAF.
Application modes
| Mode | Behaviour |
|---|---|
| Reporting | Learn routes (Method + URL); log what would block; no enforcement |
| Protection | Enforce Allow / Block / Challenge via decision engine |
| Detection-only | Log blocks but forward traffic (verify before cutover) |
| Offline | Pass-through — maintenance only |
Recommended rollout: Reporting → review routes and “would block” signals → Detection-only → Protection.
Route learning — what it does not replace
- Learns HTTP Method + URL only — not parameters, headers, or JSON structure.
- A known route can still be blocked if payload matches an attack rule (e.g. SQLi on API).
- OpenAPI validation is separate — manual upload, opt-in per app, when API Security is enabled.
False positives on static assets
SQL/CRS rules may match query strings on .js, .css, .map files. The product:
- Labels likely false positives in protection logs and Geo Traffic Wall
- Excludes them from attack count metrics
- Applies scoped engine skip on GET/HEAD static paths only
- Does not disable SQLi globally — API endpoints stay fully inspected
SOC Queue
- Priority score 0–100 with human-readable reasons
- Deduplication by app + IP + attack rule
- Read-only — does not change incident state or auto-remediate
- Use it to decide where to start, not as the enforcement engine
Investigation workflow
- Start from SOC Queue or attack report — note virtual directory column
- Open incident → read decision explanation (rules, risk, TI, geo, campaign)
- Check if alert is labeled likely false positive (static asset SQL)
- Tune: IP/UA exceptions, module detect-only, custom rule, virtual patch
- Threat intel feeds are advisory until a decision policy blocks
Virtual directories & multi-app
Longest-prefix matching routes traffic to backends behind one hostname. Enable Preserve Host Header when upstream expects the public hostname.
Per-app CSP toggle: default passes upstream CSP; enable WAF CSP only when you intentionally override upstream headers.