firm-security-audit
⚠️ Contenu généré par IA — validation par un expert sécurité requise avant toute modification en production.
Purpose
Ce skill est la porte de sécurité obligatoire avant tout déploiement ou exposition
réseau d'un Gateway OpenClaw. Il comble directement les gaps critiques identifiés dans
openclaw/openclaw depuis l'extérieur du repo, sans modifier le code upstream.
Gaps couverts :
| Gap | Sévérité | Outil |
|---|
| C1 — SQL injection INLINECODE1 | CRITICAL | INLINECODE2 |
C2 — sandbox.mode: off par défaut |
CRITICAL |
openclaw_sandbox_audit |
| C3 — Session secret régénéré au restart | HIGH |
openclaw_session_config_check |
| H8 — Absence de rate limiting sur WS Gateway | HIGH |
openclaw_rate_limit_check |
| M10 — Matrix E2EE status non documenté | MEDIUM | checklist documentaire |
Tools activés
CODEBLOCK0
Séquence d'audit obligatoire
À exécuter avant chaque déploiement ou avant activation de Tailscale Funnel.
Étape 1 — Sandbox audit (C2, priorité CRITIQUE)
CODEBLOCK1
Attendu : severity: OK avec sandbox_mode: non-main ou all
Si CRITICAL : appliquer le fix_snippet fourni avant de continuer
Étape 2 — SQL injection scan (C1)
CODEBLOCK2
Attendu : critical_count: 0, high_count: 0
Si CRITICAL ou HIGH : appliquer remediation_by_severity avant déploiement
Étape 3 — Session secret check (C3)
CODEBLOCK3
Attendu : session_secret_found: true
Si HIGH : appliquer fix_docker ou fix_env fourni
Étape 4 — Rate limiting check (H8)
CODEBLOCK4
Attendu : rate_limiter_detected: true OU funnel_active: false
Si CRITICAL (funnel actif sans rate limiter) : appliquer fix_nginx ou fix_caddy immédiatement
Étape 5 — Alerte si CRITICAL (automatique)
Si un des audits retourne severity: CRITICAL, dispatcher automatiquement via :
CODEBLOCK5
Checklist Matrix E2EE (M10)
Vérification documentaire manuelle (pas d'outil disponible — trop repo-spécifique) :
- - [ ] Le
CONTRIBUTING.md OpenClaw mentionne-t-il le statut E2EE Matrix ? - [ ] Les utilisateurs Matrix privacy-sensitive sont-ils informés de l'absence d'E2EE ?
- [ ] Un ADR (
firm_adr_generate) documente-t-il la décision E2EE Matrix ?
Templates de remédiation rapide
C2 — Sandbox fix (ajout dans config.yaml)
CODEBLOCK6
C3 — Session secret (docker-compose.yml)
CODEBLOCK7
H8 — Rate limiting Nginx
CODEBLOCK8
Escalade
| Résultat | Action |
|---|
| Tout OK | Déploiement autorisé — log de l'audit dans INLINECODE23 |
| CRITICAL sandbox ou SQL |
Bloquer le déploiement — fix obligatoire avant push |
| CRITICAL rate limit + funnel | Désactiver Funnel et appliquer Nginx/Caddy immédiatement |
| HIGH session secret | Appliquer fix + redémarrer le container avec le secret persistant |
Intégration CI/CD
Ajouter dans le workflow GitHub Actions :
CODEBLOCK9
OpenClaw gaps : C1 (#29951 SQL injection), C2 (sandbox off), C3 (#29955 session secret), H8 (no rate limit)
💎 Support
Si ce skill vous est utile, vous pouvez soutenir le développement :
Dogecoin : INLINECODE24
firm-security-audit
⚠️ AI生成内容——在生产环境进行任何修改前需经安全专家验证。
目的
此技能是任何OpenClaw网关部署或网络暴露前的强制性安全关口。它直接弥补了openclaw/openclaw仓库外部识别的关键缺口,无需修改上游代码。
覆盖的缺口:
| 缺口 | 严重程度 | 工具 |
|---|
| C1 — SQL注入 /api/metrics/database | 严重 | openclawsecurityscan |
| C2 — 默认sandbox.mode: off |
严重 | openclaw
sandboxaudit |
| C3 — 重启时重新生成会话密钥 | 高 | openclaw
sessionconfig_check |
| H8 — WS网关缺少速率限制 | 高 | openclaw
ratelimit_check |
| M10 — Matrix E2EE状态未记录 | 中 | 文档检查清单 |
已激活的工具
openclawsecurityscan — SQL注入检测 (C1)
openclawsandboxaudit — 沙箱配置验证 (C2)
openclawsessionconfig_check — 会话密钥持久性检查 (C3)
openclawratelimit_check — 速率限制器验证 (H8)
firmexportslack_digest — 发现严重问题时通知团队
强制审计序列
每次部署前或激活Tailscale Funnel前执行。
步骤1 — 沙箱审计 (C2,严重优先级)
json
{
tool: openclawsandboxaudit,
args: {
config_path: /path/to/.openclaw/config.yaml
}
}
预期结果: severity: OK 且 sandbox_mode: non-main 或 all
如为严重: 在继续前应用提供的fix_snippet
步骤2 — SQL注入扫描 (C1)
json
{
tool: openclawsecurityscan,
args: {
target_path: /path/to/openclaw/src/api,
endpoint: /api/metrics/database,
scan_depth: 4
}
}
预期结果: criticalcount: 0,highcount: 0
如为严重或高: 在部署前应用remediationbyseverity
步骤3 — 会话密钥检查 (C3)
json
{
tool: openclawsessionconfig_check,
args: {
composefilepath: /path/to/docker-compose.yml,
envfilepath: /path/to/.env
}
}
预期结果: sessionsecretfound: true
如为高: 应用提供的fixdocker或fixenv
步骤4 — 速率限制检查 (H8)
json
{
tool: openclawratelimit_check,
args: {
gatewayconfigpath: /path/to/.openclaw/config.yaml,
check_funnel: true
}
}
预期结果: ratelimiterdetected: true 或 funnel_active: false
如为严重(funnel激活但无速率限制): 立即应用fixnginx或fixcaddy
步骤5 — 严重警报(自动)
如果任一审计返回severity: CRITICAL,自动通过以下方式发送:
json
{
tool: firmexportslack_digest,
args: {
objective: 安全审计 — 发现严重问题,
content: <审计结果>,
channel: #security-alerts
}
}
Matrix E2EE检查清单 (M10)
手动文档验证(无可用工具——过于仓库特定):
- - [ ] OpenClaw的CONTRIBUTING.md是否提及Matrix E2EE状态?
- [ ] 隐私敏感的Matrix用户是否被告知缺少E2EE?
- [ ] 是否有ADR(firmadrgenerate)记录了Matrix E2EE决策?
快速修复模板
C2 — 沙箱修复(在config.yaml中添加)
yaml
agents:
defaults:
sandbox:
mode: non-main # ← 为非main会话启用Docker隔离
sessions:
main:
sandbox:
mode: off # main保留主机访问权限(有意为之)
C3 — 会话密钥(docker-compose.yml)
yaml
services:
openclaw:
environment:
SESSIONSECRET: ${SESSIONSECRET:?SESSION_SECRET env var required}
生成:openssl rand -base64 48 > /etc/openclaw/session.secret
H8 — Nginx速率限制
nginx
limitreqzone $binaryremoteaddr zone=openclaw:10m rate=30r/m;
server {
location /ws {
limit_req zone=openclaw burst=10 nodelay;
proxy_pass http://127.0.0.1:18789;
proxyhttpversion 1.1;
proxysetheader Upgrade $http_upgrade;
proxysetheader Connection upgrade;
}
}
升级处理
| 结果 | 操作 |
|---|
| 全部正常 | 允许部署 — 审计日志存入docs/security-audits/ |
| 沙箱或SQL严重 |
阻止部署 — 推送前必须修复 |
| 速率限制+funnel严重 | 立即禁用Funnel并应用Nginx/Caddy修复 |
| 会话密钥高 | 应用修复并重启容器,使用持久化密钥 |
CI/CD集成
在GitHub Actions工作流中添加:
yaml
- - name: 安全审计 (firm-security-audit)
run: |
# 每次部署前从CTO或工程代理执行
openclaw skill run firm-security-audit \
--config $OPENCLAW
CONFIGPATH \
--fail-on CRITICAL,HIGH
OpenClaw缺口:C1 (#29951 SQL注入),C2 (沙箱关闭),C3 (#29955 会话密钥),H8 (无速率限制)
💎 支持
如果此技能对您有帮助,您可以支持开发:
狗狗币:DQBggqFNWsRNTPb6kkiwppnMo1Hm8edfWq