FireAI 安全博客

作者 FireAI Security & Research Team · 发布于

Windsurf 在 Mac 上安全吗?用 FireAI 监控它的网络访问

Windsurf 在 Mac 上安全吗?用 FireAI 监控它的网络访问

Windsurf 是一款面向 macOS 的 AI 辅助代码编辑器,围绕一个名为 Cascade 的智能体构建。与任何内置智能体的编辑器一样,它可以读取你项目中的文件、在终端中运行命令,并通过网络调用服务。本文依据厂商自己的页面,说明 Windsurf 是什么、文档记载它能做什么,然后展示如何在 Mac 上用 FireAI 监视它的网络连接。

Windsurf 是什么,由谁开发

Windsurf 网站现在会重定向到 Devin Desktop 的产品页面,页面上写道:“Devin Desktop is the new name for Windsurf. We're building on the IDE foundation of Windsurf to introduce the command center for managing all your agents in one place.”(Devin Desktop 是 Windsurf 的新名称。我们正在 Windsurf 的 IDE 基础上构建一个集中管理所有智能体的指挥中心。)该页面提供一个“Download for MacOS”按钮,提到了 Cognition,并注明 Windsurf for JetBrains 仍可下载(devin.ai/desktop)。文档也随之迁移:原先位于 docs.windsurf.com 的页面现在重定向到 docs.devin.ai。

Cascade 能访问什么

文档将 Cascade 描述为具备 Code 和 Chat 模式、工具调用、检查点和代码检查集成的智能体助手。文档说明,Cascade 可以使用“Search, Analyze, Web Search, MCP, and the terminal”(搜索、分析、网页搜索、MCP 和终端),并且能检测你使用了哪些软件包和工具并为你安装(Cascade 文档)。网页搜索、MCP 服务器和安装软件包都意味着传出网络流量,而一条终端命令可以建立该命令本身能够建立的任何连接。

文档记载的终端命令权限模型

Windsurf 的文档为终端命令定义了四种自动执行级别(终端文档):

  • Disabled:所有命令在执行前都需要手动批准。
  • Allowlist Only:只有与允许列表条目匹配的命令才会自动执行,其余命令都需要批准。
  • Auto:智能体自行判断某条命令是否可以安全地自动执行,它认为可能有风险的命令仍需批准。
  • Turbo:除拒绝列表中的命令外,所有命令都会立即自动执行。

以星号结尾的允许列表条目会匹配所有以相同词元开头的命令,拒绝列表则阻止自动执行;如果某条命令同时匹配两者,则需要批准。这些设置决定哪些命令无需询问你即可运行。它们针对的是命令,而不是这些命令或编辑器自身服务所联系的网络目的地。

Windsurf 会联系哪些域名

此处引用的页面没有公布域名列表,本文也不作猜测。正是这一空白,使得在你自己的机器上观察连接比依赖一份列表更为实际。

用 FireAI 监视 Windsurf

FireAI 是一款在你的 Mac 上运行的 macOS 防火墙。其 Agent profile 功能可识别 19 种 AI 智能体,Windsurf 是其中之一,并根据其运行所在的 App 来识别 Windsurf。随后,FireAI 学习该 App 通常连接到哪里,并留意偏离常态的情况。它对每一种已识别的智能体都以相同方式工作,只使用元数据(主机名和字节数);FireAI 从不读取连接的有效载荷。

  1. 在最初的 3 天里,FireAI 学习 Windsurf 通常联系的目的地,并按域名分组:api.anthropic.com 会归为 anthropic.com。在此学习期内不会标记任何内容。
  2. 此后,学习所得基线之外的目的地会在 Suggestions、AI agents 卡片和 Quick Review 中被标记以供审查。向左滑动为拦截,向右滑动为“It’s fine”(没问题)。
  3. 上传峰值也会被标记:某一小时内该智能体的上传量至少是其此前最繁忙一小时的 4 倍,且不少于 25 MB。

逐步设置对 Windsurf 的监控

  1. 安装并打开 FireAI,然后像平常一样使用 Windsurf 几天,使 3 天学习期有真实的流量可供学习。
  2. 打开 Suggestions,找到 AI agents 卡片。来自智能体的标记也会出现在 Quick Review 中,即你可以滑动浏览的那叠卡片。
  3. 若要让智能体只访问它已经在用的地方,请在安全模式菜单中选择 Agent profile,它与 Home、Coffee shop、Paranoid 和 Under attack 并列。智能体完成学习后,连接到基线之外目的地的请求会被拦截,而不只是被标记。你自己的允许规则仍然优先,DNS 和你的本地网络也绝不会被拦截。
  4. 有内容被拦截时,AI agents 卡片会提供 Allow 和 Keep blocked 两个选项。Allow 会把该目的地加入基线;Keep blocked 会创建一条拦截规则,使该目的地在所有模式下都保持被拦截。
  5. 若要编写精确的规则,打开 Rules 并点按 Add rule:选择 App,然后选择允许或拦截,再选择一个网站、一个包含子域名的域名、一个 IP 地址或地址范围,以及规则的有效期。
  6. 若要了解某一个连接,打开 Threats 并使用 Investigate,或在世界地图的某条线路上选择 Investigate。该页面会显示风险评分、其背后的理由以及 FireAI 所看到的内容。

局限

  • FireAI 看不到提示、工具的内容、对 ~/.ssh 等的文件访问或技能。TLS 隐藏了有效载荷,而且 FireAI 并不在 Windsurf 内部。
  • FireAI 无法阻止提示注入。它通过标记数据离开你的 Mac 的路径并允许你拦截该路径来限制损害。
  • 在 3 天学习期内不会标记任何内容;在 Agent profile 模式下,智能体仍在学习时也不会拦截任何内容。上传峰值只会被标记,绝不会被拦截。
  • 按 App、路径或脚本名称匹配的智能体只是被标注,而未经验证:只有 Claude Code、Claude 和 Cursor 会根据其开发者的签名进行核验。
  • 很快就退出的子进程可能会被遗漏,而且子进程是按路径而非签名匹配的。
  • 如果某个 Windsurf 版本以不同于 FireAI 所识别的 App 名称运行,它就不会有 Windsurf 基线;但它仍受连接询问和按 App 规则的保护。

完整的功能说明见 Agent profile 文档页面。

本系列中的其他智能体:Claude Code、Claude 桌面 App、Cursor、ChatGPT Mac App、OpenAI Codex CLI、OpenClaw。适用于其他所有智能体的通用指南是 Mac 上的其他所有 AI 智能体。

FireAI 和 HisnLabs 在其中扮演的角色

Windsurf 会运行命令并与网络通信。FireAI 显示它连接到哪里,并允许你拦截新的目的地。

FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(FireAI Pilot 功能)——这一切都不会离开你的 Mac。

你可以阅读它背后的技术决策,或试用 FireAI 17 天:HisnLabs 出品的 FireAI。

来源