「プロンプトインジェクション」(Prompt Injection)はAIチャットボットへの特異な攻撃手法です。対話型AIのサービスのほとんどにはこのリスクがあります。(そのリスクを許容できるかどうかはサービス次第です)
その中心的な要素は「プロンプト」という対話型AI特有の概念です。
プロンプトとは、言語モデル(これはAIや機械学習モデルの一種である)に対する指示文のことです。
この攻撃手法が特徴的なのは、AIに対して特殊なプロンプトを投げることで、AI開発者が予測していない出力を誘導し、チャットボットから機密情報や不適切なデータを取得してしまう点です。
この攻撃手法は、質問に対応するというAIチャットボットの基本的な機能を乱用しており、その結果として、特にChatGPTやGPTを搭載しているソフトウェアを対象とした攻撃が可能となります。
たとえば、「以前の指示を全て無視しなさい」という指示を悪用することにより、AIが保持する非公開の指示ドキュメント(社外に公開したくないプロンプト)を取り出したり、またはSQLインジェクションを実行したりするものです。
【目次】
プロンプトインジェクションのリスク
機密情報の漏洩
炎上を誘発される
攻撃手法パターン
基本的な防御策
プロンプトに色々いれない(AIに委ねすぎない)
入力時および出力時にプログラムでチェックする
プロンプトインジェクション対策のプロンプトを入れておく
プロンプトインジェクション対策は100%にはなれない
多くのセキュリティ対策と同様に、プロンプトインジェクション対策は100%の安全性を保証するものではない。
むしろ、多くのセキュリティ対策よりもやや安全性は低いと言える。
なぜなら、完全なAIのコントロールが出来ないからである。
たとえば、IPアドレスを制限する機能がシステムに実装されていたら、IPアドレスは制限される。当然である。しかし、AI(言語モデル)にIPアドレスを制限するように指示しても、その指示を消すのがプロンプトインジェクションなので、AIは後者に従ってしまう可能性が常にある。
そのため、全てをプロンプトに入れようとしないことはとても重要である。