执行摘要
代理 AI 工具,如 OpenClaw(之前称为 Clawdbot 和 Moltbot)代表了组织面临的一类新型威胁;模糊了合法用户活动与对企业系统的未授权自动访问之间的界限。
员工可能会被 OpenClaw 的便利性和个人助手功能(例如电子邮件访问、日历调度和消息传递)所吸引,但可能没有充分认识到向企业数据授予完全不受管制访问权限所涉及的风险。如果没有部署先进的监控和分析,IT 和安全团队可能会发现难以区分合法的人工行为和代表用户执行操作的 OpenClaw 代理之间的差异,两者都通过相同的已认证 API 和会话访问企业资源。
本公告介绍了如何一起使用 Jamf Security Cloud、Jamf Protect 和 Jamf Pro 在受管 macOS 设备上针对未授权 OpenClaw 使用情况实施分层防御。这些控制措施包括网络级阻止、二进制执行防止、端点检测分析、SIEM 遥测、基于库存的检测和自动移除。
任何单一控制措施本身都不够充分。Jamf 建议结合部署以下几种方法以实现深度防御。
Jamf Security Cloud - 内容过滤和阻止
Jamf Security Cloud 包含基于类别的内容过滤和网络阻止功能,允许组织监控和控制应用和网站类别的访问。
以下与 OpenClaw 相关的常见域现已包含在**"其他生成式 AI"**内容过滤类别中:
- openclaw.ai
- clawhub.ai
- open-claw.me
- molt.bot
- openclaw.bot
希望阻止访问 OpenClaw 和此类别中其他工具的组织可以在 Jamf Security Cloud 的"策略"部分内配置内容过滤策略:

注意
阻止此类别将缓解来自 OpenClaw 网站的最流行的单行安装方法,但高级用户仍然可以使用 GitHub 存储库中的说明直接通过 npm 或其他包管理器进行安装。因此,请结合本文列出的其他可见性和修复控制措施一起考虑此控制和阻止方法。
Jamf Protect - 自定义防止列表(OpenClaw 伴侣应用)
OpenClaw 支持 macOS 的可选伴侣应用,该应用向本地或远程 OpenClaw 网关实例公开其他基于平台的工具,例如摄像头和屏幕录制访问。由于此伴侣应用是一个已签名的 macOS 二进制文件,您可以使用 Jamf Protect 中的自定义防止列表来阻止其在受管设备上的运行时执行。

要实现此阻止,在 Jamf Protect 门户内,导航到威胁防止 > 自定义防止列表,然后单击创建防止列表。为新列表提供名称,例如 "阻止 OpenClaw 伴侣应用",并选择 "签名信息" 作为防止类型。然后,选择以下防止方法之一(任一方法都适用于阻止当前应用版本):
- Team ID:
Y5PE65HELJ - Signing ID:
bot.molt.mac
这将导致伴侣应用在启动时被阻止,用户看到主动阻止提示:

注意
"威胁防止"下的自定义防止列表将阻止 OpenClaw 伴侣应用的运行时执行,但不会阻止 OpenClaw 网关二进制文件和 LaunchAgents,因为它们缺少必要的签名标识符。此防止方法有助于确保用户不会在设备上安装和运行伴侣应用,但在阻止 macOS 上的 OpenClaw 方面并不完整。
Jamf Protect - 自定义分析
Jamf 已发布一系列 Jamf Protect 自定义分析,以支持希望在其环境中检测 OpenClaw 的安装、持久性和调用的组织。这些自定义分析使用 Jamf Protect 的基于过滤器的分析引擎执行文件系统和流程检测,以检测设备上的 OpenClaw 工件并通过 Jamf Protect 警报报告。
客户可以实施所有以下分析或根据其要求选择子集。这些分析也可作为 YAML 定义在 Jamf Protect 资源 GitHub 存储库中获得。
如何从过滤器文本创建自定义分析
- 在 Jamf Protect 门户中,导航到配置 > 分析并单击创建
- 将传感器类型设置为下面为每个分析指定的值(文件系统或流程)
- 在分析过滤器部分,切换到过滤器文本视图
- 粘贴下面提供的内联过滤器表达式
- 配置严重性和任何所需的分析操作(例如将受影响的设备添加到 Jamf Pro 智能组)

