返回博客
Security
7分钟

AI编程助手正在编写不安全的代码:开发者需要知道的事

GitHub Copilot和Cursor AI可能引入安全漏洞。了解2026年AI生成代码中发现的74个CVE以及如何保护您的代码库。

LOCK.PUB

AI编程助手正在编写不安全的代码:开发者需要知道的事

截至2026年3月,研究人员已确定74个与AI生成代码直接相关的CVE(常见漏洞和暴露)。其中35个仅在3月份发现。详细情况:Claude Code贡献了27个CVE,GitHub Copilot 4个,Devin 2个。

这不是假设性风险。这些是由开发者信任编写安全代码的AI编程助手创建的生产系统中的真实漏洞。

The Register 2026年3月的标题直截了当:"用AI编程并不意味着你的代码更安全。"斯坦福的研究证实,使用AI助手的开发者实际上比没有AI帮助的开发者引入更多的安全漏洞。

"氛围编程"的兴起

软件开发中有一个新术语:"氛围编程"。它描述的是那些以最少审查接受AI生成代码的开发者——根据代码"感觉对不对"来点击"接受",而不是仔细分析。

问题是?安全漏洞并不总是"感觉"不对。SQL注入漏洞看起来像普通的数据库代码。不安全的反序列化看起来像标准的对象处理。跨站脚本可以隐藏在看似无害的字符串操作中。

当开发者每天接受数百个AI建议时,彻底审查变得不可能。代码发布了,漏洞也随之发布。

AI代码助手的真实安全风险

1. 脆弱的代码模式

AI代码助手是在公共代码库上训练的——包括充满不安全代码的代码库。它们学习的是常见模式,不一定是安全模式。

AI引入的常见漏洞:

漏洞 AI如何引入
SQL注入 建议字符串拼接而非参数化查询
XSS 生成不对用户输入进行消毒的代码
路径遍历 创建没有适当验证的文件操作
不安全反序列化 建议反序列化不可信数据
硬编码密钥 有时包含看起来像真实的占位符凭证
弱加密 使用已弃用的算法(MD5、SHA1)

2. 您的代码成为训练数据

在大多数AI编程助手的免费层,您的代码可能被用于训练未来的模型:

  • GitHub Copilot Free/Individual:代码片段用于模型改进(除非您选择退出)
  • Cursor AI Free:类似的数据收集政策
  • Claude Free Tier:对话可能用于训练

这意味着:

  • 您的专有算法可能影响竞争对手的代码建议
  • 敏感的业务逻辑可能出现在其他开发者的建议中
  • 嵌入代码中的商业秘密理论上可以被提取

企业层通常提供数据保护协议,但许多开发者在不了解影响的情况下使用免费层。

3. 凭证暴露

使用AI代码助手时,您通常会共享包括以下内容的上下文:

  • 环境变量(有时包含API密钥)
  • 配置文件
  • 数据库连接字符串
  • 内部API端点

即使您不直接粘贴凭证,AI助手也可以从上下文推断或建议暴露它们的代码模式。

漏洞示例:

# AI可能建议这种模式:
import os
api_key = os.getenv("API_KEY")
print(f"Using key: {api_key}")  # 在日志中记录密钥!

4. 供应链风险

AI代码助手可能建议:

  • 有已知漏洞的过时包
  • 误植攻击包名(名称相似的恶意包)
  • 您不打算添加的依赖
  • 引入不安全传递依赖的包

问"如何在Python中解析JSON?"的开发者可能会收到安装随机包而不是使用内置json模块的建议。

5. 周五下午问题

Gartner在2026年建议公司应该"在周五下午禁止使用Copilot"而引起轩然大波。原因:周末前疲惫的开发者更可能不经适当审查就接受AI建议。

这突出了一个更广泛的问题:AI助手在开发者处于以下状态时最危险:

  • 疲劳
  • 截止日期压力下
  • 在不熟悉的代码库中工作
  • 多任务处理

正是开发者最常寻求AI帮助的时候。

最近的研究和发现

佐治亚理工学院研究(2026年3月)

