Back to blog

Credential Stuffing Detection: 3 SIEM Rules SOCs Need Now

Credential Stuffing Detection: 3 SIEM Rules SOCs Need Now

Last updated on September 19, 2026 · 10 min read

Credential stuffing signals converging across accounts

Credential stuffing shows up as a population-level fingerprint, not a single bad login: a spike in failed authentications spread across many distinct usernames, traffic clustering on datacenter or proxy ASNs, and a low initial success rate that suddenly gives way to a wave of successful logins as reused credentials land. When that pattern appears, raise an alert immediately, snapshot the full login log window before it rotates out of retention, and push temporary step-up verification onto high-risk sessions while your team investigates.


TL;DR:

  • Detect credential stuffing by monitoring high-volume, low-success login attempts originating from diverse IPs and across many usernames within short time frames.
  • Use population-level signals such as failure spikes, source diversification, TLS fingerprint anomalies, and rapid credential reuse across accounts to identify attacks early.
  • Implement layered defenses including bot detection, breached credential checks, proxy-aware rate limiting, and risk-based multi-factor authentication to prevent successful exploits.
  • Log detailed telemetry—IP, ASN, user agent, fingerprints, and timestamps—and retain data for at least 90 days to support thorough forensic investigations.
  • Enrich detection with visitor identification scores and threat intelligence feeds, combining static rules with machine learning for adaptive, high-confidence attack detection.

Table of Contents

What Is Credential Stuffing Detection and Why Aggregate Signals Matter

Credential stuffing detection means watching authentication traffic at the population level instead of the individual-account level. A single failed login tells you almost nothing. Ten thousand failed logins across nine thousand different usernames, arriving from three hundred distinct IP addresses inside a fifteen-minute window, tells you an attacker is replaying a breached credential list against your login form.

This is the core distinction security teams miss when they build detection around per-account thresholds. MITRE's detection strategy DET0460 recommends monitoring for multiple failed authentication attempts using distinct username and password pairs from a single IP or session, and retaining login telemetry, including IP address, user agent, and timestamp, so investigators can reconstruct what happened after the fact. That guidance exists because credential stuffing attacks are engineered to look like a scattered stream of individual login attempts rather than one recognizable event. Only the aggregate view exposes the campaign.

The population-level signals to watch

  • Failed login rate against a rolling baseline. A significant spike over your typical 15-minute failure rate is a strong early indicator.
  • Distinct username spread. Legitimate failure clusters usually involve a handful of accounts; credential stuffing spreads failures across hundreds or thousands of unique usernames.
  • Source fingerprint diversity. Attackers route traffic through many IPs in a short window, frequently on datacenter or residential proxy ASNs rather than typical consumer ISP ranges.
  • TLS and HTTP fingerprint anomalies. JA3/JA4 TLS fingerprints and HTTP/2 stack signatures that don't match a real browser population are a high-confidence signal, since scripted checkers rarely replicate them convincingly.
  • Minimal pre-login interaction. Real users move the mouse, pause, sometimes mistype. Automated checkers submit almost instantly with no pointer or typing telemetry, which is one of the highest-signal indicators available because it's expensive for attackers to fake at scale.
  • Combo replay. The same hashed username:password pair submitted across multiple accounts or sites in a short window points to a shared breached-credential source rather than coincidental typos.

Credential stuffing often leaves a clear statistical signature: a sudden spike in failed logins across many distinct accounts, followed by a wave of successes as the attacker cycles through valid pairs. That second wave is the tell most teams miss, because by the time success rates climb, the failure spike has often already faded from a dashboard tuned to short lookback windows.

This is also where credential stuffing diverges from its two cousins. Brute force attacks hammer one account with many password guesses. Password spraying tries one or two common passwords across many accounts to dodge lockout thresholds. Credential stuffing uses breached username:password pairs that are already known to be valid somewhere, which is why success rates on a stuffing campaign run far higher than either brute force or spraying once the attacker gets past the initial failure noise. If you want the full statistical comparison across all three attack patterns, see this breakdown of brute force versus credential stuffing versus password spraying fingerprints. Research from USENIX on cross-site collaborative detection confirms the underlying mechanic: the same breached password, submitted at unusual velocity across services, is a reliable marker precisely because legitimate users don't share passwords across sites at that frequency or speed.

