๐ What Is It?
Logging & Alerting Failures occur when an application does not record security-relevant events with enough detail, does not turn them into timely, actionable alerts, or does not act on the alerts it produces. Unlike other Top 10 entries, this is not a flaw an attacker exploits to break in โ it is a detection-and-response gap that lets every other attack proceed unnoticed, for longer, with a worse outcome. The 2025 rename to "Alerting" is deliberate: across a decade of breach retrospectives, the recurring lesson was not that organisations lacked logs โ it was that the signal existed and nobody acted on it in time. The deliverable is not a log file; it is a timely response.
โ ๏ธ Top Attack Vectors
- Confirm blindness: probe for a reaction; no lockout/CAPTCHA/slowdown means nothing is watching, so operate at leisure.
- Low-and-slow attacks: credential stuffing paced under per-account thresholds; enumeration that looks like normal failed logins.
- Unlogged authz denials: 403s treated as "working as intended" discard the strongest pre-breach indicator.
- Exfil below the volume radar: paginated data pulls with no per-user baseline alert.
- Log injection / forging (CWE-117): unescaped newlines write forged log lines and poison SIEM parsers.
- Killing the pipeline: stop the shipping agent, fill the disk, or delete on-host logs โ silence isn't alarmed.
๐ด Attack Flow
โ
2. Confirm blindness โ no lockout / alert / slowdown
โ
3. Operate at leisure โ slow stuffing, privilege abuse, lateral movement
โ
4. Exfiltrate under the (absent) volume threshold
โ
5. COVER TRACKS: forge/delete logs; breach found 90 days later by a third party
โ Vulnerable Code
โ Secure Code
โ Prevention Checklist
- Log failures & denials, not just the happy path (authn, authz, high-value actions)
- Structure logs (JSON) with a correlation ID propagated across services
- Redact secrets/PII (CWE-532); neutralise untrusted data (CWE-117)
- Centralise off-host in near real time; log to stdout, let a collector ship it
- Synchronise clocks to UTC (NTP); the server stamps every event
- Protect logs: append-only/WORM storage, least privilege, integrity checks
- Detection-as-code: version-controlled correlation rules (stuffing, authz spike, exfil volume)
- Alert on correlations, deduplicated & severity-routed; on-call + runbook + escalation
- Alert on the absence of logs โ a dead-man's-switch heartbeat
๐ Detection & Tools
Core Correlations to Ship:
- Horizontal stuffing: one IP/ASN vs. many distinct accounts in a window
- Authz-denial spike per actor โ IDOR / privilege probing
- Exfil volume: data read vs. per-user baseline; impossible travel