<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-liu-audit-enforcement-points-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Enforcement Points for Agents">Enforcement Points for Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-liu-audit-enforcement-points-00"/>
    <author initials="C. P." surname="Liu" fullname="Chunchi Peter Liu">
      <organization>Huawei</organization>
      <address>
        <email>liuchunchi@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="Ni" fullname="Yuan Ni">
      <organization>Huawei</organization>
      <address>
        <email>niyuan1@huawei.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>Agent Use of Delegation and Interaction Traceability</workgroup>
    <keyword>AI agents</keyword>
    <keyword>Agent auditing</keyword>
    <keyword>Enforcement points</keyword>
    <keyword>Audit records</keyword>
    <abstract>
      <?line 116?>

<t>Agent auditing relies on distributed enforcement points (EPs) to observe and intervene in agent activities. This document analyzes Agent, Gateway, and Host EPs by detailing their coverage and audit data. This provides a basis for understanding the capabilities of different EPs and evaluating overall audit evidence coverage.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://NiYuan224.github.io/draft-liu-audit-enforcement-points/draft-liu-audit-enforcement-points.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-liu-audit-enforcement-points/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Agent Use of Delegation and Interaction Traceability BOF mailing list (<eref target="mailto:audit@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/audit"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/audit/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/NiYuan224/draft-liu-audit-enforcement-points"/>.</t>
    </note>
  </front>
  <middle>
    <?line 120?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Agents increasingly act on behalf of users across multiple services and administrative domains. Auditing their activities requires runtime information, primarily provided by enforcement points (EPs) that observe and, where supported, intervene in agent activities. These EPs are distributed across the interaction chain, each covering a different set of activities and providing corresponding audit records.</t>
      <t>To support runtime monitoring and auditing, industry solutions record events at the agent, gateway, and host layers: agent hooks expose agent lifecycle events and tool calls <xref target="ClaudeCodeHooks"/><xref target="CursorHooks"/><xref target="HooksSecurity"/>; gateways inspect requests and responses and record access decisions and content filtering results<xref target="LiteLLMLogs"/>; Endpoint Detection and Response (EDR) systems monitor process execution, file access, and network connections<xref target="DefenderEDR"/>.</t>
      <t>This document considers three categories of EPs: Agent EPs, Gateway EPs, and Host EPs. For each category, it describes the audit information EPs can provide, providing a basis for identifying the records across participating domains and understanding the coverage of the available evidence.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      <t>The definitions in this document are based on the Policy Enforcement Point (PEP) definition in <xref target="RFC3198"/> and the audit record concepts described in the proposed AUDIT Working Group Charter <xref target="AUDIT-CHARTER"/>.</t>
      <t>Enforcement Point (EP): A logical entity or network element that observes agent activities and generates corresponding audit records, and may enforce security controls where supported.</t>
      <t>Audit Record: A record of the observable behavior of agents, including user intent, agent or tool interactions, invoked or declined actions, exchanged data, and resulting outcomes across trust boundaries.</t>
      <t>Hook: A mechanism exposed by software or an operating system at a defined execution point to enable observation and, where supported, intervention.</t>
    </section>
    <section anchor="agent-workflows-and-enforcement-points">
      <name>Agent Workflows and Enforcement Points</name>
      <t>Figure 1 illustrates a typical agent workflow and the locations of the three EP categories. The interactions shown are illustrative and may occur in different sequences and multiple times depending on the agent workflow.</t>
      <artwork><![CDATA[
                           +-----------+
                           |           |
+------------------+ (1)   |           |        +------------------+
|                  +-------+           +-------->       LLM        |
|                  <-------+           +--------+                  |
|                  | (2)   |           |        +------------------+
|                  | (3)   |           |        +------------------+
|   Client Agent   +-------+   Gateway +------->|      Tools       |
|    (Agent EP)    <-------+     EP    +--------+                  |
|                  | (4)   |           |        +------------------+
|                  | (5)   |           |        +------------------+
|                  +-------+           +-------->   Server Agent   |
|                  |<------+           +--------+    (Agent EP)    |
+------------------+ (6)   |           |        +------------------+
|   Host(Host EP)  |       |           |        |  Host (Host EP)  |
+------------------+       |           |        +------------------+
                           |           |
                           |           |
                           +-----------+
]]></artwork>
      <t><em>Figure 1. Agent Workflow and EPs</em></t>
      <ol spacing="normal" type="1"><li>
          <t>The Agent provides context to the LLM.</t>
        </li>
        <li>
          <t>The LLM returns output to the Agent to support the selection of subsequent actions.</t>
        </li>
        <li>
          <t>The Agent invokes one or more tools.</t>
        </li>
        <li>
          <t>The tools return results to the Agent.</t>
        </li>
        <li>
          <t>The Agent delegates tasks to or exchanges requests with other agents.</t>
        </li>
        <li>
          <t>Other Agents return responses or task execution results to the Agent.</t>
        </li>
      </ol>
      <t>EPs provide visibility into and control over the above agent activities. They may be located within the agent, at communication gateways, or on the host where the agent runs. Accordingly, EPs are classified into three categories: Agent EPs, Gateway EPs, and Host EPs.</t>
      <ul spacing="normal">
        <li>
          <t>Agent EPs: EPs integrated into the agent, using hooks to observe and control agent activities, such as user interactions, model requests, tool calls, and host operations.</t>
        </li>
        <li>
          <t>Gateway EPs: EPs deployed in the communication paths between agents and models, tools, and other agents. They inspect and control requests and responses passing through the gateway.</t>
        </li>
        <li>
          <t>Host EPs: EPs running on the hosts or endpoints where agents execute. They monitor and control agent-related processes, command execution, file access, and other system operations.</t>
        </li>
      </ul>
      <t>Each category provides audit records within its observation and intervention scope. Their coverage may overlap, but no single EP necessarily observes the entire interaction chain.</t>
    </section>
    <section anchor="agent-ep">
      <name>Agent EP</name>
      <t>Agent EPs use agent-provided hooks to observe critical agent events, enforce controls where supported, and generate audit records.</t>
      <section anchor="summary-of-agent-ep-hooks">
        <name>Summary of Agent EP Hooks</name>
        <t>The following table lists commonly adopted agent hooks and representative implementations.</t>
        <t>The hooks cover critical events, including session lifecycle management, prompt handling, model requests and responses, subagent management, tool invocation and results, command execution, and file operations.</t>
        <artwork><![CDATA[
+--------------------------+----------------------------------------+
| Name                     | Examples                               |
+--------------------------+----------------------------------------+
| Session Start            | Claude Code: `SessionStart`            |
|                          | Cursor: `sessionStart`                 |
|                          | GitHub Copilot: `sessionStart`         |
|                          | Hermes Agent: `on_session_start`       |
|                          | OpenClaw: `session_start`              |
|                          | Qwen Code: `SessionStart`              |
+--------------------------+----------------------------------------+
| Before Prompt Submit     | Claude Code: `UserPromptSubmit`        |
|                          | Cursor: `beforeSubmitPrompt`           |
|                          | Gemini CLI: `BeforeAgent`              |
|                          | GitHub Copilot: `userPromptSubmitted`  |
|                          | Qwen Code: `UserPromptSubmit`          |
+--------------------------+----------------------------------------+
| Prompt Expansion         | Claude Code: `UserPromptExpansion`     |
|                          | Qwen Code: `UserPromptExpansion`       |
+--------------------------+----------------------------------------+
| Before Model Request     | Gemini CLI: `BeforeModel`              |
|                          | Hermes Agent: `pre_api_request`        |
|                          | OpenClaw: `llm_input`                  |
+--------------------------+----------------------------------------+
| After Model Response     | Gemini CLI: `AfterModel`               |
|                          | Hermes Agent: `post_api_request`       |
|                          | OpenClaw: `llm_output`                 |
+--------------------------+----------------------------------------+
| Before Context Compaction| Claude Code: `PreCompact`              |
|                          | Cursor: `preCompact`                   |
|                          | Gemini CLI: `PreCompress`              |
|                          | GitHub Copilot: `preCompact`           |
|                          | OpenClaw: `before_compaction`          |
|                          | Qwen Code: `PreCompact`                |
+--------------------------+----------------------------------------+
| After Context Compaction | Claude Code: `PostCompact`             |
|                          | Gemini CLI: `PostCompress`             |
|                          | OpenClaw: `after_compaction`           |
|                          | Qwen Code: `PostCompact`               |
+--------------------------+----------------------------------------+
| Subagent Start           | Claude Code: `SubagentStart`           |
|                          | Cursor: `subagentStart`                |
|                          | GitHub Copilot: `subagentStart`        |
|                          | Hermes Agent: `subagent_start`         |
|                          | OpenClaw: `subagent_spawned`           |
|                          | Qwen Code: `SubagentStart`             |
+--------------------------+----------------------------------------+
| Subagent Completion      | Claude Code: `SubagentStop`            |
|                          | Cursor: `subagentStop`                 |
|                          | GitHub Copilot: `subagentStop`         |
|                          | Hermes Agent: `subagent_stop`          |
|                          | OpenClaw: `subagent_ended`             |
|                          | Qwen Code: `SubagentStop`              |
+--------------------------+----------------------------------------+
| Before Tool Use          | Claude Code: `PreToolUse`              |
|                          | Cursor: `preToolUse`                   |
|                          | Gemini CLI: `BeforeTool`               |
|                          | GitHub Copilot: `preToolUse`           |
|                          | Hermes Agent: `pre_tool_call`          |
|                          | OpenClaw: `before_tool_call`           |
|                          | Qwen Code: `PreToolUse`                |
+--------------------------+----------------------------------------+
| Permission Request       | Claude Code: `PermissionRequest`       |
|                          | Hermes Agent: `pre_approval_request`   |
|                          | Hermes Agent: `post_approval_response` |
|                          | Qwen Code: `PermissionRequest`         |
+--------------------------+----------------------------------------+
| Permission Denied        | Claude Code: `PermissionDenied`        |
|                          | Qwen Code: `PermissionDenied`          |
+--------------------------+----------------------------------------+
| After Tool Use           | Claude Code: `PostToolUse`             |
|                          | Cursor: `postToolUse`                  |
|                          | Gemini CLI: `AfterTool`                |
|                          | GitHub Copilot: `postToolUse`          |
|                          | Hermes Agent: `post_tool_call`         |
|                          | OpenClaw: `after_tool_call`            |
|                          | Qwen Code: `PostToolUse`               |
+--------------------------+----------------------------------------+
| Tool Batch Completion    | Claude Code: `PostToolBatch`           |
|                          | Qwen Code: `PostToolBatch`             |
+--------------------------+----------------------------------------+
| Post Tool Use Failure    | Claude Code: `PostToolUseFailure`      |
|                          | Cursor: `postToolUseFailure`           |
|                          | GitHub Copilot: `postToolUseFailure`   |
|                          | Qwen Code: `PostToolUseFailure`        |
+--------------------------+----------------------------------------+
| Before MCP Execution     | Claude Code: `PreToolUse` (MCP tools)  |
|                          | Cursor: `beforeMCPExecution`           |
+--------------------------+----------------------------------------+
| After MCP Execution      | Claude Code: `PostToolUse` (MCP tools) |
|                          | Cursor: `afterMCPExecution`            |
+--------------------------+----------------------------------------+
| Before Command Execution | Claude Code: `PreToolUse` (Bash)       |
|                          | Cursor: `beforeShellExecution`         |
+--------------------------+----------------------------------------+
| After Command Execution  | Claude Code: `PostToolUse` (Bash)      |
|                          | Cursor: `afterShellExecution`          |
+--------------------------+----------------------------------------+
| Before File Access       | Claude Code: `PreToolUse` (Read)       |
|                          | Cursor: `beforeReadFile`               |
|                          | Cursor: `beforeTabFileRead`            |
+--------------------------+----------------------------------------+
| After File Modification  | Claude Code: `PostToolUse` (Write/Edit)|
|                          | Cursor: `afterFileEdit`                |
|                          | Cursor: `afterTabFileEdit`             |
+--------------------------+----------------------------------------+
| Agent Completion         | Claude Code: `Stop`                    |
|                          | Cursor: `stop`                         |
|                          | Gemini CLI: `AfterAgent`               |
|                          | GitHub Copilot: `agentStop`            |
|                          | Hermes Agent: `post_llm_call`          |
|                          | OpenClaw: `agent_end`                  |
+--------------------------+----------------------------------------+
| Session End              | Claude Code: `SessionEnd`              |
|                          | Cursor: `sessionEnd`                   |
|                          | GitHub Copilot: `sessionEnd`           |
|                          | Hermes Agent: `on_session_finalize`    |
|                          | OpenClaw: `session_end`                |
|                          | Qwen Code: `SessionEnd`                |
+--------------------------+----------------------------------------+
]]></artwork>
        <t><em>Table 1. Agent EP Hooks and Examples</em></t>
      </section>
      <section anchor="critical-events-and-corresponding-audit-record-schema">
        <name>Critical Events and Corresponding Audit Record Schema</name>
        <t>The events and audit record claims in this section are derived from commonly adopted agent hooks documented by Claude Code <xref target="ClaudeCodeHooks"/>, Cursor <xref target="CursorHooks"/>, GitHub Copilot <xref target="CopilotHooks"/>, Qwen Code <xref target="QwenCodeHooks"/>, Gemini CLI <xref target="GeminiCLIHooks"/>, Hermes Agent <xref target="HermesHooks"/>, and OpenClaw <xref target="OpenClawHooks"/>. For each event, this section describes the observable information, supported interventions, and corresponding REQUIRED or OPTIONAL audit record claims.</t>
        <t>The following claims apply to all events:</t>
        <ul spacing="normal">
          <li>
            <t><tt>session_id</tt>: REQUIRED. A string identifying the current session.</t>
          </li>
        </ul>
        <t>In addition to the common claim above, each event defines its own audit record claims to capture event-specific information.</t>
        <t>1. <strong>Session Start:</strong> Expose session information, including the session identifier and source. Allow setting session-specific environment variables or injecting initial security context.</t>
        <ul spacing="normal">
          <li>
            <t><tt>source</tt>: OPTIONAL. A string indicating how the session started, such as "startup" or "resume".</t>
          </li>
        </ul>
        <t>2. <strong>Before Prompt Submit:</strong> Expose the submitted prompt and associated session information. Allow inspecting, modifying, or blocking the prompt before agent processing.</t>
        <ul spacing="normal">
          <li>
            <t><tt>prompt</tt>: REQUIRED. A string containing the submitted user prompt.</t>
          </li>
        </ul>
        <t>3. <strong>Prompt Expansion:</strong> Expose prompt and command information during prompt expansion. Allow adding context or blocking expansion or submission.</t>
        <ul spacing="normal">
          <li>
            <t><tt>command_name</tt>: REQUIRED. A string identifying the command being expanded.</t>
          </li>
          <li>
            <t><tt>command_args</tt>: OPTIONAL. A string containing argument text after the command name.</t>
          </li>
          <li>
            <t><tt>prompt</tt>: OPTIONAL. A string containing the original input or expanded prompt, depending on the implementation.</t>
          </li>
        </ul>
        <t>4. <strong>Before Model Request:</strong> Expose model request information, including the selected model, provider, and request messages. Allow modifying or blocking model requests before invocation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>model</tt>: REQUIRED. A string identifying the model selected for the request.</t>
          </li>
          <li>
            <t><tt>provider</tt>: OPTIONAL. A string identifying the model provider.</t>
          </li>
          <li>
            <t><tt>messages</tt>: OPTIONAL. An array of message objects included in the model request.</t>
          </li>
        </ul>
        <t>5. <strong>After Model Response:</strong> Expose generated content, response metadata, and token usage. Allow modifying, replacing, or blocking the response before subsequent processing.</t>
        <ul spacing="normal">
          <li>
            <t><tt>model</tt>: REQUIRED. A string identifying the model associated with the request.</t>
          </li>
          <li>
            <t><tt>response</tt>: OPTIONAL. An object containing the model response information exposed by the hook.</t>
          </li>
          <li>
            <t><tt>finish_reason</tt>: OPTIONAL. A string indicating why response generation ended.</t>
          </li>
          <li>
            <t><tt>usage</tt>: OPTIONAL. An object containing token usage information.</t>
          </li>
        </ul>
        <t>6. <strong>Before Context Compaction:</strong> Expose session information and the compaction trigger. Allow blocking compaction.</t>
        <ul spacing="normal">
          <li>
            <t><tt>trigger</tt>: REQUIRED. A string indicating whether compaction was triggered automatically ("auto") or manually ("manual").</t>
          </li>
        </ul>
        <t>7. <strong>After Context Compaction:</strong> Expose session information, the compaction trigger, and the generated summary.</t>
        <ul spacing="normal">
          <li>
            <t><tt>trigger</tt>: REQUIRED. A string indicating whether compaction was triggered automatically ("auto") or manually ("manual").</t>
          </li>
          <li>
            <t><tt>compact_summary</tt>: OPTIONAL. A string containing the conversation summary generated by compaction.</t>
          </li>
        </ul>
        <t>8. <strong>Subagent Start:</strong> Expose session information and the subagent identifier and type. Allow injecting additional context or blocking subagent creation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>agent_id</tt>: REQUIRED. A string identifying the subagent.</t>
          </li>
          <li>
            <t><tt>agent_type</tt>: REQUIRED. A string indicating the subagent type.</t>
          </li>
        </ul>
        <t>9. <strong>Subagent Completion:</strong> Expose subagent information and its final response. Allow requesting continued execution.</t>
        <ul spacing="normal">
          <li>
            <t><tt>agent_id</tt>: REQUIRED. A string identifying the subagent.</t>
          </li>
          <li>
            <t><tt>agent_type</tt>: REQUIRED. A string indicating the subagent type.</t>
          </li>
          <li>
            <t><tt>last_assistant_message</tt>: OPTIONAL. A string containing the subagent's last message.</t>
          </li>
        </ul>
        <t>10. <strong>Before Tool Use:</strong> Expose the tool name, invocation arguments, and tool call identifier. Allow approving, denying, or modifying tool invocations before execution.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the tool to be invoked.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
          <li>
            <t><tt>tool_use_id</tt>: OPTIONAL. A string identifying the tool invocation.</t>
          </li>
        </ul>
        <t>11. <strong>Permission Request:</strong> Expose the tool name and invocation arguments associated with a permission request. Allow approving or denying the requested operation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the tool requesting permission.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
        </ul>
        <t>12. <strong>Permission Denied:</strong> Expose the tool name, invocation arguments, and reason for a denied operation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the tool whose invocation was denied.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
          <li>
            <t><tt>reason</tt>: OPTIONAL. A string indicating why the invocation was denied.</t>
          </li>
        </ul>
        <t>13. <strong>After Tool Use:</strong> Expose the tool name, invocation arguments, and execution result. Allow modifying or withholding the result before subsequent model processing.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the invoked tool.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
          <li>
            <t><tt>tool_response</tt>: OPTIONAL. The tool execution result. Depending on the tool, this may be a string containing file content, an object containing command output and exit status, or an array of query results.</t>
          </li>
        </ul>
        <t>14. <strong>Tool Batch Completion:</strong> Expose the tool calls in a completed batch, including their arguments and results.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_calls</tt>: REQUIRED. An array of objects describing the tool calls in the batch. Each object contains:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>tool_name</tt>: REQUIRED. A string identifying the invoked tool.</t>
              </li>
              <li>
                <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
              </li>
              <li>
                <t><tt>tool_use_id</tt>: REQUIRED. A string identifying the tool invocation.</t>
              </li>
              <li>
                <t><tt>tool_response</tt>: OPTIONAL. The tool execution result, represented as a string, array, or object depending on the implementation.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>15. <strong>Post Tool Use Failure:</strong> Expose the tool name, invocation arguments, and error information for a failed tool invocation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the tool whose invocation failed.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
          <li>
            <t><tt>error</tt>: REQUIRED. A string describing the tool invocation failure.</t>
          </li>
          <li>
            <t><tt>is_interrupt</tt>: OPTIONAL. A boolean indicating whether the failure was caused by user interruption.</t>
          </li>
        </ul>
        <t>16. <strong>Before MCP Execution:</strong> Expose the MCP server name, tool name, and invocation arguments. Allow approving or denying MCP tool execution before invocation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>mcp_server_name</tt>: REQUIRED. A string identifying the MCP server in the client's configuration.</t>
          </li>
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the MCP tool to be invoked.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
        </ul>
        <t>17. <strong>After MCP Execution:</strong> Expose the MCP server name, tool name, invocation arguments, and execution result. Allow modifying or replacing the result before subsequent processing.</t>
        <ul spacing="normal">
          <li>
            <t><tt>mcp_server_name</tt>: REQUIRED. A string identifying the MCP server in the client's configuration.</t>
          </li>
          <li>
            <t><tt>tool_name</tt>: REQUIRED. A string identifying the invoked MCP tool.</t>
          </li>
          <li>
            <t><tt>tool_input</tt>: REQUIRED. An object containing the tool's input parameters.</t>
          </li>
          <li>
            <t><tt>tool_response</tt>: OPTIONAL. The tool execution result, represented as a string, object, or array depending on the tool.</t>
          </li>
        </ul>
        <t>18. <strong>Before Command Execution:</strong> Expose the command and working directory. Allow permitting, denying, or requesting user confirmation before command execution.</t>
        <ul spacing="normal">
          <li>
            <t><tt>command</tt>: REQUIRED. A string containing the command to be executed.</t>
          </li>
          <li>
            <t><tt>cwd</tt>: OPTIONAL. A string specifying the current working directory.</t>
          </li>
        </ul>
        <t>19. <strong>After Command Execution:</strong> Expose the executed command and captured output.</t>
        <ul spacing="normal">
          <li>
            <t><tt>command</tt>: REQUIRED. A string containing the executed command.</t>
          </li>
          <li>
            <t><tt>output</tt>: OPTIONAL. A string containing the captured command output.</t>
          </li>
        </ul>
        <t>20. <strong>Before File Access:</strong> Expose file access information, including the file path and requested file content. Allow permitting or denying file access before the content is provided to the agent.</t>
        <ul spacing="normal">
          <li>
            <t><tt>file_path</tt>: REQUIRED. A string specifying the path of the file being accessed.</t>
          </li>
          <li>
            <t><tt>requested_content</tt>: OPTIONAL. A string or object containing the content of the file requested by the agent.</t>
          </li>
        </ul>
        <t>21. <strong>After File Modification:</strong> Expose file modification information, including the file path and changes made, such as the original and modified text.</t>
        <ul spacing="normal">
          <li>
            <t><tt>file_path</tt>: REQUIRED. A string specifying the path of the modified file.</t>
          </li>
          <li>
            <t><tt>edits</tt>: OPTIONAL. An array of objects describing the specific changes made, when available. Each object contains:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>old_string</tt>: OPTIONAL. A string containing the original text segment before modification.</t>
              </li>
              <li>
                <t><tt>new_string</tt>: OPTIONAL. A string containing the replacement text segment after modification.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>22. <strong>Agent Completion:</strong> Expose agent completion information, including the completion status, stop reason, and final assistant response. Allow requesting additional processing or continued execution before the agent terminates.</t>
        <ul spacing="normal">
          <li>
            <t><tt>stop_reason</tt>: OPTIONAL. A string specifying why the agent intends to stop (e.g., "end_turn", "task_completed", "max_tokens", "user_interrupt").</t>
          </li>
          <li>
            <t><tt>last_assistant_message</tt>: OPTIONAL. A string or message object containing the final answer, summary, or response text generated by the agent prior to stopping.</t>
          </li>
          <li>
            <t><tt>stop_hook_active</tt>: OPTIONAL. A boolean indicating whether this stop event was triggered during a re-entrant evaluation loop, used to prevent infinite hook recursion.</t>
          </li>
        </ul>
        <t>23. <strong>Session End:</strong> Expose session termination information, including the session identifier, termination reason, and session duration.</t>
        <ul spacing="normal">
          <li>
            <t><tt>session_id</tt>: REQUIRED. A string identifying the closed session.</t>
          </li>
          <li>
            <t><tt>reason</tt>: OPTIONAL. A string indicating the precise cause of session termination (e.g., "user_exit", "clear_context", "timeout", "auth_logout", "fatal_error").</t>
          </li>
          <li>
            <t><tt>session_duration</tt>: OPTIONAL. A numeric value representing the total active runtime of the session.</t>
          </li>
          <li>
            <t><tt>total_token_usage</tt>: OPTIONAL. An object capturing cumulative token consumption across the session.</t>
          </li>
        </ul>
      </section>
      <section anchor="hook-failure-handling">
        <name>Hook Failure Handling</name>
        <t>Hook failures can affect security enforcement and audit coverage. Two common handling policies are:</t>
        <ul spacing="normal">
          <li>
            <t>Fail-open: Allow the operation or subsequent processing to continue when a hook fails. This preserves availability but may bypass security checks.</t>
          </li>
          <li>
            <t>Fail-closed: Block the operation or subsequent processing when a hook fails. This prevents unchecked operations but may interrupt legitimate workflows.</t>
          </li>
        </ul>
        <t>Based on existing implementation practices listed in Table 1, the choice depends on the hook's purpose and the consequences of failure:</t>
        <ul spacing="normal">
          <li>
            <t>Security-critical hooks SHOULD fail closed: Any hook involved in input defense, permission validation, pre-execution interception of sensitive operations, or subagent spawning that could lead to privilege escalation SHOULD block subsequent operations if it fails. Failure to perform required checks may lead to unauthorized operations or sensitive information exposure.  </t>
            <ul spacing="normal">
              <li>
                <t>Typical events include Before Prompt Submit, Before Model Request, Subagent Start, Before Tool Use, Before MCP Execution, Before Command Execution, Before File Access, Permission Request, etc.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Observation-only hooks SHOULD generally fail open when their failure does not affect required security checks. These include hooks used only for session lifecycle monitoring, invocation completion logging, context compaction monitoring, and command execution result collection. Failure to collect audit information should not normally interrupt legitimate operations.  </t>
            <ul spacing="normal">
              <li>
                <t>Typical events include Session Start, After Model Response, Before and After Context Compaction, Subagent Completion, After Tool Use, After MCP Execution, After Command Execution, Tool Batch Completion, Post Tool Use Failure, etc.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="gateway-ep">
      <name>Gateway EP</name>
      <t>Gateway EPs proxy requests and responses between agents and external models, tools, or other agents. They inspect traffic, apply access controls and content policies, and generate corresponding audit records.</t>
      <section anchor="critical-events-and-corresponding-audit-record-schema-1">
        <name>Critical Events and Corresponding Audit Record Schema</name>
        <t>The following events and audit record claims are derived from access logging and audit practices in Agentgateway <xref target="AgentgatewayLogs"/>, Kong AI Gateway <xref target="KongAILogs"/>, Envoy Gateway <xref target="EnvoyAccessLogs"/>, and LiteLLM <xref target="LiteLLMLogs"/>.</t>
        <t>1. <strong>Before Request Forwarding:</strong> Expose request information, including the caller, destination, protocol, and operation. Allow permitting or denying request forwarding and modifying request content.</t>
        <ul spacing="normal">
          <li>
            <t><tt>request_id</tt>: REQUIRED. A string identifying the request.</t>
          </li>
          <li>
            <t><tt>caller</tt>: OPTIONAL. A string identifying the entity initiating the request, such as an authenticated user or agent.</t>
          </li>
          <li>
            <t><tt>destination</tt>: REQUIRED. A string identifying the destination of the request, such as a model, tool, agent, or service endpoint.</t>
          </li>
          <li>
            <t><tt>protocol</tt>: OPTIONAL. A string identifying the protocol, such as "HTTP", "MCP", or "A2A".</t>
          </li>
          <li>
            <t><tt>operation</tt>: OPTIONAL. A string identifying the requested operation, such as a model operation, MCP method, or A2A method.</t>
          </li>
          <li>
            <t><tt>action</tt>: OPTIONAL. A string indicating the policy action, such as "allow", "deny", "mask", or "reject".</t>
          </li>
          <li>
            <t><tt>action_reason</tt>: OPTIONAL. A string explaining the policy action.</t>
          </li>
          <li>
            <t><tt>request_body</tt>: OPTIONAL. The request content.</t>
          </li>
        </ul>
        <t>2. <strong>Before Response Forwarding:</strong> Expose response information and execution outcomes. Allow permitting or denying response forwarding and modifying response content where supported by the gateway.</t>
        <ul spacing="normal">
          <li>
            <t><tt>request_id</tt>: REQUIRED. A string matching the identifier recorded for the corresponding request.</t>
          </li>
          <li>
            <t><tt>status</tt>: OPTIONAL. A string or integer indicating the outcome of the request, such as an HTTP status code, an RPC error code, or an A2A task state.</t>
          </li>
          <li>
            <t><tt>action</tt>: OPTIONAL. A string indicating the action taken by the gateway, such as "allow", "deny", "mask", or "reject".</t>
          </li>
          <li>
            <t><tt>action_reason</tt>: OPTIONAL. A string explaining the policy action.</t>
          </li>
          <li>
            <t><tt>response_body</tt>: OPTIONAL. The response content.</t>
          </li>
          <li>
            <t><tt>error</tt>: OPTIONAL. A string describing an error encountered during request forwarding or response forwarding.</t>
          </li>
          <li>
            <t><tt>duration</tt>: REQUIRED. A numeric value representing the elapsed time from receiving the corresponding request to receiving the complete response.</t>
          </li>
          <li>
            <t><tt>usage</tt>: OPTIONAL. An object containing resource usage information, such as input and output token counts.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="host-ep">
      <name>Host EP</name>
      <t>Host EPs use operating-system hooks to observe operations performed by agent-related processes, enforce controls where supported, and generate audit records.</t>
      <section anchor="summary-of-host-ep-hooks">
        <name>Summary of Host EP Hooks</name>
        <t>The hooks in Table 2 cover major host-level activities, including process lifecycle management, file operations, network operations, access to other processes, and memory protection changes.</t>
        <artwork><![CDATA[
+----------------------+------------------------------------------+
| Name                 | Examples                                 |
+----------------------+------------------------------------------+
| Process Creation     | Linux: sched_process_fork                |
|                      | Windows:                                 |
|                      |   PCREATE_PROCESS_NOTIFY_ROUTINE_EX      |
|                      | macOS: ES_EVENT_TYPE_NOTIFY_FORK         |
+----------------------+------------------------------------------+
| Before Program       | Linux LSM: bprm_check_security           |
| Execution            | Windows:                                 |
|                      |   PCREATE_PROCESS_NOTIFY_ROUTINE_EX      |
|                      |   (CreateInfo != NULL)                   |
|                      | macOS: ES_EVENT_TYPE_AUTH_EXEC           |
+----------------------+------------------------------------------+
| Before File Access   | Linux LSM: file_open                     |
|                      | Linux LSM: file_permission (read)        |
|                      | Windows: PFLT_PRE_OPERATION_CALLBACK     |
|                      |   (IRP_MJ_CREATE)                        |
|                      | Windows: PFLT_PRE_OPERATION_CALLBACK     |
|                      |   (IRP_MJ_READ)                          |
|                      | macOS: ES_EVENT_TYPE_AUTH_OPEN           |
+----------------------+------------------------------------------+
| Before File          | Linux LSM: file_permission (write)       |
| Modification         | Linux LSM: inode_unlink                  |
|                      | Linux LSM: inode_rename                  |
|                      | Windows: PFLT_PRE_OPERATION_CALLBACK     |
|                      |   (IRP_MJ_WRITE)                         |
|                      | Windows: PFLT_PRE_OPERATION_CALLBACK     |
|                      |   (IRP_MJ_SET_INFORMATION)               |
|                      | macOS: ES_EVENT_TYPE_AUTH_UNLINK         |
|                      | macOS: ES_EVENT_TYPE_AUTH_RENAME         |
+----------------------+------------------------------------------+
| After File Operation | Windows: PFLT_POST_OPERATION_CALLBACK    |
|                      |   (IRP_MJ_CREATE)                        |
|                      | Windows: PFLT_POST_OPERATION_CALLBACK    |
|                      |   (IRP_MJ_READ)                          |
|                      | Windows: PFLT_POST_OPERATION_CALLBACK    |
|                      |   (IRP_MJ_WRITE)                         |
|                      | Windows: PFLT_POST_OPERATION_CALLBACK    |
|                      |   (IRP_MJ_SET_INFORMATION)               |
|                      | macOS: ES_EVENT_TYPE_NOTIFY_UNLINK       |
|                      | macOS: ES_EVENT_TYPE_NOTIFY_RENAME       |
+----------------------+------------------------------------------+
| Before Network       | Linux LSM: socket_connect                |
| Operation            | Linux LSM: socket_bind                   |
|                      | Linux LSM: socket_listen                 |
|                      | Windows WFP: classifyFn                  |
|                      |   FWPM_LAYER_ALE_AUTH_CONNECT_V4/V6      |
|                      | Windows WFP: classifyFn                  |
|                      |   FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V4  |
|                      |   /V6                                    |
|                      | Windows WFP: classifyFn                  |
|                      |   FWPM_LAYER_ALE_AUTH_LISTEN_V4/V6       |
+----------------------+------------------------------------------+
| Before Process Access| Linux LSM: ptrace_access_check           |
|                      | Windows: POB_PRE_OPERATION_CALLBACK      |
|                      |   (process/thread handles)               |
|                      | macOS: ES_EVENT_TYPE_AUTH_GET_TASK       |
+----------------------+------------------------------------------+
| Before Memory        | Linux LSM: file_mprotect                 |
| Protection Change    | macOS: ES_EVENT_TYPE_AUTH_MPROTECT       |
+----------------------+------------------------------------------+
| Process Exit         | Linux: sched_process_exit                |
|                      | Windows:                                 |
|                      |   PCREATE_PROCESS_NOTIFY_ROUTINE_EX      |
|                      |   (CreateInfo == NULL)                   |
|                      | macOS: ES_EVENT_TYPE_NOTIFY_EXIT         |
+----------------------+------------------------------------------+
]]></artwork>
        <t><em>Table 2.  HOST EP Hooks and Examples</em></t>
      </section>
      <section anchor="critical-events-and-corresponding-audit-record-schema-2">
        <name>Critical Events and Corresponding Audit Record Schema</name>
        <t>The events and audit record claims in this section are derived from operating system hook interfaces and event data structures provided by Linux Security Modules (LSM) <xref target="LinuxLSM"/>, Windows kernel callbacks and filtering mechanisms <xref target="WindowsKernelHooks"/>, and Apple Endpoint Security <xref target="AppleEndpointSecurity"/>.</t>
        <t>The following claims apply to all events:</t>
        <ul spacing="normal">
          <li>
            <t><tt>process_id</tt>: REQUIRED. An integer identifying the current process.</t>
          </li>
        </ul>
        <t>In addition to the common claim above, each event defines its own audit record claims to capture event-specific information.</t>
        <t>1. <strong>Process Creation:</strong> Expose the identifiers of the newly created process and its parent.</t>
        <ul spacing="normal">
          <li>
            <t><tt>parent_process_id</tt>: REQUIRED. An integer identifying its parent process.</t>
          </li>
        </ul>
        <t>2. <strong>Before Program Execution:</strong> Expose the process identifier and the program to be executed. Allow permitting or denying program execution.</t>
        <ul spacing="normal">
          <li>
            <t><tt>executable_path</tt>: OPTIONAL. A string specifying the executable path.</t>
          </li>
        </ul>
        <t>3. <strong>Before File Access:</strong> Expose the requested file operation and the target file. Allow permitting or denying the operation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>operation</tt>: REQUIRED. A string identifying the requested file access operation, such as "open" or "read".</t>
          </li>
          <li>
            <t><tt>file_path</tt>: OPTIONAL. A string specifying the target file path.</t>
          </li>
        </ul>
        <t>4. <strong>Before File Modification:</strong> Expose the requested file modification, such as writing, deletion, or renaming, and the target file path. Allow permitting or denying the operation.</t>
        <ul spacing="normal">
          <li>
            <t><tt>operation</tt>: REQUIRED. A string identifying the requested operation, such as "write", "unlink", or "rename".</t>
          </li>
          <li>
            <t><tt>file_path</tt>: OPTIONAL. A string specifying the target file path, or the source file path for a rename operation.</t>
          </li>
          <li>
            <t><tt>destination_path</tt>: OPTIONAL. A string specifying the destination path for a rename operation.</t>
          </li>
        </ul>
        <t>5. <strong>After File Operation:</strong> Expose information about the completed file operation and the affected file.</t>
        <ul spacing="normal">
          <li>
            <t><tt>operation</tt>: OPTIONAL. A string identifying the completed file operation.</t>
          </li>
          <li>
            <t><tt>file_path</tt>: OPTIONAL. A string specifying the path of the affected file, or the source path for a rename operation.</t>
          </li>
          <li>
            <t><tt>destination_path</tt>: OPTIONAL. A string specifying the destination path for a rename operation.</t>
          </li>
        </ul>
        <t>6. <strong>Before Network Operation:</strong> Expose the local and remote network endpoints involved in the requested network operation. Allow permitting or denying the operation where supported by the operating system.</t>
        <ul spacing="normal">
          <li>
            <t><tt>local_endpoint</tt>: OPTIONAL. A string identifying the local network endpoint.</t>
          </li>
          <li>
            <t><tt>remote_endpoint</tt>: OPTIONAL. A string identifying the remote network endpoint.</t>
          </li>
        </ul>
        <t>7. <strong>Before Process Access:</strong> Expose requests to access another process, including the identity of the target process. Allow permitting or denying access where supported by the operating system.</t>
        <ul spacing="normal">
          <li>
            <t><tt>target_process_id</tt>: REQUIRED. An integer identifying the target process, or the process owning the target thread.</t>
          </li>
        </ul>
        <t>8. <strong>Before Memory Protection Change:</strong> Expose the requested memory protection change, including the affected address range and protection attributes. Allow permitting or denying the change where supported by the operating system.</t>
        <ul spacing="normal">
          <li>
            <t><tt>address</tt>: OPTIONAL. An integer identifying the starting virtual memory address of the affected range.</t>
          </li>
          <li>
            <t><tt>size</tt>: OPTIONAL. An integer specifying the size of the affected memory range.</t>
          </li>
          <li>
            <t><tt>protection</tt>: OPTIONAL. An integer identifying the memory protection attributes to be applied to the affected range.</t>
          </li>
        </ul>
        <t>9. <strong>Process Exit:</strong> Expose the identifier of the exiting process. No additional event-specific audit record claims are defined.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3198">
          <front>
            <title>Terminology for Policy-Based Management</title>
            <author fullname="A. Westerinen" initials="A." surname="Westerinen"/>
            <author fullname="J. Schnizlein" initials="J." surname="Schnizlein"/>
            <author fullname="J. Strassner" initials="J." surname="Strassner"/>
            <author fullname="M. Scherling" initials="M." surname="Scherling"/>
            <author fullname="B. Quinn" initials="B." surname="Quinn"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <author fullname="A. Huynh" initials="A." surname="Huynh"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="J. Perry" initials="J." surname="Perry"/>
            <author fullname="S. Waldbusser" initials="S." surname="Waldbusser"/>
            <date month="November" year="2001"/>
            <abstract>
              <t>This document is a glossary of policy-related terms. It provides abbreviations, explanations, and recommendations for use of these terms. The intent is to improve the comprehensibility and consistency of writing that deals with network policy, particularly Internet Standards documents (ISDs). This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3198"/>
          <seriesInfo name="DOI" value="10.17487/RFC3198"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ClaudeCodeHooks" target="https://code.claude.com/docs/en/hooks">
          <front>
            <title>Claude Code Hooks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CursorHooks" target="https://cursor.com/docs/hooks">
          <front>
            <title>Cursor Hooks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CopilotHooks" target="https://docs.github.com/en/copilot/reference/hooks-reference">
          <front>
            <title>GitHub Copilot Hooks Reference</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="QwenCodeHooks" target="https://github.com/QwenLM/qwen-code/blob/main/docs/users/features/hooks.md">
          <front>
            <title>Qwen Code Hooks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GeminiCLIHooks" target="https://geminicli.com/docs/hooks/reference/">
          <front>
            <title>Gemini CLI Hooks Reference</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HermesHooks" target="https://hermes-agent.nousresearch.com/docs/user-guide/features/hooks/">
          <front>
            <title>Hermes Agent Hooks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OpenClawHooks" target="https://docs.openclaw.ai/plugins/hooks">
          <front>
            <title>OpenClaw Plugin Hooks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HooksSecurity" target="https://hooks.security/">
          <front>
            <title>HooksSecurity</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AgentgatewayLogs" target="https://agentgateway.dev/docs/standalone/latest/documentation/observability/access-logs/view/">
          <front>
            <title>Agentgateway Access Logs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KongAILogs" target="https://developer.konghq.com/ai-gateway/ai-audit-log-reference/">
          <front>
            <title>Kong AI Gateway Audit Log Reference</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="EnvoyAccessLogs" target="https://gateway.envoyproxy.io/latest/tasks/observability/proxy-accesslog/">
          <front>
            <title>Envoy Gateway Proxy Access Logs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="LiteLLMLogs" target="https://docs.litellm.ai/docs/proxy/logging">
          <front>
            <title>LiteLLM Logging</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DefenderEDR" target="https://learn.microsoft.com/en-us/defender-endpoint/overview-endpoint-detection-response">
          <front>
            <title>Overview of Endpoint Detection and Response</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AUDIT-CHARTER" target="https://github.com/mirjak/audit-bof-preparation/blob/main/audit-charter.md">
          <front>
            <title>Agent Use of Delegation and Interaction Traceability (AUDIT) Working Group Charter, Work in Progress,</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="LinuxLSM" target="https://docs.kernel.org/security/lsm.html">
          <front>
            <title>Linux Security Modules: General Security Hooks for Linux</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WindowsKernelHooks" target="https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/">
          <front>
            <title>Windows Kernel Callbacks and Filtering Mechanisms</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AppleEndpointSecurity" target="https://developer.apple.com/documentation/endpointsecurity/es_event_type_t">
          <front>
            <title>Endpoint Security Event Types</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 734?>



  </back>
  <!-- ##markdown-source:
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
eFS5GvjTsdA+ffpvjQdKX76ELYxEAnZ9hq43M/2L5sO7Pqy/MMppnvguTIEt
gOTUKFPoC1KaPzxYdgGOuGZ3BmF6ff1M5Pd5IRe5pjeyjEaVHwF5Fk8YSipk
mIyJLDAagbgkDBlGtyyGT5+Qp462wRhHhEoAeJNJXP8Ui1GrHyTxUFnu8KfR
RfzD1kd9cQI4shiqaA5IBCggmYcgwpIll8XLWmIk6iF4uWp9dS3JtPUUKpYi
mt5rLaUkVK8K2LCLKIyWrJXUsif8PApOa0mYHuF0ixGKMQkV668+qqrjNEEZ
M+wFKoJqod9IQik+yHtxR0jsnb+7GWI0Cf8rLi7p7+vBP96dXg9e4983b4/O
zswfusXN28t3Z6+rv6qex5fn54OL19wZnorao/Ojn/eY/HuXV8PTy4ujsz3U
J4W7j4AGgX1orBQG2DWkR3LDE9yXxKvjK3HwEpaOChJ8+sR/Y5gA/gYFlvBQ
aQJqkH8C2UA/L5dgC5Aai3EBLqMiiFEqcpHP07tEoOrrM60mFfH8eAKnJQ5B
HLlK4ygEGasHDcXTq8HVMwsYwiJkMZIByJI6MGKmFisIeCiXRW3a2AxEDZXL
hK1Uv00J8B0bllZQx4MaYAYrRYClHoEyEig6YL2A6Oo1CRYutbc3ibyxBdAc
ZmQpguuxSjszVxaB2Y+ENm9IFWUpKMTa9gOos3d2TSAQX0UktRa0iwOLAffd
2wjwx82DtmfU8GFcEia4F5NYoSbnOUBTUsXW7kRdbtMPyNoM1SUYK7SVqZfy
I1qbM3iEdkpXK1zc2tG4KAsw5aRZ5EUG24sYp7CkA9RPMBtU5jiLhTZb1X5B
2zTap2iI4tigYdBCZP3AmhW3o4CFCS05rVV5R8eFIxMihKKJVtMr9nRsQrqD
FSbK0zRGoxvn1QyBdzon0awEUAciiuOSrBYyz8AoJRliut4pMEa64zQMeCkp
rrHiHlxZupssCYcValEiPcxokTJPUYjSEIQHV4ZtOsBGmGjbylhcaAXgasKY
OvEpqbZ1gy3Q4T//+Q8Z7C3/vupV/75a1fBX+++O3U33Fk8PntUb+oYxo9kt
a+2+8qH4d/UAfXiDiQfIX1cB+arZ3gvkV/H0xWdPB4B8vT2QY3BygIksvy5N
9M6vn/1dQRumqGic6TzVBsOzJk1ASh9Jk5e7oMk3X15OblAXZIaG/un8dZ2c
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
b2VS1K4qGEOizgQ6HtzcOCSwukICXVO34XCuqwOobZvC9n/KlQ2HxaMWWAQy
t6GBgc3SsYFBUpsuOmnspTUTF9pYoa77NLnR2KIDsayg6r26zhi+vp9Y5Teo
Hd7r15dBPoMF1gKrcNk5KzoHL+pE5JyBx4gzGxdkfmINAUpz2AUp7uZpbhvI
tCkx/C8im1sYSVx5yI/YwdfWZv85aqJ+XdTrXqDcztN4UkkjNvUYtMayd83a
LRmjS1hgty+nILyGsb7W66HL67pbiO1UHE3dgg08Cp9ucBnnIvAhrD1adYWZ
2RIVGDEpSr4nG1iOEJA6u9c3x1AW2B31JkH4RIJLN2EZGbJ0YqpSM8aONc8U
C3dVaqy6rWZTkYDVeWJQ1b6aii86K8+ggU9o+L6g+5YugTju99lSJIQNZReS
5EI0282misfeblxQ2wlmt7oFycWGtBB2mQ18zZqntj6yccBeszf95FHqJcso
tFiZfqzBpwBS8aYZndiJHucRvoj6oEn5cfMJeg2pMtMmZJSPKJCelY3g1Rg6
yiDxOVAIV8GhPSEMSuWWV3fMEaJiqOMIOwkiNX7iu5xLaTBXLQa3GTcr7Rad
XGKJbGs8KlyOeOwt+G4hrC+/UzWVP1HNiCnWm/gMqTLYf1l7tXNgu+2P5c9n
7u8merV6d2+Gq/54bNNaX7Pvj2I/rFDTjAFv87RxNtS0msjBd25Qq5ZIVJMX
bVXg/+5UpbVJlMFQaXavxYDM/6JouIKWh0BahTijVbiSjMaVdTfKv9GBiIbB
i0zVeTDHBXct/hsfZjVO+JqzBJp970TFVpNMj+/QTh3qafPsEZOsg1Ug1B3G
jWJWGgfXVMTDMidgYGViWVOzCl6sOoegZlgxxD53kBPHgm3Kja3x7YGUkKiI
GxXqrGriToRdWsWEkWM5wvH9RK0xnRBV9dhoXD5x4tGNCJlZjBQSfnJXJlIz
WEio2wNVlFGhcD2JFweWrDWyv+oMWdiZYRuzRdcKWgRYu1MfpTonW6q+C5fH
sc5tH09fAw1BaCNoEhXthzUthr85hXangUUuq7Kga9wA8ENHjPJ2B34UUc3l
jM4UlXTaPLDM8ETebTMEb5+yOqzUo/ChpTtI5wVHReq5cJZ4qDhvlSa3Qjqs
VtpdxNw3FS/RRURILHSsclW81QpCV7s9Lg9PINZe4io8ilohwQpXaNlQrgDg
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
AAA=

-->

</rfc>
