CISSP-115 · Lesson 3 of 12 · 29 min

Vulnerability management and scanning

Every organization runs software with known flaws. Thousands of new vulnerabilities are published each year; the public Common Vulnerabilities and Exposures (CVE) list has added more than 30,000 entries a year recently, and attackers routinely exploit some of them within days of disclosure. Vulnerability management is the continuous program that finds these weaknesses in your environment, decides which matter, fixes or mitigates them, and proves that the fixes worked. Vulnerability scanning is one tool within that program. Confusing the two is a common mistake: a scanner produces a list, but only a managed process reduces risk.

This lesson covers the life cycle, the kinds of scans, how to make scans accurate, and how to measure scanner quality. Lesson 4 covers how to score and prioritize what scans find.

The vulnerability management life cycle

Vulnerability management is usually drawn as a cycle with six stages. Discover: build and maintain an inventory of assets, because you cannot scan what you do not know exists. Assess: scan and otherwise identify vulnerabilities on those assets. Prioritize: rank findings by risk, combining severity, exploitation evidence and asset importance. Remediate: patch, reconfigure, replace or apply compensating controls, within agreed timelines. Verify: rescan or test to confirm the fix worked. Report and improve: track metrics, report to owners and management, and refine the process. The cycle then repeats, continuously for internet-facing assets and on a schedule elsewhere.

Circular diagram with six stages: discover assets, assess and scan, prioritize by risk, remediate or mitigate, verify by rescanning, and report and improve, with an arrow back to discover. In the center: asset inventory and risk context.
The vulnerability management life cycle runs continuously around an accurate asset inventory.

Asset discovery deserves emphasis because it is where many programs quietly fail. Discovery combines several sources: network sweeps, cloud provider inventories pulled through their APIs, endpoint management and EDR agents, configuration management databases, certificate transparency logs and external attack surface management services that find internet-facing assets registered to your domains. Each source misses something, so mature programs reconcile them and investigate assets that appear in one source but not another. The CIS Critical Security Controls put enterprise asset inventory first and vulnerability management seventh, which reflects this dependency.

Kinds of vulnerability scans

Scans differ by vantage point, credentials and target. An external scan runs from the internet against public-facing addresses and shows what any attacker can see. An internal scan runs from inside the network and shows what an attacker who has gained a foothold, or a malicious insider, could reach. Network scans probe hosts and services; web application scanners crawl and test web applications; container and image scanners examine software packages inside images in registries; cloud configuration scanners (often called cloud security posture management) compare cloud settings against benchmarks; and code and dependency scanners, covered in lesson 8, examine software before it ships.

The most important accuracy decision is whether a scan is authenticated. An unauthenticated (non-credentialed) scan sees only what services reveal on the network: open ports, banners and responses. It often has to guess software versions, which causes both false positives and false negatives. An authenticated (credentialed) scan logs into each host with a dedicated low-privilege or read-only account, or uses an installed agent, and reads installed package versions, registry keys and configuration directly. Authenticated scans find far more missing patches and misconfigurations with far fewer false alarms. Their credentials must be protected like any privileged account: unique to the scanner, vaulted, monitored and rotated.

Authenticated and agent-based scans give the most accurate view of host vulnerabilities.
Scan typeWhat it seesAccuracyTypical use
External, unauthenticatedInternet-exposed servicesModerate; banner-based guessesAttack surface monitoring, PCI DSS ASV scans
Internal, unauthenticatedServices reachable on internal networksModerateDiscovering unknown hosts and services
Internal, authenticatedInstalled software, patches, configurationHighPatch and configuration compliance
Agent-basedSame as authenticated, even off-networkHighLaptops and cloud workloads
Web application (DAST)Behavior of running web appsVaries; needs tuningInjection, authentication, session flaws
Cloud postureCloud service settingsHigh for settingsPublic storage, open security groups, logging gaps

Scanners identify issues by matching what they observe against vulnerability databases and checks. The common naming standards come from the Security Content Automation Protocol (SCAP) family: CVE identifiers name specific vulnerabilities, Common Platform Enumeration (CPE) names products and versions, the Common Weakness Enumeration (CWE) names underlying weakness types such as SQL injection, and the Common Configuration Enumeration and XCCDF/OVAL formats express configuration checks. Benchmarks such as the CIS Benchmarks and the United States Defense Information Systems Agency's Security Technical Implementation Guides define secure configurations to check against.

In the United States, the Cybersecurity and Infrastructure Security Agency (CISA) maintains the Known Exploited Vulnerabilities (KEV) catalog, discussed in lesson 4, and Binding Operational Directive 22-01 requires federal civilian agencies to remediate listed vulnerabilities within set deadlines. Directive 23-01 requires those agencies to perform automated asset discovery every 7 days and vulnerability enumeration every 14 days. Private organizations are not bound by these directives, but many adopt the catalog and timelines as a benchmark.

Remediation, exceptions and timelines

