Shield WAF

Sectora's edge web-application firewall. Runs in front of your origin at Cloudflare's edge, blocks attacks before they reach your code, and accepts one-click virtual-patch rules from any DAST or SAST finding.

What Shield is

Shield is a managed Cloudflare-Worker-based WAF. Your customer-facing domain CNAMEs to customers.sectora.io. Cloudflare routes the request to the Shield Worker, which terminates TLS, runs every protection layer below, then proxies the request to your origin and processes the response on the way back.

Unlike traditional WAFs (Cloudflare default, AWS WAF, Imperva), Shield is tightly coupled to Sectora's scanner output — every confirmed vulnerability becomes a one-click virtual patch deployed globally in <30 seconds.

Architecture in 30 seconds

Browser
   │
   ├── DNS lookup: customer.com → CNAME → customers.sectora.io (DNS-only / gray cloud)
   │
   ▼
Cloudflare for SaaS (custom hostname, per-customer cert)
   │
   ▼
Shield Worker
   ├── Pre-flight (PLATFORM_REDIRECTS, internal __shield/* endpoints)
   ├── Config lookup (KV: which customer is this hostname?)
   ├── WAF layers (ordered, short-circuit on block):
   │     1. IP access policies (allow/deny lists)
   │     2. Rate limiting (per-IP, per-endpoint, per-method)
   │     3. Bot detection (heuristic + fingerprint)
   │     4. Managed rulesets (OWASP CRS, exploit signatures)
   │     5. Virtual patches (deployed from DAST/SAST findings)
   │     6. Schema enforcement (block requests that violate your OpenAPI)
   │     7. Anomaly scoring (behavioural model: is this a real user?)
   │     8. Custom rules (your team's)
   │     9. Leaked credential check (stuffing attempts)
   ▼
Origin (your Cloud Run / Vercel / Fly / on-prem server)

Protection layers

Each layer is independently configurable; they execute in the order above and short-circuit on a block decision. Brief descriptions below — each has its own deep-dive page.

Virtual Patching

Deploy a WAF rule from any confirmed DAST/SAST finding in one click. Blocks the exact request shape that exploits the bug.

Deep dive →

Anomaly Scoring

Behavioural model scores every request 0–100 based on 14+ signals (mouse jitter, request cadence, header order, TLS fingerprint). Block above a threshold you control.

Deep dive →

Rate Limiting

Per-IP, per-endpoint, per-method, per-user counters. Sliding-window algorithm, Cloudflare KV-backed, sub-millisecond decision.

Deep dive →

Bot Detection

Identifies bots via JA4 fingerprint, header anomalies, missing browser-native APIs. Configurable action: log / challenge / block.

Deep dive →

IP Access

Allow / deny lists by IP, CIDR, ASN, or country. First layer to fire — cheapest decision when applicable.

Deep dive →

Managed Rulesets

Sectora-curated rules (OWASP CRS distillation + emerging exploit signatures). Updated weekly.

Deep dive →

Schema Enforcement

Upload your OpenAPI spec; Shield blocks requests that don't conform (wrong method, missing fields, extra fields). Stops mass-assignment + parameter-tampering attacks dead.

Deep dive →

Shield API

Manage sites, rules, virtual patches, and analytics programmatically. Same API the dashboard uses.

Deep dive →

Operating modes

Three modes for each protected site — pick per environment:

ModeWhat it doesUse for
LogEvaluates every layer but never blocks. All decisions logged for analytics.Initial setup. Run for ~1 week to baseline normal traffic before flipping to Block.
BlockLayers block on match. Real protection.Production (after baseline period).
ChallengeIssues a managed challenge (Turnstile / JS challenge) instead of an outright block. Human passes, bot fails.Endpoints that may have FPs — login, signup, mixed-user pages.

Fail-mode (origin down, what happens)

If your origin returns 5xx, Shield's default is fail-open— pass the request to origin anyway and let origin's 5xx propagate. This avoids Shield being blamed for outages it didn't cause.

Configurable per-site. fail-closedmode returns a Shield-served 503 when origin is down — useful when origin returning 5xx is itself a signal of attack (e.g. SQL panic from injection probe), and you'd rather not leak that.

Self-protection — sectora.io runs behind its own Shield

Sectora's own domains (sectora.io, www.sectora.io, staging.sectora.io) are on the PLATFORM_DOMAINS allowlist in the Worker — the management plane gets minimal WAF (no schema enforcement on /api/*, no rate limit on /_next/*) but full virtual-patch + IP access coverage.

Performance

Shield runs as a Cloudflare Worker — code is colocated with the user's nearest PoP. Typical added latency:

  • p50: ~5ms — config lookup hits Worker memory cache.
  • p95: ~15ms — config cache miss (KV read).
  • p99: ~40ms — KV miss + cold-start. Improves after the first few hits.

Cloudflare bills only for CPU time consumed (typically <5ms per request); origin egress is unchanged. Shield's own cost is included in your Sectora plan — no separate Cloudflare bill.

Observability

Live tail

/__shield/live(auth'd) streams Worker decisions in real time — useful when rolling out a new rule. Same data feeds the Shield analytics dashboard.

Analytics

Per-site dashboard with request rate, block rate by layer, top blocked IPs/ASNs/paths, anomaly score distribution. Backed by a per-customer KV namespace; data retained for 30 days by default.

Audit log

Every config change (rule added, mode flipped, virtual patch deployed) appears in Settings → Audit Log with the actor, before+after, and timestamp.

Getting started

  1. Verify your domain (Settings → Domains).
  2. Open Shield → Add site. Pick the verified domain.
  3. Set up DNS — CNAME your.domaincustomers.sectora.io with DNS only (gray cloud).
  4. Sectora auto-provisions a per-hostname TLS cert via Cloudflare for SaaS (~5–10 min).
  5. Configure the layers you want enabled. Start in Log mode for a week.
  6. Flip to Block after the baseline period.

Full walkthrough: Shield Setup.

Comparison vs Cloudflare native / AWS WAF / Imperva

FeatureShieldCloudflareAWS WAFImperva
One-click virtual patch from scan findings
OpenAPI schema enforcementlimited✅ ($$$)
Behavioural anomaly scoring (built-in)add-on
Bot detection✅ (Bot Mgmt $5/M req)add-on
Leaked credential check
OWASP managed rules
Per-target pricing (no per-request)

What's next