Alert Fatigue Isn't a People Problem. It's a Tuning Problem.
How tuning for specific threat patterns, measuring false positives per rule, putting context in front of analysts and training Tier 1 cut SIEM noise at a large telecom.
Alert fatigue gets talked about as if it were a morale problem: analysts burning out, people missing things, a need for more headcount. Those are real symptoms, but they aren't the cause. In my experience the cause is almost always the detection content. Alert fatigue isn't a people problem. It's a tuning problem.
The situation
At a large telecom, our SIEM was loud. Generic rules fired all day, and the alerts that mattered sat in the same queue as the noise. That's how real incidents get missed. Nobody ignores the critical alert on purpose. It's just buried in a queue full of alerts that turned out to be nothing.
We didn't fix it by buying something. We fixed it with four changes to how we built, measured and delivered detections.
1. Tune for the specific threat pattern, not the generic behavior
Most out-of-the-box SIEM rules detect a behavior: a login from a new location, a burst of failed authentications, a process spawning a shell. Behaviors are common. Attacks are a specific sequence of behaviors in a specific context.
I built custom QRadar correlation rules around the attack patterns we actually cared about instead of relying on broad default logic. In practice, a pattern-specific rule usually does three things a generic rule doesn't:
- It correlates. It requires two or more related events within a time window (for example, authentication anomalies followed by a sensitive action on the same asset) instead of firing on any single event.
- It scopes. It limits the rule to the assets, users or network segments where that pattern actually means risk, and keeps known-good sources (scanners, admin jump hosts, service accounts) in maintained allowlists instead of hard-coding exceptions.
- It says why. The rule name and description state the threat it's looking for, so the analyst starts from a hypothesis instead of a generic "suspicious activity" label.
In QRadar terms, that means reusable building blocks for the component behaviors, reference sets for allowlists and watchlists, and correlation rules that combine them. The same thinking carries over to any SIEM.
2. Measure false positives per rule
A rule that's wrong most of the time isn't detection. It's a tax on your analysts. Track it, tune it, or retire it.
"We have too many false positives" can't be acted on. "These five rules produce most of our false positives" can. The minimum you need is a disposition on every closed alert (true positive, benign true positive, false positive) and a report that groups those dispositions by rule. Here's a sketch of that report in Splunk, assuming your alerts land in an index with a rule name and an analyst disposition field:
index=notable status_label="Closed"
| eval fp=if(like(disposition_label, "False Positive%"), 1, 0)
| stats count as alerts sum(fp) as false_positives by rule_name
| eval fp_rate=round(false_positives / alerts * 100, 1)
| sort - false_positives
Field names vary by product and version, so adapt it to how your team records dispositions. The point is the shape of the output: a ranked list of the rules costing you the most analyst time. The top of that list is your tuning backlog. A rule that stays at the top after tuning is a candidate for retirement.
3. Put context where the analyst is looking
Even a good alert is slow to triage if the analyst has to pivot across five consoles to understand it. Every pivot is time and a chance to lose the thread.
I built Splunk dashboards across 200+ security controls so whoever was triaging could see what mattered without pivoting across tools. The goal isn't a pretty wall of charts. The goal is for the person working the alert to see, in one place, the state of the controls relevant to it, so they can decide quickly whether it's real.
4. Invest in Tier 1
A lot of "noise" is really uncertainty. When Tier 1 analysts aren't confident with the tools, the safe move is to escalate, and escalations pile up on the people who should be hunting and handling real incidents.
I trained our Tier 1 analysts on CrowdStrike Falcon so they could investigate with confidence instead of escalating by default. When the first responder can pull process trees, check what a host was doing and close out the obvious cases themselves, only the alerts that deserve a second look get escalated.
The result
- About 60% fewer false positives
- Roughly 30% faster response on critical alerts
- About 35% fewer escalations
None of it required a new tool. It took tuning, measurement, and analysts who trusted their own judgment.
Takeaways
- Treat detections like code. Every rule should have a stated purpose, an owner and a measured false-positive rate.
- Correlate and scope. Single-event, environment-wide rules are where most noise comes from.
- Rank rules by cost. Tune the worst offenders first, and retire what can't be fixed.
- Bring context to the analyst, not the analyst to the context.
- Confidence cuts escalations. Tool training for Tier 1 is detection engineering too.
Which SIEM rule would you turn off tomorrow if you could?
