用途
该技能用于通过协作对话生成有效的 opengrep/semgrep YAML 规则,支持安全研究、漏洞检测规则编写以及代码库安全审计。它面向需要为特定漏洞、CVE、CWE 或 OWASP 类别创建可复用 SAST 规则的用户。
主要能力
- 支持两种工作流:引导式发现(交互式问答)和漏洞驱动式生成(基于 CVE、OWASP 类别或漏洞描述自动生成规则)。
- 支持 30 多种语言,包括 python、javascript、typescript、java、go、ruby、php、csharp、c、rust、scala、kotlin、swift、terraform/hcl、yaml、dockerfile、solidity 等,也支持 generic 和 regex 模式。
- 可生成搜索模式(结构匹配)或污点模式(数据流跟踪)规则。
- 提供漏洞研究计划,使用 WebSearch 和 WebFetch 收集漏洞上下文、语言特定攻击面、现有检测覆盖情况。
- 生成完整规则结构,包含规则 ID、消息、严重级别、语言、元数据(CWE、OWASP、引用、技术栈、置信度等)。
- 自动生成配套测试文件,包含至少 2 个真阳性和 2 个真阴性用例。
- 提供高级模式手册,涵盖缺失安全检查检测、污点字符串拼接检测、弱配置值检测、多调用变体检测、类型约束检测、多步污点标签等。
- 提供误报减少方法,如 pattern-not、pattern-not-inside、metavariable-regex、安全类型排除、日志排除等。
- 提供验证清单和批量生成流程。
使用方式
用户可通过自然语言请求触发,例如“创建规则”“编写规则”“生成规则”“检测某漏洞”,或提供 CVE、CWE、OWASP 参考。技能会先加载项目文档(docs/ai/RULES_SYNTAX.md、docs/ai/RULES_INDEX.md、docs/ai/RULES_ENGINE.md),并搜索现有规则(semgrep-rules/ 和 semgrep-rules-trailbits/)。随后根据漏洞类型选择规则模式,生成规则并展示供用户审核,用户批准后写入规则文件并生成测试文件,最后使用 opengrep 验证。
适用场景
- 安全研究人员需要为特定漏洞创建检测规则。
- 开发团队希望扫描代码库中某类漏洞并获取可复用规则。
- 审计人员需要针对 CVE、CWE 或 OWASP 类别生成检测规则。
- 用户分享代码片段并询问如何捕获该模式。
限制
- 规则生成依赖项目文档和现有规则库的可用性。
- 污点模式需要明确源、汇和净化器,否则可能产生误报。
- 测试文件生成要求至少 2 个真阳性和 2 个真阴性,但实际效果取决于用户提供的示例质量。
- 验证步骤需要 opengrep 工具可用。
- 部分功能(如 WebSearch、WebFetch)依赖外部工具支持。