SecureAEye LAB ONLINE · SIG 657 · DET ~41s

← Blog

10,000 alerts an hour, and 87% of them came from one audit setting

Pattern · 2026-10-28

Most of our posts are about what fired when we attacked something. This one is about what fires when we don't. Before every detonation, the lab harness records 30 minutes of alerts from the victim. Across the 2026-10-27 wave we finally measured that baseline properly, and the result was bad enough to deserve a post of its own.

The numbers

Windows victim (29 runs)Linux victim (4 runs)
Baseline alerts per hour (30 min before detonation)median >= 10,000median 130
Alerts in the 90 s detonation windowmedian 1,8135
Same window, minus one rulemedian 1473

Same SIEM, same harness, same 30-minute window. The Windows host is roughly 75 times louder than the Linux one, and the real gap is bigger than that. The harness queries the baseline with a 5,000-hit cap, and 27 of the 29 Windows runs hit it. So 10,000 an hour is a floor. Only two Windows runs came in under the cap, at 836 and 3,626 an hour.

One rule is most of it

Wazuh's built-in rule 60107, "Failed attempt to perform a privileged operation", fires on Windows Security event 4673. It is level 4, so it never pages anyone, but it is 87.2% of all Windows baseline hits (119,656 of them) and 91.7% of the alerts in the detonation windows. Take that one rule out and the median detonation window drops from 1,813 alerts to 147.

Everything else is small. The next biggest sources are the logon/logoff and process-creation family (4624, 4634, 4672, 4688 via rules 67022, 67023, 67028 and 67027), at 1 to 4% each.

The next wave, on 2026-10-28, showed the same thing: 17 of 21 Windows baselines hit the cap, and 60107 was 91.2% of the window alerts.

We caused it

This noise did not come with Windows. We turned it on.

Our earlier victim image, golden v1, used through 2026-10-16, had a median Windows baseline of about 300 alerts an hour. On 2026-10-17 we switched to golden v2, a "telemetry-complete" build. Its provisioning script (lab/provision/win-victim-telemetry/enable-telemetry.ps1) turns on a list of advanced audit subcategories, and one of them is:

'Sensitive Privilege Use' = 'success,failure'   # 4673/4674 (SeDebugPrivilege use around lsass dumping)

The reason was sound. We wanted the privilege-use events that show up around credential dumping from lsass. But "Sensitive Privilege Use" audits every check of a sensitive privilege on the box, and with failure auditing on, a normal Windows host fails those checks constantly. Every v2 Windows baseline we have measured since has been at least 836 an hour, and most hit the cap. Our 2026-10-25 scorecard counted 60107 at 80.6% of all baseline rule hits (118,620 of 147,095) in the bundles that record per-rule counts.

To be clear about what we don't know: the committed run summaries carry rule ids, levels and timestamps, not the raw events. We can't yet say which process is failing those privilege checks. That needs a raw-event pull.

Why this matters for detection, not just disk space

Signal-to-noise. In the 2026-10-27 wave, each Windows detection was one matching alert among about 1,800 others. The median noise-to-signal ratio was 1,808 to 1. The detections still worked: 13 runs were graded detected after noise adjustment, with a median latency of 43 seconds, because they match on our own rule ids rather than on volume. An analyst scrolling a queue would not have had it so easy.

ATT&CK tags lie at this volume. Rule 60107 carries the ATT&CK tag T1078 (Valid Accounts). If you grade detections by "did an alert with this technique tag fire," run 014 alone would "detect" T1078 with 1,683 false positives. Our harness grades by rule id, which avoids this. A dashboard that counts alerts by technique tag would not.

The cap hides things. When 27 of 29 baselines are cut off at 5,000 hits, "this rule never fired in the baseline" is weaker evidence, because the rule might be in the part that got cut off. The noise makes our own false-positive checks less trustworthy.

Our own rules are noisy too

Rule 60107 is Wazuh's. Rule 100230 is ours: "Access token manipulation: SYSTEM-integrity process created by a non-service parent", at level 10. It fired 1,249 times across the baselines, about 43 per run, with no attack running. Level 10 is meant to get attention. A rule that fires 43 times in a quiet half hour is a false-positive source, and it's on our tuning list.

What we'd tell a defender

Caveats

Grounded in analysis/reports/noise-baseline-2026-10-27.md (reproduce with python -X utf8 analysis/noise_baseline.py --date 2026-10-27), section 5 of analysis/reports/scorecard-baseline-and-definitions-2026-10-25.md, and the committed lab/results/run-2026-10-27-* and run-2026-10-28-* bundles.