Semgrep 供应链规则包运行器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/semgrep-supply-chain-rule-pack-runner。
技能介绍
要解决的问题
供应链攻击越来越集中在两个位置:一是依赖清单和锁文件里的恶意或过期包,二是代码里绕过安全护栏的写法。开发者在本地跑一次全量扫描并不难,难的是把扫描结果翻译成「这个仓库此刻能做什么」——哪些 requirements.txt 条目对应已知漏洞版本,哪个 Dockerfile 指令会引入未校验的基础镜像,哪段依赖安装脚本在CI 里被悄悄跳过。信息散落在扫描输出里,缺少一次面向仓库上下文的聚合。
工作方式
该技能围绕 semgrep scan 组织执行,把三类输入串成一条流水线:
- 代码规则:直接对当前工作区的源码运行 Semgrep 规则,命中硬编码密钥、危险 API 调用等模式;
- Registry 规则包:通过规则包引入针对供应链场景的检测集,覆盖依赖文件、锁文件和构建脚本等资产,而不是只盯
.py或.go文件; - 依赖感知的发现:把扫描结果与仓库实际声明的依赖关联,输出落到包名、版本号和文件路径层面,方便开发者直接定位修复点。
最终产物是一份按仓库语境组织的结果摘要:哪些命中属于供应链面,哪些规则因未覆盖的语言或文件类型而跳过,哪些结论需要结合上游公告进一步确认。
适用边界
- Semgrep 是静态分析,不做动态执行,因此运行期才暴露的行为不在检测范围内;
- 规则包的效果取决于所选规则集与项目技术栈的匹配度,冷门语言或私有格式的供应链文件可能需要额外配置;
- 依赖漏洞判定依赖上游数据源的时效性,扫描结果应作为当下快照使用,而不是长期合规证明。
使用场景
- 提交代码前运行扫描,定位requirements.txt中带已知漏洞的依赖版本
- CI流水线触发检查,判断Dockerfile是否引入未固定版本的不安全基础镜像
- 审计锁文件中的包变更,标记近期新增或替换的第三方依赖来源
- 梳理仓库供应链面,生成按文件路径和包名分组的风险项列表
适合人员
- 后端开发者,想在代码合入主分支前排除供应链相关隐患
- 供应链安全工程师,需要把Semgrep扫描结果整理成可落地的修复清单
- CI/CD流水线维护者,要给构建流程添加依赖与构建脚本的自动化检查
- 小团队技术负责人,希望用低成本工具覆盖仓库的供应链风险点