AI 编程安全:提示词注入正潜伏在你的项目文件中

你的 AI 编程助手会读取仓库中的每一个文件。它会读取你的 README、配置文件和规则,并利用这些文件来决定如何编写代码。

一种新的安全威胁正利用这一行为。研究人员在 28 种不同的 AI 编程工具中发现了一个漏洞。这种攻击并非复杂的黑客行为,而仅仅是你仓库中的一个简单文本文件。

攻击原理:

你克隆了一个开源项目,它看起来很正常。你在 AI 编辑器中打开它并请求一个新功能。你没有注意到配置文件中隐藏的 Unicode 字符,这些字符对你来说是不可见的,但却在向 AI 发出其他指令。

隐藏指令会命令 AI 将你的 AWS 凭据发送到外部服务器。AI 会认为这是一个合法的项目指令,并执行该命令。你的机密信息就这样泄露了。

为什么这种攻击难以防范:

  • 隐藏字符:你看到的是标准文本,但 AI 会通过不可见的 Unicode 字符看到恶意命令。
  • 每个文件都是切入点:README 或库中的注释都可能携带攻击载荷。
  • 高权限:AI Agent 通常以你的用户权限运行。它们可以读取你的 SSH 密钥和 API 令牌。
  • 工具调用:AI 使用工具调用来执行命令。攻击针对这些调用,以绕过安全训练。

如何保护你的工作流:

  • 清理文件内容:在 AI 读取文件之前,剔除隐藏字符和常见的注入模式。
  • 使用沙箱:在没有网络访问权限且使用只读文件系统的容器中运行 AI Agent。
  • 制定严格策略:创建允许命令的白名单。对于任何移动数据或删除文件的命令,都必须经过人工审批。

你可以在开始编程之前进行快速扫描。检查文件中是否存在诸如 "ignore all previous""curl""exfil" 之类的可疑术语。

AI 编程工具虽然能提高效率,但它们默认磁盘上的文件是安全的。事实并非如此。请将每个文件都视为不可信的输入。

你如何在 AI 工作流中处理提示词注入风险?

Source: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9