GitHub Blog · AI & ML· Batu Ozturkler·· 13 天前AI 评分33
GitHub 如何用 ModernBERT 分类器更少噪声地检测密钥
GitHub’s model for secret detection: Finding more secrets with less noise
AI 导读
GitHub 用微调 ModernBERT 分类器替换原 LLM 流水线做密钥扫描,仓库所有者加权告警接受率提升 11.5%,推送后扫描中位执行时间降低 86%,服务成本降低超 98%。新流水线先用正则高召回生成候选,再由分类器结合文件路径、变量名和上下文判断是否为真实密钥,并已把通用密钥检测扩展到推送保护。
深度导读
GitHub 公布了其密钥扫描新流水线的设计与评估结果:用微调的 ModernBERT 分类器替代此前的 LLM 流水线,在保持召回的同时减少误报。该流水线分两阶段,正则表达式先以高召回筛出疑似凭据的候选字符串,再由分类器结合候选值、文件路径、密钥类型、变量名和有限范围的周边代码与文本,给出其为真实密钥的置信度,高置信结果生成告警,占位符、测试样例和校验和等相似字符串则被过滤。
GitHub 指出,通用密钥的难点在于语法与构建 ID、校验和、示例值等非敏感字符串重叠,上下文才是决定性信号。分类器正是学习这类“硬负样本”,例如文档中的占位符、测试夹具、被脱敏的值和生成的假数据,而不必为每种例外手写规则。模型输入包含候选字符串、文件路径、类型和有限上下文,输出分类分数供扫描器决策。
评估方面,离线测试中,新流水线在相同公开流量上的推送后扫描精确率提升 13%、召回率提升 19%;线上 A/B 实验中,按仓库所有者加权的告警接受率提升 11.5%,推送后扫描中位执行时间降低 86%,服务成本相比远程 LLM 调用降低超过 98%。模型以 ONNX 格式导出并做 8 位量化以加速推理。
效率提升也让 GitHub 把通用密钥检测扩展到推送保护,在开发者推送前返回结果,而不只是提交后扫描。GitHub 强调分类器并不取代确定性扫描,正则仍负责快速找候选,模型用于区分“看起来像密钥”和“很可能是真实密钥”。后续方向包括用生产反馈构建持续改进闭环,以及探索在单步内完成密钥检测与提取的新模型架构。
来源:GitHub Blog · AI & ML · github.blog