写点什么

GitHub Copilot 加入基于 AI 的代码密码扫描功能

  • 2025-04-15
    北京
  • 本文字数:1175 字

    阅读完需:约 4 分钟

GitHub Copilot 加入基于 AI 的代码密码扫描功能

GitHub 在其 Copilot 功能中引入了一项基于 AI 的密码扫描功能,该功能已经整合到 GitHub Secret Protection 中。通过上下文分析,这一新功能显著提升了检测代码泄露密码的能力。与传统的正则表达式方法相比,这种方法可以识别多样化的密码结构,并减少误报数量。


GitHub 的一篇博文写道,该系统现在会分析潜在的密码使用和存储位置,以减少无关警报,并提供更准确的通知,这对保证代码库的安全来说至关重要。Sensis 高级软件工程师 Sorin Moga 在领英上评论称,这标志着平台安全进入了一个新时代,AI 不仅可以协助开发,还可以保障代码的完整性。


在这项功能的私密预览阶段,一个关键性挑战是其对非传统文件类型和结构的处理存在困难,这突显了仅依赖大语言模型初始训练数据的局限性。GitHub 最初采用的方法是利用 GPT-3.5-Turbo 的“少量样本提示”(few-shot prompting)技术,为模型提供示例来指导检测。


为了解决这些问题,GitHub 大幅增强了其离线评估框架,通过加入私有预览参与者的反馈来丰富测试用例,并利用 GitHub 代码安全团队的评估流程构建更强大的数据收集管道。他们甚至使用了 GPT-4,根据开源代码库中现有的密码扫描警报生成新的测试用例。这种改进的评估方法能够更好地衡量 精确率(降低误报)和 召回率(减少漏报)。


GitHub 尝试了多种技术来提高检测质量,包括尝试不同的 LLM 模型(例如将 GPT-4 作为验证扫描器)、重复提示(“投票”)和多样化的提示策略。最终,他们与微软合作,采用了微软的 MetaReflection 技术,这是一种离线强化学习形式,结合了思维链(Chain of Thought,CoT)和少量样本提示来提高准确率。


正如 GitHub 的博文所述:


我们最终决定采用这些技术的组合,并正式公开预览 Copilot 的密码扫描功能,向所有 GitHub Secret Protection 的用户全面开放。


为了进一步验证这些改进,并为全面推出做好准备,GitHub 实现了一个“镜像测试”框架。该框架涉及在公开预览的一个子集代码库上测试提示和过滤更改。通过使用最新的改进来重新扫描这些代码库,GitHub 可以在不影响用户的情况下评估对实际警报量和误报解决的影响。


测试结果表明,检测量和误报量均显著减少,对实际的密码发现影响微乎其微。在某些情况下,误报量甚至减少了 94%。博文总结道:


对比显示,在私有和公开预览阶段所做的所有修改都提升了精确度,而且没有降低召回率。我们已准备好为所有 GitHub Secret Protection 用户提供一个可靠且高效的密码检测机制。


Copilot 团队在开发过程中积累了宝贵的经验教训,包括重视准确性、根据用户反馈采用多样化的测试用例、有效管理资源以及促进团队合作。这些经验教训也被应用到了 Copilot Autofix 项目中。自全面推出以来,Copilot 的密码扫描功能已经成为安全配置的一部分,用户可以决定扫描哪些代码库。


查看英文原文

https://www.infoq.com/news/2025/03/github-ai-copilot-secretscanning/

2025-04-15 08:006131

评论

发布
暂无评论

Java内存模型和volatile、final等关键字

麻瓜镇

Java 多线程

用 Electron 打包语雀

封不羁

Java Electron

《如何阅读一本书》读书心得

兆熊

读书笔记

Android Studio NDK 编译 Bsdiff 库

码农亮哥

android-studio ndk bsdiff

从nacos客户端的TIME_WAIT说起

捉虫大师

Java TCP nacos

《零基础学Java》 FAQ 之 零-这门课适合我吗?

臧萌

Java 编程语言

《零基础学 Java》 FAQ 之 3-为什么计算机里的浮点数不精确

臧萌

Java 浮点数

产品周刊 | 第 14 期(20200510)

八味阁

产品 产品经理 产品设计

小棉袄,最终却没有变成你的防弹衣

小天同学

个人成长 成长 感悟 母亲节 感恩

webpack入门(一)

子铭

大话区块链和比特币的技术原理

麦叔

比特币 区块链 数字货币 加密货币 加密解密

软件产品的信息安全问题

Interstate5

软件开发 信息安全

《你好架构师之 压榨硬件价值的利器容器(Docker)》

再见小飞侠

模块化设计思想产品设计应用

燕陈华

产品设计 模块化流程 流程图

Java小想法: JDK许可证

X.F

Java 编程语言

LeetCode 1232. Check If It Is a Straight Line

liu_liu

LeetCode

软件产品开发流程

Interstate5

软件开发 软件开发流程

Redis学习笔记(集合类型)

编程随想曲

redis

程序员的晚餐 | 5月9日 炖蹄髈

清远

程序员

一口气带你踩完五个 List 的大坑,真的是处处坑啊!

楼下小黑哥

Java 踩坑 后端 集合

权威与边界

伯薇

权威 边界 BART 工作方式

《零基础学 Java》 FAQ 之 4-关于补码,多说两句

臧萌

Java 补码

HTTP 升级 HTTPS 全过程记录

猴哥一一 cium

https 证书

程序员必需清楚的进程和线程

小趴菜~

线程 操作系统 进程

人人都应该懂的加密算法 - 公钥加密

麦叔

对称加密 加密解密 信息安全 公钥加密

高仿瑞幸小程序 05 更正轮播组件的高度计算

曾伟@喵先森

小程序 微信小程序 大前端

白话计算机网络通信过程

WB

程序员 计算机网络

软件产品信息安全 - 数据分类

Interstate5

软件开发 信息安全 数据分类

面向对象是什么

落英亭郎

面向对象

给在线教学泼点冷水

启润

在线教育 基础教育

Spring整合MyBatis详细分析

Java收录阁

mybatis

GitHub Copilot 加入基于 AI 的代码密码扫描功能_AI&大模型_Steef-Jan Wiggers_InfoQ精选文章