用途
ln-621-security-boundary-auditor 是一个 L3 Worker,专门审计应用程序中可被利用的安全边界漏洞(Category 1:关键优先级)。它面向需要审计可被利用代码路径的场景,扫描硬编码密钥、SQL 注入、XSS、缺失输入验证和敏感环境变量默认值,并输出结构化发现与合规评分。
主要能力
该技能执行五类安全检查:
-
硬编码密钥:检测源代码中的 API 密钥、密码、令牌、私钥。搜索模式如 API_KEY = "..."、password = "..."、token = "..."、SECRET = "...",覆盖 .ts、.js、.py、.go、.java、.cs 等文件扩展名,排除 .env.example、README.md 及含模拟数据的测试文件。严重级别:生产凭据为 CRITICAL,开发/预发凭据为 HIGH,非测试文件中的测试凭据为 MEDIUM。建议移至环境变量或使用密钥管理(Vault、AWS Secrets Manager),工作量 S。
-
SQL 注入模式:检测 SQL 查询中的字符串拼接而非参数化查询,模式如 query = "SELECT * FROM users WHERE id=" + userId、db.execute(f"SELECT * FROM {table}")、
SELECT * FROM ${table},覆盖 JavaScript、Python、PHP、Java。严重级别:用户输入直接拼接为 CRITICAL,生产代码变量拼接为 HIGH,仅内部变量拼接为 MEDIUM。建议使用参数化查询或 ORM 查询构建器,工作量 M。 -
XSS 漏洞:检测未净化的用户输入渲染到 HTML/模板,模式如 innerHTML = userInput、dangerouslySetInnerHTML={{__html: data}}、echo $userInput;检查模板引擎的未转义输出({{ var | safe }}、<%- var %>)。严重级别:用户输入直接插入 DOM 为 CRITICAL,部分净化(转义不足)为 HIGH,内部数据潜在 XSS 为 MEDIUM。建议使用框架转义(React 自动转义、textContent)或 DOMPurify 净化,工作量 S-M。
-
敏感环境变量默认值:检测 SECRET、TOKEN、KEY、PASSWORD、PRIVATE、CREDENTIAL 等敏感名称的环境变量读取默认值,以及配置/设置类中的硬编码敏感回退值,排除 .env.example、测试、文档和明显占位符(changeme、空字符串、example)。严重级别:生产凭据回退或默认签名/加密密钥为 CRITICAL,部署应用中可达的运行时敏感默认为 HIGH,测试文件之外的开发/预发敏感默认为 MEDIUM。建议移除敏感默认值、要求显式配置、启动时快速失败,工作量 S-M。
-
缺失输入验证:检测系统边界(API 端点、用户表单、文件上传)缺失的验证,包括无验证中间件的 API 路由、无输入净化的表单处理器、无类型/大小检查的文件上传、缺失的 CORS 配置。严重级别:无验证的文件上传或认证绕过可能为 CRITICAL,敏感端点(支付、认证、用户数据)缺失验证为 HIGH,只读或内部端点缺失验证为 MEDIUM。建议添加验证中间件(Joi、Yup、express-validator)并实现输入净化,工作量 M。
使用方式
该技能接收 contextStore,包含 tech_stack、best_practices、principles、codebase_root、output_dir。工作流程为:解析上下文;使用 Glob/Grep 模式进行第一层候选扫描;对每个候选读取周边代码进行第二层上下文验证(区分误报与确认);收集确认的违规并记录严重级别、位置(file:line)、工作量估算(S/M/L)、建议;按严重级别统计并计算合规评分(X/10);在内存中构建完整 markdown 报告并单次 Write 写入 {output_dir}/ln-621--global.md;返回最小摘要。
工具策略上,默认优先使用 hex-line MCP 进行文件读取、搜索和编辑;当数据流或跨文件引用分析能显著提升置信度时优先使用 hex-graph;若 MCP 不可用、不支持或未索引,则回退到内置 Read/Grep/Glob/Bash 并在报告中说明回退。检测采用两层策略(候选扫描 + 上下文验证)。
输出方面,报告写入 {output_dir}/ln-621--global.md,category 为 "Security Boundary",checks 包括 hardcoded_secrets、sql_injection、xss_vulnerabilities、sensitive_env_defaults、missing_input_validation。JSON 摘要按 references/audit_summary_contract.md 输出;托管模式下调用方传入 runId 和 summaryArtifactPath,独立模式下 worker 按共享契约生成自己的运行范围工件路径。
适用场景
适用于审计可被利用的应用程序安全边界,例如在代码审查或安全评估中检查生产代码中的密钥泄露、注入风险、XSS、敏感默认值和输入验证缺口。技术栈感知:利用 contextStore 应用框架特定模式(如 React XSS 与 PHP XSS 的差异)。
限制
该技能只报告违规,不自动修复(Do not auto-fix)。它仅审计可被利用的应用安全边界,不审计包健康或环境同步。为降低误报,排除测试文件、示例配置和文档。工作量估算标准:S = <1 小时,M = 1-4 小时,L = >4 小时。位置精度要求始终包含 file:line 以便程序化导航。每个发现必须使用 HARDEN_SECURITY_BOUNDARY、REMOVE_SECRET 或 REMOVE_SENSITIVE_DEFAULT 三类动作之一。版本 3.0.0,最后更新 2025-12-23。