GitHub 利用 AI 进行更准确的代码秘密扫描
快速阅读: 据《InfoQ 公司》称,GitHub 推出基于 AI 的密钥扫描功能,大幅提升密码检测效率并减少误报。通过优化评估框架和合作技术改进,检测准确性和资源管理得到显著提升。这一功能现已成为 Copilot 安全配置的一部分。
GitHub 已在其 Copilot 中推出了基于人工智能的密钥扫描功能,这一功能已集成至 GitHub 密钥防护系统中。通过上下文分析,该功能显著提升了在代码中检测泄露密码的效率。相较传统的基于正则表达式的方法,它能够更好地应对各种复杂的密码结构,大幅减少了误报现象的发生。根据 GitHub 官方博客的详细描述,系统现可分析潜在密钥的使用场景与位置,从而减少无关警报,同时提供更为精准的安全提示,保障存储库的安全性。Sensis 高级软件工程师索林·莫加在领英上评价称,这一功能标志着平台安全性迈入了一个全新阶段,人工智能不仅助力开发工作,还能保护代码的完整性。
在 GitHub 基于人工智能的密钥扫描私人预览期间,一个重要的挑战是处理非常规文件类型和结构的问题。这凸显了单纯依赖大型语言模型(LLM)初始训练数据的局限性。GitHub 的初步解决方案是通过与 GPT-3.5-Turbo 进行少量提示交互。为了解决这些早期问题,GitHub 大幅优化了其离线评估框架,通过整合私人预览参与者的反馈来丰富测试用例,并借助 GitHub 代码安全团队的评估流程构建了更强大的数据采集管道。他们甚至利用 GPT-4 根据现有开源存储库中的密钥扫描报警信息生成新的测试案例。这种改进的评估方式有助于更精准地衡量精确率(降低误报率)和召回率(降低漏报率)。
GitHub 测试了多种技术以提升检测质量,包括尝试不同的 LLM 模型(例如将 GPT-4 作为确认扫描器)、重复提示(即“投票”)以及多样化的提示策略。最终,他们与微软合作,引入了微软的 MetaReflection 技术,这是一种融合链式思维(CoT)与少量提示的离线强化学习方式,以提高精确率。正如 GitHub 博客所述,为了进一步验证这些改进并增强广泛可用的信心,GitHub 引入了一种“镜像测试”机制。这一机制涉及在公共预览的一部分存储库上测试提示和过滤更改。通过应用最新改进重新扫描这些存储库,GitHub 能够评估实际报警数量及误报解决情况的影响,而不会干扰用户的正常使用。测试结果显示检测和误报数量均有显著下降,对实际密码发现的影响微乎其微,在某些情况下误报率降低了 94%。
博客文章总结称,此次开发过程中的经验教训包括优先考虑准确性、基于用户反馈使用多样化的测试用例、高效管理资源以及促进多方协作。这些经验也被应用到了 Copilot 自动修复功能的开发中。自广泛可用版本发布以来,Copilot 密钥扫描功能已经成为安全配置的一部分,允许用户管理哪些存储库需要进行扫描。
关于作者:斯蒂夫·扬格斯(Steef-Jan Wiggers)
(以上内容均由Ai生成)