SIEM Rules and Detection Queries You Can Adapt Today

Detection logic for credential stuffing needs to operate on rates and ratios, not raw counts, because raw counts vary wildly by time of day and by application. Three rules cover most SOC environments as a starting baseline.

  1. Failed login rate anomaly. Alert when the failed login rate in a 15-minute window exceeds three times the trailing 7-day rolling average for that same time-of-day and day-of-week bucket. Static thresholds miss traffic that naturally doubles on Monday mornings.
  2. Username fan-out per source. Alert when a single IP or session attempts logins against more than 10 unique usernames within 10 minutes. Legitimate users don't touch ten accounts from one browser session.
  3. Low success rate on new IPs. Alert when IPs seen for the first time in the last 24 hours show a login success rate under 30% combined with a request volume above your normal per-IP baseline. Fresh, high-volume, low-success IPs are the clearest stuffing fingerprint available.

Splunk's research team publishes SPL examples built around a 3-sigma sliding-window approach: compute the mean and standard deviation of failed logins over a trailing period, flag any window where the observed count exceeds mean plus three standard deviations. That statistical framing adapts cleanly to Splunk, to Syslog-based pipelines parsed with a log shipper, and to raw Nginx access logs, where sliding-window detection scripts can flag IP clusters directly from access log timestamps and response codes without a full SIEM deployment.

RuleThresholdWindowPrimary data source
Failed login rate anomaly3x rolling 7-day average15 minutesAuth logs / SIEM
Username fan-out per IP>10 unique usernames10 minutesReverse proxy / WAF logs
Low success rate, new IPs<30% success rate24 hoursAuth logs joined to IP-first-seen table
Distributed spray signature3-sigma deviation from baselineSliding windowSIEM statistical query

Cloud identity environments add another layer. Microsoft's password-spray incident response playbook documents specific Entra ID and Azure AD event IDs worth correlating against SIEM alerts, including sign-in failure events and MFA failure patterns that often precede a successful takeover. Pull those event IDs into the same detection pipeline as your web application logs rather than treating cloud identity and application login as separate problems.

Tuning matters as much as the rules themselves. Mobile carrier NAT means dozens of legitimate users can share one IP, so a fan-out rule tuned for consumer networks needs a higher threshold or an ASN exception list. CDN and corporate VPN egress points create the same shadow effect. Build an ASN allowlist for known NAT-heavy carriers and reverse-proxy exit points before you trust a raw IP-based threshold in production.

Investigating an Alert: Triage, Containment, and Forensic Review

Once an alert fires, the sequence matters. Acting out of order either destroys evidence or lets the campaign continue while you write documentation.

  1. Define the attack window. Pull the timestamp of the first anomalous failure and the last, then extract every login attempt, successful and failed, inside that window plus a buffer on each side.
  2. Cluster by source and by combo. Group attempts by IP, ASN, and TLS fingerprint, and separately flag any username:password combination that repeats across multiple accounts. This tells you whether you're facing one botnet or several coordinated sources.
  3. Contain without blanket lockouts. Apply risk-based step-up verification to sessions matching the attack fingerprint, invalidate active sessions on accounts with a successful login inside the window, and add a temporary CAPTCHA or throttle at the edge for the offending ASNs. Locking out every affected account at once creates a support ticket flood and tips off the attacker that the campaign has been noticed.
  4. Remediate confirmed compromises. Force password resets on accounts with a successful login inside the attack window, require MFA re-enrollment where the account's MFA method looks stale or unfamiliar, and review post-login API activity for anything sensitive: payment method changes, email changes, data exports. This is where account takeover detection overlaps directly with credential stuffing response, since a successful stuffing attempt is functionally an account takeover in progress.
  5. Reconstruct the timeline and tune detection. Document first-seen indicators (IPs, ASNs, fingerprints), feed them into your threat intelligence process, and adjust your alert thresholds based on what this specific campaign revealed about your blind spots.

Pro Tip: Never rely on per-account lockout thresholds as your primary containment method. An attacker running low-and-slow stuffing against thousands of accounts, at two or three attempts per account, stays under any lockout policy you set while still succeeding on a meaningful percentage of accounts. Detection has to happen at the population level because containment at the individual level arrives too late.

Layered Prevention: Reducing How Often Reused Credentials Work

