AI Agent沙箱的审计日志必须捕获命令和进程执行、文件读写、出站网络调用和出口目标、包安装事件、工具调用、会话级别的模型输入和输出摘要、资源限制命中以及会话生命周期事件。没有这些覆盖范围,安全团队将无法重建Agent的行为、追踪入侵来源或满足事后审查的需求。这些类别中的任何缺失都会留下难以或无法事后弥补的盲点。
为什么AI Agent沙箱需要不同的审计日志记录
传统的服务器审计日志假设每个操作都是由人类或确定性应用程序进程触发的。AI Agent打破了这一假设。单次提示就可能导致会话安装包、写入文件、运行Shell命令、调用外部API以及生成子进程——所有这些都在几秒钟内完成,且无需人工批准单个步骤。
这改变了审计日志需要回答的问题。对于传统服务器,问题通常是“授权的用户是否修改了这个文件?”。对于Agent沙箱,问题则是:
- 模型决定执行什么,以及以什么顺序执行?
- 哪些Shell命令运行了,以及以什么进程身份运行?
- Agent是否访问了它不应触及的文件?
- 什么通过网络离开了沙箱,以及去了哪里?
- 包安装是否引入了意外代码?
- Agent在命中资源限制或被终止时正在做什么?
能够回答这些问题的日志系统为安全团队提供了所需的还原能力。做不到这一点的日志系统则会让事件响应陷入猜测。
命令和进程执行日志
进程执行是最高优先级的类别。Agent运行的每条命令——无论是直接运行还是通过Shell子进程——都应生成一条日志条目,包括:进程名称和完整参数列表、父进程和PID、用户和有效UID、工作目录、亚秒级精度的时间戳以及退出代码。
如果没有参数列表,像 python、curl 或 bash 这样的命令在事后追踪中几乎毫无意义。如果没有UID,你就无法判断Agent是否以提升的权限运行。如果没有父PID链,你就无法重建嵌套的子进程,也无法理解命令是如何被调用的。
像 auditd 这样的Linux审计子系统配合适当的系统调用规则(execve、execveat)可以在微VM客户机内的内核级别捕获这些信息。基于容器的沙箱可以使用基于eBPF的跟踪或seccomp日志记录作为替代方案,尽管每种方法在覆盖范围和性能方面有不同的权衡。从安全团队的角度来看,关键要求是日志是在应用程序层之下生成的——一个控制自身日志记录的Agent进程无法被信任能准确报告其自身行为。
文件系统访问事件
文件系统审计覆盖范围应记录读取、写入、删除、重命名和挂载操作。对于每个事件,日志应包括:操作类型、完整路径、负责的进程和PID、UID以及时间戳。
在实践中,在繁忙的沙箱中记录每一次文件读取可能会产生大量数据。安全团队通常将其限制在敏感路径——例如 /etc、/root、Agent的工作目录、凭据文件位置和挂载的秘密信息下的任何路径。对于大多数威胁模型而言,写入和删除的优先级高于读取,但读取凭据或配置文件的行为仍然值得捕获。
文件系统事件对于识别数据外泄尝试(大量读取后跟出站网络调用)、意外配置更改(写入Agent不应触及的文件)以及清理行为(会话结束时执行的删除操作,可能表明试图隐藏活动)特别有用。
出站网络调用和出口日志记录
出口日志记录是Agent沙箱部署中最常被忽视的领域之一。许多沙箱会记录尝试了网络连接;但很少有人记录连接去了哪里、使用了什么协议以及是否成功。
完整的出口日志条目应包括:目标IP地址和端口、解析的域名(DNS查询和应答)、协议(TCP、UDP、HTTP等)、每个方向传输的字节数、打开连接的进程、UID以及时间戳。
DNS查询日志记录单独也很重要。Agent查询了一个意外域名——即使后续连接被阻止——也是一个值得捕获的信号。除非沙箱在拦截它的级别强制执行网络策略,否则DNS over HTTPS可以绕过查询日志记录。
提供基于允许列表的出口控制的沙箱应记录允许和阻止的连接尝试。大量针对意外目的地被阻止的尝试本身就是一个有意义的安全信号。
包安装事件
包安装是一个高价值的审计目标,因为它们会改变运行时环境,这种变化会在会话期间持续存在,并可能影响后续操作。每次安装事件应捕获:调用的包管理器(pip、npm、apt、cargo等)、包名称、请求的版本、解析后的版本、源URL或注册表、包哈希或校验和、进程和UID以及时间戳。
源URL很重要。从私有注册表、直接URL或异常镜像安装的包,其风险状况与从默认公共注册表安装的包不同。哈希对于事后验证很重要——如果某个包后来被发现是恶意的,你需要知道在该特定会话中是否安装了该确切版本。
完全阻止包安装的沙箱消除了这一风险类别,但也极大地限制了Agent的能力。大多数生产部署需要一条中间路径:记录所有内容,允许从批准的来源列表安装,并标记或阻止来自未知来源的安装。
工具调用及其结果
AI Agent通常通过工具调用机制运行,在该机制中,模型请求一个命名操作——运行代码、读取文件、调用API、搜索网络——然后编排层执行该操作。这些工具调用位于操作系统层之上,属于应用程序层事件,但它们很重要,值得记录,因为它们代表了模型的意图,而不仅仅是系统级别的结果。
工具调用日志应捕获:工具名称、输入参数摘要(如果包含秘密或用户PII,则不记录完整内容)、结果状态摘要(成功、错误、超时)、会话ID以及时间戳。
记录每次工具调用的完整输入和输出有助于调试,但会带来隐私和秘密泄露的风险。一种实用的方法是无条件记录工具名称和状态,以可配置的详细级别记录输入/输出摘要,并提供一种在调查期间通过适当的访问控制检索特定会话的完整细节的方法。
目标是获得足够的信号来重建Agent的操作序列,而不创建一个本身就成为高价值目标的日志存储库。
会话生命周期事件
会话生命周期事件将所有其他日志条目锚定在一起。出现在每种事件类型中的会话ID使得跨类别连接日志并回答“这次特定运行中发生了什么?”成为可能。
需要记录的生命周期事件包括:
| 事件 | 关键字段 |
|---|---|
| 会话创建 | 会话ID、用户/租户ID、模板或镜像名称、资源配置、时间戳 |
| 会话启动 | 会话ID、主机标识符、分配的资源限制、时间戳 |
| 会话暂停 | 会话ID、原因(API调用、超时、自动暂停)、时间戳 |
| 会话恢复 | 会话ID、恢复执行者、时间戳 |
| 会话终止 | 会话ID、终止原因(正常、超时、OOM、API调用、策略违规)、退出状态、时间戳 |
| 会话清理 | 会话ID、清理时的文件系统状态(保留、删除、快照保存)、时间戳 |
终止原因在事后特别有用。因策略违规、OOM终止或意外信号而非正常退出而终止的会话值得更仔细地检查。被暂停后又恢复的会话值得检查状态的连续性——在暂停和恢复之间环境中是否有任何变化?
资源限制事件
资源限制事件捕获了会话达到配置上限并且系统采取行动的瞬间。这些事件要么表明正常的高负载行为,要么表明更令人担忧的情况——失控的进程、意外的计算突发或蓄意耗尽资源的尝试。
资源限制事件的日志条目应包括:限制类型(CPU节流、内存OOM、磁盘配额、网络速率限制、超时)、事件发生时的测量值、配置的限制、采取的行动(节流、终止、警告)、受影响的进程或会话以及时间戳。
OOM终止尤其值得检查,因为它们可能表明Agent进行了未预料到的大型计算、加载了意外大数据量的包或存在内存泄漏。在应该只进行轻量级LLM调用的会话中出现CPU节流事件,可能表明沙箱内部正在运行其他程序。
结构化与非结构化日志格式
非结构化日志——如 2026-06-29 10:04:00 INFO: process python started 这样的自由文本行——可读性强,但难以查询、聚合或与SIEM或告警管道集成。出于审计目的,它们需要解析,而当日志格式发生变化时,解析工作就会中断。
结构化日志——通常是JSON或通用模式格式如CEF或OCSF——允许每个字段直接进行索引、查询和告警。一个包含 {"ts": "2026-06-29T10:04:00.123Z", "event": "process.exec", "session_id": "...", "pid": 1234, "ppid": 1, "uid": 0, "cmd": "curl", "args": ["-s", "https://..."], "exit_code": 0} 的结构化execve事件可以通过其任何字段立即查询。
对于评估沙箱提供商的安全团队来说,关键问题是:
- 日志是结构化的还是非结构化的?
- 使用什么模式或格式,是否有文档说明?
- 日志是否可以实时流式传输到外部SIEM或日志聚合系统?
- 事件与其在日志流中可用之间的延迟是多少?
实时或近实时流式传输对于检测用例很重要。只有在会话结束数小时后才可用的日志对事件重建很有用,但无法用于实时告警。
日志完整性与防篡改
Agent可以修改的审计日志不是审计日志。这就是防篡改要求:日志的生成和存储方式必须使得Agent进程无法更改、删除或抑制其自身的条目。
在实现层面,这通常意味着:
- 内核级日志生成(审计子系统、eBPF),而不是沙箱内部的应用程序级日志记录
- 将日志发送到沙箱进程无法访问的外部目标
- 只写或追加写入的日志存储,沙箱网络无法访问任何删除API
- 日志条目在生成时进行签名或校验和,以便事后可检测篡改或截断
对于托管沙箱提供商,相关问题是Agent进程是否有任何途径可以修改日志传输。如果日志被写入沙箱内的文件然后发送,一个具有足够权限的Agent进程可能会干扰传输。如果日志在虚拟机监控程序或主机级别生成并带外发送,则Agent无法访问。
日志数据的链式 custody——对于合规或法律审查尤其重要——要求日志收集路径、存储访问控制以及对原始事件应用的任何转换本身都应有文档记录并可审计。
AI Agent沙箱审计日志的保留策略
AI Agent沙箱审计日志的保留要求取决于监管环境、工作负载的风险状况以及安全团队需要支持的事件响应时间线。
安全团队评估的实用起点:
| 用例 | 建议的最短保留期限 |
|---|---|
| 活跃事件调查 | 热/可查询存储至少90天 |
| 事后取证 | 冷存储中保留12–24个月 |
| 合规审查(SOC 2、ISO 27001) | 根据适用的框架要求 |
| 法律保留 | 直到明确解除 |
对于AI Agent工作负载,90天的热存储是一个有意义的基准,因为自主Agent中的入侵模式可能不会被立即发现——三周前在会话中外泄数据的Agent可能直到下游出现异常才被发现。
数据量是一个实际的成本因素。每天运行数千个会话并带有完整的execve和网络日志记录的沙箱可能会产生大量数据。分层存储——热存储用于近期数据、温存储用于中期数据、冷存储用于归档数据——是一种常见的方法。压缩和字段级过滤(只以完整保真度记录高优先级事件类型)也值得考虑,但权衡是过滤后的日志可能会错过意外的事件类型。
为事件响应呈现日志
收集日志是必要的,但不充分。存储在无人查询的存储桶中的日志无法提供任何保护。对于安全团队来说,操作要求是能够快速回答特定问题:
- 会话X在时间T1和T2之间做了什么?
- 哪些会话访问了路径P?
- 哪些会话对域名D进行了出站连接?
- 哪些会话安装了包V?
- 哪些会话以原因R终止?
这需要一个查询接口——无论是SIEM集成、日志分析平台还是提供商提供的API——其中会话ID、事件类型、时间戳范围、路径、域名和其他关键字段被索引并可搜索。
针对特定模式的告警是第二层。AI Agent沙箱的高优先级信号包括:执行已知危险命令(curl | bash、wget -O - | sh、base64 -d | sh)、连接到意外或新注册的域名、从非注册表URL安装包、写入凭据文件路径的事件、因策略违规或OOM终止的会话,以及当Agent不应以root身份运行时在UID 0下发生的任何事件。
针对Agent沙箱行为模式预先校准的检测规则可以减少针对新型活动的首次告警时间。评估沙箱提供商的安全团队应该询问提供商是否提供检测规则、日志模式文档和示例SIEM集成,还是这个层面完全留给客户自己构建。
向您的沙箱提供商询问什么
在评估AI Agent沙箱的审计日志覆盖范围时,以下是值得向提供商提出的具体问题:
- 默认记录了哪些事件类别,哪些需要配置?
- 日志是在内核/虚拟机监控程序级别生成的,还是在沙箱进程内部生成的?
- 使用了什么结构化日志格式,模式是否公开记录?
- 日志是否可以实时流式传输到外部目标?
- 数据保留策略是什么,是否可以延长?
- 沙箱进程是否有任何途径修改或抑制其自身的日志条目?
- 日志条目是否签名或以其他方式具有防篡改特性?
- 是否有查询API或SIEM集成可用?
- 是否有针对常见沙箱威胁模式的预构建检测规则或告警模板?
没有沙箱部署在日志记录方面是开箱即用的。提供商收集的内容与安全团队重建事件所需的内容之间存在差距是很常见的。在部署之前(而非事件发生之后)识别这些差距,是这种评估的实际回报。
Novita Agent沙箱通过其API提供会话生命周期事件、执行日志和资源指标。评估 Novita Agent沙箱 的安全团队应在做出架构决策之前,查看产品文档以确认当前的日志覆盖范围、导出选项和保留配置。
结论
AI Agent沙箱的审计日志记录不是一个可以在事件发生后追加的功能。那些重要的事件类别——进程执行、文件系统访问、出口流量、包安装、工具调用、会话生命周期和资源限制——需要在工作负载投入生产之前就纳入范围,并且日志收集路径需要在Agent的触及范围之外。
安全团队的实用清单很简单:确定您的沙箱提供商默认捕获了哪些事件类别,确认日志是在内核或虚拟机监控程序级别生成的,而不是在Agent进程内部,验证结构化输出是否可用于SIEM集成,并在需要它们进行调查之前建立保留策略。
这些领域中任何一个的缺失都会影响您回答“这个Agent做了什么?”的能力——而对于大规模运行的自主Agent来说,这个问题最终将需要答案。
常见问题
AI Agent沙箱审计日志应捕获哪些事件?
至少应包括:命令和进程执行(含完整参数列表)、文件系统读取/写入/删除、出站网络连接和DNS查询、含源URL和哈希的包安装事件、工具调用和结果状态、会话生命周期事件(创建、暂停、恢复、终止、清理)以及资源限制事件(CPU节流、OOM终止、超时)。缺失这些类别中的任何一个都会留下事后无法重建的盲点。
为什么我不能依赖沙箱内部的应用程序级日志记录?
控制自身日志记录的Agent进程可能会抑制或修改关于其自身行为的条目——无论是有意还是通过漏洞。内核级收集(通过 auditd、eBPF或虚拟机监控程序检测)在应用程序层以下生成日志条目,Agent对其没有写入权限。这就是防篡改要求:日志必须在Agent无法访问的位置生成。
AI Agent沙箱审计日志应保留多长时间?
一个实用的基线:热可查询存储90天用于主动调查,冷存储12–24个月用于事后取证。像SOC 2和ISO 27001这样的合规框架有自己的要求,可能取代这些基线。对于法律保留,应持续保留直到法律顾问明确解除。
结构化和非结构化审计日志有什么区别?
非结构化日志是需要解析才能查询的自由文本行。结构化日志使用一致的模式(JSON、CEF、OCSF),其中每个字段都被索引并可直接查询。对于安全操作,结构化日志更容易与SIEM平台集成、编写检测规则以及在事件响应期间查询。
AI Agent可以篡改其自身的审计日志吗?
这取决于日志的生成和存储位置。如果日志被写入沙箱内的文件然后发送到外部,一个特权Agent进程可能会干扰传输管道。如果日志在虚拟机监控程序或主机级别生成并直接写入沙箱网络无法访问的外部目标,则Agent没有修改它们的途径。务必验证日志收集架构,而不仅仅是日志格式。
在沙箱提供商的审计日志文档中我应该关注什么?
确认:哪些事件类别是默认记录的,哪些需要配置;日志是在内核/虚拟机监控程序级别生成还是在沙箱进程内部;使用了什么结构化格式和模式;是否支持实时流式传输到外部系统;默认保留策略是什么以及是否可以延长;以及是否有预构建的检测规则或SIEM集成可用。