迄今为止最全面的研究追踪了与AI生成代码具体相关的CVE:

  • 总共74个CVE追溯到AI代码助手
  • Claude Code:27个CVE(由于其文件系统访问和代码执行能力而最多)
  • GitHub Copilot:4个CVE
  • Devin:2个CVE
  • 仅2026年3月就发现35个CVE — 速度在加快

斯坦福研究(2025)

对照研究发现使用AI助手的开发者:

  • 更可能编写不安全的代码
  • 对自己的代码更有信心是安全的(尽管实际上更不安全)
  • 不太可能查阅安全文档

Pillar Security报告(2026)

安全研究人员在GitHub Copilot和Cursor AI中发现了新的攻击向量:

  • 通过仓库文件进行提示词注入
  • 将代码上下文外泄到外部服务器
  • 通过战略性编写的代码注释操纵建议

如何更安全地使用AI代码助手

1. 将AI建议视为不可信输入

每个建议都应该:

  • 逐行审查
  • 测试安全影响
  • 根据安全最佳实践进行验证

不要因为AI生成的代码能工作就假设它是安全的。

2. 敏感代码使用企业层

如果您在处理专有代码:

产品 企业保护
GitHub Copilot Enterprise 代码不用于训练,SOC 2合规
Cursor AI Business 增强的数据保护
Claude Enterprise 可用数据处理协议

与代码泄露风险相比,成本差异微乎其微。

3. 不要与AI共享凭证

不要:

  • 在提示中粘贴API密钥
  • 在上下文中包含.env文件
  • 用真实凭证请求"调试这个连接字符串"

应该:

  • 使用占位符值:YOUR_API_KEY_HERE
  • 共享代码前编辑敏感值
  • 将凭证保存在AI排除的单独文件中

4. 运行安全扫描

集成自动化安全工具来捕获AI遗漏的问题:

  • SAST工具(Semgrep、SonarQube)用于代码分析
  • 依赖扫描器(Snyk、Dependabot)用于易受攻击的包
  • 密钥扫描器(GitGuardian、TruffleHog)用于泄露的凭证

在每次提交时运行,特别是包含AI生成代码的提交。

5. 创建团队指南

为AI代码助手使用建立明确的政策:

  • 批准使用的层级
  • 不能使用AI辅助的代码类型
  • AI生成代码的必需审查流程
  • 安全培训要求

6. 安全的开发凭证共享

在涉及敏感凭证的项目中协作时:

不要:

  • 通过微信、钉钉或电子邮件共享凭证
  • 将凭证提交到仓库(即使是私有的)
  • 在AI聊天界面中粘贴凭证

应该:

  • 使用密码管理器进行团队凭证共享
  • 使用密钥管理工具(HashiCorp Vault、AWS Secrets Manager)
  • 通过加密、过期链接共享一次性凭证

像LOCK.PUB这样的服务允许您创建查看后自动删除的密码保护备注——非常适合与队友共享数据库密码、API密钥或其他敏感凭证,而不留下永久痕迹。

前进的道路

AI代码助手不会消失。它们太有用了。但当前的方法——信任AI编写安全代码——明显是失败的。

解决方案不是放弃AI编程工具。而是:

  1. 像对待初级开发者代码一样对待AI代码 — 需要审查
  2. 维护安全工具 — 自动扫描捕获AI错误
  3. 保护您的数据 — 使用企业层,不共享密钥
  4. 保持信息更新 — 随着AI能力扩展,安全风险也在演变

2026年初发现的74个CVE只是开始。随着AI代码助手变得更强大、更广泛采用,攻击面也在扩大。相应地做好准备。

了解更多:如何安全使用AI工具 →

创建用于共享凭证的安全备注 →

相关关键词

github copilot 专有代码安全
ai代码安全风险
cursor ai安全
ai生成代码漏洞
copilot建议不安全代码

立即创建密码保护链接

免费创建密码保护链接、加密备忘录和加密聊天。

免费开始
AI编程助手正在编写不安全的代码:开发者需要知道的事 | LOCK.PUB Blog