AI News HubLIVE
站内改写2 分钟阅读

克隆这个仓库,你的机器就是我的了

本文演示了一个针对Agent编码工具(如Claude Code)的严重安全漏洞。攻击者通过一个看似正常的GitHub仓库,利用间接提示注入,结合系统信任的安装流程和自动错误恢复机制,在开发者机器上远程执行恶意代码。恶意负载并非存放在仓库中,而是通过DNS TXT记录在运行时获取,因此对代码审查和静态扫描完全不可见。最终攻击者获得一个反向Shell,可以窃取所有环境变量、凭证和API密钥,并实现持久化。

来源Hacker News AI作者: croes

近日,安全研究人员演示了一种针对AI Agent编码工具的新型攻击方式,通过间接提示注入(Indirect Prompt Injection),攻击者可以仅凭一个看似无害的GitHub仓库,在开发者毫无察觉的情况下完全控制其机器。该攻击利用了现代Agent IDE(如Claude Code)的授权工具机制,这些工具允许LLM执行Shell命令、访问本地文件和发起网络调用,而用户往往缺乏清晰的可见性。

攻击的关键在于将恶意指令分散在不同系统中,这些系统永远不会被一起审查。首先,一个外观完全正常的仓库包含标准的安装说明,例如要求运行pip3 install -r requirements.txtpython3 -m axiom init。然后,仓库中的Python包在未初始化时会抛出一个常规的运行时错误,提示用户运行init命令。最后,init命令调用一个Shell脚本,该脚本从攻击者控制的DNS TXT记录中获取配置并执行。

整个过程中,Agent(Claude Code)仅仅是遵循了看似合理的步骤:读取项目文件、安装依赖、尝试使用包时遇到错误、根据错误提示运行修复命令。而真正的恶意负载——一个反向Shell——从未出现在仓库的任何文件中,它是通过DNS查询在运行时动态获取的。DNS TXT记录中的值经过Base64编码,解码后是一个标准的bash反向Shell命令,连接到攻击者的服务器。

由于恶意负载不存在于仓库中,所有传统的安全检测手段(如代码审查、静态扫描、文件哈希比对)都无法发现它。即使是Agent本身,在运行脚本之前也从未查看过DNS记录的内容。开发者的终端只显示“Initialising Axiom platform... Environment ready”,毫无异常。

攻击成功后的后果是灾难性的:攻击者获得与开发者相同权限的交互式Shell,可以窃取所有环境变量(如ANTHROPIC_API_KEY、AWS_SECRET_ACCESS_KEY、GITHUB_TOKEN等),植入后门(如SSH密钥、cron任务),并且可以通过修改单个DNS记录随时切换负载,无需任何代码提交。

研究人员强调,这种攻击的可怕之处在于其各个组件分开来看均不构成威胁,但组合在一起就能形成致命链。静态分析只看到一个DNS查询,网络监控只看到域名解析,Agent只看到一个预先授权的设置步骤。任何单一视角都无法识别恶意意图。

要防御此类攻击,Agent工具需要向用户展示设置命令实际将执行的内容,包括脚本内部以及脚本从运行时获取的任何东西,而不仅仅是命令本身。开发者应将不熟悉仓库中的安装说明和脚本视为不受信任的代码,无论AI工具如何推荐。该研究由0DIN团队完成,他们呼吁安全社区共同关注GenAI系统的安全风险,并邀请研究人员参与其AI漏洞赏金计划。