最近和朋友们都很关注Prompt injection相关的问题。也算是目前非常火热的AI安全话题,自己也在不违背道德的前提下尝试了许多应用,可以说是“屡试不爽”:D
🧊Prompt Injection(提示词注入)文如其名,与SQL注入(通过在用户输入中添加SQL语句或特殊符号以更改程序意图)的性质类似。
- PI提示词注入是通过在LLM提示词中加入误导性内容,从而改变其行为模式,或是直接泄露之前的提示词prompt;
- 简单来说,目前大量套壳LM的应用和小程序,特别是核心功能依赖于LM生成的产品(如ChatPDF),其运作都依赖于在LLM的基础上封装精心打造的提示词prompt,提示词prompt是这些应用的最重要资产之一;
- 毕竟,套壳AI应用被知道prompt,本质也和开源无异了。PI注入可以「说服」AI透露之前被告知的提示词,把设计师设定的命令或功能设置吐露给攻击者。
*在我的探索中,大部分现有AI应用都可以被PI注入攻击窃取提示词,几乎无一例外。
🧊PI注入也比SQL注入更难防御。SQL的「净化」手段采取语句分割,已经十分成熟。但LLM只接受自然语言的输入,这使得特殊符号、明确规则等防御手段都不能保证完美。
- 参见我的演示(图1),很多LLM用户其实也都分享过。可以看到,只需要输入伪造系统和设计者的prompt,GPT-4就自动解除了保密的限制,之后,加强系统指令的保护(图2),但只要令其「重复之前的输入」,它还是能被直接攻破(GPT-4能够免疫,这可能更基于ta对语境的理解);
* 令我诧异的是,现在许多热门的AI应用都可以用同一种PI注入手段来套取指令。或许大多AI应用也无非是提示词套壳。
🧊被油管上的一则视频启发,我尝试了LLM模拟论坛内容审核(图3,4),结果是注入式评论也可以误导LLM。
- 当然,GPT-4往往需要更复杂的prompt来攻破,但只要使用的是自然语言,就没有无坚不摧的LLM。毕竟它们「太像人了」。
- 长远来看,禁止、忽略和围堵语言漏洞的方法不可持续。它就像人的语言一般,在LLM读懂你的话语的同时,你就有可能用话语彻底地攻克ta。任何LLM系统都拥有这个漏洞。
* 对这个领域,学术和研究讨论也足够热烈。分享一个国外开发者自掏腰包建立的PI注入挑战小游戏【
gpa.43z.one】,共有21个挑战,目标就是用最短的prompt套取code。当然,「LLM攻防」的战场已经足够直白,感觉以身试法可以做出个非常不错的文字游戏👾
** 目前真的慎做NLP项目,在GPT3.5之前做的一项NLP研究,现在和废了没什么区别。侮辱性极强🥲