homebrew本身不扫描漏洞,但可快速安装trivy等专业工具;trivy支持扫描镜像、文件系统及cli工具依赖组件,配合codesign/spctl验证签名,结合brew update、cleanup和outdated命令持续降低风险。
homebrew 本身不直接扫描软件包漏洞,但它能帮你快速安装专业安全工具(比如 trivy),并配合系统签名机制辅助判断已装软件是否可信。真正检测漏洞需要借助第三方扫描器,而 homebrew 是通往这些工具最便捷的入口。
用 Homebrew 安装漏洞扫描工具(如 Trivy)
Trivy 是目前 macOS 上最轻量、适配性最好的开源镜像与二进制漏洞扫描器,支持扫描本地已安装的 CLI 工具(通过 --security-checks vuln 模式识别其依赖组件)。
- 执行安装命令:
brew install aquasecurity/trivy/trivy
- 扫描 Homebrew 安装的某个命令行程序(例如
curl)所含的底层库组件:trivy fs --security-checks vuln /usr/local/bin/curl
注意:Trivy 对单个可执行文件的扫描能力有限,更适合扫描由 Homebrew 安装的容器镜像或项目源码目录。但对
brew install的多数 CLI 工具(如nginx、python、git),可先用brew info <formula></formula>查看其构建依赖,再针对性检查关键组件版本是否已知存在 CVE。
结合 codesign + spctl 验证 Homebrew 软件的签名与公证状态
Homebrew 安装的软件(尤其是通过 brew install 编译安装的)通常不带 Apple 签名,但 Cask 安装的 GUI 应用(如 brew install --cask google-chrome)多数会保留开发者签名。你可以手动验证它们是否被 Apple 公证:
- 查看某个 Cask App 的签名信息:
codesign -dv /Applications/Google\ Chrome.app
- 检查是否通过公证:
spctl -a -v /Applications/Google\ Chrome.app
若返回
assessed和notarized,说明该应用已通过 Apple 安全审查;若提示rejected或no ticket found,需谨慎使用,尤其来自非官方 Tap 的 Cask。
定期更新与清理降低风险
过时的软件包更可能含未修复漏洞:
- 更新 Homebrew 自身及所有 formulae:
brew update && brew upgrade
- 清理旧版本缓存(减少潜在残留风险):
brew cleanup
- 列出长期未更新的 formula(可能已弃用或存在隐患):
brew outdated --quiet | xargs -I {} brew info {} | grep -E "(stable|revision|Updated)"
补充建议:关注官方安全通告
Homebrew 社区会在 brew.sh/security 页面发布重大安全事件(如恶意 formula 投毒)。建议订阅其 GitHub 安全公告,或运行以下命令查看近期高危修复:
brew tap-info homebrew/core | grep -i security
不复杂但容易忽略











