关于 ln-621-security-auditor
ln-621-security-auditor 是用于检查代码库安全问题并向协调器提交结果的技能,覆盖五类漏洞检查,并计算安全合规评分。
主要功能
- 01扫描硬编码密钥
- 02检查 SQL 注入和 XSS
- 03审计依赖项漏洞
- 04检查输入验证
- 05报告严重程度、位置和工作量
- 06计算安全评分
适用场景
- 01检查代码库中的安全缺陷
- 02依据发现结果安排修复优先级
MCP 相关
该技能可使用 hex-graph 进行跨文件分析,并使用 hex-line 读取局部代码。若这些 MCP 工具不可用或不适用,则改用内置文件与搜索工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-621-security-auditor安装后在 Claude Code 中输入/ln-621-security-auditor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/audit_output_schema.mdaudit_scoring.mdaudit_summary_contract.mdaudit_worker_core_contract.mdcleanup_evidence_contract.mdevaluation_coordinator_runtime_contract.mdevaluation_parallelism_policy.mdevaluation_research_contract.mdevaluation_summary_contract.mdevaluation_worker_runtime_contract.mdloop_health_contract.mdmcp_integration_patterns.mdmcp_tool_preferences.mdrefinement_trace_contract.mdsecurity_rules.mdtwo_layer_detection.mdreferences/scripts/evaluation-runtime/cli.mjsreferences/templates/audit_worker_report_template.md详细介绍
路径: 文件路径(
references/、../ln-*)均相对于此技能目录。
安全审计员(L3 Worker)
类型: L3 Worker
专门负责审计代码库中的安全漏洞。
目的与范围
- 审计代码库中的安全漏洞(类别 1:最高优先级)
- 扫描硬编码密钥、SQL 注入、XSS、不安全的依赖项和缺少输入验证等问题
- 向协调器返回结构化发现结果,包括严重程度、位置、工作量和建议
- 计算安全类别的合规评分(X/10)
输入
必须阅读: 加载 references/audit_worker_core_contract.md。
必须阅读: 加载 references/mcp_tool_preferences.md 和 references/mcp_integration_patterns.md
接收包含以下内容的 contextStore:tech_stack、best_practices、principles、codebase_root、output_dir。
当数据流或跨文件引用分析能显著提高置信度时,优先使用 hex-graph。如果可用,局部代码读取应优先使用 hex-line。如果 MCP 不可用、不受支持或未建立索引,请继续使用内置的 Read/Grep/Glob/Bash,并在报告中说明所用的备用方案。
工作流
必须阅读: 加载 references/two_layer_detection.md 以了解检测方法。
- 解析上下文: 从
contextStore提取技术栈、最佳实践、代码库根目录和 output_dir - 扫描代码库(第 1 层): 使用 Glob/Grep 模式运行安全检查(参见下方的审计规则)
- 分析上下文(第 2 层): 对每个候选项,读取周边代码并分类:
- 密钥:测试夹具 / 示例 / 模板 -> 误报。生产代码 -> 已确认
- SQL 注入:附近使用 ORM 参数化 -> 误报。原始字符串拼接用户输入 -> 已确认
- XSS:框架自动转义(React JSX、Go 模板)-> 误报。不安全上下文(
innerHTML、| safe)-> 已确认 - 依赖项:项目未调用易受攻击的 API -> 降级。存在可利用路径 -> 已确认
- 验证:内部服务到服务的端点 -> 降级。公共 API -> 已确认
- 收集发现结果: 记录已确认的问题,包括严重程度、位置(文件:行号)、工作量估算(S/M/L)和建议
- 计算评分: 按严重程度统计问题数量,计算合规评分(X/10)
- 编写报告: 按照
references/templates/audit_worker_report_template.md在内存中构建完整的 Markdown 报告,并通过一次 Write 调用写入{output_dir}/ln-621--global.md - 返回摘要: 向协调器返回最精简的摘要(参见输出格式)
审计规则(优先级:严重)
1. 硬编码密钥
内容: 源代码中的 API 密钥、密码、令牌、私钥
检测:
- 搜索模式:
API_KEY = "..."、password = "..."、token = "..."、SECRET = "..." - 文件扩展名:
.ts、.js、.py、.go、.java、.cs - 排除:
.env.example、README.md、包含模拟数据的测试文件
严重程度:
- 严重: 生产凭据(AWS 密钥、数据库密码、API 令牌)
- 高: 开发 / 暂存环境凭据
- 中: 非测试文件中的测试凭据
建议: 移至环境变量(.env),使用密钥管理工具(Vault、AWS Secrets Manager)
工作量: S(将硬编码值替换为 process.env.VAR_NAME)
2. SQL 注入模式
内容: 在 SQL 查询中使用字符串拼接,而非参数化查询
检测:
- 模式:
query = "SELECT * FROM users WHERE id=" + userId、db.execute(f"SELECT * FROM {table}")、`SELECT * FROM ${table}` - 语言:JavaScript、Python、PHP、Java
严重程度:
- 严重: 直接拼接未经清理的用户输入
- 高: 生产代码中的变量拼接
- 中: 仅与内部变量拼接
建议: 使用参数化查询(预处理语句)和 ORM 查询构建器
工作量: M(重构查询以使用占位符)
3. XSS 漏洞
内容: 未经清理的用户输入被渲染到 HTML/模板中
检测:
- 模式:
innerHTML = userInput、dangerouslySetInnerHTML={{__html: data}}、echo $userInput; - 模板引擎:检查是否存在未转义的输出(
{{ var | safe }}、<%- var %>)
严重程度:
- CRITICAL: 用户输入未经清理直接插入 DOM
- HIGH: 用户输入经过部分清理(转义不足)
- MEDIUM: 内部数据遭到入侵后可能导致 XSS
建议: 使用框架转义(React 会自动转义,使用 textContent),或使用 DOMPurify 进行清理
工作量: S-M(将 innerHTML 替换为 textContent 或进行清理)
4. 不安全的依赖项
内容: 存在已知 CVE(通用漏洞披露)的依赖项
检测:
- 运行
npm audit(Node.js)、pip-audit(Python)、cargo audit(Rust)、dotnet list package --vulnerable(.NET) - 检查是否有过时的关键依赖项
严重程度:
- CRITICAL: 生产依赖项中存在可利用的 CVE 漏洞
- HIGH: 开发依赖项中存在 CVE,或生产依赖项中存在严重程度较低的 CVE
- MEDIUM: 软件包已过时,虽无已知 CVE,但存在安全风险
建议: 更新到已修复的版本,替换无人维护的软件包
工作量: S-M(更新 package.json 并测试),L(如果存在破坏性变更)
5. 缺少输入验证
内容: 系统边界(API 端点、用户表单、文件上传)缺少验证
检测:
- API 路由缺少验证中间件
- 表单处理器缺少输入清理
- 文件上传缺少类型/大小检查
- 缺少 CORS 配置
严重程度:
- CRITICAL: 文件上传缺少验证,可能绕过身份验证
- HIGH: 敏感端点(支付、身份验证、用户数据)缺少验证
- MEDIUM: 只读或内部端点缺少验证
建议: 添加验证中间件(Joi、Yup、express-validator),实施输入清理
工作量: M(添加验证架构和中间件)
评分算法
必须阅读: 加载 references/audit_worker_core_contract.md 和 references/audit_scoring.md。
输出格式
必须阅读: 加载 references/audit_worker_core_contract.md 和 references/templates/audit_worker_report_template.md。
按照 references/audit_summary_contract.md 编写 JSON 摘要。在托管模式下,调用方会传入 runId 和 summaryArtifactPath;在独立模式下,工作器会按照共享契约生成自己的、作用域限定于本次运行的工件路径。
将报告写入 {output_dir}/ln-621--global.md,其中 category: "Security",并包含以下检查项:hardcoded_secrets、sql_injection、xss_vulnerabilities、insecure_dependencies、missing_input_validation。
按照 references/audit_summary_contract.md 返回摘要。
独立模式仍会按照共享契约,将相同的 JSON 摘要写入工作器拥有的、作用域限定于本次运行的工件路径。
关键规则
必须阅读: 加载 references/audit_worker_core_contract.md。
- 不要自动修复: 仅报告违规项;由协调器创建任务供用户修复
- 了解技术栈: 使用 contextStore 应用特定于框架的模式(例如,React XSS 与 PHP XSS)
- 减少误报: 排除测试文件、示例配置和文档
- 合理评估工作量: S = 少于 1 小时,M = 1-4 小时,L = 超过 4 小时
- 精确标注位置: 始终包含
file:line,以便进行程序化导航
完成定义
必须阅读: 加载 references/audit_worker_core_contract.md。
- contextStore 解析成功(包括 output_dir)
- 已完成全部 5 项安全检查(机密、SQL 注入、XSS、依赖项、验证)
- 已收集包含严重程度、位置、工作量和建议的发现
- 已使用惩罚算法计算分数
- 已将报告写入
{output_dir}/ln-621--global.md(通过一次原子 Write 调用) - 已按照契约写入摘要
Reference Files
- Audit output schema:
references/audit_output_schema.md - Security audit rules: references/security_rules.md
Version: 3.0.0 Last Updated: 2025-12-23