SuperAPI AI 工具集

security-audit

安全与审计

查看项目

更新于 10-15 13:53

技能介绍

用途

Security Audit 是一个框架无关(framework-agnostic)的安全审计技能,用于对代码仓库执行全面的安全审计。它在运行时自动检测项目类型,并据此调整安全检查内容,最终生成带量化评分的 Markdown 安全报告。

主要能力

  • 项目类型自动检测:根据清单文件识别项目类型,包括 Flutter/Dart(pubspec.yaml)、NestJS(package.json 含 @nestjs/core)、Node.js(package.json)、Go(go.mod)、Rust(Cargo.toml)、Python(pyproject.toml 或 requirements.txt)、Java/Kotlin Gradle(build.gradle/build.gradle.kts)、Java/Kotlin Maven(pom.xml)、Swift SPM(Package.swift)、Swift/ObjC CocoaPods(Podfile)、.NET(*.sln 或 *.csproj),无匹配时回退为通用项目。存在多个清单时按既定优先级只审计第一个匹配项。
  • 敏感文件分析:识别敏感文件,检查各项目目录的 .gitignore 覆盖情况,检测暴露的配置文件。
  • 源码密钥扫描:在源码中搜索危险密钥模式、硬编码凭据、API 密钥与令牌。
  • Gitleaks 扫描(可选):使用 Gitleaks 扫描工作目录与 git 历史中的密钥;未安装时跳过并给出安装建议。
  • 依赖漏洞审计:运行包管理器原生的漏洞扫描(如 npm audit、pub outdated、pip audit 等)。
  • 依赖老化审计:识别过时与已弃用的依赖。
  • Trivy 扫描(可选):对依赖与配置运行 Trivy 文件系统扫描;未安装时优雅跳过。
  • SAST 分析:按项目类型对 OWASP 漏洞模式(SQL 注入、XSS、路径遍历、eval/代码注入)执行基础 grep 式检查;检测到 Firebase Auth 时额外进行 Firebase Auth 滥用检查(App Check 强制与短信区域策略,条件允许时通过 gcloud 实时验证)。
  • 量化安全评分:5 个评分区按加权规则计算 0-100 分,并通过加权公式得出总分,映射为安全态势标签:Strong(85-100)、Fair(70-84)、Weak(50-69)、Critical(0-49)。
  • 基于证据的报告:报告包含文件路径、行号、严重级别分类与量化评分。

使用方式

该技能通过顺序、模块化的规则执行,共 10 个分析规则加 1 个格式强制规则:

  1. 工具检测与配置(references/tool-installer.md,强制)
  2. 敏感文件分析(references/file-analysis.md)
  3. 源码密钥扫描(references/secret-patterns.md)
  4. Gitleaks 扫描(references/gitleaks.md,可选)
  5. 依赖漏洞审计(references/dependency-audit.md)
  6. 依赖老化审计(references/dependency-age.md)
  7. Trivy 漏洞扫描(references/trivy.md,可选)
  8. SAST 分析(references/sast.md)
  9. 生成安全报告(references/report-generator.md)
  10. 校验并导出安全报告(references/report-format-enforcer.md)

报告保存路径为 ./reports/<YYYY-MM-DD>-<project>-security-audit.md,其中项目名由 git 仓库名 slug 化得到。报告文件名固定为 <YYYY-MM-DD>-<project>-security-audit.md。

导出命令示例:

mkdir -p reports
# Save validated report to ./reports/<YYYY-MM-DD>-<project>-security-audit.md

报告包含 12 个章节:安全评分明细(| Area | Score | 表格,含 5 个区域行、Overall Score 行与 Posture)、执行摘要、5 个评分详情区(按分数升序排列,最低分在前:敏感文件保护 25%、密钥检测 30%、依赖安全 20%、供应链完整性 10%、安全自动化与 CI/CD 15%)、按严重级别汇总的发现(HIGH/MEDIUM/LOW)、修复优先级矩阵、项目检测结果、证据索引附录、评分方法附录、报告元数据。

报告元数据块为强制内容,位于报告末尾,包含扫描日期、项目路径、项目类型、所用工具、发现总数、扫描时长、生成工具(Somnio CLI v3.2.8)、技能名与 Somnio AI Tools 链接。

该技能支持两种执行路径:CLI 路径(somnio run,顺序执行步骤)与会话内子代理调度路径(通过 Agent 工具分波次调度)。子代理调度入口为 agents/orchestrator.md,按依赖顺序分波:Wave 0 顺序执行 tool-installer;Wave 1 并行执行 file-analyzer、secret-scanner、sast-analyzer;Wave 2 顺序执行 dependency-analyzer;Wave 3 顺序执行 report-writer。模型层级为提供方中立的符号名(cheap/mid/frontier),安装时由 CLI 解析为具体模型 ID。

适用场景

  • 需要对任意技术栈的代码仓库执行统一安全审计。
  • 需要量化评分与跨审计对比的安全态势评估。
  • 需要检测敏感文件暴露、硬编码密钥、依赖漏洞与过时依赖。
  • 可作为独立审计运行,也可在健康审计(health audit)之后运行。

限制

  • 存在多个清单文件时只审计第一个匹配项;多技术栈 monorepo 需从子目录运行或启用多技术检测(如已启用)。
  • Gitleaks 与 Trivy 为可选步骤,未安装时跳过并仅给出安装建议。
  • SAST 发现不影响主评分区分数,仅作为 LOW/MEDIUM 严重级别进入汇总发现。
  • 明确不推荐 CODEOWNERS 或 SECURITY.md 文件,也不推荐运维文档(runbook、部署流程、监控),仅聚焦技术安全。
  • 强制步骤失败时立即停止执行;非关键问题继续并给出警告。
  • 无法由仓库证据证明的内容一律报告为 "Not found",不进行假设或编造。
  • 报告缺少计算分数时视为无效。