Skip to main content

Vulnerability Scanning

Vulnerability Scanning provides external security scanning through two engines: Nuclei for CVE and misconfiguration detection, and OWASP ZAP for dynamic application security testing (DAST). Configure targets, create scan profiles, launch scans on demand or on a schedule, and triage findings — all from within Vulnerability Management.

Overview

Access from Security Operations → Vulnerability Management → Scanning in the sidebar. The module has five tabs:

Vulnerability Scanning page showing header with 0 Open Findings and All clear status, five tabs (Overview active, Targets, Scan Profiles, Scan History, Findings), External Vulnerability Scanning description, How It Works four-step cards (Configure Targets, Create Scan Profiles, Launch Scans, Triage Findings), and Scan Engines section describing Nuclei and OWASP ZAP
  • Overview — How scanning works, engine descriptions, and key concepts
  • Targets — Systems to scan (domains, IPs, URLs, CIDRs)
  • Scan Profiles — Engine-specific scan configurations
  • Scan History — Execution records with status and finding counts
  • Findings — Discovered vulnerabilities with triage workflow

The header displays the count of open (untriaged) findings with a status indicator.

Scan Engines

EngineDescriptionOutput Format
NucleiTemplate-based scanner for CVEs, misconfigurations, exposures, default credentials, and takeoversJSONL
OWASP ZAPDynamic application security testing — crawls and attacks web applications to find SQLi, XSS, CSRF, and other application-level vulnerabilitiesJSON

Both engines run on isolated ECS Fargate tasks with no access to your production infrastructure. Results are written to S3 and ingested by the scan scheduler.

Targets

Targets tab showing Add Target button and empty table with columns for Targets, Health, Type, Last Scanned, and Created

Targets define the systems you want to scan. Each target has a type, value, optional description, and active/inactive status.

Target Types

TypeDescriptionExample
DomainFully qualified domain nameapp.example.com
IP AddressIPv4 address (no private ranges)203.0.113.10
URLFull URL with http/https protocolhttps://app.example.com/api
CIDRNetwork range in CIDR notation203.0.113.0/24

Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, 169.254.0.0/16) are blocked to prevent internal network scanning.

Target Table

ColumnDescription
TargetsTarget name and value
HealthActive (green) or Inactive (gray) badge
TypeDomain, IP, URL, or CIDR badge
Last ScannedWhen the target was last included in a scan
CreatedCreation date

Click any target row to expand the detail panel showing severity breakdown (Critical, High, Medium, Low, Info counts), description, linked scan profiles, and a Scan this target button.

Adding a Target

Click + Add Target and provide:

  • Name — Friendly name for the target
  • Target Type — Domain, IP, URL, or CIDR
  • Target — The actual value (validated per type)
  • Description — Optional context

Duplicate targets within the same organization are rejected.

Scan Profiles

Scan profiles define how scans are configured for each engine. Profiles can be linked to one or more targets and optionally scheduled.

Profile Fields

FieldDescription
NameProfile name
DescriptionWhat this profile scans for
Scan EngineNuclei or ZAP
Rate LimitRequests per second (1–1000, default 150)
ConcurrencyParallel threads (1–100, default 25)
Max DurationTimeout in minutes (5–240, default 60)
Schedule EnabledToggle automatic recurring scans
Schedule (Cron)Cron expression for scheduled runs (e.g., 0 2 * * 0 for weekly Sunday 2am)

Nuclei Profiles

Configure which vulnerability template categories to include:

CategoryDescription
CVEsKnown CVE vulnerabilities
ExposuresSensitive data or service exposures
MisconfigurationsServer and application misconfigurations
Default CredentialsDefault login detection
TakeoversSubdomain and service takeover detection
TechnologiesTechnology stack fingerprinting
NetworkNetwork-level checks
SSL/TLSCertificate and cipher configuration
DNSDNS misconfiguration detection

Each Nuclei profile also has a severity filter that controls which findings are reported (default: Critical, High, Medium).

ZAP Profiles

Scan TypeDescription
BaselinePassive spider and scan — fast, non-intrusive, no active attacks
FullActive spider with full attack suite — thorough, slower
APIOpenAPI/GraphQL spec-driven API testing (requires an API spec URL)

ZAP profiles can optionally enable Ajax Spider for JavaScript-heavy applications and specify a custom scan policy.

Profile Card Display

Each profile is displayed as a card showing the profile name, engine badge (Nuclei in violet, ZAP in orange), description, template categories or scan type, target count, execution count, schedule badge (if enabled), and a Run Now button.

Running Scans

Manual Scan

Click Run Now on any scan profile, or click Scan this target from a target's detail panel. Each launch creates one or more scan executions:

  • Nuclei scans all linked targets in a single execution
  • ZAP creates one execution per target (single-URL scanning)

Scheduled Scans

Enable scheduling on a scan profile with a cron expression. The scan scheduler checks for pending scheduled scans every 5 minutes and launches them automatically.

