新闻公告使用手机扫一扫查看
< 返回

AI Agent 日志被清空后,如何从内存中还原完整操作链

2026-08-17 17:20 作者:数掘云算 阅读量:2

随着 AI Agent 逐渐具备文件读取、终端命令执行、代码修改以及外部工具调用等能力,一个新的安全问题正在出现:如果 Agent 执行了异常操作,而相关日志又被删除,我们还能不能知道它到底做过什么?

答案可能藏在进程内存里。

传统安全审计高度依赖日志文件,但对于持续运行的 AI Agent 来说,磁盘日志并不是唯一能够记录其行为的地方。Agent 在与 MCP Server 交互过程中产生的大量 JSON-RPC 通信数据,会经过进程堆、网络缓冲区以及 mmap 等内存区域。即使磁盘日志已经遭到删除或覆盖,只要相关内存数据尚未被系统重新分配,就可能留下可供分析的行为痕迹。

日志删除,并不意味着行为痕迹彻底消失

攻击者入侵系统后,清理日志是一种常见的反取证方式。

例如删除 Agent 日志目录、覆盖日志文件、清理 systemd 日志或者修改文件时间戳,这些操作的共同点是:主要针对磁盘上的持久化数据。

但 AI Agent 的运行方式带来了一个新的取证突破口。

当 Agent 调用外部工具时,通常需要在客户端和 MCP Server 之间交换请求和响应。如果这些通信采用 JSON-RPC 2.0,那么类似工具名称、调用参数、文件路径以及执行结果等信息,都可能以字符串或对象形式暂时存在于内存中。

因此:

磁盘日志被删除 ≠ Agent 的所有行为证据都被删除。

只要目标 Agent 仍在运行,或者安全人员及时完成了进程内存镜像采集,就可能从内存中重新发现这些通信记录。

MCP 为什么会留下可分析的数据?

MCP(Model Context Protocol)用于规范 AI 应用与外部工具、数据源之间的通信。

其通信可以基于 JSON-RPC 2.0。当 Agent 需要调用某个工具时,请求中通常会包含方法名称、工具名称以及具体参数;MCP Server 完成操作后,再返回对应结果。

例如,一次工具调用中可能出现:

tools/call

同时携带:

read_file

以及具体文件路径。

如果 Agent 调用了 Shell 工具,则通信内容中还可能出现实际执行的命令。

这些数据在运行过程中可能进入 Heap、Stack、mmap 或网络 I/O 缓冲区。尤其是已经序列化的 JSON 字符串,具有非常明显的结构特征,因此能够成为内存扫描的重要目标。

MCPRecon:从内存碎片中寻找 Agent 行为

针对这种场景,MCPRecon 的核心思路并不复杂:

先获取 Agent 的进程内存,再从中寻找 MCP/JSON-RPC 通信特征,最后重新构建工具调用链。

整个分析过程可以概括为:

内存镜像采集 → 协议特征扫描 → JSON 数据提取 → 请求响应匹配 → Agent 行为重建

其中一个关键步骤,就是寻找 JSON-RPC 的典型特征。

例如:

"jsonrpc":"2.0"

"method":"tools/call"

"params":

"result":

"error":

这些字段具有相对稳定的协议特征,可以帮助分析程序从庞大的内存镜像中快速筛选疑似 MCP 通信数据。

发现目标数据后,还需要进一步判断 JSON 对象的完整边界。

这是因为真实内存并不是整齐排列的日志文件,同一条通信记录可能出现碎片化、UTF-8 字符截断或者部分内存被重新覆盖等情况。

只有成功恢复出完整 JSON 对象,才能进一步提取消息 ID、调用方法、参数、执行结果和错误信息。

最关键的一步:重新拼出 Agent 的操作链

单独找到一条 JSON-RPC 数据意义有限。

真正具有取证价值的是:

Agent 先做了什么、调用了哪个工具、传入什么参数,以及最终执行成功还是失败。

JSON-RPC 中的 id 字段正好提供了关联条件。

分析程序可以利用相同 ID 将请求与响应重新匹配,从而形成完整的工具调用记录。

在文中的模拟实验中,即使磁盘日志已经被清理,内存分析仍然恢复出了 Agent 会话初始化、工具列表查询、读取 /etc/passwd、尝试读取 /etc/shadow、写入文件以及执行外联命令等记录。

这意味着安全人员面对的已经不再是一堆没有关联的内存字符串,而是一条可以继续分析的行为轨迹:

Agent → 调用工具 → 提交参数 → 工具执行 → 返回结果

一旦调用链被重新建立,就能够进一步判断 Agent 是否访问敏感文件、执行异常命令、发生权限越界或者存在可疑外联行为。

AI Agent 安全正在产生新的取证对象

传统数字取证重点关注硬盘文件、系统日志、注册表以及网络数据包。

Agent 时代增加了一批新的分析对象:

模型上下文、工具调用参数、JSON-RPC 通信、进程堆内存、网络缓冲以及 Agent 调用链。

尤其是在 Agent 拥有 Shell、文件系统、数据库以及第三方 API 调用权限之后,其行为越来越接近一个能够自主操作系统的“数字用户”。

因此,仅仅记录“用户向 AI 输入了什么”已经不够。

企业真正需要回答的是:

AI 最终调用了什么工具?

读取了什么数据?

执行了什么命令?

修改了哪些文件?

是否向外部发送了信息?

这也是 Agent 安全审计与传统聊天机器人安全最大的区别之一。

取证之外,还需要让日志本身更难被篡改

从内存恢复 Agent 行为属于事后取证。

更进一步的思路,是在 Agent 系统设计阶段建立不可篡改的审计机制。

例如,可以将每一条 Agent 操作记录进行 SHA-256 哈希,并让后一条记录包含前一条记录的哈希值,从而形成连续的哈希链。

一旦中间某条记录遭到修改,其后的链式校验就会出现异常。再结合 Ed25519 数字签名,可以进一步验证审计记录的完整性与来源。

对于企业级 Agent 平台而言,可以进一步形成多层安全体系:

权限最小化 + 进程隔离 + 行为监控 + 远程审计日志 + 防篡改机制 + 内存取证能力。

相比单纯依赖本地日志,这种设计能够提供更加完整的 Agent 行为追踪能力。原文进一步提出了从进程隔离、内存保护、行为监控、不可删日志到内存取证能力的五层纵深体系。

结语

AI Agent 正在从“回答问题的软件”,逐渐演变为“能够实际执行操作的软件”。

能力越强,安全审计的重要性也越高。

当 Agent 可以调用终端、访问文件、操作数据库甚至连接外部系统时,我们不仅需要关注它“说了什么”,更需要知道它真正做了什么

MCP 内存取证提供了一种新的分析思路:即使传统日志遭到删除,进程内存中仍可能残留工具调用和通信记录,并有机会重新构建 Agent 的实际操作轨迹。

未来,围绕 AI Agent 的安全体系可能不再只是 Prompt 防护和模型安全,而会进一步扩展到权限控制、运行时监控、工具调用审计、内存取证以及不可篡改行为记录

对于越来越自主化的 AI Agent 来说,一套真正可靠的“黑匣子”,可能会成为企业级部署不可缺少的基础能力。

联系我们
返回顶部