Skip to content

Security: Xcodeeee/screenpilot-mcp

Security

docs/SECURITY.md

ScreenPilot MCP 安全说明

本文说明当前版本的风险、平台权限边界,以及安全审计机制的设计目标。设计规划不代表功能已经实现。

当前版本的风险

当前版本尚未启用安全审计机制,也没有操作前权限确认、操作拦截、敏感信息过滤或行为日志。因此:

  • 调用 capture_screen 时,整块屏幕可能被截取并传递给 MCP 客户端及其所连接的模型;画面可能包含密码、私人聊天、邮件、银行页面或其他敏感信息。
  • click_at、double_click_at、right_click_at、scroll_at、drag、type_text 和 key_press 可触发实际的鼠标或键盘操作。
  • 目前没有内建机制保证高风险操作会被识别或阻止。

使用建议:

  1. 不要在含有敏感信息、重要账户或生产数据的环境中使用,除非已评估并接受风险。
  2. 测试前关闭不相关的私人窗口,并避免让屏幕出现凭据、支付信息或机密内容。
  3. 不要将该项目视为具备沙箱、权限审批或安全审计能力的系统。
  4. 对高风险任务优先使用隔离的测试环境和低权限账户。
  5. 任何部署都应由使用者自行验证其实际行为与权限边界。

平台权限

macOS

ScreenPilot 使用屏幕捕获和模拟输入功能,启动 MCP 的客户端可能需要以下系统权限:

  • 屏幕录制:允许读取屏幕画面。
  • 辅助功能:允许执行部分鼠标和键盘控制。
  • 输入监控:允许模拟按键输入。

这些权限通常需要授予启动 MCP 子进程的客户端。授权意味着应用可以获得相应系统能力,不代表每次操作都会向用户请求确认。

Windows

普通桌面操作通常不需要额外授权,但安全桌面、UAC 提示、目标程序的权限级别和窗口焦点状态都可能限制自动化行为。不要为方便操作而无差别提升权限或绕过系统安全边界。

Linux

当前文档记录的状态为:Linux X11 尚未完成项目级测试;Wayland 不受当前基于 java.awt.Robot 的实现支持。请勿将未经验证的兼容性视为安全或功能保证。

安全审计设计(开发中)

项目计划引入本地运行的小模型,对每次操作意图进行风险分类,目标是在控制响应延迟的同时识别隐私泄露、高危操作和异常行为。

计划中的风险类别

类别 计划行为
安全(Safe) 在没有明显风险时放行
可疑(Suspicious) 提醒用户或要求二次确认
危险(Dangerous) 拦截操作并返回拒绝执行

计划中的模型路线

当前方案记录为知识蒸馏:

  • 教师模型: Qwen 系列大模型,用于标注“操作意图 + OCR 上下文”样本。
  • 学生模型: TinyBERT-4L-zh,计划使用 INT8 量化,以降低嵌入式部署体积。
  • 运行方式: 目标是在本地执行,避免将审计上下文发送给额外的外部服务。

这些是设计目标,不是已验证的安全保证。实际安全性仍取决于数据质量、模型能力、阈值策略、上下文处理和集成实现。

进度记录

README 当前记录的进度为:

  • 方案设计
  • 教师模型选型(Qwen)
  • 学生模型选型(TinyBERT-4L-zh)
  • 训练数据构造
  • 蒸馏与量化
  • 集成到 MCP 服务端
  • 用户确认交互设计

请在功能状态发生变化时同步更新此文档和 README。审计功能完成并经过测试之前,不得宣称当前版本具备上述保护能力。

报告安全问题

如发现可能影响用户隐私或系统安全的问题,请优先通过仓库 Issue 与维护者沟通;在公开发布可利用细节前,尽量避免扩大风险。提交报告时请提供受影响版本、复现步骤和预期/实际行为,并避免附上真实密码、令牌或私人数据。

There aren't any published security advisories