Concurrency Limits

A configurable maximum concurrent scan limit prevents overwhelming your infrastructure. Additional scans queue as PENDING until a running slot becomes available.

Scan History

The Scan History tab shows all scan executions with status tracking and finding summaries.

Execution Table

ColumnDescription
ProfileScan profile name with engine badge
StatusExecution status with icon
TriggerManual or Scheduled badge
StartedWhen the scan began (relative time)
DurationElapsed time or ETA for running scans
Severity BreakdownCritical, High, Medium, Low counts

Click any execution to expand the detail panel showing execution ID, start/completion timestamps, duration, trigger type, a findings summary table (Total, Critical, High, Medium, Low, Info), error message (if failed), and ECS task ARN.

Execution Statuses

StatusDescription
PendingQueued, waiting for a concurrency slot
LaunchingStarting the ECS Fargate task
RunningActively scanning targets
ProcessingPost-processing and ingesting results from S3
CompletedSuccessfully finished
FailedError during execution (error message recorded)
CancelledCancelled by user

Running scans can be cancelled. Only scans in Pending, Launching, or Running status can be cancelled.

Findings

Scan findings are discovered vulnerabilities, each linked to a specific scan execution.

Finding Fields

FieldDescription
Template NameHuman-readable vulnerability name
Template IDNuclei template ID (e.g., CVE-2021-44228)
SeverityCritical, High, Medium, Low, or Info
Finding TypeCategory (e.g., cve, exposure, misconfiguration)
HostTarget host where the vulnerability was found
Matched AtSpecific URL or location
DescriptionVulnerability description
ReferencesCVE links, advisory URLs
Extracted ResultsNuclei matcher output
Curl CommandReproducibility command
Occurrence CountTimes this finding has been seen across scans
First Seen / Last SeenDiscovery and most recent detection dates

ZAP findings include additional fields: Plugin ID, Confidence (0–4), CWE ID, WASC ID, Solution, and Evidence.

Fingerprint Deduplication

Each finding has a fingerprint computed as SHA256(templateId | host | matchedAt). When the same vulnerability is found in a subsequent scan, the existing finding is updated (last seen date and occurrence count) rather than creating a duplicate.

Finding Filters

FilterOptions
SearchFree-text search across template name and host
SeverityCritical, High, Medium, Low, Info
Triage StatusNew, Confirmed, False Positive, Accepted Risk, Promoted
EngineNuclei, ZAP
RecurringShow only findings seen in multiple scans

Severity Levels

SeverityColorDescription
CriticalRedExploitable with severe impact — immediate remediation required
HighOrangeSignificant risk requiring prompt attention
MediumAmberModerate risk, should be addressed in a reasonable timeframe
LowBlueMinor risk, low priority
InfoGrayInformational, no direct security impact

Triage Workflow

Each finding has a triage status that tracks its review progress.

Triage Statuses

StatusDescription
NewNewly discovered, not yet reviewed
ConfirmedVerified as a real vulnerability
False PositiveDetermined to be a false detection
Accepted RiskRisk acknowledged, no immediate remediation planned
PromotedPromoted to the Vulnerability Register as a formal vulnerability record

Triaging a Finding

Click any finding to review it. Set the triage status and add a note explaining the decision. The reviewer and timestamp are recorded automatically.

Bulk Triage

Select multiple findings using checkboxes, choose a triage status from the dropdown, and click Apply to update all selected findings at once (up to 500 per batch).

Promote to Vulnerability Register

Confirmed findings can be promoted to the Vulnerability Register, creating a formal Vulnerability record with identifiedDuring: NUCLEI_SCAN or ZAP_SCAN. Once promoted, the finding's triage status is locked to Promoted and linked to the vulnerability record.

AI Analysis

Click Analyze on any finding to generate AI-powered analysis including:

  • Impact assessment — What the vulnerability means for your environment
  • Remediation guidance — Step-by-step fix instructions
  • Priority recommendation — Where this should fall in your remediation queue

Dashboard

The Overview tab header displays aggregate statistics:

MetricDescription
Open FindingsCount of findings not yet triaged or resolved
TargetsTotal and active target counts, broken down by type
ProfilesTotal profiles and how many have scheduling enabled
ExecutionsTotal runs, currently running, completed/failed in last 30 days, last scan date
Findings by SeverityCritical, High, Medium, Low, Info counts
Findings by TriageNew, Confirmed, False Positive, Accepted Risk, Promoted counts
Findings by EngineNuclei vs. ZAP counts
Recurring FindingsFindings seen in multiple scan runs

How It Works

  1. Configure Targets — Add the domains, IPs, URLs, or CIDRs you want to scan
  2. Create Scan Profiles — Choose an engine (Nuclei or ZAP), select templates or scan type, link targets
  3. Launch Scans — Run manually or set a schedule; scans execute on isolated ECS Fargate tasks
  4. Triage Findings — Review results, confirm or dismiss findings, promote real vulnerabilities to the register