先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
示例命中:server.py第42行使用输入值拼接SQL;规则执行完成,尚未人工追踪输入来源。
输出
编辑示例 · 未运行
待复核:server.py:42可能存在SQL注入路径。
观察:查询字符串包含外部变量拼接。
下一步:追踪变量是否来自不可信输入,确认执行API是否参数化。
修复方向:若输入可控,使用参数绑定并加入回归用例。
状态:扫描命中,尚未确认可利用性。
方法说明
识别语言和规则集,经确认后运行 Semgrep 并合并扫描输出。 具体任务 规划规则扫描:识别语言、扫描范围与规则集,按上游流程审阅计划。 整理扫描发现:保留各规则执行状态,将结果汇总到SARIF供复核。 复核已有扫描覆盖:结合scans.json、原始发现及日志检查成功、失败和跳过规则,并回到对应代码确认发现。 必需材料 获准审查的代码版本、语言与文件范围 本次扫描模式、引擎和规则集清单 Semgrep输出SARIF或原始JSON、scans.json与完整运行日志(缺失项明确填写) 可选材料 已有人工作出的发现处置记录 忽略项、排除路径与Pro可用性说明 使用门槛 首次复核需要已有扫描产物和对应代码版本;仅凭扫描摘要不能确认全部规则完成。新扫描另需兼容Semgrep CLI并按固定源审阅扫描计划。 这个 Skill 额外提供的方法 将“跑过扫描”拆成哪些规则真的完成、哪些报错、哪些发现值得处理。 编辑示例(未运行) 如何描述一条未经复核的扫描命中 任务:把虚构扫描命中整理为审查记录 输入: 示例命中:server.py第42行使用输入值拼接SQL;规则执行完成,尚未人工追踪输入来源。 结果片段: 待复核:server.py:42可能存在SQL注入路径。 观察:查询字符串包含外部变量拼接。 下一步:追踪变量是否来自不可信输入,确认执行API是否参数化。 修复方向:若输入可控,使用参数绑定并加入回归用例。 状态:扫描命中,尚未确认可利用性。 以下为官方编辑构造的示例,未运行上游 Skill。记录是编辑小样,未运行任何安全扫描,也不将规则命中直接标为漏洞。 首次任务 任务:复核我提供的Semgrep扫描流程、覆盖状态与发现,结合日志、scans.json和SARIF判断哪些结论有证据支持。 任务重点:识别语言、扫描范围与规则集,按上游流程审阅计划。 必需材料: - 获准审查的代码版本、语言与文件范围:[填写或粘贴我的材料;未具备则说明] - 本次扫描模式、引擎和规则集清单:[填写或粘贴我的材料;未具备则说明] - Semgrep输出SARIF或原始JSON、scans.json与完整运行日志(缺失项明确填写):[填写或粘贴我的材料;未具备则说明] 可选补充: - 已有人工作出的发现处置记录:[可填写,未提供不应假定存在] - 忽略项、排除路径与Pro可用性说明:[可填写,未提供不应假定存在] 请交付有材料依据的分析报告,列出发现、证据、建议与未覆盖范围。仅依据这些材料处理;缺少决定结果的信息时先说明缺口,不补造事实。未执行的检查、修改或外部操作明确标为未执行。 使用前提:首次复核需要已有扫描产物和对应代码版本;仅凭扫描摘要不能确认全部规则完成。新扫描另需兼容Semgrep CLI并按固定源审阅扫描计划。 处理边界:复核既有结果不自动启动新扫描;若需新扫描,固定入口要求先明确目标、规则集、引擎与模式并取得计划批准。;新扫描须关闭遥测并记录失败、跳过或降级的规则;静态命中仍需结合代码复核,不直接等同于已确认漏洞。 验收要求: 1. 规则清单与scans.json、完整日志对应,成功失败和跳过状态分别记录。 2. 每条待处理发现包含SARIF或原始输出位置、代码版本与复核依据。 3. 失败、降级、排除范围及无法核验的产物缺口明确列出。 验收方法 规则清单与scans.json、完整日志对应,成功失败和跳过状态分别记录 每条待处理发现包含SARIF或原始输出位置、代码版本与复核依据 失败、降级、排除范围及无法核验的产物缺口明确列出 依赖与准备 Semgrep CLI、完整扫描脚本和规则集;跨文件能力可能需要Pro订阅与授权,按源流程关闭遥测。 使用边界 复核既有结果不自动启动新扫描;若需新扫描,固定入口要求先明确目标、规则集、引擎与模式并取得计划批准。 新扫描须关闭遥测并记录失败、跳过或降级的规则;静态命中仍需结合代码复核,不直接等同于已确认漏洞。 排错 结果为空:先确认规则是否成功运行以及排除范围。 Pro能力不可用:记录降级原因和实际覆盖,不能声称跨文件分析完成。 固定来源 https://github.com/trailofbits/skills/blob/0cc1c73a5e96749ab32d7ea5e14892fafa6972ae/plugins/static-analysis/skills/semgrep/SKILL.md