安全分析器 security-analyzer

这个技能用于对代码库和基础设施进行全面的安全漏洞分析,包括扫描依赖项、容器、云基础设施即代码,并检测潜在的秘密暴露。它能够从OSV.dev获取实时CVE数据,计算风险分数,并生成包含TDD验证测试的分阶段补救计划。

0 次安装 0 次浏览 更新于 3/3/2026

安全分析器

对代码库和基础设施进行全面的安全漏洞分析。扫描依赖项(npm, pip, gem, go, cargo)、容器(Docker, Kubernetes)、云IaC(Terraform, CloudFormation),并检测秘密暴露。从OSV.dev获取实时CVE数据,计算风险分数,并生成分阶段的补救计划与TDD验证测试。当用户提到安全扫描、漏洞、CVE、漏洞利用、安全审计、渗透测试、OWASP、加固、依赖审计、容器安全或想要提高安全姿态时使用。

快速开始

当用户请求安全扫描时:

  1. 运行环境发现:python .claude/skills/security-analyzer/scripts/discover_env.py .
  2. 将输出保存到inventory.json
  3. 运行漏洞扫描:python .claude/skills/security-analyzer/scripts/fetch_vulns.py inventory.json
  4. 将输出保存到scan_results.json
  5. 生成报告:python .claude/skills/security-analyzer/scripts/generate_report.py scan_results.json inventory.json

工作流程

第1阶段:环境发现

扫描工作目录以查找:

  • 依赖项package.json, requirements.txt, Gemfile, go.mod, Cargo.toml, pom.xml
  • 容器Dockerfile, docker-compose.yml, kubernetes/*.yaml
  • 云IaCterraform/*.tf, cloudformation/*.yaml, *.bicep
  • 秘密.env*文件(标记暴露风险,永不记录值)

运行发现脚本:

python .claude/skills/security-analyzer/scripts/discover_env.py /path/to/project > inventory.json

第2阶段:漏洞情报

使用漏洞扫描器获取当前威胁数据:

python .claude/skills/security-analyzer/scripts/fetch_vulns.py inventory.json > scan_results.json
来源 优先级 用途
CISA KEV 1 积极利用的漏洞(使用WebSearch)
NVD 2 CVE详情+CVSS分数(使用WebSearch)
GitHub Advisories 3 特定于包的漏洞(使用WebSearch)
OSV.dev 4 开源漏洞(脚本中的API)

对于CISA KEV和额外的上下文,补充:

WebSearch: "CVE-XXXX-YYYY CISA KEV漏洞利用"

第3阶段:风险评分

扫描器使用以下方法计算风险分数:

风险 = (CVSS * 0.3) + (可利用性 * 0.3) + (关键性 * 0.2) + (暴露度 * 0.2)

可利用性:10=CISA KEV, 7=公开漏洞利用, 3=理论
关键性:10=身份验证/支付, 5=核心业务, 2=日志记录
暴露度:10=面向互联网, 5=内部, 2=隔离

第4阶段:分阶段补救

生成包含修复命令和验证测试的报告:

python .claude/skills/security-analyzer/scripts/generate_report.py scan_results.json inventory.json

每个发现包括:

  1. 漏洞详情+风险分数
  2. 实际修复代码/补丁(不仅仅是建议)
  3. 修复前测试(证明漏洞存在)
  4. 补救单元测试(测试修复代码)
  5. 修复后验证(证明漏洞已解决)

第5阶段:报告

输出两份报告:

  • security-report-technical.md — 工程师的完整详情
  • security-report-executive.md — 领导层的摘要

查看references/report-templates.md了解输出结构。

TDD模式

对于每个漏洞,生成三种测试类型:

def test_vuln_exists():
    """修复前通过,修复后失败"""
    assert is_vulnerable("组件") == True

def test_fix_works():
    """补救代码的单元测试"""
    result = apply_fix(vulnerable_config)
    assert result.is_secure()

def test_vuln_resolved():
    """修复前失败,修复后通过"""
    assert is_vulnerable("组件") == False

按发现类型修复

发现 输出
依赖项CVE 版本提升命令+锁文件更新
容器问题 Dockerfile补丁
IaC配置错误 Terraform/K8s修复
代码漏洞 源代码补丁+测试
秘密暴露 轮换命令+.gitignore更新

示例交互

用户: “在此项目上运行安全扫描”

Claude:

  1. 发现47个npm依赖项,3个Dockerfiles,2个Terraform配置
  2. 从OSV.dev获取当前CVE数据
  3. 识别12个漏洞(2个严重,4个高,6个中等)
  4. 生成分阶段补救计划:
    • 实际修复命令(npm install lodash@4.17.21
    • IaC配置错误的代码补丁
    • 证明每个修复工作的TDD测试
  5. 输出技术和执行报告