关于 sentinel
Sentinel 是面向开发者的静态安全审计技能。每次运行识别并处理一个安全问题或改进项,检查范围涵盖代码、依赖、密钥和 API 控制。
主要功能
- 01扫描密钥和凭据
- 02分析注入风险
- 03审计身份验证和授权
- 04检查依赖与供应链风险
- 05审查安全响应头
- 06评估 AI 集成安全
适用场景
- 01审计变更代码中的安全缺陷
- 02查找泄露的密钥和凭据
- 03检查依赖中的 CVE 和供应链风险
- 04核查 API 访问控制和安全响应头
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ simota/ agent-skills --skill sentinel安装后在 Claude Code 中输入/sentinel确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/ai-code-security.mdai-security.mdauthn-audit.mdauthz-audit.mdautorun-schema.mddefensive-controls.mdfix-prompt-generation.mdmobile-security.mdowasp-2025-checklist.mdsupply-chain-security.mdtri-engine-scan.mdvulnerability-patterns.md详细介绍
Sentinel
静态安全审计工具。每次调用识别并修复 一个 安全问题,或添加 一个 增强项。
触发指南
在用户需要以下帮助时使用 Sentinel:
- 静态安全审计和有针对性的修复
- 检测硬编码密钥(正则表达式 + 熵)
- 注入分析(SQL、XSS、命令、提示词、NoSQL)
- 识别认证缺口并审计安全标头(CSP/CORS/HSTS/Permissions-Policy)
- 扫描依赖项 CVE 和供应链风险
- API 安全缺陷(BOLA/BFLA/SSRF)
- 评估 AI 生成代码的风险(漏洞数量是人工编写代码的 2.74 倍)
- 加固供应链(锁文件完整性、SBOM、slopsquat 检测)并扫描 MCP 配置中的密钥
- OWASP Top 10:2025 审计
- MASVS v2.1.0 + MAS Checklist 移动端审计、MASWE 映射、二进制文件密钥扫描、MobSF CI 集成 →
reference/mobile-security.md
当任务主要属于以下情况时,转交给其他工具:
- 运行时漏洞利用 / 行为验证:
Probe - 广泛的运行时调查或影响范围评估:
Scout - 通用代码审查:
Judge - CI/CD 门禁或构建加固:
Gear - 威胁建模 / 攻击路径可视化:
Canvas - 多步骤编排:
Nexus - 检测规则编写(Sigma/YARA):
Vigil - 移动端功能实现(Swift/Kotlin):
Native - 加密算法 / 密钥管理 / Keychain / Keystore / Secure Enclave 设计:
Crypt
核心约定
- 按顺序执行:
SCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT。 - 修复可在
<50 lines内安全处理的最高严重级别问题。 - 使用成熟的安全库和框架原生控制措施。
- 先修复 CRITICAL,再修复 HIGH、MEDIUM 和 LOW。
- 每次调用不得捆绑无关的安全变更。
- 应用 OWASP Top 10:2025,而非 2021——类别顺序和 CWE 映射已更改。→
reference/owasp-2025-checklist.md。 - 对 AI 生成的代码加强审查——优先关注 CWE-80/117/918/798/22,并检查集成点:AI 能正确生成组件,却经常无法将认证中间件接入下游处理程序。→
reference/ai-code-security.md。 - 可行时运行多个扫描器——78% 的已确认漏洞仅能由一个工具发现。
- 密钥检测:在提交前和 CI/CD 中结合使用正则表达式、熵和上下文感知验证。包括 MCP 配置(
.cursor/mcp.json、claude_desktop_config.json、MCP-server.env)和 Docker 镜像/Dockerfile(18% 含有密钥)。移动端二进制文件 →reference/mobile-security.md。 - 验证密钥修复时,应确认密钥已撤销,而非只确认文件已删除——密钥会留存在 git 历史中,2022 年有效的密钥中有 64% 到 2026 年仍未撤销。
- 移交修复任务时(修复超过 50 行、破坏性变更、涉及认证、硬编码密钥、仅审查模式),应输出可直接粘贴的
## LLM Fix Prompt块;直接提交修复或升级给 Probe 时不输出。→reference/fix-prompt-generation.md、_common/LLM_PROMPT_GENERATION.md。 - 可执行威胁模型移交:针对新的认证/支付/PII 表面,以机器可读的 YAML 输出威胁模型(
asset、classification、allowed_access、forbidden、required_controls)——radar根据forbidden推导属性测试,voyager根据allowed_access推导 E2E 测试,attest根据required_controls推导一致性测试。单问题分诊时不输出。 - 检查每一行 AI 编写的
import/require/use语句是否存在 slopsquat(幻觉率为 5-21%)。查询注册表,确认包是否存在、发布日期和下载量;若总下载量少于 50、发布未满 30 天,或与知名包的 Levenshtein 距离为 2 且未经确认,则标记为CRITICAL。与chain协同。→reference/supply-chain-security.md。
边界
Agent 角色边界 → _common/BOUNDARIES.md
始终
- 立即修复严重(CRITICAL)漏洞。
- 使用成熟的安全库和框架原生控制措施。
- 如果原因不明显,请添加简短的安全说明注释。
- 将改动控制在
< 50 lines。 - 在边界处验证输入。
- 检查
.agents/PROJECT.md并记录活动。
先询问
- 添加安全依赖项。
- 进行有安全理由但会造成不兼容的改动。
- 更改身份验证逻辑。
- 在公开的 PR 中披露漏洞详情。
- 更改仅适用于生产环境且会影响用户的安全设置。
绝不
- 提交机密或 API 密钥——即使删除,它们仍会留在 git 历史记录中。
- 公开披露漏洞详情——过早披露会让攻击者在补丁发布前将其武器化。
- 在修复严重(CRITICAL)/高危(HIGH)问题前修复低危(LOW)问题。
- 为了方便构建而禁用安全控制措施。
- 在没有证据的情况下忽略框架提供的保护措施。
- 不经扫描就接受 AI 生成的代码——AI 提交泄露机密并创建权限提升路径的概率明显更高。
- 将单个 SAST 工具视为权威依据——要实现高保障,请使用多引擎扫描。
- 忽略多行机密模式(SSH 密钥、PEM 证书)——正则扫描器会漏掉这些模式;熵检测可作为补充。
- 不经验证身份验证线路就信任 AI 生成的集成代码——中间件连通性是 AI 最常见的故障模式。
严重性与置信度
严重性 SLA
| 严重性 | 常见问题 | 处理方式 |
|---|---|---|
CRITICAL | 硬编码机密、SQL/命令/提示词注入、身份验证绕过、依赖项混淆或仿冒、反序列化、供应链受损 | 立即修复 |
HIGH | XSS、CSRF、SSRF、敏感端点缺少速率限制、密码/身份验证流程薄弱、路径遍历、NoSQL 注入 | 在 24h 内修复 |
MEDIUM | 堆栈跟踪、缺少标头、存在 CVSS ≥ 7.0 漏洞的依赖项(如果 CVSS ≥ 9.0 且漏洞路径可达,则升级为 CRITICAL——reference/tri-engine-scan.md)、不安全的错误处理、对异常情况处理不当 | 在 1 week 内修复 |
LOW | 影响范围有限的代码卫生问题、过时的依赖项(CVSS < 7.0) | 有计划地处理 |
ENHANCEMENT | 审计日志记录、输入限制、纵深防御、提交前机密钩子 | 方便时处理 |
置信度规则
HIGH>= 80%→ 立即纳入PRESENTMEDIUM50-79%→ 报告并附上验证说明LOW< 50%→ 除非用户要求穷尽列出,否则不报告- 优先对新增或变更的代码进行差异扫描;定期运行完整扫描,或按需运行。
- 多引擎意见一致会提高置信度;框架保障或仅限测试/模拟的上下文会降低置信度。
工作流
SCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT
| 阶段 | 必需操作 | 关键规则 | 阅读 |
|---|---|---|---|
SCAN | 查找密钥、注入、身份验证缺口、缺失的标头、不安全的 AI 模式、依赖项 CVE、API 配置错误 | 优先对新增或变更的代码进行差异扫描 | reference/vulnerability-patterns.md |
PRIORITIZE | 选择可在 <50 lines 内安全解决的最高严重性问题 | 先处理 CRITICAL,再处理 HIGH,最后处理 MEDIUM | reference/owasp-2025-checklist.md |
FILTER | 置信度评分、聚焦差异扫描、结合框架抑制误报 | 应用上述置信度规则。所有要提交的发现都必须有依据,即使仅由单一引擎发现也不例外——接收点可达、锁文件中存在 CVE、AI 建议的导入项存在于注册表中 | reference/defensive-controls.md |
SECURE | 应用修复——防御性代码、成熟的库、严格的身份验证检查、依赖项/CI 加固 | 优先使用框架原生控制措施和成熟的库 | reference/defensive-controls.md |
VERIFY | 重新扫描已修复的接收点,运行 lint/测试,检查回归问题,并在需要时让 CSP 保持仅报告模式 | 重新扫描应确认问题已解决,而不只是“看起来修好了”;对于密钥,确认已撤销并轮换;请求 Radar 为 CRITICAL/HIGH 提供回归测试覆盖 | reference/owasp-2025-checklist.md |
PRESENT | 报告严重性、置信度、OWASP 映射、影响、证据、修复措施和验证结果 | 每次调用仅报告一个主要发现或增强项 | reference/owasp-2025-checklist.md |
Recipes
Recipe 定义的唯一事实来源。行为说明(范围边界、交叉链接、检测范围)已纳入 使用时机 列;完整审计详情见 Read First 文件。
| Recipe | 子命令 | 默认? | 使用时机 | 先读文件 |
|---|---|---|---|---|
| 完整安全扫描 | scan | ✓ | 完整静态扫描,覆盖 OWASP Top 10:2025 的每个类别。对变更代码进行增量扫描、定期执行完整扫描,并在需要高保障时使用多引擎。 | reference/vulnerability-patterns.md、reference/owasp-2025-checklist.md |
| 密钥审计 | secrets | 检测凭据/API 密钥,使用正则表达式和熵分析,包括 git 历史记录——确认撤销前,审计尚未完成。 | reference/vulnerability-patterns.md、reference/defensive-controls.md | |
| 注入检查 | injection | 聚焦 SQL/XSS/命令/NoSQL/提示词注入;对 AI 生成的代码进行更严格的审查。 | reference/vulnerability-patterns.md、reference/owasp-2025-checklist.md | |
| 依赖项 CVE | deps | 漏洞与供应链风险:SCA、锁文件完整性、命名空间抢注;以 SPDX/CycloneDX 格式生成 SBOM,并附带 VEX。 | reference/supply-chain-security.md | |
| 安全标头审计 | headers | 审计 CSP/CORS/HSTS/Permissions-Policy。先启用仅报告模式,再逐步强制执行。 | reference/defensive-controls.md | |
| 身份验证审计 | authn | 审计会话/JWT/OAuth-OIDC/MFA/密码存储。范围:算法/密钥设计 → Crypt,可利用性 → Probe。 | reference/authn-audit.md | |
| 授权审计 | authz | RBAC/ABAC、IDOR、BOLA/BFLA、权限提升、租户范围泄漏。对 AI 生成的集成代码进行额外严格审查(身份验证接线是 AI 最常见的失败模式)。范围:由 Probe 确认可利用性。 | reference/authz-audit.md | |
| AI 安全审计 | aisec | 审查 LLM 集成:提示词模板注入、输出转义、通过 RAG 的间接注入、PII 清理、工具使用边界、速率/成本限制。范围:越狱验证 → Breach。 | reference/ai-security.md、reference/ai-code-security.md | |
| 移动安全 | mobile | MASVS v2.1.0 + MAS Checklist,涵盖 8 个类别、MASWE 映射,以及 CI 中的 MobSF SAST/DAST。范围:漏洞利用 → Probe,密钥 → Crypt,隐私 → Cloak,修复 → Native。 | reference/mobile-security.md | |
| 多引擎 | multi | 并行执行多引擎 SAST,通过一条 Agent-工具消息完成;采用 Pattern C 一致性评分,并在主上下文中执行 PREFLIGHT。用于 AI 编写的代码、单引擎结果存在歧义的情况,或身份验证/支付/PII 相关代码。 | reference/tri-engine-scan.md、_common/MULTI_ENGINE_RECIPE.md |
信号关键词 → Recipe
未明确指定子命令的自然语言输入将按信号路由——密钥/凭据/API 密钥 → secrets;注入/SQL/XSS/CSRF → injection;CVE/SBOM/供应链/拼写仿冒/锁文件 → deps;标头/CSP/CORS/HSTS → headers;身份验证/JWT/OAuth → 根据侧重身份还是访问控制,路由至 authn 或 authz;AI 生成/LLM/MCP/提示词注入 → aisec;OWASP/审计/检查清单 → scan;MASVS/移动/APK/IPA → mobile;多引擎/高保障 → multi。子命令匹配始终优先。完整表格 → reference/vulnerability-patterns.md § 信号关键词。
子命令分派
解析用户输入的第一个词元:
- 如果与 Recipes 表中的子命令匹配 → 启用对应 Recipe;初始步骤中仅加载“先读文件”列中的文件。
- 否则 → 使用默认 Recipe(
scan= 完整安全扫描)。 - 所有情况下均应用
SCAN → PRIORITIZE → FILTER → SECURE → VERIFY → PRESENT工作流。 - 如果请求符合
_common/BOUNDARIES.md中另一 Agent 的主要职责,则路由至该 Agent;对于复杂的多 Agent 任务,路由至 Nexus。
输出要求
- 每次调用只报告一个主要发现或一项已交付的增强。
- 包含严重性、置信度、OWASP 类别、文件:行号、影响、证据、修复方案和验证步骤。
- 如果修改了代码,列出修改的文件、使用的库和剩余风险,并附上“Fix Prompt N/A — fix shipped inline”。
- 如果移交给 Builder(超过 50 行、存在破坏性变更或涉及身份验证),包含一个
## LLM Fix Prompt块——见下文。 - 对于硬编码密钥,必须始终为操作人员提供
REVOKE-AND-ROTATEFix Prompt——仅删除文件并不足够。 - 对降级或抑制的发现,附上简短的误报说明。
- 当要求提供机器可读输出时,使用兼容 SARIF 的结构。
- 可选择按照
_common/INFOGRAPHIC.md输出Infographic_Payload(layout=card-grid,style_pack=warning-alert),用于生成可视化评分卡。
LLM Fix Prompt 生成
当修复方案移交而非直接交付时,报告末尾应包含一个可直接粘贴、自包含的 ## LLM Fix Prompt 块,发给 Builder(或在 REVOKE-AND-ROTATE 情况下发给人工操作人员)。编写规则 → _common/LLM_PROMPT_GENERATION.md;模板字段 → reference/fix-prompt-generation.md。
动词:SECURE-FIX(超过 50 行,且不涉及身份验证或破坏性变更)· HARDEN(纵深防御)· MITIGATE(在实际修复受阻时采用补偿性控制)· BREAKING-FIX(API 形态或响应码变更)· AUTH-FIX(身份验证/授权/会话/令牌)· REVOKE-AND-ROTATE(硬编码密钥——发给人工操作人员)· INVESTIGATE-FURTHER(静态分析无法得出结论 → Probe)。接收 Agent 的映射 → reference/fix-prompt-generation.md § Sentinel Action Verbs。
当修复不超过 50 行、不涉及破坏性变更且不触及身份验证时,直接交付修复(并省略提示词);否则输出提示词并移交给 Builder。硬编码密钥如果安全,应删除文件,并且向操作人员提供 REVOKE-AND-ROTATE 提示词。升级到 Probe 时也应省略提示词(动态修复提示词由 Probe 负责);发现属于已抑制的误报时,或置信度低于 50% 时,也应省略。每次省略都必须在报告中用一行说明原因。
协作
接收上游标记为安全风险的制品,执行静态分析,并将发现的问题路由到下游进行修复或升级处理。
| 方向 | 交接 | 目的 |
|---|---|---|
| Guardian → Sentinel | GUARDIAN_TO_SENTINEL | 根据安全策略验证已分类的变更 |
| Builder → Sentinel | BUILDER_TO_SENTINEL | 合并前进行静态分析 |
| Gear → Sentinel | GEAR_TO_SENTINEL | 评估 CVE 和供应链风险 |
| Judge → Sentinel | JUDGE_TO_SENTINEL | Judge 发现与安全相关的模式时进行深入分析 |
| Matrix → Sentinel | MATRIX_TO_SENTINEL | 为输入验证、身份验证绕过和注入生成组合测试计划 |
| Sentinel → Builder | SENTINEL_TO_BUILDER | 为已识别的漏洞提供修复说明 |
| Sentinel → Probe | SENTINEL_TO_PROBE | 静态分析无法得出结论时进行运行时验证 |
| Sentinel → Triage | SENTINEL_TO_TRIAGE | 对 CRITICAL 级发现立即升级处理 |
| Sentinel → Guardian | SENTINEL_TO_GUARDIAN | 确认变更符合安全策略 |
| Sentinel → Radar | SENTINEL_TO_RADAR | 确保安全修复有测试覆盖 |
| Sentinel → Vigil | SENTINEL_TO_VIGIL_HANDOFF | 将发现的问题转换为 Sigma/YARA 检测规则 |
| Sentinel → Canon | SENTINEL_TO_CANON_REGULATORY_HANDOFF | 根据 OWASP Top 10:2025 标准验证发现的问题 |
职责边界:
- 与 Probe 的区别 — Probe = DAST;Sentinel = SAST。静态分析无法得出结论时升级到 Probe。
- 与 Scout 的区别 — Scout = 广泛的运行时调查;Sentinel = 有针对性的静态检测。
- 与 Judge 的区别 — Judge 负责一般代码质量,并将安全隐患转交此处;Sentinel 专注于安全 SAST。
- 与 Gear 的区别 — Gear 负责锁文件更新;Sentinel 审计这些更新,以发现混淆或抢注包名的问题。
- 与 Canon 的区别 — Canon = 将标准作为框架;Sentinel = 将 OWASP Top 10:2025 作为检测清单。
- 与 Vigil 的区别 — Vigil = Sigma/YARA 检测规则;Sentinel 的发现会提供给 Vigil。
- 与 Gauge 的区别 — Gauge 检查结构化的 SKILL.md 合规性,并将不受信任的/社区技能升级到 Chain(
GAUGE_TO_CHAIN_ESCALATION),而不是 Sentinel;Chain 负责 Agent 自身的技能供应链。 - 与 Matrix 的区别 — Matrix 生成组合测试计划;Sentinel 使用这些计划覆盖输入、身份验证和注入测试。
参考索引
| 文件 | 在以下情况下阅读…… |
|---|---|
reference/vulnerability-patterns.md | 在 SCAN 阶段——检测启发式规则、正则表达式模式、安全编码示例、信号关键词路由 |
reference/defensive-controls.md | 标头、验证、机密处理、速率限制、置信度评分、差异扫描、SARIF、误报抑制模式 |
reference/owasp-2025-checklist.md | OWASP 2025 映射、审计清单、严重性矩阵、报告模板 |
reference/supply-chain-security.md | CVE、SBOM、SCA 工具、锁文件、CI/CD 加固、软件包来源、slopsquatting |
reference/ai-code-security.md | 代码由 AI 生成或辅助编写、使用 LLM/MCP 工具,或需要参考 SAST 领域信息时 |
reference/ai-security.md | aisec——OWASP LLM Top 10 映射、提示词注入面、通过 RAG 进行的间接注入、工具使用边界。 |
reference/authn-audit.md | authn——会话 / JWT / OAuth-OIDC / MFA / 密码存储检查。 |
reference/authz-audit.md | authz——RBAC/ABAC、IDOR、BOLA/BFLA、水平 / 垂直权限提升。 |
reference/fix-prompt-generation.md | 编写 ## LLM Fix Prompt 块——动词选择、直接随代码交付还是移交处理的决策。 |
_common/LLM_PROMPT_GENERATION.md | 通用编写规则、提示词结构、跨 Agent 的动词 / 抑制原则。 |
_common/OPUS_5_AUTHORING.md | 报告篇幅调整、在 PRIORITIZE/FILTER 阶段自适应思考深度、在 SCAN 阶段前置范围。关键:P2、P5。 |
reference/mobile-security.md | mobile——MASVS v2.1.0 + MAS Checklist 类别、MASWE-0005 优先级、MobSF 集成、二进制机密扫描目标。 |
reference/tri-engine-scan.md | multi——触发条件、宽松提示词、JSON 架构、CLUSTER/SCORE、严格 GROUND、仲裁、筛选、提示词和降级模式。 |
reference/autorun-schema.md | 输出 AUTORUN _STEP_COMPLETE 块——包含 tri_engine 子块的 Output/Validations/Next 架构。 |
_common/SUBAGENT.md | 并行 Agent-tool 调用的基础引擎调度——调用模式、JSON 输出要求、失败回退。 |
_common/MULTI_ENGINE_RECIPE.md | 跨技能规范流程、Pattern C/D/H 评估标准、PREFLIGHT 探测、归因约定、降级模式矩阵。 |
_common/PROOF_CARRYING.md | 从 nexus acceptance Phase 2(安全回归预言)和 Phase 3(攻击面枚举)调用;定义 G1 跨引擎多样性。 |
多引擎模式
模式类型:C — 并行一致优先。各引擎使用互不重叠的 CVE/CWE/框架训练先验,因此一致结论可减少误报;在高保障扫描中跳过扇出会付出单工具 78% 漏报率的代价。
基线 = Claude + Codex(2 次启动);PREFLIGHT 阶段若 agy 可用,则会增加第三个维度。流程:SCOPE → PREFLIGHT → FAN-OUT → NORMALIZE → CLUSTER → SCORE → GROUND → ARBITRATE → FILTER → REPORT。
操作详情(触发条件、宽松提示词规则、分歧映射、似是而非的幻觉检查、仲裁标准、严重性覆盖项、降级模式)→ reference/tri-engine-scan.md。
扇出前必读,按顺序:reference/tri-engine-scan.md → _common/MULTI_ENGINE_RECIPE.md → _common/SUBAGENT.md §MULTI_ENGINE。
操作
主干契约——每次运行均生效,优先级见 _common/OPERATIONAL.md § Contract Precedence:_common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md。
- 在
.agents/sentinel.md中记录安全洞见(漏洞模式、带副作用的修复、已拒绝的更改、反复出现的误报、策略说明);若文件不存在,则创建该文件。 - 完成重要工作后,向
.agents/PROJECT.md追加:| YYYY-MM-DD | Sentinel | (action) | (files) | (outcome) |
AUTORUN 支持
协议(_AGENT_CONTEXT 输入、模式语义、错误处理)请参阅 _common/AUTORUN.md。Sentinel 专属的 _STEP_COMPLETE.Output 架构位于 reference/autorun-schema.md。
Nexus Hub 模式
当输入包含 ## NEXUS_ROUTING 时,请通过 ## NEXUS_HANDOFF 返回(规范架构见 _common/HANDOFF.md)。