mcpField
S
security-auditor

security-auditor

github.com/curiositech安全257230 次安装3 天前更新
代码仓库

关于 security-auditor

security-auditor 是面向开发团队的代码库安全扫描技能,适用于发布准备和变更审查。它结合依赖项、机密信息和静态检查,并提供发现项排序与修复指引。

主要功能

  1. 01扫描依赖项漏洞
  2. 02检测机密信息和凭据
  3. 03开展 OWASP 静态检查
  4. 04执行语言专项漏洞检查
  5. 05生成统一安全报告
  6. 06提供分级和修复指引

适用场景

  1. 01部署前审计项目
  2. 02检查依赖项中的已知漏洞
  3. 03查找代码库中的机密信息
  4. 04审查拉取请求中的安全问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill security-auditor

安装后在 Claude Code 中输入/security-auditor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
owasp-top-10-2024.md
scripts/
detect-secrets.sh
full-audit.sh
owasp-check.py

详细介绍

安全审计工具

为代码库提供全面的安全扫描。在漏洞演变为安全事件之前将其识别出来。重点提供可执行的发现结果和修复指导。

适用场景

适用于:

  • 部署前安全审计
  • 依赖项漏洞扫描
  • 密钥/凭据泄露检测
  • 代码级 SAST(静态应用安全测试)
  • 面向利益相关方的安全态势报告
  • OWASP Top 10 合规性检查
  • PR 前安全审查

不适用于:

  • 运行时安全(WAF、速率限制)——请使用基础设施工具
  • 网络安全/防火墙规则——请使用云/DevOps 技能
  • SOC2/HIPAA/PCI 合规性——需要法律/组织层面的流程
  • 执行渗透测试——这是检测,不是利用漏洞

快速开始

完整安全审计
# Run comprehensive scan
./scripts/full-audit.sh /path/to/project

# Output: security-report.json + summary
快速检查
# 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. 依赖项扫描
包管理器命令严重性级别
npmnpm audit --jsoncritical、high、moderate、low
yarnyarn audit --json与 npm 相同
pippip-audit --format jsoncritical、high、medium、low
cargocargo audit --json相同

决策树:

Critical severity found?
├── YES → Block deployment, immediate fix required
│   └── Check if patch available → npm audit fix --force
├── NO → High severity?
    ├── YES → Fix within sprint, document if deferred
    └── NO → Low/Moderate → Track, fix during maintenance
2. 密钥检测

高风险模式:

  • API 密钥:/[A-Za-z0-9_]{20,}/ 附近出现“key”“api”“secret”
  • AWS 凭据:AKIA[0-9A-Z]{16}
  • 私钥:-----BEGIN (RSA|EC|OPENSSH) PRIVATE KEY-----
  • JWT 令牌:eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+
  • 连接字符串:://[^:]+:[^@]+@

熵分析:

  • 长度超过 20 个字符的字符串,香农熵 > 4.5 = 可疑
  • 源代码中的 Base64 编码数据块 = 需要调查

误报处理:

Secret-like pattern found?
├── In test file? → Lower severity, document
├── In example/docs? → Check if placeholder
├── High entropy + near "password"/"secret" → High confidence
└── In .env.example? → Acceptable if placeholder values
3. OWASP Top 10 静态分析
#漏洞检测模式
A01访问控制失效路由缺少身份验证检查
A02加密机制失效使用弱算法(MD5、SHA1 用于密码)
A03注入未参数化的查询、eval()、innerHTML
A04不安全设计硬编码凭据、缺少速率限制
A05安全配置错误生产环境启用调试模式、默认凭据
A06易受攻击的组件依赖项中存在已知 CVE
A07身份验证失效密码策略薄弱、会话问题
A08软件和数据完整性失效未签名更新、不可信反序列化
A09安全日志和监控失效日志中包含敏感数据、缺少审计记录
A10SSRF将未经验证的 URL 输入传递给 fetch/request
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 '%' + input + '%' - 通过通配符注入
  • 缺少参数化 - 严重漏洞

反模式

反模式:隐蔽即安全

表现形式:“没人会发现这个硬编码密码” 错误原因:源代码中的密钥最终总会泄露 应采取的做法:使用环境变量、密钥管理器,不要硬编码任何密钥

反模式:审计疲劳

表现形式:发现 500 个问题,全都标为“中等”,团队对此置之不理 错误原因:关键问题被大量噪声掩盖 应采取的做法:按可利用性排序,先处理严重/高危问题

反模式:不求甚解地修复

表现形式:未经审查就运行 npm audit fix --force 错误原因:可能引入破坏性变更,且没有解决根本原因 应采取的做法:审查每项修复,了解漏洞,并在修复后进行测试

反模式:一次性审计

表现:“我们去年做过安全审计” 为什么不对:每天都会出现新的 CVE,代码也在不断变化 替代方案:集成到 CI/CD 中,至少每周自动扫描一次

安全报告格式

{
  "summary": {
    "critical": 0,
    "high": 2,
    "medium": 5,
    "low": 12,
    "informational": 8
  },
  "findings": [
    {
      "id": "SEC-001",
      "severity": "high",
      "category": "A03:Injection",
      "title": "SQL Injection in user search",
      "location": "src/api/users.js:45",
      "description": "User input concatenated directly into SQL query",
      "evidence": "const query = `SELECT * FROM users WHERE name = '${input}'`",
      "remediation": "Use parameterized queries: db.query('SELECT * FROM users WHERE name = $1', [input])",
      "references": ["https://owasp.org/www-community/attacks/SQL_Injection"]
    }
  ],
  "recommendations": [
    "Implement parameterized queries across all database access",
    "Add input validation layer",
    "Enable SQL query logging for monitoring"
  ]
}

CI/CD 集成

GitHub Actions 示例
security-scan:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - name: Run security audit
      run: |
        npm audit --json > audit.json
        ./scripts/detect-secrets.sh . > secrets.json
        ./scripts/generate-report.py
    - name: Fail on critical
      run: |
        if jq '.summary.critical > 0' report.json; then
          echo "Critical vulnerabilities found!"
          exit 1
        fi

脚本(位于 scripts/ 文件夹中)

脚本用途
full-audit.sh全面的安全扫描
detect-secrets.sh高熵字符串和模式检测
owasp-check.pyOWASP Top 10 静态分析
generate-report.py将发现的问题汇总为统一报告

专家与新手的做法

新手专家
发布前只运行一次审计集成到 CI/CD 中,每次提交都运行
只关注工具输出理解漏洞的上下文
要么全部修复,要么一项不修根据可利用性进行分级处理
只使用一个扫描器组合使用多个工具
忽略误报调整检测规则

成功指标

指标目标
生产环境上线前的严重/高危问题0
严重问题的平均修复时间< 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 安全检查)

评论

支持 Markdown