Vulnerability Management

Onam's Vulnerability engine scans every cloud workload — virtual machines, container images, serverless functions, and Kubernetes nodes — and correlates each CVE with the workload's actual runtime context (network exposure, exploitation activity in the wild, blast radius) to produce a prioritized list of what to patch first. Cloud-side scanning is agentless; optional host agents add OS-level depth on Linux, macOS, and Windows servers.

This page covers the scan pipeline, the four intelligence sources (NVD, EPSS, CISA KEV, OSV), the Effective Risk Score model, SBOM generation, the optional host agents, and the finding lifecycle.

Agentless vulnerability management
Agentless vulnerability management

Why Prioritization Is the Product

The NVD now publishes 25,000+ new CVEs per year, and a typical mid-size cloud estate carries thousands of open CVE findings at any time. CVSS alone is a poor predictor of exploitation — less than 5% of all CVEs are ever observed exploited in the wild. The engine's job is to surface that 5%, ranked by your exposure, ahead of the noise.

How It Works

Vulnerability management runs as a single end-to-end pipeline on every scan. Workloads are analyzed through your read-only cloud credential and the Agentless Scanner engine's snapshot scanning — no code runs inside your workloads.

StageWhat happensOutputs
1. ScanDiscovery enumerates workloads; package analysis generates a per-workload SBOM; CVE matching against NVD and OSV produces raw findingsRaw CVE findings (one per CVE per workload)
2. EnrichEach finding gains five context signals — CVSS, EPSS, KEV, network exposure, blast radiusEnriched findings
3. OutputFindings emerge ranked by Effective Risk Score, with package-version remediation guidance and exportable SBOMsPrioritized list + SBOM exports + API
Vulnerability management platform view — CVE findings, EPSS scores, and risk prioritization
Vulnerability management platform view — CVE findings, EPSS scores, and risk prioritization

Agentless-by-default matters: there is no fleet of scanners to upgrade, no agent compatibility matrix, and no high-value agent channel for attackers to target. Lambda functions, Fargate tasks, and ephemeral spot instances get scanned the same way as long-running instances — there is no "we couldn't install the agent" coverage gap.

Vulnerability Intelligence Sources

Four curated sources feed detection and prioritization:

SourceWhat it providesRefresh cadence
NVDCVE metadata and CVSS v3.1 base scoresEvery 4 hours
EPSS (FIRST.org)Probability each CVE is exploited in the next 30 daysDaily
CISA KEVCatalog of vulnerabilities confirmed exploited in the wildWithin an hour of CISA publication
OSVOpen-source package advisories keyed by ecosystem and affected version rangeContinuous

Vendor advisories (Microsoft MSRC, Red Hat, GitHub Security Advisories) are also tracked — they often run ahead of NVD, so new zero-days typically appear within hours.

Supported Workload Types

WorkloadAWSAzureGCPOCIAlibabaIBM
Virtual machines / compute instancesYesYesYesYesYesYes
Container images (in registries)YesYesYesYesYesYes
EKS / AKS / GKE node OSYesYesYesYesYes
Lambda / FunctionsYesYesYesYesYesYes
ECS / container instancesYesYes

For registries, every image in ECR, ACR, GCR, OCIR, Alibaba ACR, and IBM Cloud Container Registry is scanned — both pushed images and images currently deployed.

Risk Prioritization Model

Four input signals combine into a single Effective Risk Score from 0 to 100. Findings sort by this score by default.

Risk prioritization model — four signals combine into one Effective Risk Score
Risk prioritization model — four signals combine into one Effective Risk Score
SignalSourceWhat it tells you
CVSS v3.1 base scoreNVDPublished severity at disclosure (0–10)
EPSS scoreFIRST.orgProbability of exploitation in the next 30 days
CISA KEVKEV catalogIs this currently being exploited in the wild?
Network exposureOnam topology analysisInternet-facing, internal-only, or air-gapped?

Worked example — three CVEs ranked:

CVECVSSEPSSKEVExposureEffective ScorePriority
CVE-2024-00019.8 Critical0.5%NoInternal-only42Medium
CVE-2024-00026.5 Medium85%YesInternet-facing94Critical
CVE-2024-00037.2 High2%NoInternal-only28Low

The middle row is the lesson: CVE-2024-0002 has the lowest CVSS of the three, but it is actively exploited (KEV), highly likely to be exploited again (EPSS 85%), and lives on an internet-facing workload — so it ranks first. CVSS alone would have ordered these wrong. Adjust the per-signal weights in Settings → Vulnerability → Risk Model if your environment needs different priorities.

SBOM Generation

Onam generates Software Bills of Materials for every scanned workload in CycloneDX (OWASP; used by GitHub and FedRAMP) and SPDX (Linux Foundation; required by US EO 14028). SBOMs are required for FedRAMP, the EU Cyber Resilience Act, and most supply-chain audit programs — and they answer "which of my workloads have log4j on them" instantly during the next supply-chain incident.

SBOM generation — workload analysis to CycloneDX / SPDX export
SBOM generation — workload analysis to CycloneDX / SPDX export

