核心用法
audit-code 是一个面向项目源代码的安全审计技能,通过调用 audit_code.py 脚本对指定路径进行静态分析。默认扫描 $PROJECT_ROOT,也可通过参数指定目标目录。
检测能力
| 类别 | 具体检查项 |
|------|-----------|
| 硬编码密钥 | AWS/GitHub/Stripe/OpenAI/Slack API密钥、令牌、私钥、连接字符串、密码 |
| 危险函数 | `eval`, `exec`, `subprocess(shell=True)`, `child_process.exec`, `pickle`, `system()`, `gets()` |
| 注入漏洞 | SQL字符串拼接/插值 |
| 依赖风险 | 已知的幻觉包名、未经验证的安装 |
| 敏感文件 | 已提交的 `.env` 文件、凭据文件 |
| 权限问题 | 过度宽松的 `chmod` 模式 |
| 数据外泄 | Base64编码+网络发送、DNS外泄、凭据文件读取 |
输出格式
生成结构化报告,按严重级别排序,包含文件路径、问题描述及可操作的修复建议。
显著优点
1. AI开发场景适配:专门针对AI辅助生成代码的安全验证需求设计,填补生成后审查空白
2. 覆盖全面:整合OWASP漏洞、密钥泄露、危险模式等多维度检查
3. 工具链集成:与 .claude/settings.json 的 PreToolUse hooks 形成检测+预警的互补体系
4. 非侵入式:disable-model-invocation: true 确保纯本地脚本执行,无外部依赖
5. 上下文隔离:fork 上下文保证审计过程不影响主会话状态
局限性与风险
1. 静态分析边界:无法检测运行时行为、逻辑漏洞或业务层安全风险
2. 规则覆盖局限:依赖内置规则集,新型攻击模式(如高级供应链投毒)可能遗漏
3. 误报可能:合法的安全测试代码、文档示例可能被标记为敏感
4. 无强制阻断:Advisory hooks 仅产生警告,需手动配置 {"decision": "block"} 才能阻止执行
5. 脚本依赖:需要 Python3 环境,且 $SKILL_DIR/scripts/audit_code.py 必须存在
适用人群
- 使用AI辅助编码的开发团队
- 需要定期安全审计的DevSecOps工程师
- 审查第三方PR/MR的维护者
- 追求"shift-left"安全实践的项目