Skip to content

[New Integration] OpenAI Compliance API #19399

Description

@jamiehynds

Description

Elastic's existing openai integration covers the OpenAI API Platform plane (Usage, Rate Limits, org Audit Logs on api.openai.com, via an Admin key). It does not cover the ChatGPT Enterprise workspace plane — end-user, app, agent, and admin activity inside a ChatGPT Enterprise/Edu workspace — which is where the security value for SOC teams sits.

This epic delivers that as a new, standalone package (see "Package decision" below), collecting the ChatGPT Enterprise Compliance Logs Platform feed, ECS-aligned, with detection rules and a security dashboard.

SOC use cases

  • AI account takeover — login anomalies, impossible travel, anomalous geo/JA3-JA4 on accounts holding corporate data.
  • Control tampering — SCIM disabled, IP allowlist removed, audit logging off, role escalation, rogue keys/service accounts.
  • Agentic & Codex risk — custom agent runtime (connector-OAuth grants, skills, triggers), Codex security findings, risky GitHub/Codex connections, MCP usage.
  • Shadow AI & insider risk — app/connector sprawl, over-permissive sharing, abnormal conversation/file activity.

Package

Ship as a new package, not as data streams on the existing openai package. The two are different OpenAI products: different host (api.chatgpt.com vs api.openai.com), different credential (Compliance-scoped key vs Admin key), different tier (Enterprise/Edu only), and different audience. This mirrors the existing azure + azure_openai split.

  • name: openai_chatgpt_enterprise
  • title: OpenAI ChatGPT Enterprise
  • The existing openai package is unchanged (no rename — package names are immutable post-publish). Optionally sharpen its description to "OpenAI API Platform" for catalog clarity (title/description edits are safe; a name change is not).

Scope — data streams (Compliance Logs Platform)

Input type cel. One data stream per event_type:

Data stream event_type Notes
auth AUTH_LOG Login/logout success & failure; IP, geo, user agent, JA3/JA4
app_auth APP_AUTH_LOG App/connector credential link/unlink (OAuth)
audit AUDIT_LOG Admin/RBAC actions (~150): role/SCIM/IP-allowlist/key/service-account/org config
codex_security CODEX_SECURITY_LOG Whitespace — scan config, scan findings, proposed-patch PRs
agents CUSTOM_AGENTS_LOG Whitespace — agent runtime: connector-OAuth resolved, connector calls, skills, triggers, memory R/W
app APP_LOG App/connector tool invocations incl. app_type: MCP
codex CODEX_LOG Codex client activity, APP_MCP_CALL, plugin lifecycle
conversation CONVERSATION_MESSAGE Per-message content + citations/annotations. Highest volume, PII/secrets, ~24h lag

User control: each data stream must be independently enable/disable-able in Fleet, so customers can collect only the categories they want (e.g. conversation only, or the security-focused streams only). This is why the design is one data stream per event_type and must not be collapsed into a single multi-type stream. The Compliance key + WorkspaceID are configured once at the package level and shared across all enabled streams.

Metadata

Metadata

Assignees

No one assigned

    Labels

    9.6 candidateEpicNew IntegrationIssue or pull request for creating a new integration package.Team:Security-Service IntegrationsSecurity Service Integrations team [elastic/security-service-integrations]

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions