首页 > 教程资讯 > 教程详情

REA Safe Agent:把 REA 与编程 agent 放进两个只读 Docker 容器里做静态分析

AI 与前沿 数码评测汪工 2026-10-21
文章分享

GitHub 项目 REA Safe Agent 的 README 称,它是一个 skill,用来为借助 REA 分析文件搭建更安全、受隔离的环境。REA(Reverse Engineer Anything)是开源逆向工具包,以 npm 包 rea-agents 发布,其 CLI 与 MCP 服务可让 agent 检查二进制、压缩包、应用安装包和 JavaScript 应用。该 skill 把 REA 和接收结果的 agent 分开放进受限容器,并限制共享数据。README 写明,它适合让 agent 调查不熟悉的二进制文件、压缩包、应用安装包或 JavaScript。

两个容器各管一边

README 称,不信任的文件和可能执行命令的 agent 都需要执行边界:解析器会读到未知字节,结果又会回到 agent。因此 REA 与接收分析结果的 agent 分别运行在两个受限的 Docker 容器里。agent 的主机挂载为零,只有经哈希确认的冻结副本会共享给 REA;输入以路径、大小和 SHA-256 记入清单,启动前校验已批准字节并生成私有临时副本,REA 只看见只读挂载的这些副本,原始目录不会被挂载。

两个容器均为只读根文件系统、无外部网络(network=none)、无 capabilities、无 Docker socket,并设有资源限制。README 称,Docker 提供强制沙箱;主机上运行受信任的 Python 控制器、Docker CLI 和 Docker 运行时,控制器在启动前检查两个容器,只中继已批准的协议,也不会把返回文本变成主机命令。全部 npm、REA 和分析客户端命令都留在 Docker 内,没有主机执行回退,也不做全局 MCP 注册。

207 个工具里只开放 27 个

README 称,REA 6.7.0 共公布 207 个工具,该配置只开放其中 27 个,并对调用强制执行同一白名单。原生可执行文件(ELF、PE、Mach-O)由 Ghidra 12.1.4 分析,开放 16 个只读查询;这些查询在 REA 容器内运行,使用锁定的 JDK 21,且不接受文件系统路径。APK 由 JADX 通过 jadx-headless-mcp 0.7.1 分析,开放 5 个查询;APK 被静态读取,不会安装或运行,代理只接受冻结 /input 快照中的文件。资源解码、JEB、adb、Frida、IDA、Hopper、注解工具、快照导入导出和调试器不在该配置内。README 还称,每条工具结果以最多 200,000 字节的一份文本送达模型,更大的结果会在中部截断。

加固、审计和仍然存在的缺口

README 称,最近的安全加固包括受控的网关交换、3,702 个可复现的边界用例、更严格的 macOS 共享规则和整镜像漏洞证据。网关检查消息结构、字节与深度预算、允许的请求字段、文件目标和工具调用,模型请求只发往固定 HTTPS 目的地且不跟随重定向。这些被写成内部工程检查,README 说明它们不是外部审计。

发布方在 README 中列出 2026-10-18 的审计:对两份锁定依赖的 npm audit 报告总计 0 个已知漏洞。其中一份是 REA 6.7.0 并去掉可选依赖,另一份是 Codex 0.163.0 与 Claude Code 2.1.302;两次审计都在锁定的 Node Docker 镜像内运行。README 同时说明,整镜像扫描确实报告了漏洞,干净的 npm audit 不等于干净的镜像审计;该审计覆盖已知 npm 公告,不覆盖操作系统镜像软件包、恶意软件、未披露缺陷或 Docker 本身。

README 还写明分析是静态的,文件从不被执行,因此这不是用来观察恶意软件运行的沙箱。Docker、内核或虚拟机管理程序漏洞仍可能突破隔离。被分析内容会发送给模型服务(Anthropic 或 ChatGPT),README 建议不要把它用于不能离开本机的文件。

平台、订阅与项目状态

README 的要求是:主机需要 Python 3.11+,以及运行 Linux 容器的本地 Docker。项目面向 Linux 和 macOS,完整 Docker 工作流已在这两类 POSIX 系统上通过。Windows 支持为实验性:原生策略测试和账户配置检查已通过,完整 Docker Desktop 集成未验证。实时分析需要 Claude Pro 或 Max,或 ChatGPT Plus 或 Pro 订阅,不支持 API key;安装验证可以用本地哑模型,不必发起真实模型请求。

项目作者为 Stefano D'Agostino。README 称,代码与文档采用 MIT 许可。OpenSSF Best Practices 徽章链到公开结果,该评估是维护者自评,目前为进行中(in progress),并非 Passing;README 写明,Scorecard 与 Best Practices 徽章都不为沙箱背书,也不能代替安全审计。

来源