No single control stops credential stuffing outcomes on its own, which is why OWASP's prevention cheat sheet frames the problem as layered defense rather than a single silver-bullet product.

  • Bot and automation detection. JS-based telemetry, JA3/JA4 fingerprinting, and anti-detect browser detection catch the checkers and configuration-driven tools that stuffing campaigns rely on, including toolkits that encode token bootstrapping and proxy rotation directly into their configuration files.
  • Breached-credential checks at signup and password change. Screening new passwords against known-breach corpora using a k-anonymity model, the approach NIST SP 800-63B recommends and the Have I Been Pwned API implements, stops users from setting a password that's already circulating in a breach dump.
  • Rate limiting with proxy awareness. Per-IP and per-account failure thresholds with exponential backoff slow down naive attacks, but escalate to CAPTCHA specifically for datacenter and proxy ASN traffic, since that's where automated volume concentrates. Straight IP blocking alone is porous against any campaign rotating through proxy pools, which is why proxy and residential-proxy detection needs to sit alongside rate limiting rather than replace it, as explained in detail in Credential Stuffing.
  • Risk-based step-up authentication. Reserve additional verification for sessions that carry risk signals, rather than forcing MFA friction on every login. This keeps the experience light for low-risk traffic while raising the bar exactly where it matters.
  • MFA as a floor, not a ceiling. Multi-factor authentication meaningfully reduces successful takeover from stuffed credentials, but it isn't sufficient alone. Push notification fatigue and SIM-swap-based bypass techniques mean MFA needs to sit inside a layered stack rather than stand as the only defense.

Logging and Telemetry: What to Capture and How Long to Keep It

Detection quality is bounded by what you log. A SIEM query built on incomplete fields produces false confidence, not real coverage.

  • Timestamp, source IP, and X-Forwarded-For chain, so you can trace traffic through proxies and load balancers rather than losing origin data at the edge.
  • ASN, user agent, and JA3/JA4 fingerprint, the fields that distinguish a scripted checker from a real browser.
  • Request path, response code, account ID, and session ID, which let you correlate a single login attempt across your application stack.
  • Referrer and device signals, useful for spotting scripted traffic that skips normal navigation flow entirely.

MITRE's DET0460 guidance specifically recommends retaining this telemetry for at least 90 days, which gives investigators enough runway to reconstruct a campaign that started slower than your alert threshold and only became obvious weeks in. Enrich each log record at ingestion time rather than waiting until an investigation starts: resolve ASN and IP reputation, run new or changed passwords through a k-anonymity breach check, parse user agent strings into structured fields, and map everything to a common information model so your SIEM correlates cleanly across data sources instead of forcing analysts to normalize formats by hand during an active incident.

How Visitor Identification Signals Strengthen Detection

A visitor-identification layer supplies exactly the fingerprint-level data that raw auth logs often lack: a risk score per session, the individual signals behind that score, and cross-account patterns such as the same device touching dozens of accounts in a short window. A visitor-identification layer can draw on numerous signals, including anti-detect browser detection, proxy and datacenter ASN identification, and persistent device recognition that holds up to 99% accuracy across cleared cookies and rotated IPs.

Visitor identity signals mapped across accounts

None of this replaces your own detection logic. Shieldlabs functions as a data layer: your team ingests the risk score and its underlying signals into your SIEM or authentication flow, then decides how to act on it, whether that means triggering step-up verification, prioritizing an alert for analyst review, or feeding a pattern into your own automated response.

Where Machine Learning Fits Into Credential Stuffing Detection

Rule-based thresholds catch the obvious campaigns: sudden spikes, obvious fan-out, glaring ASN clustering. Machine learning models earn their place on the harder cases, the low-and-slow campaigns engineered specifically to stay under static thresholds.

Supervised models trained on historical labeled attack windows learn to weight combinations of signals, failure velocity, ASN reputation, fingerprint entropy, session timing, that no single hand-written rule captures well. Unsupervised approaches, particularly clustering and anomaly-detection models run against your normal login population, surface attacks that don't match any previously seen pattern, which matters because attackers actively adjust their tooling once they know your thresholds.

