OpenAI ChatGPT Enterprise Codex Prompt Containing Credentials

Last updated a day ago on 2026-10-16
Created 11 days ago on 2026-10-06

About

Detects ChatGPT Enterprise Codex prompt or response text that matches known credential patterns. Secrets pasted into Codex sessions can be retained in compliance logs and may be reused by agent tool calls.
Tags
Domain: GenAIPlatform: OpenAIData Source: OpenAI ChatGPT EnterpriseService: OpenAI ChatGPT EnterpriseUse Case: Threat DetectionRule Type: ES|QLTactic: Credential AccessMitre Atlas: AML.T0055Language: esql
Severity
high
Risk Score
73
MITRE ATT&CK™

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

False Positive Examples
Developers may paste example keys while debugging or documenting integrations.
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.codex_log-* metadata _id, _version, _index | eval Esql.prompt_text = coalesce(openai_chatgpt_enterprise.codex_log.event_details.prompt_text, "") | eval Esql.response_text = coalesce(openai_chatgpt_enterprise.codex_log.event_details.response_text, "") | where data_stream.dataset == "openai_chatgpt_enterprise.codex_log" and event.action == "prompt_response_received" and ( ( Esql.prompt_text is not null and Esql.prompt_text != "" and not Esql.prompt_text like "*AKIAIOSFODNN7EXAMPLE*" and not Esql.prompt_text like "*ASIAIOSFODNN7EXAMPLE*" and not Esql.prompt_text like "*ghp_example*" and not Esql.prompt_text like "*sk-ant-api03-test*" and ( Esql.prompt_text rlike """.*(AKIA|ASIA)[A-Z0-9]{16}.*""" or Esql.prompt_text rlike """.*gh[pousr]_[A-Za-z0-9]{36}.*""" or Esql.prompt_text rlike """.*github_pat_[A-Za-z0-9_]+.*""" or Esql.prompt_text rlike """.*-----BEGIN [A-Z ]*PRIVATE KEY-----.*""" or Esql.prompt_text rlike """.*xox[baprs]-[0-9]+-[0-9]+-[A-Za-z0-9]+.*""" or Esql.prompt_text rlike """.*sk_live_[A-Za-z0-9]+.*""" or Esql.prompt_text rlike """.*AIza[-A-Za-z0-9_]+.*""" or Esql.prompt_text rlike """.*npm_[A-Za-z0-9]{36}.*""" or Esql.prompt_text rlike """.*sk-ant-[A-Za-z0-9-]+.*""" or Esql.prompt_text rlike """.*sk-[A-Za-z0-9]{20,}.*""" or Esql.prompt_text rlike """.*hvs[.][A-Za-z0-9]+.*""" or Esql.prompt_text rlike """.*dckr_pat_[-A-Za-z0-9_]+.*""" or Esql.prompt_text rlike """.*SG[.][-A-Za-z0-9_]+[.][-A-Za-z0-9_]+.*""" or Esql.prompt_text rlike """.*(AccountKey=|SharedAccessKey=)[-A-Za-z0-9+/=]+.*""" or Esql.prompt_text rlike """.*eyJ[-A-Za-z0-9_]+[.]eyJ[-A-Za-z0-9_]+[.][-A-Za-z0-9_]+.*""" ) ) or ( Esql.response_text is not null and Esql.response_text != "" and not Esql.response_text like "*AKIAIOSFODNN7EXAMPLE*" and not Esql.response_text like "*ASIAIOSFODNN7EXAMPLE*" and not Esql.response_text like "*ghp_example*" and not Esql.response_text like "*sk-ant-api03-test*" and ( Esql.response_text rlike """.*(AKIA|ASIA)[A-Z0-9]{16}.*""" or Esql.response_text rlike """.*gh[pousr]_[A-Za-z0-9]{36}.*""" or Esql.response_text rlike """.*github_pat_[A-Za-z0-9_]+.*""" or Esql.response_text rlike """.*-----BEGIN [A-Z ]*PRIVATE KEY-----.*""" or Esql.response_text rlike """.*xox[baprs]-[0-9]+-[0-9]+-[A-Za-z0-9]+.*""" or Esql.response_text rlike """.*sk_live_[A-Za-z0-9]+.*""" or Esql.response_text rlike """.*AIza[-A-Za-z0-9_]+.*""" or Esql.response_text rlike """.*npm_[A-Za-z0-9]{36}.*""" or Esql.response_text rlike """.*sk-ant-[A-Za-z0-9-]+.*""" or Esql.response_text rlike """.*sk-[A-Za-z0-9]{20,}.*""" or Esql.response_text rlike """.*hvs[.][A-Za-z0-9]+.*""" or Esql.response_text rlike """.*dckr_pat_[-A-Za-z0-9_]+.*""" or Esql.response_text rlike """.*SG[.][-A-Za-z0-9_]+[.][-A-Za-z0-9_]+.*""" or Esql.response_text rlike """.*(AccountKey=|SharedAccessKey=)[-A-Za-z0-9+/=]+.*""" or Esql.response_text rlike """.*eyJ[-A-Za-z0-9_]+[.]eyJ[-A-Za-z0-9_]+[.][-A-Za-z0-9_]+.*""" ) ) ) | keep _id, _version, _index, @timestamp, event.action, user.id, user.email, openai_chatgpt_enterprise.codex_log.client_id, openai_chatgpt_enterprise.codex_log.event_details.session_id, openai_chatgpt_enterprise.codex_log.event_details.prompt_text, openai_chatgpt_enterprise.codex_log.event_details.response_text, gen_ai.request.model, data_stream.*

Install detection rules in Elastic Security

Detect OpenAI ChatGPT Enterprise Codex Prompt Containing Credentials 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).