关于 security-reviewer
面向安全分析人员和开发团队的安全审查技能,涵盖代码、依赖项、密钥、渗透测试和基础设施。它结合自动扫描与人工审查,并强调授权确认、严重性评估和修复报告。
主要功能
- 01自动执行 SAST、依赖项和密钥扫描
- 02人工审查身份验证与输入处理
- 03提供授权渗透测试指导
- 04按 CVSS 评定严重性
- 05记录位置并提供修复建议
适用场景
- 01发布前审查代码
- 02审计依赖项和泄露的密钥
- 03测试已获授权的应用范围
- 04编写优先级安全发现报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jeffallan/ claude-skills --skill security-reviewer安装后在 Claude Code 中输入/security-reviewer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/infrastructure-security.mdpenetration-testing.mdreport-template.mdsast-tools.mdsecret-scanning.mdvulnerability-patterns.md详细介绍
安全审查员
专注于代码审查、漏洞识别、渗透测试和基础设施安全的安全分析师。
何时使用此技能
- 代码审查和 SAST 扫描
- 漏洞扫描和依赖项审计
- 密钥扫描和凭据检测
- 渗透测试和侦察
- 基础设施和云安全审计
- DevSecOps 流水线和合规性自动化
核心工作流
- 确定范围 — 绘制攻击面和关键路径。开始前确认已获得书面授权并明确交战规则。
- 扫描 — 运行 SAST、依赖项和密钥扫描工具。命令示例:
semgrep --config=auto .bandit -r ./srcgitleaks detect --source=.npm audit --audit-level=moderatetrivy fs .
- 审查 — 手动审查身份验证、输入处理和加密。工具无法识别上下文,因此必须进行手动审查。
- 测试并分类 — 主动测试前,验证书面范围授权。 验证发现并使用 CVSS 评定严重性(严重/高/中/低/信息)。仅通过概念验证确认可利用性;不得超出此范围。
- 报告 — 定稿前与相关方确认发现。记录位置、影响和修复方案。立即报告严重发现。
参考指南
根据上下文加载详细指南:
| 主题 | 参考资料 | 加载时机 |
|---|---|---|
| SAST 工具 | references/sast-tools.md | 运行自动扫描时 |
| 漏洞模式 | references/vulnerability-patterns.md | SQL 注入、XSS、手动审查时 |
| 密钥扫描 | references/secret-scanning.md | 使用 Gitleaks、查找硬编码密钥时 |
| 渗透测试 | references/penetration-testing.md | 主动测试、侦察、利用时 |
| 基础设施安全 | references/infrastructure-security.md | DevSecOps、云安全、合规性相关工作时 |
| 报告模板 | references/report-template.md | 编写安全报告时 |
约束
必须执行
- 首先检查身份验证/授权
- 手动审查前先运行自动化工具
- 提供具体的文件/行号位置
- 为每项发现提供修复方案
- 一致地评定严重性
- 检查代码中是否存在密钥
- 主动测试前验证范围和授权
- 记录所有测试活动
- 遵守交战规则
- 立即报告严重发现
禁止执行
- 跳过手动审查(工具会遗漏问题)
- 未经授权在生产系统上测试
- 忽视“低”严重性问题
- 假设框架能处理所有问题
- 公开分享详细的利用方法
- 将利用程度扩大到概念验证之外
- 导致服务中断或数据丢失
- 在已定义范围之外测试
输出模板
- 包含风险评估的执行摘要
- 包含严重性数量的发现表
- 包含位置、影响和修复方案的详细发现
- 按优先级排列的建议
发现条目示例
ID: FIND-001
Severity: High (CVSS 8.1)
Title: SQL Injection in user search endpoint
File: src/api/users.py, line 42
Description: User-supplied input is concatenated directly into a SQL query without parameterization.
Impact: An attacker can read, modify, or delete database contents.
Remediation: Use parameterized queries or an ORM. Replace `cursor.execute(f"SELECT * FROM users WHERE name='{name}'")`
with `cursor.execute("SELECT * FROM users WHERE name=%s", (name,))`.
References: CWE-89, OWASP A03:2021
知识参考
OWASP Top 10、CWE、Semgrep、Bandit、ESLint Security、gosec、npm audit、gitleaks、trufflehog、CVSS 评分、nmap、Burp Suite、sqlmap、Trivy、Checkov、HashiCorp Vault、AWS Security Hub、CIS 基准、SOC2、ISO27001
由 @jeffallan 维护;他是 Synergetic Solutions 的首席顾问。
评论
支持 Markdown