The practical difference from static rules is adaptability. A 3-sigma statistical rule, the kind Splunk documents in its detection research, still assumes your baseline stays roughly stable. A model retrained on rolling windows adjusts as your legitimate traffic mix shifts, catching campaigns that deliberately throttle their request rate to sit just under a fixed threshold. The tradeoff is operational: models need labeled incident data to train against, ongoing retraining as attacker behavior shifts, and a human review process to catch drift before a poorly tuned model starts flagging legitimate traffic spikes, like a marketing campaign, as an attack.

Most mature SOC teams run both layers together: static rules for fast, explainable, low-latency alerts, and a model scoring pass for the campaigns clever enough to avoid tripping a fixed threshold outright.

Where Machine Learning Fits Into Credential Stuffing Detection — overview diagram

Using Threat Intelligence to Identify Attacker Infrastructure

Threat intelligence feeds close the gap between "this traffic looks anomalous" and "this traffic is coming from known attack infrastructure." Feeding IP reputation data, known botnet C2 ranges, and proxy/VPN exit node lists directly into your detection pipeline lets you pre-score incoming login traffic before it even hits your rate-limiting logic.

The highest-value integration point is ASN and IP reputation enrichment at log ingestion, tagging every login attempt with whether its source IP appears on a known datacenter, residential proxy, or previously flagged attack-infrastructure list. That tag becomes a weighting factor in your SIEM correlation rules rather than a binary block decision, since attackers routinely rotate through fresh proxy pools that haven't yet built a reputation history.

Combine external threat feeds with your own internal intelligence. Every confirmed credential stuffing incident generates indicators, IPs, ASNs, JA3/JA4 fingerprints, that belong in an internal watchlist feeding future detection, not just a closed incident ticket. Over time, that internal feed often outperforms generic third-party threat intelligence because it's tuned specifically to the infrastructure patterns attackers use against your own login endpoints.

Automating Response Without Overreacting

Automated response makes sense once your detection rules are tuned enough to trust without a human reviewing every alert first. Rushing straight to automated blocking on day one, before you understand your own false-positive rate, tends to lock out real customers during a traffic spike that only looked like an attack.

A reasonable automation ladder starts with throttling, not blocking: automatically slow down request rates from IPs or ASNs matching your detection fingerprint, escalate to a CAPTCHA challenge if the pattern persists, and reserve outright IP or session blocking for sources that clear a much higher confidence threshold. Pair automated throttling with risk-based step-up authentication triggered directly off the risk score, so a session showing stuffing indicators gets an extra verification step instead of a hard denial.

Build a fast override path into every automated rule. Analysts need the ability to whitelist a flagged source within minutes when a legitimate traffic pattern, a corporate NAT gateway, a mobile carrier range, a partner integration, gets caught by an automated response. Without that override, automation becomes a liability the first time it misfires on real customers during a launch or a marketing push.

Collecting and retaining authentication telemetry, IP addresses, device fingerprints, timestamps, user agents, means handling personal data, and that carries privacy-law obligations that vary by jurisdiction and by the categories of data involved. IP addresses and device identifiers are treated as personal data under several major privacy frameworks, which means retention periods, access controls, and disclosure practices for your 90-day login log window need review by your legal or compliance team, not just your security team.

Document a clear, limited purpose for authentication telemetry collection, fraud and abuse detection, and keep retention tied to that purpose rather than holding data indefinitely. Where breached-credential checks are involved, using a k-anonymity model like the one Have I Been Pwned implements means the actual password is never transmitted or exposed, only a partial hash prefix, which meaningfully reduces the privacy exposure of that specific control compared to a naive full-password check against a third-party service.

Cross-border data transfer rules apply if your SIEM, threat intelligence feeds, or a visitor-identification vendor process login telemetry outside the jurisdiction where your users are located. Review vendor data-handling terms and your own data residency requirements before routing authentication logs through any third-party pipeline, and involve legal counsel early rather than treating privacy review as a final step before launch.

Measuring Whether Your Detection Program Actually Works

Detection programs need metrics beyond "did we get breached," because the absence of a visible incident doesn't mean the program is working. A handful of KPIs give a genuine read on program health.

Mean time to detect (MTTD) measures the gap between when a stuffing campaign starts and when your alerting first fires. Mean time to respond (MTTR) tracks how long from alert to containment action, step-ups deployed, sessions invalidated, IPs throttled. Both numbers should trend downward as your detection rules and playbooks mature.

