Sooua
登录
返回文章列表
AI Agent 工程化··4 分钟阅读

无遮罩 Windows Agent 的补偿控制:当沙箱不可用时如何继续做实测

基于 Windows build 19045 测试机的真实限制,讨论 Agent 命令无沙箱执行时的补偿控制、证据链和写作实测流程。

无遮罩 Windows Agent 的补偿控制:当沙箱不可用时如何继续做实测

场景:专用 Windows 测试机,命令可执行,但 Node Sandbox 不可用

这篇文章讨论一个不太漂亮、但很真实的工程状态:Agent 已经能控制 Windows 机器,沙箱却不可用。继续做实验可以;假装有隔离,不行。

屏幕上那句警告意味着什么

DESKTOP-HT6EO5E 的 OpenClaw Companion 提示过一句话:Windows build 19045 不是 MXC supported build 26300,Node Sandbox unavailable,commands run uncontained。

翻译成工程语言:

Agent command = 宿主机命令
隔离边界     = 不存在 Node Sandbox 兜底
风险承担     = 由测试机专用性、权限管理、日志、快照和人工审计补偿

这不是小字免责声明。它会改变后续所有实验的写法:命令输出可以作为实测证据,但文章不能把它描述成沙箱内结果。

非沙箱 Windows Agent 补偿控制

AppContainer 缺席后,少了哪层保护

Microsoft 对 AppContainer 的定义很清楚:隔离是它的主要目标。它按最小权限限制身份、设备、文件、网络、进程和窗口等资源。对 Agent runner 来说,这类机制的价值在于把错误命令或被注入的动作关在较小范围里。

没有这层保护时,风险变化很直接:

维度有 AppContainer / 沙箱当前测试机 uncontained
文件系统可限制读写范围取决于宿主用户权限
进程影响低完整性/边界限制可能影响同用户上下文
设备资源需要 broker 或授权取决于系统与应用权限
网络行为可做策略隔离需靠防火墙、工具策略、审计
清理回滚环境可丢弃需要显式清理或快照

这也是为什么“全权授权”不等于“无记录执行”。权限可以放开,证据链不能放掉。

我给这类机器建一张风险账本

当前全能力节点:

node id: 59b4419240fc95695a2e171924b0ad6f2b070679d6e64e3aab8f6d6a42bc4e79
host: DESKTOP-HT6EO5E
caps: browser,camera,canvas,device,location,screen,stt,system,tts
commands: browser.proxy,camera.list,device.info,device.status,location.get,screen.snapshot,system.run,system.which

只读基线显示:

Microsoft Windows NT 10.0.19045.0
PSVersion 5.1.19041.6456
CurrentUser RemoteSigned
Process Bypass

风险账本应至少记录:

  • 这是一台专用测试机,不是办公主机;
  • 命令 uncontained;
  • 管理员级安装和配置允许直接执行;
  • 实验目录固定,例如 %USERPROFILE%\openclaw-article-evidence
  • 文章中必须区分“真实实测”和“设计建议”。

补偿控制不是口号,是操作顺序

我会按下面这个顺序使用这台机器。它不复杂,但能避免很多糊涂账。

无遮罩命令执行决策树

任务开始前

  • 写清楚要验证的问题:命令、配置、日志,还是失败模式。
  • 限定工作目录,不把实验产物散落到用户目录各处。
  • 读取初始状态:OS build、PowerShell 版本、关键策略、服务状态。
  • 需要改系统设置时,先导出原配置或记录回滚命令。

执行过程中

  • 避免把多个高影响动作塞进一条巨型命令。
  • stdout/stderr 直接保存到 evidence 文件。
  • 需要截图时,用 screen.snapshot,不要靠记忆描述 UI。
  • 涉及 App Control / WDAC 时先 audit mode,再考虑 enforcement。

收尾时

  • 记录做了哪些持久改变:服务、计划任务、注册表、安装包、浏览器 profile。
  • 清理临时文件,只保留写作证据。
  • 把失败输出写进文章。失败通常比成功路径更有信息量。

写文章时的证据合同

以后 Windows 相关文章可以把测试证据写成一个固定块,但正文结构不要固定。证据块像这样:

Evidence bundle
- host: DESKTOP-HT6EO5E
- OS/build: Windows NT 10.0.19045.0
- runner: OpenClaw full-capability node
- sandbox: unavailable / uncontained
- command transcript: stdout/stderr saved
- screenshot: only when it adds semantic value
- event logs: included when topic involves audit/detection

这个块的价值是防止文章把“我推测可以”写成“我实际跑过”。

哪些事即使在测试机上也不该混写

  • 不能把本地高风险实验写成可直接攻击公共目标的教程。
  • 不能把 Defender 关闭状态写成推荐配置。
  • 不能把 uncontained 命令写成沙箱内安全执行。
  • 不能把截图、录屏、日志说成已经生成,除非确实生成并审计过。

这次实测里,screen.snapshot 可用;screen.record 被 Windows 平台命令 allowlist 拦截。因此本文只引用命令证据和可用截图能力,不声称录屏已完成。

最后给流程定个调

没有沙箱时,实验不是不能做,而是要换一种诚实的方式做:专用机器、限定路径、保留证据、写清边界、审计结论。透明边界比“看起来安全”的措辞更重要。

分享

评论

登录 后参与讨论。

加载中…

相关文章