WASViking Docs
⌘K
Concepts

Environment Profile

The per-host fingerprint that lets WASViking analyzers adapt to your stack instead of firing a static catalog.

The Environment Profile is a per-host fingerprint WASViking® captures on every scan. It is the reason analyzers can adapt payloads to the detected stack and produce findings that survive engineering review.

What it captures

A profile records, per host:

Dimension Examples
Stack Spring Boot 2.x, Django 4.2, ASP.NET 6, Express 4.
Protocols REST, OpenAPI 3.x, GraphQL, SOAP 1.1/1.2, WebSocket, gRPC.
Defenses Cloudflare WAF, AWS WAF, ModSecurity, rate limiting, bot management.
Auth surface Form login present, OIDC issuer, JWT verify endpoint, Bearer support.
Frontend SPA flag (Next.js, React, Vue), SSR markers, hydration patterns.
Headers CSP class (strict, report-only, none), HSTS, COOP/COEP, Referrer-Policy.
TLS Protocol version, cipher class, certificate chain quality.
Signals Server header, X-Powered-By, generator meta, response timing.

How analyzers consume it

The profile is shared with every analyzer running in the same scan, so they all read from the same source of truth. Six analyzers calibrate against the profile:

Coverage What it adapts
SQL Injection DBMS fingerprint drives payload variant selection.
Cross-Site Scripting (XSS) SPA detection switches to headless browser execution.
Injection class Defenses inform payload class selection (e.g., suppress noisy SSRF where egress filtering is detected).
JWT and token security JWKS placement determines kid-confusion attempts.
Sensitive file and path exposure Server stack drives the positive-fingerprint set.
Security headers Profile drives severity calibration.

Why this matters

Static-payload scanners produce noise because they cannot tell a Postgres endpoint from a SQLite endpoint, an SPA from a server-rendered app, or a WAF-fronted endpoint from a bare one. Calibrated payloads reduce false positives without reducing coverage.

A second-order benefit: the profile is itself a discovery artifact you can read in the portal. "Host runs Spring Boot 2.x with a JWT-protected REST API, HSTS on, no CSP, has an admin login form" is more useful than "host returned 200 OK".

Persistence

The profile is stored per scan. The portal surfaces it under the scan detail page so the team can see what the engine saw.

How coverage grows

Every signal the profile records is consumed by at least one analyzer. New fingerprint signals are added only when an analyzer adapts to them, so the profile stays a working input to detection rather than a descriptive sidebar.