
提示词注入
提示词注入是排名第一的大语言模型安全漏洞(OWASP LLM01),攻击者在用户输入或检索内容中嵌入恶意指令,以覆盖AI聊天机器人的预期行为,可能导致数据泄露、安全防护绕过或未授权操作。...

上下文窗口操纵是指利用大型语言模型有限上下文窗口的攻击——包括上下文填充、上下文溢出和战略性投毒——以降低性能、隐藏恶意载荷或覆盖早期指令。
上下文窗口是大型语言模型部署中最重要但最不被理解的安全边界之一。它定义了LLM在单次推理调用期间可以访问的信息——而且它是攻击者可以故意利用的有限资源。
大型语言模型将文本作为token处理(大约每个token 3/4个单词)。上下文窗口定义了模型一次可以处理的最大token数量。现代模型的范围从4K到超过1M个token,但都有限制。
在上下文窗口内,LLM处理:
所有这些对模型来说都显示为统一的流。模型没有固有机制来区别对待来自不同来源的指令——而且它对上下文特定部分的注意力并不均匀。
攻击者提交一个极大的输入——通常是冗长的文档、代码块或文本转储——以将早期内容(特别是系统提示)推离模型的当前位置。
研究表明,LLM表现出"迷失在中间"的行为:它们更关注长上下文开头和结尾的内容,而较少关注中间的信息。通过淹没上下文,攻击者可以战略性地定位他们的恶意载荷(通常在结尾),而早期的安全指令则漂移到低注意力的中间区域。
实际示例: 聊天机器人的系统提示规定它不能讨论竞争对手的产品。攻击者提交一个50,000个token的文档,然后是询问竞争对手的提示。系统提示指令已被有效稀释。
当上下文填满时,LLM或其基础设施必须决定删除什么。如果截断优先考虑最近性(首先删除最旧的内容),攻击者可以溢出上下文以完全消除系统提示——使模型仅使用用户提供的上下文运行。
攻击序列:
在RAG系统中,检索的文档消耗大量上下文空间。能够影响检索内容的攻击者(通过RAG投毒 )可以选择性地用服务于其目标的内容填充上下文,同时排挤合法信息。
研究已经确定,上下文中特定位置的指令具有不成比例的影响力。了解上下文组装的攻击者可以制作旨在相对于其载荷落在高注意力位置的输入。
在支持非常长上下文(数十万个token)的模型中,攻击者可以在实际恶意请求之前嵌入数百个"演示"示例,显示模型产生违反策略的输出。模型在这些演示的条件下,更有可能遵守。
不要仅在系统提示的开头放置所有安全关键指令。在系统提示的末尾重复关键约束,并考虑在长对话的关键点注入简短提醒。
实施适合您用例的最大输入长度限制。客户服务聊天机器人很少需要处理100,000个token的输入——限制这一点可以降低泛洪攻击风险。
记录和监控上下文大小和组成。异常大的输入、快速的上下文增长或意外的上下文组成是潜在的攻击指标。
对于长时间运行的对话,实施保留关键事实和约束而不是原始对话历史的上下文摘要。这可以抵抗溢出攻击,同时保持对话的连续性。
在AI渗透测试 项目中包含上下文操纵场景。测试安全行为是否在长上下文中保持,以及系统提示在上下文泛洪后是否仍然有效。
上下文窗口是大型语言模型一次可以处理的文本量(以token为单位)。它包括系统提示、对话历史、检索的文档和工具输出。模型在会话期间'知道'的所有内容都必须适应这个窗口。
攻击者可以用无关内容淹没上下文,将早期指令(包括安全防护栏)推出模型的有效注意力范围;注入埋藏在长上下文中并被过滤器忽略的恶意载荷;或利用上下文截断行为确保恶意内容存活而合法指令不会。
防御措施包括:在上下文的多个点(而不仅仅是开头)锚定关键指令,实施上下文大小限制,监控异常大的上下文载荷,对长对话使用上下文摘要,以及在安全评估中测试上下文操纵场景。

提示词注入是排名第一的大语言模型安全漏洞(OWASP LLM01),攻击者在用户输入或检索内容中嵌入恶意指令,以覆盖AI聊天机器人的预期行为,可能导致数据泄露、安全防护绕过或未授权操作。...

了解上下文工程如何通过策略性管理tokens、减少上下文臃肿,并采用卸载、压缩、检索和隔离等高级技术来优化AI智能体的性能。...

提示词注入是排名第一的LLM安全风险。了解攻击者如何通过直接和间接注入劫持AI聊天机器人,并提供真实案例和面向开发者及安全团队的具体防御措施。...