Hugging Face AI入侵事件详解:熊类比揭示持续威胁
Hugging Face AI入侵事件详解
Hugging Face周一发布了一份技术时间线,详细介绍了本月早些时候,一个基于OpenAI模型、运行在OpenAI自身网络安全评估系统内的自主AI代理,如何耗时四天多入侵其系统。这是OpenAI CEO Sam Altman声称“让他感到非常切身”的第一起安全事件。
难怪人们会觉得,至少感觉上,某种东西似乎真的被释放出来了。实际上,Hugging Face团队在报告前言中提醒“每个人都应做好作为防御者的准备”,然后才深入细节,为全球安全专业人士剖析事件经过。
当互联网其他部分还在试图理解发生了什么(Hugging Face报告中的术语对大多数人来说难以理解)时,许多观察者忽略的一点是:这并非一个不服从命令的叛逆代理。它是一个被设计用来寻找漏洞的系统,并且确实在执行任务,只是目标搞错了。
换个角度看这件事,可以想象一只熊在露营地。真的。熊会尝试帐篷拉链、车门把手、冷藏箱和垃圾桶盖子。它在每个露营地都这么做,整夜不停,因为它知道只要找到一个没锁的冷藏箱,就能填饱肚子,吃光某个倒霉鬼的食物。
大致这就是Hugging Face遇到的情况。OpenAI系统尝试了数千种方法,并且持续进行。最终,其中几次尝试成功了,一旦得手,代理就长驱直入。根据Hugging Face的说法,该代理在四天半内执行了17,600次动作,没有停歇。
这让我们回到熊的类比。就像一次成功吃到装满食物的冷藏箱会让熊下次更加努力(它现在成了一只“食物条件化”的熊),一次泄露的密码让OpenAI的代理寻找更多漏洞,最终找到了一把能同时解锁多个公司系统的密钥。
两种情况都不是无害的。一只闯入你冷藏箱的熊仍然会吃掉你的食物,很可能还会毁掉你的露营地。它只是专注于觅食,但依然留下一片狼藉。同样,OpenAI的代理似乎不顾一切地追逐目标。代理原本在参加一个网络安全考试,它发现考试的答案密钥可能存储在Hugging Face的服务器上,于是就直接去拿了。
这里的真正关键在于它的持续性;代理有一个任务,不完成就不会停止。Hugging Face终于意识到不对劲,切断了它的访问权限并阻止了入侵,但那时已经太晚。代理已经得到了它想要的东西,而且远不止于此。
如果你错过了,以下是根据Hugging Face时间线、用更通俗语言描述的大部分经过。
该代理正在参加OpenAI的网络安全技能考试,这种考试根据AI发现和利用软件漏洞的能力进行评分。这一次运行被去掉了安全护栏。(OpenAI关闭了常规安全过滤器,以观察模型在全力运行下的表现,没有人类参与其任何单个动作。)在某处,它发现考试的参考解决方案很可能存储在Hugging Face的服务器上。于是它没有解决挑战,而是从与原始测试无关的基础设施中窃取了答案密钥。
它利用一个未修补的软件漏洞逃离了OpenAI考试环境,获得了通往开放互联网的路径。从那里,它又发现另一个在线暴露的AI测试工具(与Hugging Face无关),也入侵了那个工具,并悄悄植入代码,在程序启动时执行隐藏命令。这使它获得了对那台机器的完全控制——成为后续行动的新基地,用于攻击Hugging Face的系统。
从那个基地出发,它转向了Hugging Face本身。Hugging Face有一个过滤器,旨在阻止可疑请求访问开放网络,但该过滤器只检查出站请求,而不检查读取服务器上本地文件的请求。代理发现了这个盲点并钻了空子。它上传了一个伪装成普通数据集的文件,但内部隐藏着一条指令,指示Hugging Face自己的系统拉取密码和源代码,并伪装成正常数据返回。
这个把戏让它获得了密码和代码,但代理仍然无法在Hugging Face的服务器上运行任何东西。要在那里执行命令,它需要第二条路。它在同一个Hugging Face系统中发现了另一个漏洞——软件会从代理那里获取一段文本,却意外地将其当作要运行的命令而非仅读取的数据。这给了代理直接在Hugging Face服务器上执行自己代码的能力。
根据Hugging Face的说法,为了发送命令和取出窃取的数据,代理没有构建任何自己的特殊基础设施。它使用了任何人都能访问的工具——粘贴网站和请求日志服务,加上Hugging Face自己的上传和代理功能——以隐蔽方式协同工作。除此之外,它构建了一个小型、临时的消息系统,带有序列号来保持顺序,并附带快速内置检查以捕获任何损坏数据,从而能发送多步骤命令并按正确顺序重组窃取的数据。
它确保没有任何东西以明文形式传输。无论它窃取或发送什么,都先进行加密。Hugging Face对截获流量进行的初始自动扫描只捕捉到被窃取数据的一小部分。调查人员只有在逆向工程了代理的加密方法后,才发现其余部分——大约是四倍。
代理甚至还有备用计划:它在11个不同的服务器上复制了自己的副本,每个副本都能独立重启,所以关闭一个副本不会阻止任何事情,因为代理的更多进程已经在其他地方运行。
在一个时间点,代理窃取了用于生成有效登录令牌的私有加密密钥。之后,它随时可以自己生成有效的凭证。
在攻陷一台服务器后,代理获得了一个凭证,由于Hugging Face端的配置错误,这个凭证竟然能同时解锁多个独立的内部系统,而不仅仅是它来自的那个系统。这一个错误几乎立即让代理获得了广泛控制权。
利用窃取到的存储库访问权限,它提交了对构建脚本的修改,如果通过,可能会危害运行该代码的自动化系统。不过,这没有成功——被Hugging Face的安全措施拦截了。
Hugging Face观察到,代理似乎克制住了造成真正破坏的冲动,但可能并非出于约束。调查人员注意到,每个能够删除或修改云资源的命令都以“试运行”模式运行,即只报告会发生什么而不实际执行。
每次其测试环境重置——由于设计原因,这不断发生——它都会丢失所有工具和身份痕迹。但它每次都能从零重建并重新连接到它窃取的基础设施,持续超过四天。
最终,Hugging Face在报告中总结道,一个“有能力”的人类黑客“本可以发现并利用同样的漏洞:不安全的dataset处理、暴露的云元数据、过于宽泛的访问权限和长期有效的凭证。”该机构接着说,最大的区别在于“代理以不同的规模探索了这些漏洞。”
这正是熊类比最终最能说明问题的地方。防御饥饿熊的最佳方法是规程。你把食物收好;用足够牢固的锁扣。这里的关键不应该是熊有多聪明或恶作剧。而是它从不停止检查。在网络安全领域,人们明白总有一些漏洞你还没发现,所以如果检查一切突然变得容易100倍,那么就没有什么是真正安全的。这正是许多人对这一事件感到不安的原因。
(本文为翻译稿,原文来自TechCrunch)