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

Application & API securityDevSecOps series

Application security at a glance

A dashboard is not a security programme, but it is how you notice one. Six tiles, read left to right and top to bottom, answer the questions a lead asks on a Monday.

Quick reference

Status: This sprint

MetricValueNote
Critical open72 past SLA
Authz failures3IDOR tests failing
WAF blocks12.4klast 24 hours
Dependency age148 dmedian, direct deps
Test coverage78%%authz and input tests
Open exceptions52 expire this month

Explained

Findings

Critical open: seven, with two past their SLA. The age matters more than the count; a critical from last week is a decision, one from last quarter is a policy. Authz failures: three IDOR tests failing in the API suite. This is the number that predicts a breach, because a scanner rarely tests two accounts.

Exposure

WAF blocks: 12.4k in the last day. A block is not a fix; a rising count can mean an attack, a noisy rule, or a scanner you own, so read the rule IDs before you celebrate.

Debt

Dependency age: a median of 148 days for direct dependencies. Age is a proxy for missing patches, not risk on its own; a pinned library with no advisories is less urgent than a fresh one with a critical CVE.

Assurance

Test coverage: 78 percent on the authz and input tests. Coverage proves a test exists, not that it asserts the right thing. Open exceptions: five accepted risks, two expiring this month. An exception without an expiry is a permanent hole with a ticket number.

The honest caveat: every tile can improve while the product gets less safe. Fewer findings may mean better code or a scanner that stopped running, so plot the count against the scan volume.

The lesson: a board is a prompt for questions, not an answer.

In one line

Count what could hurt you. Six numbers, and the one that should worry you.

Export the board

curl -s $API/metrics | jq .appsec

More notes: Application & API security

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