Filters
How to search
  • Plain words find names, texts and examples.
  • "two words" finds the exact phrase.
  • --name or -x finds an option.
  • #word looks only inside commands.
  • @grep finds lessons and labs that use grep.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Put ! before a word to leave it out. OR between words means one of them.
  • ↑ ↓ to move · Enter to open · Esc to close · / to search

Vulnerability management & attack surfaceASM series

Four reports that lie

None of these four reports is false. Each is true in a way that hides the thing it claims to show.

Quick reference

The vanity metric

  • 1,842 findings closed this quarter
  • 2,100 opened, so the backlog grew
  • 48% closure with no denominator
  • Fix: net flow and a denominator

The unscanned asset

  • Coverage on scans the scanner sent
  • The database was never in the count
  • A clean report over part of the estate
  • Fix: join the inventory to the scans

The unmapped finding

  • High finding, no control id
  • It cannot appear in the audit
  • The framework looks fully covered
  • Fix: map the category, then the finding

The stale evidence

  • The export is dated January
  • The control changed in March
  • The packet still passes review
  • Fix: date every artefact you send

Note: Each report is true on its own. Together they hide four different gaps.

Explained

The vanity metric

1,842 findings closed this quarter sounds like progress. Opened were 2,100, so the backlog grew and the closure rate of 48% has no denominator worth the name.

The unscanned asset

Coverage is measured on scans sent, divided by the assets the scanner knew about. The database that was never added to the inventory is not a gap in the report; it is outside the population.

The unmapped finding

A high finding with no control id cannot appear in the audit. The framework looks fully covered because the finding was never in the count.

The stale evidence

The export is from January, the control changed in March, and the packet still passes review. The date is on the file; nobody reads it until the audit, and then it is too late.

What they share

Each one measures what is easy to count, then presents it as the whole. The fix is the same in all four: name the population, the denominator and the date on the same line as the number.

The honest caveat: a simple metric is not a lie. It becomes one when it is presented as the whole picture.

The lesson: a report is a claim; make it show its working.

In one line

A report can be true and useless. A number without its population is a claim without its evidence.

Check the claim

python3 trend_report.py h.json

More notes: Vulnerability management & attack surface

Open in the notes app: search, filters, copy This note on GitHub