写点什么

Copilot 及 Cursor 等 AI 编码助手的新漏洞:通过规则文件注入恶意代码

  • 2025-03-24
    北京
  • 本文字数:1235 字

    阅读完需:约 4 分钟

大小:600.90K时长:03:25
Copilot及Cursor等AI 编码助手的新漏洞:通过规则文件注入恶意代码

 整理 | 华卫

 

近日,Pillar Security 的研究人员报告称,诸如 GitHub Copilot 和 Cursor 这类人工智能编码助手,可能会通过恶意规则配置文件的分发而被操控,从而生成包含后门程序、漏洞及其他安全问题的代码。

 

规则文件被人工智能编码代理用于在生成或编辑代码时指导其行为。例如,一个规则文件可能包含指令,让编码助手遵循特定的编码最佳实践、采用特定的格式,或者用特定的语言输出回复内容。

 

Pillar 的研究人员开发出了一种攻击技术,他们称之为“规则文件后门”。这种技术通过向规则文件中注入对人类用户不可见但人工智能代理可读的指令,将规则文件武器化。研究人员指出,像双向文本标记和零宽度连接符这类隐藏的 Unicode 字符,可被用于在用户界面以及 GitHub 的拉取请求中隐藏恶意指令。 

 

规则配置通常在开发者社区中共享,并通过开源代码库进行分发,或者包含在项目模板里。因此,攻击者可以通过在论坛上分享恶意规则文件、在像 GitHub 这样的开源平台上发布该文件,或者通过向一个热门代码库发送拉取请求来注入恶意规则文件。一旦被篡改的规则文件被导入到 GitHub Copilot 或 Cursor 中,人工智能代理在协助受害者未来的编码项目时,就会读取并遵循攻击者的指令。

 

在 Pillar 展示的一个例子中,一个看似指示人工智能“遵循 HTML5 最佳实践”的规则文件包含了隐藏文本,这些隐藏文本中还有进一步的指令,要求在每个文件的末尾添加一个外部脚本。这个隐藏的提示还包括一段越狱代码,用于绕过潜在的安全检查,让人工智能确信添加该脚本对于保护项目安全是必要的,并且这是公司政策的一部分,此外还包含了指令,要求在对用户的任何回复中都不要提及添加了该脚本这件事。

 

Pillar 的研究人员发现,当被要求生成一个 HTML 页面时,GitHub Copilot 和 Cursor 都会遵循指令添加外部脚本,并且在这两个助手的自然语言回复中都没有提到添加了这个脚本。

 

研究人员称,“规则文件后门”还有可能被用于在生成的代码中引入安全漏洞,或者创建会泄露数据库凭证或 API 密钥等敏感信息的代码。

 

Pillar 在 2025 年 2 月向 Cursor 披露了这一漏洞利用情况,并在 2025 年 3 月向 GitHub 披露了相关情况。Cursor 表示,这个问题并非源于其平台的漏洞,管理风险是用户的责任。GitHub 也做出了类似回应,称用户有责任审查并接受由 Copilot 生成的代码和建议。

 

在 GitHub 2024 年“软件开发中的人工智能”调查中,约 97%的受访者表示,他们在工作中及工作外都使用过生成式人工智能,这表明人工智能编码辅助在开发者中相当普遍。

 

Pillar 建议开发者审查他们使用的所有规则文件,检查是否存在诸如不可见的 Unicode 字符或不寻常格式等潜在的恶意注入情况,并像审查可执行代码一样严格审查人工智能配置文件。

 

研究人员表示,对于人工智能生成的代码也应该仔细审查,尤其是对于外部资源引用等意外添加的内容。自动化检测工具也有助于识别规则文件中的可疑内容,或者人工智能生成代码中存在被篡改的迹象。 

 

参考链接:

https://www.scworld.com/news/how-ai-coding-assistants-could-be-compromised-via-rules-file

 

2025-03-24 12:026

评论

发布
暂无评论

心态炸了!我的join查询多加了个过滤条件性能就崩了

林一

MySQL 查询优化 多表join

【设计模式】模板方法模式

Andy阿辉

C# 后端 设计模式 8月日更

【Flutter 专题】62 图解基本 Button 按钮小结 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

快手处罚恶意炒作、审丑卖惨类账号,不良自媒体违背公序良俗

石头IT视角

Linux之alias命令

入门小站

Linux

vue入门:element组件与动画使用

小鲍侃java

8月日更

sql task2 基础查询与排序

橙橙橙橙汁丶

数字化为企业带来哪些价值?

boshi

数字化转型

是时候封装限制 UITextField、UITextView 的最大字符长度了

fuyoufang

swift iOS 知识体系 8月日更

SpringBoot 自动装配源码解析

Rubble

8月日更

[灵魂拷问]MySQL面试高频100问(工程师方向)

编程菌

Java 编程 程序员 面试 计算机

【前端 · 面试 】TCP 总结(一)—— 概述

编程三昧

8月日更

微博评论高性能高可用架构设计

tjudream

高可用架构 微博评论 高性能计算架构 多级负载均衡 多级缓存

埋土灰

箭上有毒

8月日更

图解:为什么非公平锁的性能更高?

王磊

Java 8月日更

fil挖矿的规则是什么?fil挖矿收益如何?

区块链 分布式存储 IPFS fil收益 fil挖矿

Springboot+quartz源码探索

4ye

Java 后端 springboot quartz 8月日更

面试侃集合 | LinkedBlockingQueue篇

码农参上

队列 Queue 8月日更

LeetCode题解:2. 两数相加,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

获取自己的公网 IP 地址

耳东@Erdong

IP地址 8月日更

数据传输过程的序列化,你了解吗

卢卡多多

序列化 8月日更

手撸二叉树之二叉树的层平均值

HelloWorld杰少

数据结构与算法 8月日更

网络攻防学习笔记 Day110

穿过生命散发芬芳

网络安全 8月日更

Vue进阶(四十八):Vue.js 2.0 移动端拍照压缩图片预览及上传

No Silver Bullet

Vue 8月日更

ASCII对照表

入门小站

工具

Python代码阅读(第14篇):列表求并集

Felix

Python 编程 Code Programing 阅读代码

Flink 和流式应用运维(十-下)

Databri_AI

flink 监控 Web UI

MySQL中FROM_UNIXTIME与UNIX_TIMESTAMP

一个大红包

8月日更

前端之算法(九)回溯算法

Augus

算法 8月日更

【微积分的力量】芝诺悖论

LeifChen

8月日更 微积分 芝诺悖论

Vue进阶(四十七):面试必备:2021 Vue经典面试题总结(含答案)

No Silver Bullet

面试 Vue 8月日更

Copilot及Cursor等AI 编码助手的新漏洞:通过规则文件注入恶意代码_AI&大模型_华卫_InfoQ精选文章