ChatGPTをはじめ、生成AIは今や生活やビジネスの現場で最も注目されるテクノロジーとなってきました。ただ、AIの利用にはいくつかのリスクもつきまとうものですが、その一つとして懸念されるのがセキュリティの問題です。
この記事ではAIのセキュリティを脅かすサイバー攻撃の一種である、プロンプトインジェクションについて詳しく解説します。
そもそも生成AIは、ユーザーが自然言語、つまり人間が書いたり話したりする言葉で指示を送り、プログラムが自動で解釈し指示に適した回答を出力できるというテクノロジーです。
生成AIに対する指示はプロンプトと呼ばれ、専用のフォームを通じてプロンプトをAIに送信することで、サーバー上で指示を理解し、AIがアウトプットを行うという仕組みになっています。
ChatGPTをはじめとする各種生成AIは、これまでの学習を経てプロンプトを正しく理解し、正確に回答を行えるよう高度に訓練されています。
ただ、予期せぬプロンプトがAIに送られた場合や、何らかのバグによってプロンプトが正しく理解できず、開発者が想定していないような回答を生成AIが出力してしまう可能性もゼロではありません。
このように、生成AIにおけるプロンプトはそのプログラムを活用するための重要な手段であると同時に、プログラムに不具合を起こさせる可能性も秘めた存在であることも確かです。
このようなプロンプトが有する危うさを悪用するサイバー攻撃が、プロンプトインジェクションです。これは生成AIに対して開発者やAIが予期しない指示を攻撃者が実行することで、AIを不当にコントロールし、他のユーザーや開発者に危害を加えるサイバー攻撃として知られています。
プロンプトインジェクションは、ChatGPTの入力フォームに不正なコードを入力するような使い方をするだけで攻撃を行えるため、その方法はいたってシンプルです。そのため生成AIが普及しつつある近年において、今後増加が懸念される新しいサイバー攻撃と言えます。
プロンプトインジェクションと似たようなサイバー攻撃の一種に、SQLインジェクションと呼ばれるものがあります。SQLインジェクションは主にWebサービスを狙ったサイバー攻撃手法で、SQLコマンドを第三者が不当に入力することで、サービス運営者の機密情報やサーバー内の情報を流出させる攻撃方法です。
プロンプトインジェクションは生成AIの入力フォームを使って攻撃が行われますが、SQLインジェクションはログインフォームや問い合わせフォームなどを使ってSQLコマンドを入力し、攻撃を行います。
前者は生成AIサービス、後者はECサイトなどのWebサービスに対して仕掛けられる攻撃であるため、別個に攻撃対策を行う必要があるでしょう。
プロンプトインジェクション攻撃は、具体的にどのようなリスクを開発者やユーザーに与えるのでしょうか。ここではそれぞれの立場から懸念しておくべきリスクについて、解説します。
プロンプトインジェクションによって最も損失が大きくなる可能性があるのが、やはり生成AIの開発者です。プロンプトインジェクション攻撃が行われることで、開発者は
• 社内情報の流出
• 第三者による不正なAIの書き換え・コントロール
• その他開発者の意図しないAIの行動
のようなリスクを被るケースが考えられます。
プロンプトインジェクションによって、AIが権限を本来持たないはずの第三者に対し、データベース情報の開示やデータベースそのもののコントロールを許可してしまう可能性があります。そうなると学習元となるデータが全て外部に流出するなどして、甚大な被害を被る可能性があるでしょう。
また、データベースや生成AIそのものを第三者によって管理下に置かれてしまうリスクも考えられます。プロンプトを通じて第三者がAIを自在にコントロールし、AIの学習内容を全て削除してしまったり、偏った情報に再度学習が行われ、出力内容が意図しないようなものになってしまうようなケースもありえるでしょう。
AIが自動で悪質なマルウェアを生成するようになってしまったり、ユーザーに対してマルウェアをばら撒いてしまったりするような、さらなるサイバー攻撃を引き起こすツールとして悪用される可能性にも注目しなければなりません。
プロンプトインジェクション攻撃は、生成AIのユーザーにも悪影響を与える可能性のあるサイバー攻撃です。主なリスクとして、
• 個人情報の流出
• デマやフェイクニュースの提供
といった被害を被る可能性があります。
現在普及しているChatGPTなどの生成AIでは、ユーザー登録不要で利用ができるサービスが多い一方、有料サービスの展開も始まりつつあります。
そのためユーザーの中には個人情報や決済情報を登録している可能性もあり、プロンプトインジェクションによってこれらの情報が外部に流出するリスクはゼロではありません。
また、いつも通り生成AIを使用していたら、いきなり回答が違和感のあるものばかりになり使い物にならなくなったり、検討はずれな回答しか得られず、フェイクニュースを掴まされてしまう可能性が出てきたりもするでしょう。
まともにサービスを利用することができず、別の生成AIを使用せざるを得ない状況に陥るリスクが懸念されます。
このようなリスクを最小限に抑えるべく、生成AI開発者はあらかじめプロンプトインジェクションを回避するための予防策を徹底しなければなりません。プロンプトインジェクション回避においては、以下の対策が有効とされています。
プロンプトインジェクションの回避では、まずプロンプトのフィルタリングが効果を発揮します。
生成AIに対して有害な影響をもたらしうるプロンプトのテンプレートをあらかじめ用意しておき、それらの入力を受け付けない設定にすることで、インジェクションを回避可能です。
重大な情報流出などにつながる回答の出力をあらかじめ制限しておくことも、プロンプトインジェクションによる被害の抑制に貢献します。
ユーザーの個人情報やAIのデータベースなどの内部情報は厳格に制限しておかないと、何らかの拍子に誤って出力してしまう可能性があります。
プロンプトインジェクションは今後さらに複雑化し、既存のセキュリティ対策を突破してくる可能性も否定できません。常に最新のセキュリティ動向にも目を配り、脆弱性が発見された際にはすぐにセキュリティアップデートを行い、予防を実現しましょう。
この記事では、プロンプトインジェクションが生成AIに与えるリスクと、その対策方法を解説しました。生成AIブームの昨今では、今後ますますその需要が高まると同時に、攻撃のリスクも高まることが予想されます。