GPTsプロンプトリークの脆弱性を克服:プロンプトインジェクション対策ガイド
プロンプトインジェクションとは?
プロンプトインジェクションは、ChatGPTなどのAIシステム、特に対話型のAIに対し、特定の質問や命令を行うことで、予期せぬ結果や秘密の情報を引き出す一種の攻撃です。この攻撃は、AIの制約やルールを巧みに回避しようとするものです。
特にGPTsの文脈で言うと、GPTsに設定したオリジナルのインストラクションが他人に漏洩してしまう大きなリスクになります。そこで、GPTsのインストラクションの中に、その漏洩を防ぐように行う対策が、今回の記事で言うところのプロンプトインジェクション対策になります。
対策の基礎
対策プロンプトをインストラクションの最初と最後に記載する
GPTsのみならず、LLM全体として、最初と最後の文言を重要視する傾向があります。なので、中間に実際のインストラクションを書いて、その上下を対策文章で囲む、"ハンバーガー形式"にすることがおすすめです。
使用している対策プロンプトを公開しない
これは当然ですが、防御方法を攻撃側に知られてしまうと、そこに対してスポットで対策した攻撃を行えるようになるため、突破が容易になってしまいます。これを防ぐためにも、基本的に対策文言はSNSなどで公開しないようにしましょう。(Discordのコミュニティなどではインジェクション用のグループがあるとこも多いので、共有がしたい方はそこがおすすめです)
デバッグを行う
実際に対策文言を入れたら、自分である程度の回数、攻撃を行いましょう。
①対策文言が分かっていない、汎用的に使用できる文言での攻撃
②対策文言がわかりきっている状態のスポット攻撃
この二つの手法を使用して攻撃し対策文言を練っていくことで、より強いプロンプトに育てられます。
対策を盛りすぎない
対策文言を盛り込みすぎると、必要以上に強くなってしまい、一般的な質問に対しても、過敏に反応するようになってしまいます。それを防ぐためにも、できるだけ対策文言はスマートに、かつ許容範囲の入力も事前に規定してあげることが重要です。
都度SNSで最新情報をチェック
堅牢なプロンプト対策文を公開しているユーザーは、Twitterを始めとしたSNSには数多く存在します。Redditなどの海外コミュニティなどにも目を通しながら、最新のインジェクション状況を知るのも対策の一つです。