Homebrew
允许更新索引,安装需要批准。
Homebrew 加固可防止其他以你的用户权限运行的代码修改 /opt/homebrew。在 Read & Update 下,已识别的查询命令和 brew update 可以运行;安装和升级需要你的 Approval。该功能适用于 Apple Silicon 上的 Homebrew。加固期间不支持服务和 shell 补全。
Homebrew 加固原理
Automic Vault
以 macOS 安全机制为基础
多年来,Apple 通过 Gatekeeper、公证、恶意软件检查和敏感数据访问权限,不断加强 Mac 应用的安全性。
命令行工具仍常将凭据保存在其他以你的用户权限运行的代码能够读取的文件或辅助程序中。智能体或依赖项可能因此无需询问你,就能发布版本或修改云基础设施。
Automic Vault 基于 macOS 代码签名、Hardened Runtime 和钥匙串,保护开发者凭据,并授权受支持的命令行操作。
对于 GitHub,av harden gh 会安装我们签名并修改过的 CLI,将现有凭据迁移到 Automic Vault 管理之下。你仍然运行 gh,需要身份验证的操作则会经过它的 Authorization Gate。
了解工具加固方式读取 Issue、发布版本和显示令牌需要不同的权限。AV 会检查完整操作,再应用凭据。
| 命令 | 决策 |
|---|---|
gh issue list读取议题 | 已授权Read Only |
gh issue create创建议题 | 需要批准Remote Write |
gh auth token显示令牌 | 需要批准Secret Disclosure |
即使不会更改远程资源,披露凭据也需要单独决策。
Homebrew
Homebrew 加固可防止其他以你的用户权限运行的代码修改 /opt/homebrew。在 Read & Update 下,已识别的查询命令和 brew update 可以运行;安装和升级需要你的 Approval。该功能适用于 Apple Silicon 上的 Homebrew。加固期间不支持服务和 shell 补全。
Homebrew 加固原理AWS
普通 AWS 命令使用短期会话凭据。长期密钥从共享凭据文件中移除。AV 为每个 AWS 进程单独获取会话凭据。
AWS 加固原理Docker
在释放注册表凭据之前,AV 会验证正在运行的 Docker Desktop 进程及其签名、运行时保护、进程祖先链、参数和请求的注册表。
Docker 加固原理保护你的命令行
找出工具、依赖项和智能体能够从文件或凭据辅助程序中读取的凭据。每项 Finding 都会说明暴露情况和可采取的措施。
为 Finding 选择支持的 Hardener,再用 av doctor 验证已安装的保护措施。
查看支持的工具curl -fsSL https://www.automicvault.com/scanner.sh | bash下载基于最新发布版本源码构建的小型独立扫描器,验证签名后,在只读且无法访问网络的沙盒中运行。
干净的 Scan 仅表示支持的检查没有发现问题,并不保证整台 Mac 安全。
决定工具和智能体能做什么
将智能体的 GitHub Gate 设为 Read Only,也可以为终端选择不同的策略。AV 会验证每个 Launcher 正在运行的软件身份,再应用相应策略。
AV 不会将智能体放入沙箱,也不会阻止任意本地文件修改。
在 Write Access 下,凭据披露和使用权限更高的凭据仍需 Approval。Unknown 操作始终需要人工决定。
对于符合条件的智能体任务,可以在一个 Gate 上授予十分钟有效时间的 Write Access。通过可见的控件,你可以延长、暂停或结束授权。
设置授权范围代码签名证明身份和完整性,而非意图。任务标识符缩小临时授权范围,并不证明身份。
给智能体所需的能力
让代理准备发布说明,由审核过的脚本发布到 GitHub 并更新 CDN。Blessed Script 将审核绑定到确切内容和声明的能力。可重入脚本通过固定入口提供上下文,等待代理输入后继续执行。AV 对每次调用分别授权;修改脚本会使 Blessing 失效。
构建经过审核的工作流使用代理输出前必须验证。让 Secret Values 留在脚本执行范围内。Blessing 本身并不让代码变得可信。
实际效果
允许操作之前,先查看软件、命令、参数、工作目录和 Secret Names。
多个项目可以使用相同 Secret Name,但各自保存不同的 Project Value。AV 选择最近匹配的物理目录对应的值;没有匹配项时使用 Global Value。对于兼容的 HTTP 客户端,Secret Proxy 向应用提供临时引用,并仅向获批目的地应用真实凭据。
了解 Project Values 了解凭据代理目录选择 Values,不授予权限。同一 Secret Name 下的所有 Values 受相同策略约束。代理引用属于持有者凭据,可以使用会话已获准的访问权限。
在同一 iCloud 钥匙串账户下符合条件的 iPhone 上查看已登记 Mac 的请求。每台 Mac 保留自己的 Secrets、策略和 Authorization History,并在本机执行决定。你也可以在某台 Mac 上启用 Touch ID Approval,通过生物识别允许操作。
设置 iPhone 和 Touch ID Approval 通过 TestFlight 加入 iPhone 公测iPhone Approval 会移除 Mac 上通过鼠标和键盘允许操作的入口。请关闭 iPhone Mirroring 和 Show on Mac,或要求每台符合条件的 iPhone 使用 Face ID 或 Touch ID。中继不可用不会启用替代方式。
AV 针对以你的用户权限运行的代码,保护支持的凭据,并控制支持的 Tool 操作。包装程序不会拦截每条命令,安装软件包也不意味着它是安全的。root 或内核被攻破、任意本地破坏,以及 Target 收到 Secret 后的行为,均不在保护范围内。
阅读安全模型Authorization History 在本地保存允许和拒绝的请求。AV 在释放 Secret 前保存并验证获准 Secret Use 的记录。历史记录有容量限制,不保证防篡改,也不是完整的取证日志。
规范术语定义Mac 应用免费,并采用 Apache-2.0 许可证。可选的 iPhone Approval 需要有效订阅才能发送允许响应。拒绝请求不需要订阅。