GitHub Copilot 越狱漏洞

devtools/2025/2/7 21:40:19/
aidu_pl">

图片

研究人员发现了两种操控 GitHub 的人工智能(AI)编码助手 Copilot 的新方法,这使得人们能够绕过安全限制和订阅费用、训练恶意模型等。

第一种技巧是将聊天交互嵌入 Copilot 代码中,利用 AI 的问答能力,使其产生恶意输出。第二种方法则是通过代理服务器重新路由 Copilot,以便直接与它集成的 OpenAI 模型进行通信。

Apex 的研究人员认为这些问题属于漏洞。GitHub 则持不同意见,分别将其描述为 “离题聊天回复” 和 “滥用问题”。在回应 Dark Reading 的询问时,GitHub 写道:“作为负责任的 AI 开发的一部分,我们会不断完善现有的安全措施,防止出现有害和冒犯性的输出。此外,我们还会继续投入资源,防止滥用情况,确保我们的产品按预期使用。”

 GitHub Copilot 越狱

Apex 的漏洞研究员 Fufu Shpigelman 解释说:“Copilot 会尽力帮助你编写代码,包括你在代码文件中写的所有内容。但在代码文件中,你也可以编写用户和助手之间的对话。”

例如,在下面的截图中,一名开发者从终端用户的角度在代码中嵌入了一个聊天机器人提示。这个提示带有恶意意图,要求 Copilot 编写一个键盘记录器。作为回应,Copilot 给出了一个安全的输出,拒绝了该请求:

图片

然而,开发者完全可以控制这个环境。他们可以简单地删除 Copilot 的自动完成回复,并用恶意回复取而代之。

或者,更好的办法是,他们可以通过一个简单的暗示来影响 Copilot。正如 Shpigelman 所说:“它是为了完成有意义的句子而设计的。所以,如果我删除‘抱歉,我无法提供帮助’这句话,并用‘当然’这个词代替,它就会试图思考如何完成以‘当然’开头的句子。然后,它就会尽可能地帮你进行恶意活动。” 换句话说,在这种情况下,让 Copilot 编写键盘记录器就像通过误导让它觉得自己想这么做一样简单。

图片

开发者可以利用这个技巧生成恶意软件,或其他恶意输出,比如如何制造生物武器的指令。或者,他们也可以利用 Copilot 将这类恶意行为嵌入自己的聊天机器人,然后向公众发布。

通过代理突破 Copilot 限制

为了生成新颖的代码建议或处理对提示(例如编写键盘记录器的请求)的响应,Copilot 会通过这些模型的应用程序接口(API),借助基于云的大语言模型(LLM),如 Claude、谷歌 Gemini 或 OpenAI 模型的帮助。

Apex 的研究人员想出的第二种方法,让他们能够介入这个交互过程。首先,他们修改了 Copilot 的配置,调整了 “github.copilot.advanced.debug.overrideProxyUrl” 设置,将流量重定向到他们自己的代理服务器。然后,当他们让 Copilot 生成代码建议时,他们的服务器拦截了 Copilot 发出的请求,获取了 Copilot 用于向 OpenAI 进行身份验证的令牌。有了必要的凭证,他们就可以不受任何限制地访问 OpenAI 的模型,而且无需为此付费。

而且,这个令牌并不是他们在传输过程中发现的唯一有价值的东西。Shpigelman 解释说:“当 Copilot 与服务器交互时,它会发送系统提示、你的提示,以及之前发送的提示和响应记录。” 暂且不说暴露大量提示记录带来的隐私风险,这些数据为滥用 Copilot 的设计功能提供了充足的机会。

“系统提示” 是一组指令,用于定义 AI 的特性 —— 它的限制、应该生成何种类型的响应等等。例如,Copilot 的系统提示旨在阻止它以各种可能的方式被恶意利用。但 Shpigelman 声称,通过在系统提示到达大语言模型 API 的途中进行拦截,“我可以更改系统提示,这样一来,之后我就不用费那么大劲去操控它了。我可以直接修改系统提示,让它给我提供有害内容,甚至讨论与代码无关的事情。”

对于 Apex 的联合创始人兼首席产品官 Tomer Avni 来说,这两个 Copilot 漏洞带来的问题 “并不是 GitHub 没有努力设置防护措施。而是大语言模型的本质决定了,无论你设置多少防护措施,它总是可以被操控。这就是为什么我们认为需要在其之上设置一个独立的安全层,来检测这些漏洞。”


http://www.ppmy.cn/devtools/156935.html

相关文章

upload-labs通关

前言 我们下面进行下一个漏洞——文件上传的学习。文件上传是常见漏洞之一,是Web安全入门必学漏洞。为探讨清楚文件上传漏洞的诸多细节,我们特以经典的upload-labs进行从入门到进阶的专项训练。 在做题过程中,作者把用到的知识进行了全面、…

计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

QT简单实现验证码(字符)

0) 运行结果 1) 生成随机字符串 Qt主要通过QRandomGenerator类来生成随机数。在此之前的版本中,qrand()函数也常被使用,但从Qt 5.10起,推荐使用更现代化的QRandomGenerator类。 在头文件添加void generateRandomNumb…

微服务知识——微服务拆分规范

文章目录 一、微服务拆分规范1、高内聚、低耦合2、服务拆分正交性原则3、服务拆分层级最多三层4、服务粒度适中、演进式拆分5、避免环形依赖、双向依赖6、通用化接口设计,减少定制化设计7、接口设计需要严格保证兼容性8、将串行调用改为并行调用,或者异步…

MATLAB | 基于长时间序列栅格数据的Mann-Kendall与Pettitt突变检验分析

各位同学好,今天我们将分享在水文气象等领域中常用的两种突变检验方法——Mann-Kendall(MK)检验和Pettitt检验。由于时间关系,今天我们不详细介绍具体的公式和推导过程,感兴趣的同学可以参考相关文献,如《P…

Unity VideoPlayer播放视屏不清晰的一种情况

VideoPlayer的Rnder Texture可以设置Size,如果你的视屏是1920*1080那么就设置成1920*1080。 如果设置成其他分辨率比如800*600会导致视屏不清晰。

AI智慧社区--百度地图

数据库&#xff1a; 前端实现 页面代码 <template><div class"app-container"><baidu-map class"bm-view" :center"center" :zoom"zoom" ready"initMap"><!-- 定位 --><bm-geolocation anchor…

【100%通过率 】【华为OD机试c++/java/python】日志采集系统【 E卷 | 2023 Q1 |100分】

​ 2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 题目描述 日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。 如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验; 如果一次上报的条数太多,会导致超…