False-positive rate matters just as much as detection speed. An alert rule that fires constantly on legitimate traffic spikes trains analysts to ignore it, which defeats the purpose entirely. Track the ratio of alerts that lead to confirmed action against total alerts fired, and revisit thresholds whenever that ratio drops.

Credential reuse rate and account takeover rate post-detection show whether your prevention layers, breached-credential checks, rate limiting, MFA adoption, are actually reducing successful outcomes over time, not just detecting more attempts. A rising detection count paired with a falling takeover rate is the sign a program is maturing correctly.

Balancing Detection Sensitivity Against the Customer Experience

Start every new detection rule in alert-only mode with human review before it triggers any automated action. That single discipline prevents the most common rollout mistake: a threshold that looked reasonable in testing but throttles real customers during a legitimate traffic spike.

Favor risk-based step-ups over blanket blocks wherever the risk score allows it, and track CAPTCHA abandonment among users who were never actually part of an attack. If legitimate customers are dropping off at your challenge screen, the threshold needs tightening before it earns a place in your automated response chain.

— Jeff

Turning Detection Signals Into a Live Data Feed for Your SIEM

Everything covered so far, failure spikes, ASN clustering, fingerprint anomalies, works best when it arrives as structured, explainable data your own detection logic can act on immediately. This fills a specific gap: a risk score for every visitor, backed by the individual signals that produced it, drawn from numerous checks spanning anti-detect browser detection, VPN and proxy identification, and datacenter ASN flagging, with device recognition holding up to 99% accuracy even after cleared cookies or IP rotation. Cross-account pattern detection surfaces the same device or identity touching multiple accounts, a common tell during a stuffing campaign that's already found a foothold.

Integration takes a single JavaScript snippet on the front end, with server-side SDKs for Node.js, Python, Go, and PHP for teams enriching login events directly in the backend. Scores and signal breakdowns route into your SIEM or webhook pipeline, feeding the same step-up and prioritization logic covered throughout this guide. The free tier covers 5,000 identifications with no card required, and paid plans scale from there for teams ready to feed richer visitor-identification signals into an existing detection stack. Review the anonymity and proxy detection product page to see the full signal set before connecting it to your pipeline.

Sources

For teams building or auditing a detection program, five references cover the technical ground this guide draws on: MITRE's DET0460 detection strategy for telemetry and retention guidance, the OWASP credential stuffing prevention cheat sheet for layered defense architecture, Microsoft's password-spray incident response playbook for Azure/Entra event correlation, the USENIX cross-site collaborative detection paper for combo-reuse detection theory, and Splunk's password-spray analytics research for ready-to-adapt SPL detection logic.

FAQ

How Do You Defend Against Credential Stuffing?

Layer your defenses rather than relying on one control: bot and automation detection, breached-credential checks at password change, proxy-aware rate limiting, and risk-based MFA step-ups, as OWASP's prevention cheat sheet outlines. Detection signals like population-level failure spikes and ASN clustering tell you when to tighten those controls in real time.

Is the Reported 16 Billion Password Leak Real?

Large aggregated credential dumps combining data from many past breaches do circulate and get reported under large headline totals, but these figures typically represent compiled historical leaks rather than one new breach event. The practical response is the same regardless of the exact count: screen passwords against known-breach corpora using a k-anonymity check, the approach NIST SP 800-63B recommends, and require password resets on any account showing reuse of an exposed credential.

What's the Difference Between Credential Stuffing and Password Spraying?

Credential stuffing replays username:password pairs already known to be valid from a prior breach, which is why success rates run high once the attacker reaches the right accounts. Password spraying tries one or two common passwords across many different accounts to avoid lockout thresholds, without relying on any specific account already being compromised elsewhere.

How Do I Know if My Password Has Been in a Data Leak?

Check it against a breached-password database using a k-anonymity lookup, the method the Have I Been Pwned Passwords API uses, which checks a partial hash of your password without ever transmitting the full value. Organizations should build this same check into their signup and password-change flows so users find out before an attacker does.

Does Shieldlabs Block Credential Stuffing Attacks?

Shieldlabs supplies the risk scores and underlying signals, device fingerprinting, proxy and anti-detect browser detection, cross-account pattern flags, that your team uses to build blocking, throttling, or step-up decisions in your own code. Pricing starts with a free tier for up to 5,000 identifications, with paid plans scaling from there for higher volume.

Related articles