关于 security-reviewer
security-reviewer 是供团队审查代码、依赖项、机密信息和基础设施的安全分析技能。它结合自动扫描与人工审查,要求主动测试先确认授权范围,并按严重性整理发现及修复建议。
主要功能
- 01SAST 与依赖项扫描
- 02机密信息与凭据检测
- 03人工审查认证与输入处理
- 04经授权范围内的渗透测试
- 05按严重性列出问题与修复建议
适用场景
- 01审查代码中的漏洞
- 02审计依赖项与泄露的机密信息
- 03评估云基础设施安全
- 04编写按优先级排列的安全报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ farmage/ opencode-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
评论
支持 Markdown