AI 编程助手早已不再是简单的自动补全组件。它们会索引你的代码仓库,读取你的环境变量,建议 Shell 命令,并在你的终端中悄声提示修复方案。它们与你的源代码、本地 Token、云端 CLI 配置以及 SSH 密钥处于同一个内存空间。这种接近性使它们以一种非常直接、而非理论上的方式成为了你攻击面的一部分。

大多数团队都在匆忙中采用了这些工具。开发者安装一个扩展,使用个人访问令牌进行身份验证,然后开始接受 AI 生成的建议。安全审查很少能跟上这种步伐。最近出现的两种威胁——Djinn Stealer 和 ChocoPoC,恰恰展示了这种差距为何如此危险。

你忘记审查的邻居

想想你的助手实际上位于何处。如果你使用 GitHub Copilot、Cursor、Continue 或任何类似的工具,它很可能拥有对你打开的文件、项目结构,有时甚至是整个本地文件系统的读取权限。它将身份验证令牌存储在磁盘上可预测的位置。它在你的 IDE 内部运行,而 IDE 本身是以你的用户权限运行的。这意味着,一个入侵你工作站的恶意软件不需要盲目地搜寻凭据。AI 助手已经将那些“有趣的”密钥收集到了一个方便的地方。

这并不是一个假设性的架构缺陷。Djinn Stealer 的设计初衷正是为了利用这种布局。它专门针对开发者凭据和 AI 工具会话。它不是在文件系统的每个角落进行抓取,而是直接瞄准驱动你编码工作流的令牌。如果你的助手已通过 GitHub、GitLab 或云提供商的身份验证,那么窃取该会话带给攻击者的不仅仅是代码,还有你的身份。他们可以以你的名义提交代码、读取私有仓库,并探测你日常使用的相同 API。

Djinn Stealer:猎取你的王国之钥

当 Djinn Stealer 进入一台机器时,它的行为就像一个聪明的窃贼,知道哪些抽屉里放着备用钥匙。它会寻找 AI 工具的配置目录、浏览器会话存储以及开发者在数月工作中积累的凭据文件。这种窃取程序深知现代开发环境是集中访问的。一个用于 AI 助手的 OAuth 令牌,其权限可能与包注册表、容器仓库和基础设施 API 的访问权限重叠。

当开发者在本地测试概念验证 (PoC) 代码时,风险会成倍增加。你从安全研究员那里克隆了一个有趣的仓库,运行一个脚本看看它是如何工作的,而该脚本会在后台悄悄执行一个凭据窃取程序。由于你 AI 助手的令牌存放在家目录下的标准路径中,窃取程序可以在你读完 README 之前就将其外传。最糟糕的是,这些令牌通常可以绕过企业 SSO,因为它们是为生产力工具生成的,而不是为生产系统生成的。

ChocoPoC:当依赖项撒谎时

如果说 Djinn Stealer 是在洗劫房屋,那么 ChocoPoC 就是通过信箱缝隙潜入。这种威胁将恶意路径隐藏在 Python 依赖项中,特别是名为 frintskytext 的包。有效载荷并不存在于随手查看就能发现的可见脚本中,而是埋藏得更深,