了解提示注入如何利用 AI 漏洞、影响安全性,并学习保护 AI 系统免受恶意攻击的策略。
提示注入是一个重要的安全漏洞,会影响基于 大型语言模型 (LLM)和其他 生成式人工智能技术构建的系统。当恶意用户精心设计一个特定的输入(通常伪装成一个普通的 查询,从而欺骗人工智能模型,使其忽略开发人员设置的原始指令,执行非预期指令。 命令。就像SQL 注入允许 攻击者通过干扰后端查询来操纵数据库一样,提示注入攻击的目标也是 自然语言处理(NLP) 逻辑,利用了许多现代模型在同一上下文窗口中处理用户数据和系统指令的事实。 窗口
在典型的人工智能应用中,开发人员会提供一个 "系统提示",为人工智能代理定义规则、角色和安全边界。 人工智能代理的安全边界。然而,由于 LLM 的设计是为了流畅地执行指令,因此它们很难区分权威的系统提示和用户输入的信息。 和用户输入之间的区别。成功的提示注入攻击会覆盖系统的安全防护,可能会 导致数据泄漏、未经授权的操作或生成有害内容。这种威胁目前被列为 在 OWASP Top 10 for LLM Applications》中被列为主要关注点,凸显了其在网络安全领域的重要性。
提示注入攻击的表现形式多种多样,既有恶作剧,也有严重的安全漏洞。
提示注入最初与纯文本模型有关,但由于计算机视觉(CV)技术的兴起,提示注入与计算机视觉的关系日益密切。 由于多模式模型的兴起,提示注入在计算机视觉(CV) 多模态模型。视觉语言模型(VLM) 如CLIP或 开放词汇检测器等视觉语言模型(VLM)允许用户使用文本描述来定义要查找的对象。
例如,在YOLO 等模型中,要检测的类别是通过文本提示来定义的。 检测的类别是由文本提示定义的。理论上,恶意输入可以操纵嵌入空间,以 误分类对象或忽略威胁。
下面的代码演示了文本提示如何与视觉模型接口,代表了可能发生注入尝试的入口点 的入口点:
from ultralytics import YOLO
# Load a YOLO-World model which accepts text prompts for class definitions
model = YOLO("yolov8s-world.pt")
# Define custom classes via text prompts
# A malicious prompt here could attempt to confuse the model's semantic understanding
model.set_classes(["person", "suspicious object"])
# Run prediction on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
将及时注入与人工智能生态系统中的其他术语区分开来至关重要:
由于目前还没有一种解决方案是万无一失的,因此要抵御及时注入需要采用深度防御方法。
各组织应参考 NIST 人工智能风险管理框架,为其人工智能部署实施全面的安全实践。 等框架,为其人工智能部署实施全面的安全实践。