Anthropic Multiple Authentication Failures
Detects at least five failed Anthropic authentication events for the same user email within one hour. Failures are matched by authentication category and failure outcome (for example magic-link or SSO login failures). That pattern fits repeated guessing, stale magic link abuse, or automated login attempts against one account.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/09/12"
3integration = ["anthropic"]
4maturity = "production"
5updated_date = "2026/09/21"
6
7[rule]
8author = ["Elastic"]
9description = """
10Detects at least five failed Anthropic authentication events for the same user email within one hour.
11Failures are matched by authentication category and failure outcome (for example magic-link or SSO login
12failures). That pattern fits repeated guessing, stale magic link abuse, or automated login attempts against
13one account.
14"""
15false_positives = [
16 """
17 A user repeatedly clicking an expired or invalid magic link from the same browser session can produce several
18 failures before requesting a new link or signing in successfully.
19 """,
20 """
21 IdP or SSO cutover testing against a pilot account can generate a short burst of failed attempts for one email
22 during maintenance windows.
23 """,
24]
25from = "now-60m"
26interval = "15m"
27language = "esql"
28license = "Elastic License v2"
29name = "Anthropic Multiple Authentication Failures"
30note = """## Triage and analysis
31
32### Investigating Anthropic Multiple Authentication Failures
33
34One mailbox produced a burst of authentication failures (magic-link, SSO, or other auth failures) within an hour.
35Use IP diversity on the alert to separate focused retries from distributed automation.
36
37Escalate when many distinct IPs hit one email, failures precede a successful login from an unfamiliar IP, or SSO /
38magic-link second-factor weakening sits nearby. Close as FP for expired magic-link retries from one IP/UA or IdP
39pilot testing with a ticket.
40
41#### Possible investigation steps
42
43- Read `Esql.event_count`, `Esql.event_action_values`, `Esql.source_ip_values`, and
44 `Esql.source_ip_distinct_count`.
45- Low IP diversity → one device/egress (typos, expired links, focused guessing). High diversity → distributed
46 automation or proxy rotation — higher priority.
47- Inspect UA / actor-type values for automation. Search for successful `magic_link_login_succeeded` /
48 `sso_login_succeeded` for the same email or IPs in the window.
49- Correlate with **Anthropic SSO Disabled or Connection Removed** or magic-link second-factor disablement when
50 org-scoped admin events are present.
51
52### False positive analysis
53
54- Expired magic-link click storms from one IP and named IdP cutover tests are common FPs.
55
56### Response and remediation
57
58- On suspected stuffing/takeover: invalidate sessions, reset credentials/MFA, and review successful logins from new
59 IPs. If failures precede a successful unfamiliar login, expand to data access and admin changes.
60"""
61references = [
62 "https://platform.claude.com/docs/en/api/compliance/activities/list",
63]
64risk_score = 47
65rule_id = "25647990-cc37-430c-9a4e-2793bb5445f5"
66severity = "medium"
67tags = [
68 "Domain: GenAI",
69 "Domain: Identity",
70 "Platform: Anthropic",
71 "Data Source: Anthropic Audit Logs",
72 "Use Case: Identity and Access Audit",
73 "Use Case: Threat Detection",
74 "Use Case: UEBA",
75 "Resources: Investigation Guide",
76 "Rule Type: ES|QL",
77 "Tactic: Credential Access",
78]
79timestamp_override = "event.ingested"
80type = "esql"
81
82query = '''
83from logs-anthropic.audit-*
84| where
85 data_stream.dataset == "anthropic.audit" and
86 mv_contains(event.category, "authentication") and
87 event.outcome == "failure" and
88 user.email is not null
89| stats
90 Esql.event_count = count(*),
91 Esql.event_id_values = values(event.id),
92 Esql.event_action_values = values(event.action),
93 Esql.source_ip_values = values(source.ip),
94 Esql.source_ip_distinct_count = count_distinct(source.ip),
95 Esql.user_agent_original_values = values(user_agent.original),
96 Esql.anthropic_audit_actor_type_values = values(anthropic.audit.actor.type),
97 Esql.timestamp_first_seen = min(@timestamp),
98 Esql.timestamp_last_seen = max(@timestamp)
99 by user.email
100| where Esql.event_count >= 5
101| keep user.email, Esql.*
102'''
103
104
105[[rule.threat]]
106framework = "MITRE ATT&CK"
107[[rule.threat.technique]]
108id = "T1110"
109name = "Brute Force"
110reference = "https://attack.mitre.org/techniques/T1110/"
111
112
113[rule.threat.tactic]
114id = "TA0006"
115name = "Credential Access"
116reference = "https://attack.mitre.org/tactics/TA0006/"
117
118[rule.alert_suppression]
119group_by = ["user.email"]
120duration = {value = 1, unit = "h"}
121missing_fields_strategy = "suppress"
122
123[rule.investigation_fields]
124field_names = [
125 "user.email",
126 "Esql.event_count",
127 "Esql.event_id_values",
128 "Esql.event_action_values",
129 "Esql.source_ip_values",
130 "Esql.source_ip_distinct_count",
131 "Esql.user_agent_original_values",
132 "Esql.anthropic_audit_actor_type_values",
133 "Esql.timestamp_first_seen",
134 "Esql.timestamp_last_seen",
135]
Triage and analysis
Investigating Anthropic Multiple Authentication Failures
One mailbox produced a burst of authentication failures (magic-link, SSO, or other auth failures) within an hour. Use IP diversity on the alert to separate focused retries from distributed automation.
Escalate when many distinct IPs hit one email, failures precede a successful login from an unfamiliar IP, or SSO / magic-link second-factor weakening sits nearby. Close as FP for expired magic-link retries from one IP/UA or IdP pilot testing with a ticket.
Possible investigation steps
- Read
Esql.event_count,Esql.event_action_values,Esql.source_ip_values, andEsql.source_ip_distinct_count. - Low IP diversity → one device/egress (typos, expired links, focused guessing). High diversity → distributed automation or proxy rotation — higher priority.
- Inspect UA / actor-type values for automation. Search for successful
magic_link_login_succeeded/sso_login_succeededfor the same email or IPs in the window. - Correlate with Anthropic SSO Disabled or Connection Removed or magic-link second-factor disablement when org-scoped admin events are present.
False positive analysis
- Expired magic-link click storms from one IP and named IdP cutover tests are common FPs.
Response and remediation
- On suspected stuffing/takeover: invalidate sessions, reset credentials/MFA, and review successful logins from new IPs. If failures precede a successful unfamiliar login, expand to data access and admin changes.
References
Related rules
- Anthropic Session Reuse Impossible Travel
- Anthropic Impossible Travel Login
- Anthropic Magic Link Second Factor Disabled
- Anthropic SSO Disabled or Connection Removed
- Anthropic Admin API Key Created