Remediation options include applying a vendor patch, upgrading to a supported version, changing a configuration, removing an unneeded service or package, and replacing an end-of-life system. When a fix is not possible in time, the organization can mitigate with compensating controls, such as restricting network access to the vulnerable service, adding a web application firewall rule, disabling a vulnerable feature or increasing monitoring, and document the decision. A formal exception (risk acceptance) records who accepted the risk, why, what compensating controls apply and when the exception expires. Exceptions without expiry dates become permanent by default.

Most organizations set remediation service level agreements (SLAs) by severity and exposure, for example critical internet-facing vulnerabilities within 7 to 15 days, high within 30 days, medium within 90 days and low at the next maintenance cycle. Known-exploited vulnerabilities often get the fastest track regardless of their base score. These timelines should be agreed with system owners in advance, so that when a finding arrives the deadline is already known and escalation is automatic.

Tracking remediation against severity-based SLAs.
from datetime import date, timedelta
SLA = {'Critical': 15, 'High': 30, 'Medium': 90, 'Low': 180}
findings = [
    ('CVE-A', 'Critical', date(2026, 9, 1), date(2026, 9, 10)),
    ('CVE-B', 'High', date(2026, 8, 1), None),
    ('CVE-C', 'Medium', date(2026, 6, 15), date(2026, 9, 30)),
    ('CVE-D', 'Critical', date(2026, 10, 2), None),
    ('CVE-E', 'Low', date(2026, 3, 1), date(2026, 7, 1)),
]
today = date(2026, 10, 20)
met = total_closed = 0
for fid, sev, found, fixed in findings:
    due = found + timedelta(days=SLA[sev])
    if fixed:
        total_closed += 1
        ok = fixed <= due
        met += ok
        state = f'closed {fixed}, ' + ('within SLA' if ok else f'late by {(fixed - due).days} d')
    else:
        state = f'OPEN, due {due}, ' + ('OVERDUE by %d d' % (today - due).days if today > due else f'{(due - today).days} d left')
    print(f'{fid} {sev:8s} {state}')
print(f'SLA compliance for closed findings: {met}/{total_closed} = {met/total_closed:.0%}')
Output
CVE-A Critical closed 2026-09-10, within SLA
CVE-B High     OPEN, due 2026-08-31, OVERDUE by 50 d
CVE-C Medium   closed 2026-09-30, late by 17 d
CVE-D Critical OPEN, due 2026-10-17, OVERDUE by 3 d
CVE-E Low      closed 2026-07-01, within SLA
SLA compliance for closed findings: 2/3 = 67%

The output shows a pattern auditors look for: one high-severity finding is overdue by weeks, and one closed medium finding missed its deadline. SLA compliance is a useful headline metric, but the overdue list is what managers act on. Lesson 11 returns to how such data is reported.

Scanner accuracy: false positives and false negatives

No scanner is perfect. A false positive is a reported vulnerability that is not actually present, for example a version-based check that misses a vendor's back-ported fix. A false negative is a real vulnerability the scanner fails to report, perhaps because the scan was unauthenticated, the check did not exist yet, or a firewall blocked the probe. False positives waste remediation effort and erode trust in the program; false negatives are more dangerous because they create false confidence. Tuning, authenticated scanning, current plug-ins and periodic validation by manual testing reduce both.

Scanner quality can be measured like any classifier. Precision is the share of reported findings that are real; recall (also called sensitivity or detection rate) is the share of real vulnerabilities that the scanner reports. A scanner that reports everything has high recall and poor precision; one that reports only certain matches has high precision but misses things. Comparing scanners on a test environment with known, seeded vulnerabilities is a common way to evaluate products before purchase.

\[\text{precision} = \frac{TP}{TP + FP}, \qquad \text{recall} = \frac{TP}{TP + FN}\]
Comparing unauthenticated and authenticated scans on a lab with seeded vulnerabilities (illustrative rates).
import random
random.seed(115)
# A lab with 200 seeded real vulnerabilities; compare two scanner configurations
real = set(range(200))
def run(detect_rate, fp_count):
    found = {v for v in real if random.random() < detect_rate}
    fps = {1000 + i for i in range(fp_count)}
    return found | fps
for name, rate, fps in (('unauthenticated', 0.55, 40), ('authenticated', 0.92, 8)):
    rep = run(rate, fps)
    tp = len(rep & real); fp = len(rep - real); fn = len(real - rep)
    print(f'{name:16s} reported {len(rep):3d}  TP {tp:3d}  FP {fp:2d}  FN {fn:3d}  '
          f'precision {tp/(tp+fp):.2f}  recall {tp/(tp+fn):.2f}')
Output
unauthenticated  reported 127  TP  87  FP 40  FN 113  precision 0.69  recall 0.43
authenticated    reported 193  TP 185  FP  8  FN  15  precision 0.96  recall 0.93

In this illustrative lab the authenticated configuration finds most of the seeded vulnerabilities with few false alarms, while the unauthenticated one misses more than half. The exact numbers are invented, but the direction matches practical experience and is the main reason auditors ask whether internal scans are credentialed.

Worked problem

Investigating a disputed finding

A system owner says a critical OpenSSL finding on a Linux server is a false positive because the distribution back-ported the fix. How should the security team respond?

