SuperAPI AI 工具集

security-auditor

安全与审计

查看项目

更新于 10-15 13:48

技能介绍

Security Auditor 是一款面向代码库的综合安全扫描工具,用于在漏洞演变为安全事件之前识别问题,并强调可执行、可落地的修复建议。

一、用途 适用于以下场景:部署前的安全审计;依赖漏洞扫描;密钥/凭据泄露检测;代码级 SAST(静态应用安全测试);面向相关方的安全态势报告;OWASP Top 10 合规检查;PR 提交前的安全审查。 不适用于:运行时安全(WAF、限流等,应使用基础设施工具);网络安全/防火墙规则(应使用云或 DevOps 类技能);SOC2/HIPAA/PCI 合规(需要法律与组织流程);渗透测试执行(本工具是检测,不是漏洞利用)。

二、快速开始 完整安全审计:

Run comprehensive scan

./scripts/full-audit.sh /path/to/project 输出为 security-report.json 加摘要。 快速检查:

Dependency vulnerabilities only

npm audit --json > deps-audit.json

Secret detection only

./scripts/detect-secrets.sh /path/to/project

OWASP check specific file

./scripts/owasp-check.py /path/to/file.js

三、主要能力

  1. 依赖扫描 支持 npm(npm audit --json,级别 critical、high、moderate、low)、yarn(yarn audit --json,同 npm)、pip(pip-audit --format json,critical、high、medium、low)、cargo(cargo audit --json)。 决策树:发现 critical → 阻止部署并立即修复,检查是否有补丁可执行 npm audit fix --force;否则发现 high → 在当前迭代内修复,若延期需记录;否则 low/moderate → 跟踪,在维护期修复。

  2. 密钥检测 高风险模式包括:API key(在 "key"、"api"、"secret" 附近出现长度 20 以上的 [A-Za-z0-9_] 字符串);AWS 凭据(AKIA 加 16 位大写字母数字);私钥(-----BEGIN (RSA|EC|OPENSSH) PRIVATE KEY-----);JWT(eyJ 开头的三段式 token);连接字符串(://[^:]+:[^@]+@)。 熵分析:长度大于 20 的字符串香农熵大于 4.5 视为可疑;源码中的 Base64 编码块需进一步排查。 误报处理:位于测试文件则降低严重级别并记录;位于示例/文档则确认是否为占位符;高熵且靠近 "password"/"secret" 则高置信度;位于 .env.example 且为占位值可接受。

  3. OWASP Top 10 静态分析 A01 访问控制失效:路由缺少鉴权检查。A02 加密失败:弱算法(密码使用 MD5、SHA1)。A03 注入:未参数化查询、eval()、innerHTML。A04 不安全设计:硬编码凭据、缺少限流。A05 安全配置错误:生产环境开启调试模式、默认凭据。A06 易受攻击组件:依赖中存在已知 CVE。A07 认证失败:弱密码策略、会话问题。A08 完整性失败:未签名更新、不可信反序列化。A09 日志失败:日志含敏感数据、缺少审计追踪。A10 SSRF:fetch/request 使用未校验的 URL 输入。

  4. 语言特定检查 JavaScript/TypeScript:eval()、new Function()(代码注入);innerHTML、outerHTML(XSS);document.write()(基于 DOM 的 XSS);child_process.exec() 传入用户输入(命令注入);无超时正则(ReDoS)。 Python:对不可信数据使用 pickle.loads()(任意代码执行);yaml.load() 未使用 Loader=SafeLoader(代码注入);subprocess.shell=True(命令注入);eval()、exec()(代码注入);SQL 字符串拼接(SQL 注入)。 SQL:查询中字符串拼接(SQL 注入);LIKE '%' + 输入 + '%'(通配符注入);缺少参数化(严重漏洞)。

四、反模式 安全靠隐蔽:以为硬编码密码无人发现——源码中的密钥最终总会泄露;应改用环境变量、密钥管理器,禁止硬编码。审计疲劳:500 条全是 medium 导致团队忽略——应按可利用性排序,先处理 critical/high。不理解就修复:不经审查执行 npm audit fix --force——可能引入破坏性变更且未解决根因;应逐项审查、理解漏洞、修复后测试。一次性审计:认为“去年审计过”——CVE 每日新增、代码持续变化;应集成 CI/CD,至少每周自动扫描。

五、报告格式 报告为 JSON,含 summary(critical、high、medium、low、informational 计数)与 findings 数组。每条发现包含 id、severity、category(如 A03:Injection)、title、location、description、evidence、remediation、references,另有 recommendations 数组。示例中给出 SQL 注入发现的完整结构(位置 src/api/users.js:45,证据为模板字符串拼接查询,修复建议为参数化查询 db.query('SELECT * FROM users WHERE name = $1', [input]))。

六、CI/CD 集成 提供 GitHub Actions 示例:checkout 后运行 npm audit --json 输出、detect-secrets.sh 输出、generate-report.py 汇总,并在 critical 数量大于 0 时使任务失败退出。

七、脚本 scripts/ 目录包含:full-audit.sh(综合扫描)、detect-secrets.sh(高熵字符串与模式检测)、owasp-check.py(OWASP Top 10 静态分析)、generate-report.py(合并发现为统一报告)。

八、专家与新手差异 新手:发布前只跑一次审计;只看工具输出;要么全修要么不修;只用单个扫描器;忽略误报。专家:每次提交都集成 CI/CD;理解漏洞上下文;按可利用性分级;叠加多个工具;调优检测规则。

九、成功指标 生产前 critical/high 为 0;critical 平均修复时间小于 24 小时;误报率低于 10%;扫描覆盖 100% 可部署代码。

十、参考文件 references/owasp-top-10-2024.md(OWASP 详细指引)、references/secret-patterns.md(完整正则模式)、references/remediation-playbook.md(按漏洞类型的修复指引)、references/ci-cd-templates.md(集成示例)、scripts/(可用的安全扫描脚本)。

检测范围:依赖 CVE、密钥泄露、注入漏洞、OWASP 违规、安全配置错误。可配合使用:site-reliability-engineer(部署门禁)、code-review(PR 安全检查)。