Anthropic Organization Member and Group Enumeration

Detects a single user performing at least two distinct organization discovery actions within a 10-minute window: listing users, exporting members, or viewing groups. Chaining these read actions maps membership and group structure and commonly precedes targeted role grants, invites, or data collection against high-value accounts.

Elastic rule (View on GitHub)

  1[metadata]
  2creation_date = "2026/09/16"
  3integration = ["anthropic"]
  4maturity = "production"
  5updated_date = "2026/09/21"
  6
  7[rule]
  8author = ["Elastic"]
  9description = """
 10Detects a single user performing at least two distinct organization discovery actions within a 10-minute window: listing
 11users, exporting members, or viewing groups. Chaining these read actions maps membership and group structure and
 12commonly precedes targeted role grants, invites, or data collection against high-value accounts.
 13"""
 14false_positives = [
 15    """
 16    Organization administrators, identity teams, and compliance reviewers may list users, export members, and view
 17    groups during audits, access reviews, or offboarding. Confirm the actor and change ticket before escalating.
 18    """,
 19]
 20from = "now-11m"
 21interval = "10m"
 22language = "esql"
 23license = "Elastic License v2"
 24name = "Anthropic Organization Member and Group Enumeration"
 25note = """## Triage and analysis
 26
 27### Investigating Anthropic Organization Member and Group Enumeration
 28
 29One email performed at least two distinct discovery actions among `org_users_listed`, `org_members_exported`, and
 30`group_list_viewed` in a short window — reconnaissance of who is in the tenant.
 31
 32Escalate when scripting UA, follow-on invites/role grants/SSO changes/exports appear, or the actor is not an identity
 33admin. Close as FP for scheduled access reviews or onboarding console browsing with a ticket.
 34
 35#### Possible investigation steps
 36
 37- Read `Esql.event_action_values` to see which discovery actions combined; all three in one window is stronger than
 38  two.
 39- Inspect IP/UA/actor type for automation or unfamiliar clients.
 40- Pivot the same actor/org for follow-on admin or project role grants, invites, SSO changes, or data exports.
 41- Note: some `org_members_exported` without user email (e.g. certain `anthropic_actor` cases) are out of scope.
 42
 43### False positive analysis
 44
 45- Membership exports during access reviews commonly combine two of these actions briefly.
 46
 47### Response and remediation
 48
 49- On unauthorized recon: revoke sessions, review recent role and invite changes, and tighten least privilege on
 50  identity read actions where possible.
 51"""
 52references = ["https://platform.claude.com/docs/en/api/compliance/activities/list"]
 53risk_score = 47
 54rule_id = "3fe56f6b-75c6-4ba1-88ff-e879145e0e1d"
 55severity = "medium"
 56tags = [
 57    "Domain: GenAI",
 58    "Platform: Anthropic",
 59    "Data Source: Anthropic Audit Logs",
 60    "Use Case: Threat Detection",
 61    "Use Case: UEBA",
 62    "Resources: Investigation Guide",
 63    "Rule Type: ES|QL",
 64    "Tactic: Discovery",
 65]
 66timestamp_override = "event.ingested"
 67type = "esql"
 68
 69query = '''
 70from logs-anthropic.audit-*
 71| where
 72    data_stream.dataset == "anthropic.audit" and
 73    event.action in ("org_members_exported", "org_users_listed", "group_list_viewed") and
 74    user.email is not null
 75| stats
 76    Esql.event_action_count_distinct = count_distinct(event.action),
 77    Esql.event_action_values = values(event.action),
 78    Esql.event_count = count(*),
 79    Esql.event_id_values = values(event.id),
 80    Esql.source_ip_values = values(source.ip),
 81    Esql.user_agent_original_values = values(user_agent.original),
 82    Esql.anthropic_audit_actor_type_values = values(anthropic.audit.actor.type),
 83    Esql.user_id_values = values(user.id),
 84    Esql.timestamp_first_seen = min(@timestamp),
 85    Esql.timestamp_last_seen = max(@timestamp)
 86  by user.email, organization.id
 87| where Esql.event_action_count_distinct >= 2
 88| keep user.email, organization.id, Esql.*
 89'''
 90
 91
 92[[rule.threat]]
 93framework = "MITRE ATT&CK"
 94[[rule.threat.technique]]
 95id = "T1069"
 96name = "Permission Groups Discovery"
 97reference = "https://attack.mitre.org/techniques/T1069/"
 98[[rule.threat.technique.subtechnique]]
 99id = "T1069.003"
100name = "Cloud Groups"
101reference = "https://attack.mitre.org/techniques/T1069/003/"
102
103
104[[rule.threat.technique]]
105id = "T1087"
106name = "Account Discovery"
107reference = "https://attack.mitre.org/techniques/T1087/"
108[[rule.threat.technique.subtechnique]]
109id = "T1087.004"
110name = "Cloud Account"
111reference = "https://attack.mitre.org/techniques/T1087/004/"
112
113
114
115[rule.threat.tactic]
116id = "TA0007"
117name = "Discovery"
118reference = "https://attack.mitre.org/tactics/TA0007/"
119
120[rule.alert_suppression]
121group_by = ["user.email", "organization.id"]
122missing_fields_strategy = "suppress"
123
124[rule.investigation_fields]
125field_names = [
126    "user.email",
127    "organization.id",
128    "Esql.event_action_count_distinct",
129    "Esql.event_action_values",
130    "Esql.event_count",
131    "Esql.event_id_values",
132    "Esql.source_ip_values",
133    "Esql.user_agent_original_values",
134    "Esql.anthropic_audit_actor_type_values",
135    "Esql.user_id_values",
136    "Esql.timestamp_first_seen",
137    "Esql.timestamp_last_seen",
138]
139
140[rule.alert_suppression.duration]
141unit = "m"
142value = 10

Triage and analysis

Investigating Anthropic Organization Member and Group Enumeration

One email performed at least two distinct discovery actions among org_users_listed, org_members_exported, and group_list_viewed in a short window — reconnaissance of who is in the tenant.

Escalate when scripting UA, follow-on invites/role grants/SSO changes/exports appear, or the actor is not an identity admin. Close as FP for scheduled access reviews or onboarding console browsing with a ticket.

Possible investigation steps

  • Read Esql.event_action_values to see which discovery actions combined; all three in one window is stronger than two.
  • Inspect IP/UA/actor type for automation or unfamiliar clients.
  • Pivot the same actor/org for follow-on admin or project role grants, invites, SSO changes, or data exports.
  • Note: some org_members_exported without user email (e.g. certain anthropic_actor cases) are out of scope.

False positive analysis

  • Membership exports during access reviews commonly combine two of these actions briefly.

Response and remediation

  • On unauthorized recon: revoke sessions, review recent role and invite changes, and tighten least privilege on identity read actions where possible.

References

Related rules

to-top