本文说明当前版本的风险、平台权限边界,以及安全审计机制的设计目标。设计规划不代表功能已经实现。
当前版本尚未启用安全审计机制,也没有操作前权限确认、操作拦截、敏感信息过滤或行为日志。因此:
- 调用
capture_screen时,整块屏幕可能被截取并传递给 MCP 客户端及其所连接的模型;画面可能包含密码、私人聊天、邮件、银行页面或其他敏感信息。 click_at、double_click_at、right_click_at、scroll_at、drag、type_text和key_press可触发实际的鼠标或键盘操作。- 目前没有内建机制保证高风险操作会被识别或阻止。
使用建议:
- 不要在含有敏感信息、重要账户或生产数据的环境中使用,除非已评估并接受风险。
- 测试前关闭不相关的私人窗口,并避免让屏幕出现凭据、支付信息或机密内容。
- 不要将该项目视为具备沙箱、权限审批或安全审计能力的系统。
- 对高风险任务优先使用隔离的测试环境和低权限账户。
- 任何部署都应由使用者自行验证其实际行为与权限边界。
ScreenPilot 使用屏幕捕获和模拟输入功能,启动 MCP 的客户端可能需要以下系统权限:
- 屏幕录制:允许读取屏幕画面。
- 辅助功能:允许执行部分鼠标和键盘控制。
- 输入监控:允许模拟按键输入。
这些权限通常需要授予启动 MCP 子进程的客户端。授权意味着应用可以获得相应系统能力,不代表每次操作都会向用户请求确认。
普通桌面操作通常不需要额外授权,但安全桌面、UAC 提示、目标程序的权限级别和窗口焦点状态都可能限制自动化行为。不要为方便操作而无差别提升权限或绕过系统安全边界。
当前文档记录的状态为:Linux X11 尚未完成项目级测试;Wayland 不受当前基于 java.awt.Robot 的实现支持。请勿将未经验证的兼容性视为安全或功能保证。
项目计划引入本地运行的小模型,对每次操作意图进行风险分类,目标是在控制响应延迟的同时识别隐私泄露、高危操作和异常行为。
| 类别 | 计划行为 |
|---|---|
| 安全(Safe) | 在没有明显风险时放行 |
| 可疑(Suspicious) | 提醒用户或要求二次确认 |
| 危险(Dangerous) | 拦截操作并返回拒绝执行 |
当前方案记录为知识蒸馏:
- 教师模型: Qwen 系列大模型,用于标注“操作意图 + OCR 上下文”样本。
- 学生模型: TinyBERT-4L-zh,计划使用 INT8 量化,以降低嵌入式部署体积。
- 运行方式: 目标是在本地执行,避免将审计上下文发送给额外的外部服务。
这些是设计目标,不是已验证的安全保证。实际安全性仍取决于数据质量、模型能力、阈值策略、上下文处理和集成实现。
README 当前记录的进度为:
- 方案设计
- 教师模型选型(Qwen)
- 学生模型选型(TinyBERT-4L-zh)
- 训练数据构造
- 蒸馏与量化
- 集成到 MCP 服务端
- 用户确认交互设计
请在功能状态发生变化时同步更新此文档和 README。审计功能完成并经过测试之前,不得宣称当前版本具备上述保护能力。
如发现可能影响用户隐私或系统安全的问题,请优先通过仓库 Issue 与维护者沟通;在公开发布可利用细节前,尽量避免扩大风险。提交报告时请提供受影响版本、复现步骤和预期/实际行为,并避免附上真实密码、令牌或私人数据。