Computer Use公共预览的安全设计:应用、动作与数据三维门禁

Computer Use把AI从"告诉你怎么点"变成"它自己点"。这对没有API的老软件很有价值,也把风险从错误回答升级为真实操作。开发者最该关心的不是"它能识别多少按钮",而是每个动作能否被应用边界、操作类型和数据敏感度三重约束。

发布与可核验事实

GitHub在2026年10月1日宣布,Computer Use在GitHub Copilot CLI和GitHub Copilot应用中进入公共预览,覆盖macOS与Windows。它可读取辅助功能内容与视觉上下文,完成点击、输入、按键、滚动、拖拽和跨应用导航。官方定位是补足无API、无命令行界面、无模型上下文协议(MCP)集成的GUI工作流。

官方还明确:Copilot控制应用前会请求批准,用户可检查或重置"始终允许"的应用,组织管理设置可禁用该功能。在macOS上,还会引导用户开启辅助功能与屏幕录制权限。但"允许某个应用"只是第一层,并不能表达"允许幻灯片读取,但每次对外发送都要问"。

为什么要特别警惕"始终允许"?因为应用身份不等于业务意图。同一个浏览器既能读公开文档,也能打开邮箱、银行后台和密钥管理页。同一个文档应用既能编辑本地草稿,也能点击共享链接把内容发往外部。权限如果只细到应用级,便会把影响完全不同的动作压成一个开关。

技术原理:把观察、决策、执行拆开

一次桌面任务至少有三段:先从屏幕截图或辅助功能树得到观察,模型再选择目标与动作,最后操作层输入或点击。安全检查应在"决策已结构化,执行尚未发生"的窗口进行:先把应用标识、动作类型、目标文本、数据类型和是否对外发送交给策略器,再返回自动、询问或拒绝。

这个门禁必须位于模型之外。如果让同一个模型同时决定动作和判断"本次是否安全",恶意页面里的提示注入就可能同时污染两次决策。

最小权限还要考虑时间。用户批准"本次把数据填入幻灯片",不应自动变成一周内所有写入都允许。更稳妥的权限单元是"任务+应用+动作+目标范围+有效期"。任务结束、窗口内容变化或出现新收件人时,旧批准应自动失效。

flowchart TD A[截图或辅助功能树] --> B[Agent提出结构化动作] B --> C[校验应用身份] C --> D[判断读写与对外发送] D --> E[检测敏感数据] E --> F{策略结果} F -- 自动 --> G[执行并记录] F -- 询问 --> H[用户确认后执行] F -- 拒绝 --> I[终止与报告]

最小实践:三维动作门禁

依赖安装:无。保存为desktop_gate.py,运行python3 desktop_gate.py。

python 复制代码
POLICY = {
    "browser": {"read": "auto", "write": "ask"},
    "slides": {"read": "auto", "write": "ask"},
    "password_manager": {"read": "deny", "write": "deny"},
}

def decide(app, action, contains_sensitive=False):
    if contains_sensitive:
        return "deny"
    return POLICY.get(app, {}).get(action, "deny")

cases = [
    ("browser", "read", False),
    ("slides", "write", False),
    ("password_manager", "read", False),
    ("browser", "write", True),
]

result = [decide(*case) for case in cases]
print(result)
assert result == ["auto", "ask", "deny", "deny"]

默认策略是"不在白名单就拒绝";写入需要询问,密码管理器和敏感数据直接拒绝。本文示例已用Python 3.9.6在本次任务中实际运行,四个结果与断言一致。未安装或开启GitHub Copilot Computer Use,没有对真实桌面进行自动操作。

具体场景:报销录入

假设Agent从浏览器读取报销单,再将金额输入老式财务客户端。"读取公开说明"可自动,"读取个人银行账户"应拒绝,"填入草稿"可询问,"最终提交"则应在界面上显示金额、收款方和附件摘要,让用户确认。不要用一个"允许财务应用"开关替代整个风险模型。

还要处理"界面在确认后变了"的检查时机攻击。用户看到的是A账户与100元,Agent实际点击时,页面可能已切换为B账户或1000元。高风险执行前应重新读取关键字段,与批准摘要比较;不一致就立即停止,而不是试图自行推断哪个值更"像是对的"。

边界、误区与行动清单

视觉识别会因窗口遮挡、缩放、动画和界面更新而失效;辅助功能树也可能缺标签。因此执行前要重新读取目标,执行后要验证结果,而不是凭坐标假设成功。永久允许不应覆盖凭据读取、文件删除、付款、发布、外发信息和安全设置变更。组织管理员还要设置应用允许列表、日志保留和紧急停止方法。

日志本身也要最小化。保留任务ID、应用标识、动作类型、策略结果、批准人和执行回执,不代表要存下全屏截图、密码框内容或整份客户文档。敏感观察可用摘要、字段标签或受控存储代替,并设定短保留期。否则为了审计Agent,反而新建了一个高价值数据泄漏面。

我的判断是,Computer Use不会取代API,它是为没有结构化接口的最后一公里补位。能调API的任务仍应优先使用可校验参数、权限范围和错误码的接口。GUI自动化的价值是覆盖空白,不是把所有系统退回模糊的视觉点击。

一个安全的试点方法是:先选只读、可重现、无个人数据的流程,记录目标识别错误、人工打断和完成率;然后再开放本地草稿写入;最后才考虑对外发送。每扩大一层权限,都应有新的验收门槛,不是沿用上一层的成功率。

如果只能先禁止一类桌面操作,你会选凭据读取、对外发送、付款,还是文件删除?

关注「蜗牛聊AI」,一起看懂技术变化背后的真正机会。


本文首发于 java4u.cn,转载请注明出处。

相关推荐
国科安芯1 天前
四重证据,一条逻辑链:商业航天级微控制器MCU抗辐射验证方法学综述——以国科安芯AS32S601为例
人工智能·单片机·嵌入式硬件·mcu·安全·抗辐射
dk_tjy1 天前
AI驱动的自动化攻击背景下:企业端点安全体系的技术架构与建设路径
网络·人工智能·安全·自动化·终端安全管理·数据防泄漏
布吉岛的石头1 天前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
2601_965454231 天前
用AI把开源项目功能清单做成MG动画介绍视频
人工智能·开源·音视频
风雅GW1 天前
局域网访问为何少一半配置页:DSH 的安全边界设计复盘
人工智能
衡石科技1 天前
同一句业务问题,怎样持续问对数?衡石 ChatBI 的语义准备与回归验证
人工智能·数据挖掘·回归·chatbi
新新学长搞科研1 天前
【会议征稿 | 杭州站】第七届机器学习与计算机应用国际学术会议 (ICMLCA 2026)
人工智能·机器学习·计算机
找方案1 天前
从用户画像到智能定价:81页方案拆解“大数据决策与支撑平台”怎么落地
大数据·人工智能·数据分析·智慧城市·用户画像
紧跟先前的步伐1 天前
Go AI Agent 实战 05|Temperature 与生成参数:让模型输出可控
java·人工智能·golang
一只爱撸猫的程序猿1 天前
我让 Agent 干活,自己只做审核:一个真实项目的六次"人审拦截"
人工智能