Prefilling Attackとは

Prefilling Attackとは、AIの応答(アシスタント側の発言)の“書き出し部分”をあらかじめ埋めておくことで、本来は拒否すべき場面の安全機構をすり抜けようとする手口のことです。安全装置を正面から壊すのではなく、応答の“言い出し”を握る点が特徴的でしょう。

英語表記:Prefilling Attack

日本語:プリフィル攻撃

なぜ「書き出し」を握られると弱いのか

LLMには、直前までの文脈に自然につながるよう続きを書く性質があります。そのため、応答の最初の数語が受諾の調子になっていると、その後に拒否へ切り替えにくくなります。人が「うん、いいよ」と言い始めると断りづらいのと同じで、言い出しの調子が、その後の中身を引きずってしまうわけです。なお、悪用を助けないよう、具体的な手順はここでは扱いません。

企業が確認しておきたい守り

防ぐ側のポイントは、AIに渡すやり取りの“役割”を厳格に検証することでしょう。応答(アシスタント役)の中身を外部から差し込めないよう、メッセージの順序や役割をAPIの層でチェックするのが基本になります。OpenAIAnthropicなど主要な提供各社は、こうした対策をすでに取り入れています。自前でモデルを動かす場合や、外部のAPI中継をはさむ場合は、その検証が効いているか運用側で確かめておきたいところです。

TopicAIの安全性は「最初の一言」で決まる?

研究者はこの弱点を、LLMの“アキレス腱”と表現します。応答の先頭のわずかな単語が、その後の安全性をほぼ決めてしまうからです。だから防御は、危ない単語を後から検閲するより、そもそも誰が応答の口火を切れるのか(役割の検証)を固める方向へ向かいます。人もAIも、言い出しに引きずられるのは案外同じなのかもしれません。

Prefilling Attackに関するよくある質問

プロンプトインジェクションとは違うのですか?
ねらう場所が違います。プロンプトインジェクションは入力に不正な指示を紛れ込ませる手口ですが、プリフィル攻撃はAIの応答の書き出しを握って拒否させない手口です。どちらも安全装置のすり抜けを狙う点は共通します。
会話を重ねて崩すジェイルブレイクとは違いますか?
突く急所が違います。クレッシェンドやメニーショットが会話を積み重ねて崩すのに対し、プリフィル攻撃は応答の書き出しという入口を一点で突きます。同じ脱獄でも、狙いどころがはっきり分かれます。

あわせて読みたい記事