OpenClaw 安装
| 字段 | 值 |
|---|---|
| 名称 | OpenClawInstallation |
| 传感器类型 | 流程事件 |
| 描述 | 检测来自 openclaw.ai 的 OpenClaw 安装命令。 |
过滤器(文本视图)内容:
$event.type == 1 AND
$event.process.args.@count > 1 AND
(
(
(ANY $event.process.args CONTAINS[c] "npm") AND
(ANY $event.process.args BEGINSWITH "openclaw") AND
(
(ANY $event.process.args == "i") OR
(ANY $event.process.args == "install") OR
(ANY $event.process.args == "add") OR
(ANY $event.process.args == "in") OR
(ANY $event.process.args == "ins") OR
(ANY $event.process.args == "inst") OR
(ANY $event.process.args == "insta") OR
(ANY $event.process.args == "instal") OR
(ANY $event.process.args == "isnt") OR
(ANY $event.process.args == "isnta") OR
(ANY $event.process.args == "isntal") OR
(ANY $event.process.args == "isntall")
) AND
$event.process.path.lastPathComponent == "node"
) OR
(
(ANY $event.process.args BEGINSWITH "openclaw") AND
(ANY $event.process.args == "add") AND
$event.process.path.lastPathComponent == "pnpm"
)
)
ClawHub 技能安装
| 字段 | 值 |
|---|---|
| 名称 | ClawHubSkillsInstall |
| 传感器类型 | 流程事件 |
| 描述 | 检测通过 npx、pnpm 或 bun 命令从 ClawHub 安装的技能。 |
过滤器(文本视图)内容:
$event.type == 1 AND
$event.process.args.@count > 1 AND
(
(
(
(
(ANY $event.process.args CONTAINS[c] "/npx") OR
(ANY $event.process.args CONTAINS[c] "/pnpm")
) AND
(ANY $event.process.args BEGINSWITH[c] "clawhub")
) OR
(
(ANY $event.process.args CONTAINS[c] "/bunx-") AND
(ANY $event.process.args CONTAINS[c] "/clawhub")
)
) AND
(ANY $event.process.args == "install") AND
$event.process.path.lastPathComponent == "node"
)
OpenClaw 入门
| 字段 | 值 |
|---|---|
| 名称 | OpenClawOnboard |
| 传感器类型 | 流程事件 |
| 描述 | 检测 OpenClaw 入门命令以启动设置。 |
过滤器(文本视图)内容:
$event.type == 1 AND
$event.process.args.@count > 1 AND
(
(ANY $event.process.args CONTAINS[c] "openclaw") AND
(ANY $event.process.args == "onboard")
) AND
$event.process.parent.path.lastPathComponent == "node"
OpenClaw 网关持久性
| 字段 | 值 |
|---|---|
| 名称 | OpenClawGatewayPersistence |
| 传感器类型 | 文件系统事件 |
| 描述 | 检测 OpenClaw 的网关持久性 (~/Library/LaunchAgents/ai.openclaw.gateway.plist)。 |
过滤器(文本视图)内容:
("LaunchDaemon" IN $tags OR "LaunchAgent" IN $tags) AND
$event.path.lastPathComponent BEGINSWITH "ai.openclaw."
OpenClaw 目录已创建
| 字段 | 值 |
|---|---|
| 名称 | OpenClawDirectoryCreated |
| 传感器类型 | 文件系统事件 |
| 描述 | 检测在设置期间创建的 OpenClaw 隐藏工作区目录 (.openclaw)。 |
过滤器(文本视图)内容:
$event.path MATCHES "\\/Users\\/[^\\/]+\\/\\.openclaw" AND
$event.isNewDirectory == 1
Jamf Protect - 高级威胁控制
源自在 macOS 上使用 OpenClaw 的潜在攻击技术之一涉及试图哄骗用户在其设备上安装恶意软件和信息窃取程序的恶意技能。
Jamf Protect 的高级威胁控制旨在在检测到不安全或恶意活动时进行干预,并针对与这些恶意技能相关的恶意软件中直接观察到的常见技术提供保护。
组织可以在 Jamf Protect 中启用高级威胁控制和端点威胁防止,并根据其风险承受能力和操作要求选择阻止并报告或仅报告。
Jamf Protect - 遥测
客户可以使用 Jamf Protect macOS 遥测来收集系统和用户事件日志数据,并将其发送到他们选择的 SIEM 或存储位置。
Jamf 威胁实验室团队创建了一系列 Sigma 规则,用于常见的 OpenClaw 安装和调用命令,可以导入并用于许多 SIEM 解决方案:
存储库: jamf/jamfprotect — agentic_detections(遥测)
至少,必须将设备配置为**"应用程序和流程"**日志收集作为遥测集的一部分以利用这些基于流程的 exec 检测。

