1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | semgrep-semgrep-skills |
| 项目自述名称 | semgrep(收录于 semgrep/skills 合集仓库) |
| 作者/维护者 | Semgrep, Inc.(原创作者 Drew Dennison,@DrewDennison) |
| 来源链接 | https://github.com/semgrep/skills/tree/main/skills/semgrep |
| 许可证 | Semgrep Rules License v1.0(自定义许可,允许内部免费使用与修改,禁止再分发/转售/作为服务提供;GitHub API 获取) |
| GitHub Stars | 249(合集仓库整体数据,非单技能专属,GitHub API 获取) |
| Forks | 28(同上,GitHub API 获取) |
| 最新版本 | 未见独立版本号;仓库整体自述 Beta 阶段软件,GitHub API 获取 |
| 安装方式 | npx skills add semgrep/skills(安装整个合集)或 npx skills add https://github.com/semgrep/skills --skill semgrep(仅安装本技能) |
2. 功能介绍与亮点
面向需要把 Semgrep 静态分析真正用起来的开发者,覆盖“跑扫描”与“写规则”两件事:
- 运行扫描:一条命令
semgrep --config auto .自动识别语言并选规则;支持精选规则集(security-audit、owasp-top-ten、cwe-top-25、trailofbits 等)叠加使用,输出格式含 text/SARIF/JSON,并提供数据流追踪命令用于调试误报 - 编写自定义规则:区分模式匹配(语法层面,适合已弃用 API、硬编码值等)与污点分析(taint mode,追踪数据从不可信输入流到危险函数,适合注入类漏洞),并给出选择依据
- 测试先行工作流:要求先写
ruleid:/ok:标注的测试用例、再写规则、迭代到 100% 通过,附“偷懒理由清单”逐条反驳(如“没报错就是代码干净”) - CI/CD 集成:附现成 GitHub Actions 模板,支持 PR 增量扫描与定时全量扫描
- 若运行环境已配置 Semgrep MCP 工具(
semgrep_scan等),技能会优先调用 MCP,未配置时回退到本文档中的 CLI 命令,两条路径均有完整说明
3. 适用场景
所属分类:安全与合规
需要在编码或CI流程中快速排查已知漏洞模式、或为自有代码库定制专属安全检测规则的开发者与安全团队;也适合正在学习 Semgrep 规则语法、希望有一份可直接照做的操作手册的用户。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生——标准 SKILL.md,符合 Agent Skills 规范
- Codex:✅ 原生——OpenAI Codex 官方文档确认支持标准 SKILL.md 格式技能,本技能符合该格式;与同仓库 code-security/llm-security 两个姊妹技能不同,本技能未额外生成专属 AGENTS.md(仓库文档说明该生成步骤仅用于“指南型”技能,本技能属“参考型”技能)
- OpenClaw / Hermes Agent:❓ 未验证——公开材料未见相关说明
5. 推荐理由
Semgrep官方出品,一条命令跑静态安全扫描,还能为项目定制专属检测规则;把运行扫描、解读结果、写自定义规则这几件容易卡壳的事压缩成一份可直接照做的操作手册,省去自己摸索 Semgrep 规则语法与最佳实践的过程。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Semgrep 为知名安全厂商官方出品;本技能所属合集仓库被第三方技能扫描平台 SkillsLLM 收录并标注“通过自动化安全检测”,另有多个独立 Agent Skills 目录收录该合集;仓库星数(249)属整个合集、不代表本技能自身热度,本技能自身提交记录(9 次内容相关提交,2 位具名作者)活跃度介于同仓库 code-security(17 次)与 llm-security(6 次)之间 |
| 可用性 | 8 | 需额外安装 Semgrep CLI(pip/brew/Docker 均可,核心扫描功能免费无需注册),SKILL.md 之外附 references/workflow.md、quick-reference.md 两份补充文档;仓库整体近 1 个月内仍有提交,本技能内容最近一次实质更新约 4 个半月前,在 6 个月维护窗口内 |
| 安全性 | 7 | 会执行 shell 命令(调用本机安装的 Semgrep CLI 扫描代码、生成 AST),但用途单一透明——只读代码做静态分析,不修改/执行目标代码;核心扫描功能不要求任何凭据,仅可选的 Semgrep AppSec Platform 集成需用户主动登录;License 明确;作者信誉良好 |
| 综合 | 7.3 | 三项均值 |
安全检查清单
| 检查项 | 结果 |
|---|---|
| ①shell 命令执行 | 有——调用本机 Semgrep CLI 扫描代码、生成 AST、跑规则测试;均为读取/分析代码,不修改或执行被扫描的目标代码 |
| ②运行时联网外发 | 使用 --config auto 或 p/* 规则集时会从 Semgrep 公开规则库拉取规则,为公开非敏感数据;可选的 AppSec Platform 集成需用户主动登录后才会上传结果 |
| ③API key/凭据要求 | 核心扫描与规则编写功能无需任何凭据;仅可选平台集成功能需要账号登录 |
| ④可疑指令(prompt injection) | 未见 |
| ⑤作者/组织信誉 | Semgrep, Inc. 官方,知名安全厂商,信誉良好 |
| ⑥License 是否明确 | 明确,允许内部免费使用,禁止再分发或转售 |
| ⑦最近维护时间 | 本技能内容约 4 个半月前有实质更新,所属仓库整体近 1 个月内仍有提交 |
7. 跟同类 Skills 相比的优势
| Skill | 定位 | 依赖 | 差异 |
|---|---|---|---|
| semgrep(本技能,semgrep/skills 官方) | 运行扫描 + 编写自定义规则的综合参考手册 | Semgrep CLI(免费开源) | 覆盖“跑扫描”与“写规则”两个环节,偏教学/参考型,不强制审批流程 |
| semgrep(Trail of Bits 版,trailofbits/skills 内 static-analysis 插件) | 自动化并行扫描工作流,含用户审批关卡与 Semgrep Pro 自动探测 | Semgrep CLI + 子 Agent 并行能力 | 更强调“自动跑起来”的编排与安全阀(--metrics=off 防遥测泄漏、扫描前需人工确认),但不含规则编写教程 |
| semgrep-rule-creator(Trail of Bits,另一独立技能) | 专注规则编写本身,测试先行 + 污点分析优先 | Semgrep CLI | 只做规则编写、不做扫描运行,纪律更严格(强制阅读 7 篇官方文档),明确说明不适合“只想跑现成规则集”的场景 |
| code-security(同仓库姊妹技能) | 纯知识型编码安全准则(OWASP Top 10 等) | 无外部工具 | 不执行任何扫描,是“编码时主动预防”而非“事后用工具扫描” |
8. 用户评价
该技能目前在第三方平台尚无针对本子技能的具名用户评价;所属合集仓库被第三方技能安全扫描平台 SkillsLLM 收录并标注“自动化安全检测通过(无高危问题)”,另有多个独立 Agent Skills 目录(如 agentpedia.codes)收录该合集条目,但均为目录列表形式,未见具名评论内容。
9. 其他补充
同仓库还有 code-security、llm-security 两个姊妹技能,分别覆盖通用编码安全准则与 LLM 应用安全准则,均为纯文档型、无需额外工具,可按需单独或组合安装(见第 7 章)。
10. 安装使用方式
# 安装整个 semgrep/skills 合集(含 code-security、llm-security、semgrep 三个技能)
npx skills add semgrep/skills
# 仅安装本技能
npx skills add https://github.com/semgrep/skills --skill semgrep
# 使用前需另行安装 Semgrep CLI(三选一)
python3 -m pip install semgrep
brew install semgrep
docker run --rm -v "${PWD}:/src" semgrep/semgrep semgrep --config auto /src
安装后无需重启;Agent 检测到“扫描代码”“找漏洞”“跑静态分析”“写检测规则”等请求时会自动参考本技能;也可直接复制 skills/semgrep/ 目录到本地 Skill 目录手动安装。
11. 注意事项
- 使用扫描功能前必须另行安装 Semgrep CLI,不是纯文档型技能
- 仓库整体自述为 Beta 阶段软件,封装格式仍可能迭代变化
- License 允许内部使用与修改,禁止对外再分发或作为服务提供
- OpenClaw、Hermes Agent 兼容性未获直接证据,使用前建议自行验证
- Semgrep 是模式匹配型工具,无法追踪复杂的跨函数数据流,不能替代人工代码评审或渗透测试