ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

让AI安全操作你的电脑:taskhomie命令黑名单、警告模式与权限模型安全设计

让AI安全操作你的电脑:taskhomie命令黑名单、警告模式与权限模型安全设计

【免费下载链接】computer-agent

Desktop app to control your computer with AI using your terminal, browser, mouse & keyboard

项目地址:https://gitcode.com/gh_mirrors/co/computer-agent
点击查看免费下载

computer-agent(又名 taskhomie)是一个本地运行的 AI 电脑代理:你用自然语言下指令,它就会截屏、移动鼠标、点击、输入,还能直接执行终端命令。给 AI 这么大的系统权限,安全就成了头等大事。本文带你拆解它如何用命令黑名单、警告模式与最小化权限模型,把"AI 操控电脑"这件高风险的事管得稳稳的。

为什么 AI 操控电脑必须讲安全

taskhomie 提供两种模式(见 README.md):

  • Computer Use 模式:接管屏幕,用截屏 + 鼠标键盘直接控制桌面
  • Background 模式:后台异步运行,通过 Chrome DevTools Protocol 操作网页、用终端完成其余任务

一旦 AI 拿到终端执行权,一条rm -rf就可能毁掉整个磁盘。因此项目把"限制 AI 能做什么"作为设计的核心,形成了层层递进的三道防线。

第一道防线:命令黑名单(BLOCKED_PATTERNS)

在 src-tauri/src/bash.rs 中,所有 AI 想执行的 shell 命令,都会先撞上一张硬性的BLOCKED_PATTERNS黑名单。命中即直接拒绝执行,并返回Command blocked错误:

风险类型拦截的典型命令
💥 破坏性操作rm -rf /、fork bomb、mkfs、dd if=、chmod -R 777 /
🔧 系统篡改sudo rm、sudo mkfs、sudo dd
🌐 网络攻击nc -l(监听)、nmap(扫描)
🔓 凭证窃取curl … \| sh、wget … \| sh
🛡️ 关闭安全防护csrutil disable、SIP

判断逻辑非常直接(bash.rs):把命令转小写后逐个匹配黑名单模式,一旦命中立即return Err(BashError::Blocked(...)),命令根本不会走到真正的执行器。

第二道防线:警告模式(WARN_PATTERNS)

黑名单管"绝对不行",警告模式则管"要格外小心"。在 src-tauri/src/bash.rs 里有一组WARN_PATTERNS:

const WARN_PATTERNS: &[&str] = &[ "sudo", "rm -rf", "chmod", "chown", "kill -9", "pkill", "shutdown", "reboot", ];

这些命令不一定危险(比如你确实要关个进程),所以项目不会一刀切拦截,而是执行前记录一条⚠️ Command uses: xxx警告日志(bash.rs),既保留能力又留下审计痕迹。这种"硬拦截 + 软提醒"的双层设计,比单纯黑白名单更实用。

执行边界:输出也要被"关进笼子"

不只是入口,出口同样受控。执行结果会做长度截断(stdout 最多 5000 字符、stderr 最多 2000 字符,见 bash.rs),防止巨量输出撑爆上下文。执行全程通过BashExecutor统一收口(agent.rs),AI 无法绕过这套流程私下跑命令。

权限模型:最小化授权

比"拦命令"更根本的,是它一开始就不轻易要权限,而且按需申请、按需隔离。

macOS 系统权限三件套

权限检查实现在 src-tauri/src/permissions.rs,只关注真正用到的三类系统权限:

权限用途对应能力
Accessibility 辅助功能控制鼠标 / 键盘Computer Use 模式
Screen Recording 屏幕录制截屏"看到"内容视觉反馈
Microphone 麦克风语音输入 / 对话语音模式

权限状态被细分为Granted / Denied / NotAsked / NotNeeded(permissions.rs)。尤其值得注意:非 macOS 平台会直接返回NotNeeded,不会强求无关权限——权限粒度清晰、绝不越界。

独立浏览器 profile 隔离

网页任务使用专用的~/.taskhomie-chrome用户配置目录(permissions.rs),与日常浏览器数据物理隔离,还能单独查看、清理甚至一键重置该 profile 的登录态,避免 AI 动到你在用的账号。

Tauri capabilities 白名单

在 src-tauri/capabilities/default.json 里,前端只被授予了最小的一组能力(core:default、事件监听、shell:allow-open等),遵循 Tauri 的默认拒绝、按需放行原则,把攻击面压到最低。

给使用者的实用建议

  • 🎯用对模式:纯网页 + 终端的活优先用 Background 模式,少动鼠标键盘
  • 🚫看懂拦截:遇到Command blocked是黑名单在保护你,别试图绕过
  • ⚠️留意警告:日志里出现⚠️ Command uses时,说明 AI 正在执行敏感命令,最好盯一下
  • 🔐及时授权、按需回收:macOS 首次使用按提示授予辅助功能 / 屏幕录制权限即可

小结

taskhomie 的安全思路可以概括为一句:入口拦(命令黑名单)→ 过程警(警告模式)→ 出口限(输出截断)→ 底座小(最小化权限 + 数据隔离)。它证明了"让 AI 安全操作你的电脑"不必靠一句空喊的口号,而是靠可落地、可审计的工程细节来实现。

相关源码:bash.rs、permissions.rs、capabilities/default.json、系统提示词见 api.rs。

【免费下载链接】computer-agent

Desktop app to control your computer with AI using your terminal, browser, mouse & keyboard

项目地址:https://gitcode.com/gh_mirrors/co/computer-agent
点击查看免费下载

相关推荐

上一篇:InternVL2-Pretrain-Models完全指南:1B到76B参数7款开源多模态预训练模型全景解析
下一篇:为什么 Hybrid Mount 一个模块就能搞定 OverlayFS、Magic Mount 和 VFS 三种挂载方案?完整解析

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进