人工智能中使用的大型语言模型,例如 ChatGPT 或 Google Bard,容易遭受不同的网络安全攻击,特别是提示注入和数据中毒。 英国国家网络安全中心发布了有关企业在开发或实施机器学习模型时如何防范人工智能模型面临这两种威胁的信息和建议。
什么是即时注入攻击?
人工智能接受过培训,不得提供攻击性或有害内容、不道德答案或机密信息; 提示注入攻击创建的输出会产生这些意外行为。
提示注入攻击的工作方式与 SQL 注入攻击相同,攻击者能够操纵文本输入以在数据库上执行非预期查询。
互联网上已经发布了一些即时注入攻击的例子。 危险性较低的提示注入攻击包括让人工智能提供不道德的内容,例如使用不好或粗鲁的词语,但它也可以用来绕过过滤器并创建有害内容,例如恶意软件代码。
但即时注入攻击也可能针对人工智能的内部工作,并触发其基础设施本身的漏洞。 NVIDIA 首席安全架构师 Rich Harang 报告了此类攻击的一个例子。 Harang 发现,许多 AI 使用的 LangChain 库中包含的插件很容易引发注入攻击,从而可以在系统内部执行代码。 作为概念证明,他制作了一个提示,使系统显示其 /etc/shadow 文件的内容,这对 Linux 系统至关重要,可能允许攻击者知道系统的所有用户名,并可能访问系统的更多部分。 它。 Harang 还展示了如何通过提示引入 SQL 查询。 这些漏洞已得到修复。
另一个例子是针对 MathGPT 的漏洞,该漏洞的工作原理是将用户的自然语言转换为执行的 Python 代码。 恶意用户已生成代码来访问应用程序主机系统的环境变量和应用程序的 GPT-3 API 密钥并执行拒绝服务攻击。
NCSC 关于提示注入的结论是:“随着法学硕士越来越多地用于将数据传递给第三方应用程序和服务,恶意提示注入的风险将会增加。 目前,没有任何故障安全措施可以消除这种风险。 在将法学硕士引入高风险系统之前,请仔细考虑您的系统架构并小心谨慎。”
什么是数据中毒攻击?
数据中毒攻击包括更改用作机器学习源的任何来源的数据。 这些攻击的存在是因为大型机器学习模型需要大量数据进行训练,当前通常的数据传输过程包括抓取互联网的很大一部分内容,其中肯定会包含攻击性、不准确或有争议的内容。
来自 Google、NVIDIA、Robust Intelligence 和苏黎世联邦理工学院的研究人员发表的研究报告显示了两次数据中毒攻击。 第一个是分割视图数据中毒,它利用了数据在互联网上不断变化的事实。 无法保证网站六个月前收集的内容仍然相同。 研究人员表示,域名过期在大型数据集中非常常见,并且“对手不需要知道客户端将来下载资源的确切时间:通过拥有域名,对手保证任何未来的下载都将 收集有毒数据。”
研究人员揭示的第二种攻击称为抢先交易攻击。 研究人员以维基百科为例,它可以轻松地用恶意内容进行编辑,这些内容平均会在网上停留几分钟。 然而在某些情况下,对手可能确切地知道何时访问此类网站以将其包含在数据集中。
缓解这些网络安全攻击的风险
如果您的公司决定实施人工智能模型,整个系统的设计就应该考虑到安全性。
应始终实施输入验证和清理,并应创建规则以防止 ML 模型采取破坏性操作,即使在提示时也是如此。
为其机器学习工作流程下载预训练模型的系统可能面临风险。 英国 NCSC 强调了 Python Pickle 库的使用,该库用于保存和加载模型架构。 正如该组织所述,该库的设计目的是为了提高效率和易用性,但本质上是不安全的,因为反序列化文件允许运行任意代码。 为了减轻这种风险,NCSC 建议使用不同的序列化格式(例如安全张量)并使用 Python Pickle 恶意软件扫描程序。
最重要的是,应用标准供应链安全实践是强制性的。 仅应信任已知的有效哈希值和签名,并且任何内容都不应来自不受信任的来源。 许多机器学习工作流程从公共存储库下载包,但攻击者可能会发布包含可被触发的恶意内容的包。 一些数据集(例如 CC3M、CC12M 和 LAION-2B-en 等)现在提供其图像内容的 SHA-256 哈希值。
应升级和修补软件,以避免受到常见漏洞的危害。