Show solution
  1. Check the vendor's security advisory for the package version installed; back-ported fixes are common in enterprise Linux distributions.
  2. Confirm with an authenticated check that reads the package changelog or the vendor's advisory identifiers rather than the upstream version number.
  3. If the fix is present, mark the finding as a false positive with evidence and tune the scanner check or policy.
  4. If not, the SLA stands. Either way, record the decision so the same dispute does not recur next month.

Answer: Verify against the vendor advisory with an authenticated check, then either document a false positive with evidence or proceed with remediation.

Worked problem

Choosing scan credentials

The infrastructure team proposes giving the scanner a domain administrator account so it can read everything. Evaluate the proposal.

Show solution
  1. A domain administrator account is far more privilege than scanning needs and would be a prime target if the scanner were compromised.
  2. Most authenticated checks need only local read access, or a dedicated account in a scanning group with specific rights.
  3. The credential should be unique, stored in a vault, restricted to scanner source addresses and monitored for use elsewhere.
  4. Where possible, use agents that avoid a shared network credential altogether.

Answer: Reject the domain administrator account; use least-privilege, vaulted, monitored scan credentials or agents.

Worked problem

An end-of-life system

A laboratory instrument runs an operating system that no longer receives patches and cannot be upgraded until the instrument is replaced in 18 months. What should be done?

Show solution
  1. Record a time-limited exception approved by the business owner and the security function.
  2. Isolate the instrument on its own network segment with only the connections it needs.
  3. Disable unneeded services, restrict removable media and increase monitoring.
  4. Track the replacement as a funded project with a date, and review the exception regularly.

Answer: Accept the risk formally with an expiry date, apply compensating controls, and fund replacement.

Common mistakes

  • MistakeEquating vulnerability management with running a scanner.

    InsteadRun a life cycle: discover, assess, prioritize, remediate, verify, report.

  • MistakeScanning only the assets on the official inventory.

    InsteadReconcile several discovery sources, including cloud APIs and external attack surface tools.

  • MistakeRelying on unauthenticated internal scans.

    InsteadUse authenticated scans or agents for accurate patch and configuration data.

  • MistakeGiving scanners highly privileged shared credentials.

    InsteadUse least-privilege, vaulted, monitored scan accounts.

  • MistakeApproving exceptions with no end date.

    InsteadTime-limit exceptions and record compensating controls and owners.

  • MistakeClosing findings when a ticket is marked done.

    InsteadVerify fixes by rescanning or testing.

Summary and key terms

  • Vulnerability management is a continuous life cycle built on an accurate asset inventory.
  • External scans show the attacker view; internal scans show the insider or foothold view.
  • Authenticated scans and agents are far more accurate than unauthenticated scans.
  • SCAP standards such as CVE, CPE and CWE name vulnerabilities, products and weakness types.
  • Remediation timelines should be agreed in advance by severity and exposure.
  • Exceptions need owners, compensating controls and expiry dates.
  • Precision and recall measure scanner quality; false negatives create false confidence.
Vulnerability
A weakness in a system that could be exploited to cause harm.
CVE
Common Vulnerabilities and Exposures, the public list of named vulnerabilities.
CWE
Common Weakness Enumeration, a catalog of software and hardware weakness types.
Authenticated scan
A scan that logs into hosts to read installed software and configuration.
Unauthenticated scan
A scan that sees only what services reveal over the network.
False positive
A reported vulnerability that is not actually present.
False negative
A real vulnerability that the scanner fails to report.
Compensating control
An alternative control that reduces risk when the primary fix cannot be applied.
Risk acceptance
A documented, time-limited decision by an owner to tolerate a known risk.
Attack surface management
Continuous discovery and monitoring of internet-facing assets.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. List the six stages of the vulnerability management life cycle.

    Show answer

    Discover, assess, prioritize, remediate, verify, report and improve.

  2. Why are authenticated scans more accurate?

    Show answer

    They read installed versions and settings directly instead of guessing from network responses.

  3. What is the danger of false negatives?

    Show answer

    They create false confidence that a system is safe.

  4. A scanner reports 120 findings, of which 90 are real; 30 real vulnerabilities were missed. Compute precision and recall.

    Show answer

    Precision 90/120 = 0.75; recall 90/120 = 0.75 (90 of 120 real).

  5. What should every risk acceptance include?

    Show answer

    An owner, a reason, compensating controls and an expiry date.

  6. Name two sources for asset discovery.

    Show answer

    Any two of network sweeps, cloud APIs, endpoint agents, CMDB, certificate transparency, attack surface services.

  7. What does a cloud posture scanner check?

    Show answer

    Cloud service settings against benchmarks, such as public storage or open security groups.

  8. Why verify remediation by rescanning?

    Show answer

    Tickets can be closed without the fix actually taking effect.

  9. What is CPE used for?

    Show answer

    Naming products and versions so vulnerabilities can be matched to them.

  10. Why time-limit exceptions?

    Show answer

    Otherwise temporary risk acceptance becomes permanent by default.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz