プロンプトインジェクションとは?「ガードレール」が完全には効かない理由

生成AIに、メールや資料、Webページを読ませて、要約させたり、返事の案を作らせたりすることがあります。このとき、読ませた文章の中にAIへの命令が紛れていたら、どうなるでしょうか。

このコラムでは、「生成AIを業務で使うときに知っておきたい4つのリスク」で紹介した「だまされる」のうち、プロンプトインジェクションを取り上げます。

プロンプトインジェクションとは

プロンプトとは、AIに与える指示や文章のことです。プロンプトインジェクションとは、そのプロンプトの中に、作った人が意図していない命令を紛れ込ませて、AIを思わぬ動きに誘導する攻撃です。

AIは、「利用者の指示」と「読み込んだ文書の中身」を、どちらも同じ「文章」として受け取ります。そのため、読み込ませた文書の中に隠れた命令が書かれていると、AIがそれに引っ張られてしまうことがあります。

たとえば、人が読んでも気づきにくい形で命令が入った文書を、そのままAIに読ませてしまう、といった場面が考えられます。利用者は、ふつうに要約を頼んだだけのつもりでも、AIは別の動きをしてしまうかもしれません。

「してはいけない」と指示しても、完全には防げない

では、AIに前もって、「怪しい命令には従わないでください」と指示しておけば安全でしょうか。

こうした、プロンプトの文面でAIの動きを縛る方法は、ガードレールと呼ばれることがあります。有効な場合もありますが、完全には機能しないと考えておく必要があります。AIにとっては、前もっての指示も、あとから読み込んだ文章も、同じ文章だからです。

そのため、文面だけの守りに頼ると、守りを回避する言い回しを、攻撃する側が試し続けることになります。「ガードレールがあるから大丈夫」と思わないことが、最初の一歩です。

対策:文面ではなく、仕組みで被害を減らす

プロンプトインジェクションを、完全になくすことは難しくても、起きたときの被害を小さくすることはできます。そのためには、AIの文面に頼るのではなく、仕組みとして止める考え方が大切です。

  • 人の承認を入れる:メールを送る、データを更新する、お金や権限に関わる操作をするといった重要な動きの前に、人が内容を確認して承認する流れにします。
  • 権限を絞る:AIに、必要最小限の操作しかさせません。AIが引っ張られても、できることが限られていれば、被害も限られます。
  • 読み込ませる文書に気をつける:出どころの分からない文書やWebページを、そのままAIに読ませないようにします。
  • 人の確認が仕組みとして入るツールを選ぶ:AIに操作をさせるツールを選ぶときは、人の確認が組み込まれているかを確かめます。

AIの出力を、確かめずにそのまま使わないこと(ハルシネーションと出力チェック)も、被害を小さくする大切な守りです。

攻撃する側の目線で考える

プロンプトインジェクションの対策は、「攻撃する側なら、どこから命令を紛れ込ませるか」を考えることから始まります。AIが読むもの(メール、文書、Webページ、ほかのシステムからの情報)のすべてが、入口になりえます。

AIをつなぐ先が増えるほど、入口も増えます。どこにAIをつなぐか、つないだ先でAIに何をさせてよいかは、便利さだけでなく、守りの面からも決める必要があります。

まとめ

プロンプトインジェクションは、AIが読み込んだ文書の中の隠れた命令に引っ張られてしまう問題です。プロンプトの文面で縛るガードレールは、完全には効きません。だから、人の承認や権限の制限といった仕組みで、起きたときの被害を小さくする、という考え方で備えます。

「AIに、どこまで任せてよいのか分からない」という段階からでも大丈夫です。SecureHatters では、AIの利用を含めたセキュリティの課題の整理から、ルールづくり・運用まで、セキュリティコンサルティングでご支援します。お問い合わせから、お気軽にご相談ください。