OpenAI ChatGPT Enterprise User Activity From High Number of Countries

Last updated 11 days ago on 2026-10-06
Created 11 days ago on 2026-10-06

About

Detects ChatGPT Enterprise activity for the same user email from at least three countries and two unique user agents within a four-hour interval across any compliance data stream. Stolen session cookies often produce post-auth activity (conversation views, deletions, downloads) without a new login event, so this rule is not limited to authentication logs.
Tags
Domain: GenAIPlatform: OpenAIData Source: OpenAI ChatGPT EnterpriseService: OpenAI ChatGPT EnterpriseUse Case: Threat DetectionRule Type: ES|QLDomain: IdentityUse Case: Identity and Access AuditTactic: Credential AccessTactic: Initial AccessMitre Atlas: AML.T0012Threat: Impossible TravelLanguage: esql
Severity
critical
Risk Score
99
MITRE ATT&CK™

Credential Access (TA0006)(external, opens in a new tab or window)

Initial Access (TA0001)(external, opens in a new tab or window)

False Positive Examples
Users on VPN or proxy egress that geo-resolves through multiple regions in a short window.Cloud egress, split-tunnel, or dual-homed clients that present different public IPs for concurrent sessions.
License
Elastic License v2(external, opens in a new tab or window)

Definition

Integration Pack
Prebuilt Security Detection Rules
Related Integrations

openai_chatgpt_enterprise(external, opens in a new tab or window)

Query
text code block:
from logs-openai_chatgpt_enterprise.* | where user.email is not null and source.ip is not null and source.geo.country_iso_code is not null | stats Esql.country_count = count_distinct(source.geo.country_iso_code), Esql.region_count = count_distinct(source.geo.region_name), Esql.source_ip_count = count_distinct(source.ip), Esql.user_agent_count = count_distinct(user_agent.original), Esql.event_count = count(*), Esql.event_action_values = values(event.action), Esql.source_ip_values = values(source.ip), Esql.source_geo_country_iso_code_values = values(source.geo.country_iso_code), Esql.source_geo_region_name_values = values(source.geo.region_name), Esql.source_geo_city_name_values = values(source.geo.city_name), Esql.user_agent_original_values = values(user_agent.original), Esql.timestamp_first_seen = min(@timestamp), Esql.timestamp_last_seen = max(@timestamp) by user.email | where Esql.country_count >= 3 and Esql.user_agent_count >= 2 | keep user.email, Esql.*

Install detection rules in Elastic Security

Detect OpenAI ChatGPT Enterprise User Activity From High Number of Countries in the Elastic Security detection engine by installing this rule into your Elastic Stack.

To setup this rule, check out the installation guide for Prebuilt Security Detection Rules(external, opens in a new tab or window).