OpenAI ChatGPT Enterprise Account Owner Role Assigned
Detects ChatGPT Enterprise audit events where a user role is updated to account-owner. Account owners control workspace membership, connectors, usage limits, and other security-sensitive settings. An adversary who promotes a compromised account to owner gains durable control-plane access.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/10/06"
3integration = ["openai_chatgpt_enterprise"]
4maturity = "production"
5updated_date = "2026/10/06"
6
7[rule]
8author = ["Elastic"]
9description = """
10Detects ChatGPT Enterprise audit events where a user role is updated to account-owner. Account owners control
11workspace membership, connectors, usage limits, and other security-sensitive settings. An adversary who promotes a
12compromised account to owner gains durable control-plane access.
13"""
14false_positives = [
15 "IT administrators legitimately promote users to account-owner during staffing changes.",
16]
17from = "now-9m"
18language = "esql"
19license = "Elastic License v2"
20name = "OpenAI ChatGPT Enterprise Account Owner Role Assigned"
21note = """## Triage and analysis
22
23### Investigating OpenAI ChatGPT Enterprise Account Owner Role Assigned
24
25A user role was updated to `account-owner`. Account owners control workspace membership, connectors, usage limits, and other security-sensitive settings.
26
27Escalate when the promotion lacks change management, the actor is unexpected, or privileged activity follows. Close as a false positive for planned ownership transfers with an approved request.
28
29#### Possible investigation steps
30
31- Identify the actor (`user.id` / `user.email`) and the target user in `openai_chatgpt_enterprise.audit_log.action_data`.
32- Confirm whether a ticket or change request authorized the promotion.
33- Review invites, usage-limit changes, plugin or feature policy updates, and log exports after the promotion.
34- Check authentication anomalies for the actor or target around the same time.
35
36### False positive analysis
37
38- IT administrators legitimately promote users to account-owner during staffing or ownership changes when the request is approved.
39
40### Response and remediation
41
42- Downgrade unauthorized owners, revoke sessions, and audit other IAM changes by the same actor.
43"""
44references = [
45 "https://www.elastic.co/docs/reference/integrations/openai_chatgpt_enterprise",
46 "https://platform.openai.com/docs/compliance",
47]
48risk_score = 73
49rule_id = "109e5d9f-3436-4ea9-8660-1810b5d40237"
50setup = """## Setup
51
52This rule requires the OpenAI ChatGPT Enterprise integration to collect compliance logs into Elasticsearch.
53
54https://www.elastic.co/docs/reference/integrations/openai_chatgpt_enterprise
55"""
56severity = "high"
57tags = [
58 "Domain: GenAI",
59 "Platform: OpenAI",
60 "Data Source: OpenAI ChatGPT Enterprise",
61 "Service: OpenAI ChatGPT Enterprise",
62 "Use Case: Threat Detection",
63 "Resources: Investigation Guide",
64 "Rule Type: ES|QL",
65 "Domain: Identity",
66 "Use Case: Identity and Access Audit",
67 "Tactic: Persistence",
68 "Tactic: Privilege Escalation",
69 "Mitre Atlas: AML.T0012",
70]
71timestamp_override = "event.ingested"
72type = "esql"
73
74query = '''
75from logs-openai_chatgpt_enterprise.audit_log-* metadata _id, _version, _index
76| where
77 data_stream.dataset == "openai_chatgpt_enterprise.audit_log" and
78 event.action == "user_role_updated" and
79 (
80 openai_chatgpt_enterprise.audit_log.action_data.new_role == "account-owner" or
81 openai_chatgpt_enterprise.audit_log.action_data.role == "account-owner"
82 )
83| keep
84 _id, _version, _index, @timestamp, event.action, event.outcome, user.id, user.email, source.ip,
85 source.geo.country_iso_code, openai_chatgpt_enterprise.audit_log.action_data.role,
86 openai_chatgpt_enterprise.audit_log.action_data.new_role,
87 openai_chatgpt_enterprise.audit_log.action_data.previous_role,
88 openai_chatgpt_enterprise.audit_log.action_data.user_id,
89 openai_chatgpt_enterprise.audit_log.action_privilege,
90 openai_chatgpt_enterprise.audit_log.actor.type, data_stream.*
91'''
92
93
94[[rule.threat]]
95framework = "MITRE ATT&CK"
96[[rule.threat.technique]]
97id = "T1098"
98name = "Account Manipulation"
99reference = "https://attack.mitre.org/techniques/T1098/"
100[[rule.threat.technique.subtechnique]]
101id = "T1098.003"
102name = "Additional Cloud Roles"
103reference = "https://attack.mitre.org/techniques/T1098/003/"
104
105
106[rule.threat.tactic]
107id = "TA0003"
108name = "Persistence"
109reference = "https://attack.mitre.org/tactics/TA0003/"
110
111[[rule.threat]]
112framework = "MITRE ATT&CK"
113[[rule.threat.technique]]
114id = "T1098"
115name = "Account Manipulation"
116reference = "https://attack.mitre.org/techniques/T1098/"
117[[rule.threat.technique.subtechnique]]
118id = "T1098.003"
119name = "Additional Cloud Roles"
120reference = "https://attack.mitre.org/techniques/T1098/003/"
121
122
123[rule.threat.tactic]
124id = "TA0004"
125name = "Privilege Escalation"
126reference = "https://attack.mitre.org/tactics/TA0004/"
127
128[[rule.threat_mappings]]
129framework = "MITRE ATLAS"
130version = "2026.08"
131[[rule.threat_mappings.threat]]
132framework = "MITRE ATLAS"
133[[rule.threat_mappings.threat.technique]]
134id = "AML.T0012"
135name = "Valid Accounts"
136reference = "https://atlas.mitre.org/techniques/AML.T0012/"
137
138
139[rule.threat_mappings.threat.tactic]
140id = "AML.TA0012"
141name = "Privilege Escalation"
142reference = "https://atlas.mitre.org/tactics/AML.TA0012/"
143
144[rule.investigation_fields]
145field_names = [
146 "@timestamp",
147 "event.action",
148 "user.id",
149 "user.email",
150 "openai_chatgpt_enterprise.audit_log.action_data.role",
151 "openai_chatgpt_enterprise.audit_log.action_data.new_role",
152 "openai_chatgpt_enterprise.audit_log.action_data.previous_role",
153 "openai_chatgpt_enterprise.audit_log.action_data.user_id",
154 "openai_chatgpt_enterprise.audit_log.action_privilege",
155 "source.ip",
156]
Triage and analysis
Investigating OpenAI ChatGPT Enterprise Account Owner Role Assigned
A user role was updated to account-owner. Account owners control workspace membership, connectors, usage limits, and other security-sensitive settings.
Escalate when the promotion lacks change management, the actor is unexpected, or privileged activity follows. Close as a false positive for planned ownership transfers with an approved request.
Possible investigation steps
- Identify the actor (
user.id/user.email) and the target user inopenai_chatgpt_enterprise.audit_log.action_data. - Confirm whether a ticket or change request authorized the promotion.
- Review invites, usage-limit changes, plugin or feature policy updates, and log exports after the promotion.
- Check authentication anomalies for the actor or target around the same time.
False positive analysis
- IT administrators legitimately promote users to account-owner during staffing or ownership changes when the request is approved.
Response and remediation
- Downgrade unauthorized owners, revoke sessions, and audit other IAM changes by the same actor.
References
Related rules
- OpenAI ChatGPT Enterprise Domain Created
- OpenAI ChatGPT Enterprise Impossible Travel Login
- OpenAI ChatGPT Enterprise User Activity From High Number of Countries
- OpenAI ChatGPT Enterprise User Invite Sent
- OpenAI ChatGPT Enterprise Authentication from a Suspicious User Agent