mcpField
L
ln-621-security-auditor

ln-621-security-auditor

github.com/levnikolaevich安全584337 次安装2 天前更新
代码仓库

关于 ln-621-security-auditor

ln-621-security-auditor 是用于检查代码库安全问题并向协调器提交结果的技能,覆盖五类漏洞检查,并计算安全合规评分。

主要功能

  1. 01扫描硬编码密钥
  2. 02检查 SQL 注入和 XSS
  3. 03审计依赖项漏洞
  4. 04检查输入验证
  5. 05报告严重程度、位置和工作量
  6. 06计算安全评分

适用场景

  1. 01检查代码库中的安全缺陷
  2. 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.md
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
cleanup_evidence_contract.md
evaluation_coordinator_runtime_contract.md
evaluation_parallelism_policy.md
evaluation_research_contract.md
evaluation_summary_contract.md
evaluation_worker_runtime_contract.md
loop_health_contract.md
mcp_integration_patterns.md
mcp_tool_preferences.md
refinement_trace_contract.md
security_rules.md
two_layer_detection.md
references/scripts/evaluation-runtime/
cli.mjs
references/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 以了解检测方法。

  1. 解析上下文: 从 contextStore 提取技术栈、最佳实践、代码库根目录和 output_dir
  2. 扫描代码库(第 1 层): 使用 Glob/Grep 模式运行安全检查(参见下方的审计规则)
  3. 分析上下文(第 2 层): 对每个候选项,读取周边代码并分类:
    • 密钥:测试夹具 / 示例 / 模板 -> 误报。生产代码 -> 已确认
    • SQL 注入:附近使用 ORM 参数化 -> 误报。原始字符串拼接用户输入 -> 已确认
    • XSS:框架自动转义(React JSX、Go 模板)-> 误报。不安全上下文(innerHTML、| safe)-> 已确认
    • 依赖项:项目未调用易受攻击的 API -> 降级。存在可利用路径 -> 已确认
    • 验证:内部服务到服务的端点 -> 降级。公共 API -> 已确认
  4. 收集发现结果: 记录已确认的问题,包括严重程度、位置(文件:行号)、工作量估算(S/M/L)和建议
  5. 计算评分: 按严重程度统计问题数量,计算合规评分(X/10)
  6. 编写报告: 按照 references/templates/audit_worker_report_template.md 在内存中构建完整的 Markdown 报告,并通过一次 Write 调用写入 {output_dir}/ln-621--global.md
  7. 返回摘要: 向协调器返回最精简的摘要(参见输出格式)

审计规则(优先级:严重)

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


Version: 3.0.0 Last Updated: 2025-12-23

评论

支持 Markdown