Jamf Pro - 扩展属性检测脚本
Jamf 已发布两个扩展属性脚本用于基于库存的 OpenClaw 检测:
- OpenClaw 检测扩展属性 - 此扩展属性脚本将检测 OpenClaw 的各种形式和工件,包括网站和 npm 安装、网关启动代理以及设备上的 Docker 容器
- OpenClaw 已安装技能检测扩展属性 - 此扩展属性脚本将列出设备上 OpenClaw 工作区和会话中当前安装的任何技能
技能是基于 markdown 的文件,为 LLM/代理提供有关如何执行特定任务(例如访问 API 或代表用户使用应用程序)的说明。允许 OpenClaw 的组织可能希望分别报告正在使用的技能,或可能希望分别审计特定恶意技能。
每个脚本都可以在 Jamf Pro 中添加为计算机扩展属性,以将 OpenClaw 及其已安装技能的存在作为标准库存更新策略的一部分进行报告。
检测详情包括检测到 OpenClaw 的用户和工作区、当前网关运行状态以及当前安装或使用的技能列表:

对于希望追求自动修复的客户,可以使用通过这些扩展属性进行的检测作为Jamf Pro 智能组谓词的基础,以在设备上触发自动修复策略。
Jamf Pro - 通过策略进行修复和移除
一旦在设备上检测到 OpenClaw,组织可能希望实施手动或自动修复和移除。Jamf Pro 运行基于策略的脚本的能力提供了修复方式的灵活性,并可与 Jamf Pro 扩展属性或 Jamf Protect 自定义分析(通过分析修复)集成,以执行具有清晰审计和日志记录跟踪的自动基于策略的移除。
Jamf 已编写了一个OpenClaw 移除脚本,该脚本能够移除 macOS 上 OpenClaw 的各种形式的安装。目前,这包括移除:
- 使用来自 openclaw.ai 的基于
curl的单行安装命令安装的二进制文件 - 使用 npm、pnpm 和 bun 包管理器安装的二进制文件
- macOS OpenClaw 伴侣应用
- 匹配
openclaw命名的 Docker 镜像和容器 - 网关服务和 LaunchAgent
- 每个用户的
.openclaw工作/工作区目录
为了使用 Jamf Pro 配置 OpenClaw 的修复和移除,您可以创建新脚本和策略,并将其范围分配给计算机,可以手动分配,也可以通过基于上面列出的检测机制之一的成员资格的智能组分配。
注意
openclaw_removal.sh 脚本已创建并提供以尽最大努力移除截至本文写作时当前 OpenClaw 迭代中最常见的形式及其工件。它在移除所有形式的 OpenClaw(例如基于源的安装)或用户故意隐蔽了 OpenClaw 存在的安装(例如更改二进制或目录名称等)方面并不详尽。应谨慎对待这些工具的演进,以确保使用其他检测方法正确验证移除。
注意
一旦 OpenClaw 从系统中检测到并移除,可能需要其他移除后修复步骤。考虑您是否需要为任何连接的服务(例如 Google/Gmail、Microsoft、GitHub)或任何企业 LLM 或推理提供商(Anthropic、OpenAI 等)撤销令牌或会话。
参考资料和进一步阅读
Jamf 文档
- 内容过滤 — 可用网站类别
- 配置内容过滤策略
- 自定义防止列表
- 创建分析
- 高级威胁控制
- 端点威胁防止
- 遥测
- 创建遥测集
- 计算机扩展属性 (Jamf Pro)
- 智能组 (Jamf Pro)
- 脚本 (Jamf Pro)