When a SOC receives more alerts than it can investigate properly, analysts start skimming, bulk-closing and trusting their instinct over the evidence, and that is exactly when a real intrusion gets closed as a false positive. Alert fatigue is not a staffing problem that more analysts will fix: it is a detection quality problem, a context problem and a workflow problem. This guide covers how to measure noise, tune and suppress safely, move from single-event alerts to risk-based alerting, enrich alerts so they can be decided quickly, and automate the mechanical work without automating away judgement. It is written for SOC leads, detection engineers and SIEM owners, and applies to SIEM, EDR, DLP, cloud and application security alert streams alike.
Key takeaways
- Measure before you tune. Rank detections by volume and by true positive rate; in most SOCs a small number of rules produce most of the noise, so the first fixes are cheap.
- Every exception needs an owner and an expiry. NCSC guidance is to bound allow lists by object and time so tuning does not turn into a permanent blind spot.
- Score, then alert. Risk-based alerting writes low-fidelity detections to a risk store and only raises an alert when the combined risk on a user or host crosses a threshold.
- Automate the mechanical, keep the judgement. If the response to an alert is always the same, automate it; if it needs thinking, put the context in front of an analyst.
- Never tune by silence. A rule that has not fired is not proof it is broken or useless; test quiet detections with simulated attacks before retiring them.
What alert fatigue is and why it matters
Alert fatigue is the loss of attention and accuracy that follows sustained exposure to high volumes of low-value alerts. It shows up as rising time to triage, shrinking investigation notes, analysts closing alerts in bulk and, eventually, true positives closed as benign. MITRE's 11 Strategies of a World-Class Cybersecurity Operations Center makes the underlying point plainly: an alert is only a notification that predefined criteria were met, and receiving one does not mean something bad happened. A SOC that forgets this treats every alert as equally urgent and burns out on the ones that never were.
The Google SRE book's chapter on monitoring gives a useful test borrowed from operations engineering: an alert that pages a human should be urgent, actionable, need intelligence to resolve, and describe something new. If the response is purely mechanical, it should be automated rather than paged. Those four properties translate directly to security alerts.
The cost of getting it wrong is well documented. The US Senate Commerce Committee's kill chain analysis of the 2013 Target breach records, citing Bloomberg Businessweek, that Target's malware detection system raised alerts as the exfiltration malware was installed, under the generic name "malware.binary", and that those alerts were not acted on; the report suggests staff may have read them as false positives if such alerts were frequent. The attacker had entered using credentials stolen from an HVAC contractor (ATT&CK T1199 Trusted Relationship and T1078 Valid Accounts).
The wider SOC challenges that fatigue sits among are covered in the Top 10 SOC Challenges; this guide focuses on the fixes.
Where the noise comes from
Noise has a handful of root causes, and each needs a different fix. Diagnose before acting, because suppressing an alert that is noisy for a data quality reason hides the data quality problem.
| Source of noise | Typical symptom | Fix |
|---|---|---|
| Vendor default rules left untuned | Hundreds of medium alerts per day from EDR, IDS or cloud posture tools, closed without action | Review each default against your environment; disable what does not apply, tune thresholds for the rest |
| Known-good activity matching attack logic | Admin tools, scanners, backup jobs and deployment pipelines trigger "suspicious" rules every run | Scoped exceptions on the specific account, host and command line, with expiry |
| Duplicate alerts | The same event alerted by EDR, SIEM correlation and a cloud tool; one incident per event rather than per attack | Deduplicate in the pipeline; group alerts into incidents by entity |
| Thresholds without baselines | Failed logon or data volume rules fire on normal peaks such as Monday morning or month end | Baseline per entity or peer group; use relative rather than absolute thresholds |
| Missing context | Analysts spend most of each triage looking up who the user is and what the host does | Enrich at alert creation with asset, identity and threat intelligence context |
| Poor parsing or broken data | Rules fire on null or misparsed fields; timestamps in the wrong zone | Fix parsers and onboarding checks; test rules against sample data when written |
| Informational findings routed as alerts | Posture, DLP policy match and SAST findings queued alongside intrusion alerts | Route to a ticket queue or dashboard owned by the right team, not the SOC queue |
The last row matters more than it looks. DLP and application security tools generate findings that are real but not urgent, such as a policy match on an outbound email or a code scan result. They belong in the owning team's backlog with an SLA, not in the queue analysts work at three in the morning. The SRE book makes the same point about email alerts that pile up unread: subcritical issues belong on dashboards.
Measuring alert quality
You cannot reduce noise you have not measured. Tag every closed alert with a disposition (true positive, benign true positive, false positive, duplicate) and the rule that generated it, then report per rule. The Alert Triage Guide covers disposition codes; this table lists the metrics that drive tuning decisions.
| Metric | How to calculate | What it tells you |
|---|---|---|
| Alerts per analyst per shift | Alerts entering the queue divided by analysts on shift | Whether the workload allows real investigation; trend it rather than chasing a universal number |
| True positive rate per rule | True positive and benign true positive closures divided by all closures for the rule | Which rules earn their place; rank lowest first |
| Volume concentration | Share of total alerts produced by the top 10 rules | How much a few tuning fixes will remove |
| Actionable rate | Share of alerts that led to any response action (containment, ticket, user contact) | Whether alerts drive work or just get read |
| Mean time to triage | Alert creation to first disposition | Rising times signal overload before quality drops |
| Auto-closed share | Alerts closed by automation rules or suppression, reviewed by sampling | Whether automation is doing the mechanical work, and whether it is closing things it should not |
| Exception count and age | Active suppressions and allow-list entries, and how many have passed expiry | Tuning debt and blind-spot risk |
Pick three to six of these for monthly reporting. Mean time to detect and respond belong in the wider metric set covered by the Security Operations Metrics Guide; the measures above are specific to the health of the alert stream.
Tuning and suppression without creating blind spots
Tuning changes the detection logic. Suppression stops alerts being raised or shown for a period or a scope. Both are necessary, and both are how blind spots are made. NCSC's SOC guidance on detection practices sets out the safe order: feed triage outcomes back into detection logic, improve the logic where possible, be cautious about deleting high false positive rules outright, and keep allow lists strictly bounded by object and time.
Tuning techniques, safest first
- Fix the data. Correct parsers, field mappings and time zones before touching logic.
- Tighten the logic. Add conditions that real attacks would meet and benign activity would not, for example parent process, command line arguments or destination, rather than excluding whole hosts.
- Combine attributes in exceptions. Microsoft's Sentinel guidance shows why: an exclusion on an IP address and a user principal name applies only when both match the same alert, which leaves fewer false negatives than excluding either one alone.
- Move exceptions out of the rule body. Sentinel recommends watchlists, referenced in KQL with
_GetWatchlist('ipallowlist'), so analysts can manage entries without editing rules and one list can serve several rules. Splunk and other SIEMs have lookup equivalents. - Raise thresholds or change grouping only with a baseline that shows where normal ends.
- Retire the rule when it cannot be made useful, and record what coverage you lose against ATT&CK.
Suppression controls in practice
- Temporary automation exceptions: in Microsoft Sentinel an analyst can create an automation rule from an incident that closes matching incidents automatically with a closing reason and comment; the rule expiry defaults to 24 hours, and the closing reason gives an audit trail.
- Rule-level suppression: scheduled analytics rules have a "Stop running query after alert is generated" setting that pauses the rule for up to 24 hours after it fires. Use it for rules where one alert is enough to start an investigation.
- Planned activity: Sentinel automation rules support an expiration date, which suits suppression during an authorised penetration test or a maintenance window. Elsewhere, record the end date in the change ticket.
- Exception register: record every exception with owner, scope (account, host, process, path), reason, approval and expiry. Review expired and long-lived entries monthly.
Endpoint exclusions deserve particular care because they can blind prevention as well as detection. See the EDR Tuning and Exclusions Management Guide.
Correlation, grouping and risk-based alerting
Single-event rules force a trade-off: make them sensitive and they are noisy, make them specific and they miss variations. Correlation breaks that trade-off by alerting on combinations. NCSC's detection practices recommend combining detections that match real attack profiles, because a lone alert is more likely to be a false positive, while warning that sophisticated actors may only ever trigger low-severity alerts, so low-severity signals must still be collected rather than dropped.
Grouping alerts into incidents
The cheapest volume reduction is to stop presenting one ticket per alert. Microsoft Sentinel's analytics rules can group related alerts into a single incident when all mapped entities match (the recommended option), or by selected entities and details, within a set time frame; up to 150 alerts can be grouped into one incident. The rule can also generate one alert per run summarising all events, rather than one alert per event. Group by the entity an analyst would investigate: the user, the host or the service principal.
Risk-based alerting
Risk-based alerting (RBA) goes further. In Splunk Enterprise Security, narrowly defined risk rules run against raw events and write risk events, with a score and ATT&CK annotations, to a risk index instead of raising alerts. Risk incident rules then watch the risk index and create one risk notable when a risk object accumulates enough: Splunk's documented examples are a combined score above 100 in 24 hours, events from three distinct data sources on one machine over three days, and activity across multiple ATT&CK tactics over seven days. Risk factors adjust scores by context, for example multiplying scores for a privileged administrator by 1.5.
| Approach | Best for | Trade-off |
|---|---|---|
| Single-event alert | High-fidelity, high-impact signals: known-bad hash, log clearing, creation of a new global admin | Noisy if used for anything ambiguous |
| Grouped incident | Bursts of related alerts on one entity | Still depends on each rule being reasonable |
| Correlation rule | Known multi-step patterns, such as failed logons followed by success and new MFA method | Each pattern must be written and maintained |
| Risk-based alerting | Large numbers of weak signals; slow, low-noise attackers | Needs good entity resolution and score tuning; harder to explain to auditors |
Keep some detections as direct alerts even after adopting RBA. Tampering with security tooling (ATT&CK T1685 Disable or Modify Tools) is a single event that should never wait for a score to accumulate.
Enrichment: making alerts decidable
A large share of triage time goes on looking things up. MITRE's 11 Strategies notes that alerts need context from other data sources, business and technical, before an analyst can judge them, and NCSC recommends building alerts that draw on multiple log sources so they can be resolved or dismissed faster. Enrich at the point the alert is created, not in the analyst's browser tabs.
- Identity context: department, manager, privileged role membership, recent MFA or password changes, account type (human, service account, workload identity), and whether the account is in a leaver or joiner state.
- Asset context: owner, criticality, environment (production, development), internet exposure and patch status from the CMDB. See the Asset Inventory and CMDB Security Guide.
- Threat intelligence: reputation for IPs, domains and hashes, with source and age so analysts can judge staleness.
- History: previous alerts and dispositions for the same entity and rule in the last 30 days.
- Change context: open change tickets touching the host or account, which explains a large share of "suspicious admin activity".
Enrichment also feeds suppression. An alert for a service account running its documented job, on its documented host, inside an approved change window, can be scored down or auto-closed with an audit note. That is only safe if the service account inventory is accurate; see the Service Account Security Guide.
Automation and AI-assisted triage
MITRE's 11 Strategies describes automation as improving alert quality by filtering, deduplicating, enriching and prioritising, while stating that it assists but does not fully replace the judgement of experienced analysts. That is the right design principle.
| Automate | Keep with an analyst |
|---|---|
| Enrichment lookups and attaching evidence | Deciding whether activity is malicious when context conflicts |
| Closing known-benign patterns with an audit reason | Closing anything on a privileged or crown-jewel asset |
| Severity changes based on asset or identity criticality | Containment of business-critical systems |
| Routing to the owning team (DLP to data protection, SAST to AppSec) | Novel alerts with no prior disposition history |
| User confirmation requests for low-risk events ("was this you?") | Anything where the user may be the attacker or under coercion |
In Microsoft Sentinel, automation rules run on incident creation, incident update or alert creation, and can change status (with a mandatory closing reason), change severity, assign an owner, add tags and tasks, or run a playbook; rules run in order, and a later rule sees the incident as earlier rules left it, so order matters when one rule lowers severity. SOAR playbook design is covered in the SOAR and Security Automation Guide, and AI-assisted triage, including its failure modes, in the AI SOC Guide. Whatever closes alerts automatically must itself be monitored: sample a fixed number of auto-closed alerts every week and review them as if they were open.
A 90-day noise reduction programme
- Weeks 1 to 2, baseline: export 30 to 90 days of alerts with rule, disposition and time to triage. Produce the volume concentration and per-rule true positive figures. Agree the disposition codes if they are not already consistent.
- Weeks 3 to 4, quick wins: take the ten noisiest rules. For each, decide: fix data, tighten logic, add a scoped exception, re-route to another team, or retire. Make changes in a test copy of the rule first, or run the new logic in parallel in audit mode (logging matches without alerting) for a week and compare outputs.
- Weeks 5 to 6, grouping and deduplication: enable entity-based grouping for the highest-volume rules and deduplicate overlapping tool alerts.
- Weeks 7 to 9, enrichment and automation: add identity and asset enrichment to the top alert types; automate closure only for patterns with a long, clean disposition history.
- Weeks 10 to 12, risk-based pilot: convert a group of low-fidelity rules (for example discovery and reconnaissance detections) into risk rules feeding a threshold, run alongside the original alerts, and compare what each catches.
- Validate: run simulated attack tests, red team or atomic tests, against changed rules to confirm they still fire. NCSC recommends simulated attacks to check that silent use-cases still work, and purple team exercises to close gaps iteratively.
- Roll back: keep each change as a versioned rule in source control (see the Detection Engineering Guide), so a tuned rule can be reverted in minutes if a true positive was missed or the auto-closed sample shows errors.
For a small SOC, steps 1, 2 and 6 deliver most of the value; risk-based alerting needs mature entity resolution and is better left until identity and asset data are reliable. A large SOC with several tools usually gains most from deduplication and grouping, because the same event is often alerted three times.
Where identity fits
Identity alerts are among the noisiest and the most important. Sign-in risk, impossible travel and unfamiliar location detections fire constantly on VPNs, mobile networks and travel, while the attacks that matter, such as valid credential use (ATT&CK T1078) or Kerberoasting (T1558.003), look like normal logons. The fix is context rather than suppression: tie identity alerts to the account type, privilege level and expected source. Non-human identities are a special case: a service principal or service account has a narrow, predictable pattern, so deviations from it are high-value signals and should rarely be suppressed. The ITDR Guide covers identity detections in depth.
Common failure patterns
- Suppressing the alert instead of fixing the cause: a broken parser generating nonsense alerts gets a blanket exception, and the data stays broken for every other rule.
- Exceptions with no expiry: host-wide exclusions added during an incident or a project stay for years and become the attacker's safe path.
- Retiring quiet rules: a rule that has not fired in a year is deleted as "unused" without testing, removing coverage for exactly the rare event it was written for.
- Ignoring escalations from outside the alert queue: customer, partner and third-party reports deserve investigation priority. In the Okta support system breach, BeyondTrust reported a suspicious login to Okta on 2 October 2023, but Okta did not confirm the breach until 19 October.
- Generic alert names: as the Senate analysis of the Target breach suggests, an alert called "malware.binary" invites dismissal; name alerts after the behaviour and include the evidence.
- Unmonitored automation: auto-close rules are never sampled, so a pattern change that turns benign activity malicious is closed silently.
Framework mapping
| Framework | Reference | Relevance to alert fatigue |
|---|---|---|
| NIST CSF 2.0 | DE.AE-02, DE.AE-03, DE.AE-06 | Analysing adverse events, correlating across sources, providing information to authorised staff and tools |
| NIST CSF 2.0 | RS.MA-02 | Incident reports are triaged and validated |
| NIST SP 800-53 Rev. 5 | SI-4, AU-6, IR-5 | System monitoring, audit record review and analysis, incident monitoring |
| NIST SP 800-61 Rev. 3 | CSF 2.0 Community Profile | Places detection and triage inside incident response and risk management |
| MITRE ATT&CK v20 | T1078, T1199, T1558.003, T1685 | Techniques used in this guide's examples and for coverage checks after tuning |
Practitioner checklist
- Record a disposition and rule ID on every closed alert, and report true positive rate per rule monthly.
- Work the ten noisiest rules first, fixing data and logic before adding exceptions.
- Keep an exception register with owner, scope, reason and expiry; review expired entries monthly.
- Route informational DLP, posture and code scan findings to owning teams, not the SOC queue.
- Group alerts into incidents by user, host or service principal.
- Enrich alerts with identity, asset, threat intelligence and change context at creation.
- Automate only patterns with a clean disposition history, and sample auto-closed alerts weekly.
- Pilot risk-based alerting on low-fidelity rule groups in parallel before switching.
- Test changed and quiet rules with simulated attacks; keep rules in version control for rollback.
Standards and references
- NCSC: Building a Security Operations Centre, Detection practices
- MITRE: 11 Strategies of a World-Class Cybersecurity Operations Center
- NIST: SP 800-61 Rev. 3, Incident Response Recommendations and Considerations for Cybersecurity Risk Management
- NIST: Cybersecurity Framework 2.0
- Microsoft Learn: Handle false positives in Microsoft Sentinel
- Splunk: How risk-based alerting works in Splunk Enterprise Security
- Google: Site Reliability Engineering, Monitoring Distributed Systems
- US Senate Committee on Commerce, Science and Transportation: A Kill Chain Analysis of the 2013 Target Data Breach
Related NHI Mgmt Group resources: SOC Guide · Alert Triage Guide · Detection Engineering Guide · SOC Maturity Model · Building a SOC from Scratch Guide