Two SBOM engines run in the platform: the infrastructure SBOM engine described here (workloads, images, snapshots) and the SecOps SCA engine that builds SBOMs from repository dependency manifests at PR time — see IaC Scanning & SecOps. Both export the same formats, so evidence pipelines consume one schema.

EcosystemTools / manifests parsed
OS — Debian / Ubuntudpkg, apt
OS — RHEL / CentOS / Amazon Linuxrpm, yum, dnf
OS — Alpineapk
Pythonpip, poetry, pipenv
Node.jsnpm, yarn, pnpm
JavaMaven, Gradle, JAR manifests
Gogo.mod, go.sum
RubyGemfile, gemspec
.NETNuGet
PHPComposer
RustCargo
GET /api/v1/vulnerability/sbom?resource_uid={uid}&format=cyclonedx

SBOMs auto-update on every scan and can be delivered via webhook on update — useful for compliance evidence pipelines that retain SBOM history.

Optional Host Agents

For servers where you want OS-level depth beyond what snapshot scanning sees, Onam ships an optional host agent (onam-agent) for Linux, macOS, and Windows. The agent is a server-side vulnerability scanner that discovers installed system components and reports to the central Vulnerability engine, with a hybrid mode that performs analysis locally before reporting.

  • Discovers OS packages, kernels, and installed software on the host itself
  • Reports component inventory to the central engine for CVE matching and scoring
  • Hybrid mode: local analysis on the host, centralized prioritization and reporting
  • Useful for hosts outside the cloud accounts (on-prem, colo) and the Technology Engine's self-hosted estate
Agents are never required for cloud posture. The cloud connection itself stays agentless and read-only — agents only add OS-level vulnerability depth on hosts where you choose to install them.

DAST

A DAST scanner is included in the platform via the SecOps engine — runtime testing of HTTP APIs and web applications against the OWASP API Top 10, complementing the configuration- and package-based analysis on this page. Setup and payload details are in IaC Scanning & SecOps.

Finding Lifecycle

Every finding moves through defined states, and each transition is logged in the audit trail. Closures are verified by the next scan, not by an analyst self-reporting "fixed".

Vulnerability finding lifecycle — Detected, Open, Acknowledged, Remediated, Closed, with a Suppressed branch
Vulnerability finding lifecycle — Detected, Open, Acknowledged, Remediated, Closed, with a Suppressed branch
StateWhen enteredNotes
DetectedCVE matched to workload via SBOMInternal — promoted to Open immediately
OpenFinding visible in the console; SLA timer runningStays Open until acknowledged, suppressed, or remediated
AcknowledgedAnalyst acknowledges; SLA timer pausesOptional "we're working on it" marker
RemediatedPackage upgraded; next scan no longer matchesAuto-detected — no manual close needed
ClosedNext scan confirms remediationFull state history retained
SuppressedRisk accepted with documented justificationExcluded from severity counts; tracked for auditor review

Auto-closure prevents "ghost findings" — patches applied months ago whose findings never closed because nobody clicked a button. Suppressions require a justification, optionally an expiry and an approver; on expiry the suppression auto-reverts to Open, so risk acceptance never silently becomes permanent.

Key Metrics to Track

MetricDescriptionWhere
Mean Time to Remediate (MTTR)Finding open to finding resolvedVulnerability dashboard
Critical CVE countActive Critical findings by workloadFindings list, filter severity=CRITICAL
KEV exposureWorkloads with CISA KEV CVEsFindings list, filter kev=true
SBOM coveragePercent of workloads with a generated SBOMSBOM report page
Mean Effective Risk ScoreAverage score across Open findingsPosture dashboard

API

# List vulnerability findings, sorted by effective risk score
GET /api/v1/vulnerability/findings?sort=risk_score&order=desc&status=OPEN

# Aggregate statistics by severity, KEV, and exposure
GET /api/v1/vulnerability/findings/stats

# Get the SBOM for a specific resource
GET /api/v1/vulnerability/sbom?resource_uid={uid}&format=cyclonedx

Webhook delivery on new Critical findings (Effective Score at or above 90, or KEV match) can be configured in Settings → Notifications.

FAQ

Does Onam scan workloads while they're running? Yes — agentlessly. The Agentless Scanner engine reads workload metadata, manifests, and attached snapshots through your cloud API to enumerate installed packages. No code runs inside your workload unless you opt into the host agent.

When should I install the host agent? When you need OS-level component discovery beyond snapshot analysis — long-lived servers, hosts outside your cloud accounts, or fleets where local (hybrid) analysis is preferred. For most cloud estates, agentless coverage is sufficient.

Does Onam support custom CVE feeds? Yes — on Enterprise plans you can ingest your organization's internal advisory feed; it merges with NVD, OSV, and vendor data in scoring.

Can I customize the Effective Risk Score formula? Yes. Settings → Vulnerability → Risk Model exposes per-signal weights (CVSS, EPSS, KEV, exposure) and severity range overrides.

Does Onam support container layer attribution? Yes. When a CVE is detected in a container image, the finding identifies which layer introduced the vulnerable package — so you fix it once, at the Dockerfile or base image.

Next steps