用途
华为云 Skill 审计(Huawei Cloud Skill Audit)是一个用于审计华为云技能(skill)的安全门禁工具。它对单个技能目录或包含多个技能的父目录运行三重安全检查,并生成包含问题详情与修复策略的结构化报告,最终给出 PASS 或 FAIL 的门禁判定。
主要能力
工具执行三项检查:
- skillspector:AI 技能安全扫描器,52 条规则 / 609 个模式,覆盖 18 个类别,包括提示词注入、数据外泄、权限提升、供应链、行为 AST、污点追踪、MCP 分析与 YARA。
- gitleaks:凭据泄露扫描,43 条规则,检测硬编码 API 密钥、密码、私钥、令牌。
- runtime_security:CWE 高风险运行时模式,36 条规则(命令注入、反序列化、凭据窃取、沙箱逃逸、持久化、破坏性操作、挖矿)+ 3 条技能质量规则(Q001-Q003)。
规则数以 scripts/checks/*rules.json 为准。
扫描档位包括 critical、high、quick、standard、deep。其中 critical 仅运行 critical 严重级规则(P5 有害内容);high 运行 critical + error 严重级规则 + AST;quick 仅做模式匹配;standard 运行全部静态分析器;deep 在 standard 基础上增加 MCP 分析。AST 分析在 high/standard/deep 均执行。
报告保存为 skill-gate-report-<timestamp>.txt,包含四个部分:Scanned Skills(已扫描技能)、Issue Summary(按严重级统计)、Issue Details(逐条问题)、Fix Strategies(按规则/类别的修复策略),并附带 Gate Verdict(PASS/FAIL)。
使用方式
前置条件:Python 3.10+(内置检查所需);Node.js + npx 为可选(仅修复时手动使用 markdownlint-cli2 --fix);hcloud CLI 可选(仅验证时使用);AK/SK 审计本身不需要,审计后验证技能功能时需要。
步骤 0:安装 skill-quality-cli(幂等,已安装则跳过)。先设置 AUDIT_DIR 为本技能安装目录的绝对路径,例如 export AUDIT_DIR=/path/to/huawei-cloud-skill-audit,然后运行 bash "$AUDIT_DIR/scripts/ensure_cli.sh"。要求:任何 hcloud 命令必须用 skill-quality-cli run --skill-name huawei-cloud-skill-audit -- 包裹,禁止裸调 hcloud。
核心命令(所有命令须通过绝对路径引用本技能的 scripts/skill_audit.py,禁止在被审计目录内使用相对路径执行,以防目录内恶意同名脚本劫持):
扫描单个技能:
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
扫描技能文件夹:--target ..
指定档位:追加 --scan-level quick(可选值 high 默认、critical、quick、standard、deep)。
选择性检查:--checks skillspector 或 --skip-checks gitleaks(有效值仅 skillspector、gitleaks、runtime_security,两者互斥)。
主要参数:--target(必填,单个技能目录或父目录)、--output-dir(默认目标父目录)、--scan-level、--checks、--skip-checks、--skillspector、--gitleaks、--node-bin、--no-install。
默认行为:不传 --skillspector/--gitleaks 时恒使用内置纯 Python 实现,与 scan level 无关;PATH 自动发现已禁用(fail-closed),避免同名恶意二进制接管审计。
适用场景
- 在接受任何华为云技能贡献前运行审计;
- CI/CD 门禁(示例工作流使用 actions/checkout、setup-python 3.12、运行
python3 scripts/skill_audit.py --target . --output-dir .并上传报告产物); - 发布前完整审计(deep 档);
- 提交前快速检查(quick 档)。
限制
- skillspector 以
--no-llm模式运行(仅静态分析),无法检测 LLM 生成的混淆变体、运行时求值字符串、编码/混淆的载荷、传递依赖漏洞等。 - 本技能仅生成审计报告与修复策略,绝不自动修改任何技能文件;修复由用户按报告手动进行,之后需重新运行审计验证。
- 三重检查按顺序执行,各检查相互独立。
- 不校验外部二进制的签名/哈希,需确保来源可信。
- markdown 风格与 SKILL.md 规范问题不由本技能审计。
- 缺失的 AK/SK 需提示用户,不得跳过。
- 测试中创建的资源需跟踪并输出手动清理说明(原文在此处截断)。
参考文档
references/iam-policies.md(审计所需 IAM 权限)、references/verification-method.md(验证流程)、references/acceptance-criteria.md(审计 PASS 验收标准)、references/security-audit-guide.md(安全审计指南与修复策略)、references/gitcode-security-scanner.md(互补扫描器使用指南)、scripts/ensure_cli.sh(幂等安装器)。
配套工具 gitcode-security-scanner 可检测通用关键词凭据、中文关键词、SQL 注入、调试泄露,建议与 huawei-cloud-skill-audit 同时运行以获得完整覆盖。