SuperAPI AI 工具集

security-audit

安全与审计

查看项目

更新于 10-16 00:06

技能介绍

用途:对 OpenAlgo 进行定期安全审计,建议每月(或每月两次)运行,并在任何发布前及依赖升级后追加运行。脚本只读,不轮换密钥、不修改配置、不触碰数据库;报告不含任何密钥值,仅含 pass/fail、sha256 指纹与修复指引,可安全分享用于协助排查。

运行方式:uv run --with openpyxl python .claude/skills/security-audit/audit.py,报告写入 tmp/security-audits/<YYYY-MM>/security_audit_<date>_<time>.xlsx(tmp/ 已 gitignore,仅存报告)。无 CRITICAL/HIGH 失败时退出码为 0,否则为 1,可直接接入 CI。

覆盖范围:密钥(APP_KEY/API_KEY_PEPPER 存在且高熵、非 v2.0.0.6 前已知泄露值、git 中无凭据、detect-secrets 扫描);运行时姿态(FLASK_DEBUG、CSRF、CSP、CORS、HTTPS、ngrok、速率限制等);461 条蓝图路由的会话校验/限流检查(含公开路径白名单);数据库(文件权限、Fernet 加密、peppered API key、NullPool、engine_factory、备份);缓存 TTL 与 ZMQ 失效发布者 connect;后端代码模式(eval/exec、shell=True、反序列化、原始 SQL f-string、路径穿越、SSRF、弱哈希等);前端模式(dangerouslySetInnerHTML、innerHTML、浏览器存储凭据、source map、npm audit);依赖(pip-audit 与 npm audit 两个生态);bandit 静态分析,经人工分流而非直接倾倒。

报告读取:含 Summary、Findings、Code patterns、Frontend patterns、Routes、Bandit、Manual review 等表。状态按 FAIL → ERROR → REVIEW → WARN → PASS/SKIP 处理;计数不等于评分(如 bandit 原始约 930 条,真正相关约 5 条;461 条路由中约 119 条无装饰器,多数为合理公开)。

人工检查:报告含约十二项需人工与已认证会话的项目,如静态 IP 白名单、撤销闲置 API key、端口 5000/8765/5555 不得暴露公网、webhook token 视为 bearer 凭据、不得手改已用数据库的 API_KEY_PEPPER(应使用 upgrade/rotate_pepper.py)等。

限制:威胁模型为单用户自托管,服务器访问即完全控制;脚本无法覆盖需人工判断的项目;新增合法公开路由需加入 PUBLIC_ROUTE_ALLOWLIST 并注明理由。