RAGとLLMの違いは? 関係性やメリット、デメリットを解説
2024.11.27
Contents
お役立ちコンテンツ
RAG(検索拡張生成)は大規模言語モデル(LLM)というテキスト生成AIの課題を克服する仕組みとして登場しました。RAGの登場により生成AIの活用の場は広がったものの、プロンプト(入力指示)が新たなセキュリティー上のリスクとなっている点には注意が必要です。
本記事では、RAGへの攻撃の概要と種類、RAGが直面するセキュリティーリスク、プロンプトインジェクションへの具体的な対策を紹介します。
目次
RAG(Retrieval-Augmented Generation)は、大規模言語モデル(LLM)がテキストを生成する際に、外部情報から検索したデータを加え、回答の精度を上げる技術です。「検索拡張生成」や「取得拡張生成」などと訳されます。
LLMはテキスト生成AI技術の一つで、膨大なデータの学習により自然な会話や文章作成が可能です。企業でも議事録の作成や翻訳などの内部業務だけでなく、カスタマーサポートのような対人業務での導入も進んでいます。
しかし、LLMは学習したデータの内容を基にした回答しかできず、提供する知識が偏る、虚偽の文章を作成する、最新の情報を答えられないなど、いくつかの課題を抱えていました。この課題を克服する技術がRAGです。
RAGは、LLMの学習データに加え、インターネットの検索結果や社内文章を検索して回答を生成します。結果、事実に基づかない情報の生成を抑制するなどして、回答精度が向上するようになりました。
一方で、生成AIの仕組みを悪用した新たな脅威「プロンプトインジェクション(PI)」があります。PIは入力指示(プロンプト)に基づいて回答する生成AIの特徴を悪用し、不正プロンプトの入力によって攻撃者に有利な回答を得る方法です。
LLMやRAGに対するサイバー攻撃には、以下の2つの種類があります。
プロンプトインジェクションとは、不正なプロンプトを直接入力し、生成AIが本来しないはずの回答を引き出す方法です。さまざまな方法があるものの、ここでは代表的なものをいくつか紹介します。
ロールプレイは生成AIに特定の役割を与えて、不正な回答を引き出す方法です。例えば、ハッカーになり切るよう指示を出し、具体的なハッキングの方法を聞き出すなどです。
正当化は教育や研究など、ポリシー違反にならない利用目的があるように偽り、情報を引き出す方法です。
言語翻訳では、翻訳に注意を向けさせ、別言語で不正な回答を引き出します。
プログラム実行は、プログラム作成のプロンプトに注意を向けさせ、不正なプログラムを作らせる方法です。
権限の付与は、生成AIに「開発者」などのような特別な権限を与える方法です。本来あるはずの回答制限を突破できるため、不適切な出力を引き出せます。
DoS攻撃(Disk Operating System Attack)は、生成AIに長文のプロンプトを入力し、リソースに負荷をかけて停止に追い込む方法です。
間接プロンプトインジェクションとは、Webサイトやメールなどに不正なプロンプトを挿入し、間接的に生成AIを攻撃する方法です。4つの方法を紹介します。
受動的手法は、生成AIがデータを取得する情報源に、不正なプロンプトを組み込む方法です。RAGはWebサイトなどの情報も参照し回答を生成するため、そこへあらかじめ不正なプロンプトを設置します。
能動的手法は、電子メールやテキストなどに不正なプロンプトを挿入し、生成AIに送付する方法です。例えば、生成AIが使われたメール監視ソフトなどに不正なプロンプトを送り付けて、セキュリティーを突破するなどが考えられます。
利用者の誘導では、攻撃者は生成AIの利用者をだまして不正なプロンプトを入力させます。例えば、攻撃者が悪意のあるWebサイトを作り、その内容を特定の生成AIを使う利用者に入力させるなどです。
インジェクションの隠蔽とは、隠密性を高めて不正なプロンプトを挿入したり、送り付けたりする方法です。例えば、画像内にプロンプトを隠して読み込ませる、プロンプトを暗号化して解かせるなどです。
プロンプトインジェクションでRAGが狙われると、以下のようなさまざまなセキュリティー上のリスクが生じます。
生成AIにセキュリティーを破壊するようなプロンプトを埋め込めば、不正アクセスができてしまいます。不正アクセスはあらゆるセキュリティーリスクの温床となるため、あらかじめ対策が必要です。
機密情報の漏えいには不正アクセスだけでなく、不正なプロンプトにより直接情報を盗み出す方法もあります。例えば、企業のAIチャットボットに不正なプロンプトを送り込み、機密情報や個人情報を窃取するなどです。個人情報の漏えいは企業の信用にも関わり、知的財産が窃取されれば競争力にも影響します。
なりすましは、生成AIを装って詐欺などに利用する方法です。不正アクセスをした上で企業の生成AIを装えば、利用者に直接個人情報を入力させるのも容易でしょう。またなりすましでフィッシングサイトに誘導し、クレジットカード番号を抜き取るなども起こり得ます。
違法コンテンツの生成とは、生成AIを操作し、不適切な発言をしたり、虚偽の情報を拡散したりすることです。例えば、生成AIとSNSを連動して活用している場合、それらを介して違法コンテンツが投稿・拡散されれば、法的問題に発展する恐れがあります。
マルウェア攻撃はコンピューターに被害をもたらす印象があるものの、最近では生成AIを標的としたものも開発されています。生成AI対応のマルウェア攻撃では、不正なプロンプトを入力し悪意のあるコードを実行するように仕向け、スパムメールの送信などを行います。
プロンプトインジェクションで不正アクセスされ、データが改ざんされたり、システムを破壊されたりすれば、業務停止に追い込まれます。停止中は被害の状況や個人情報流出の確認が必要になり、その後は復旧作業も必要です。
プロンプトインジェクションは従来のサイバー攻撃と共通する部分もあるものの、生成AI特有の脆弱性を狙う点が特徴です。攻撃の特徴を把握しセキュリティー対策に役立てましょう。
プロンプトインジェクションでは、生成AI特有のアルゴリズムや、ベースとなる学習データの弱みを狙い攻撃を仕掛けます。従来のサイバー攻撃に対するセキュリティーとは別に対策が必要です。
生成AIは自然言語を利用するため、文脈依存性など言語が持つ曖昧さが生まれます。従って同じ悪意のあるプロンプトであっても、表現を変えればセキュリティーの突破が可能です。
攻撃者はこの仕組みを把握し、どのような言葉や文脈を組み合わせると有効なのかを検証した上で攻撃を仕掛けます。フィルタリングのように特定の文字列を排除するなどの対策が取りにくくなるのです。
訓練データに含まれない単語などを使う点も特徴です。生成AIは情報が不十分であっても回答を作成してしまうなど、処理を誤ることがあります。このようなエラーの特徴を利用し、攻撃を仕掛けます。
生成AIには履歴管理機能があり、履歴を基に再学習を行います。この機能を悪用し、長文を使って履歴を書き換えることで、生成AIの出力内容を変化させます。
生成AIの多くは、差別や偏見などの表現を制限するように設定されています。しかし、プロンプトインジェクションでは、倫理的制約を無効にするようなプロンプトを使い、不適切な出力をするように仕向けます。
生成AIはプロンプトインジェクションがセキュリティー上のリスクではあるものの、攻撃が難しい点も特徴です。プロンプト入力が必要なため、他のサイバー攻撃のように自動化が難しいとされています。また生成AIの学習方法は非公開のことが多く、攻撃する側にとっても試行錯誤が必要です。
プロンプトインジェクションは自然言語の曖昧さを利用し、長文や特定のコードを使った攻撃が特徴のため、これらを防ぐ措置を講じることが対策として有効です。
攻撃に使われやすいプロンプトに対して、あらかじめ回答を準備しておきましょう。例えば、「個人情報」「機密情報」「セキュリティー解除」などの単語や内容が含まれたプロンプトに対しては「回答できません」と返すように設定するなどです。
製品に関する内容や福利厚生の申請方法など、特定の質問以外、生成AIに回答させないのもセキュリティー対策として有効です。NG質問集を作って学習させれば、該当する質問への回答を制限できます。また「申請書類作成のサポート」など、特定の役割を与えて生成内容を明確化すれば、それ以外の対応を断る設定も可能です。
入力できる文字数や形式、回数などに制限をかければ、不自然なプロンプトの挿入を防止できます。また長文を利用した攻撃を未然に防ぐことも可能です。
さらに入力形式では、言語を指定したり、記号の利用を「不可」としたりすれば、学習していないデータの使用を制限できます。文字数制限は、DoS攻撃のような大量のプロンプトによりシステムに負荷をかける方法への対策に有効です。
生成AIは自然言語を利用するため文章のフィルタリングが難しいものの、プログラミングコードの除外であれば可能でしょう。プロンプトインジェクションの中にはHTMLタグやスクリプトを利用する方法もあるため、これらをフィルタリングして挿入を阻止します。
プロンプトシールドとは、生成AIへの敵対的な入力を検出するプログラムです。直接的なプロンプトインジェクションだけでなく、ドキュメント内に埋め込まれた不正なプロンプトも検出してブロックするため、リスクの軽減が可能です。現時点ではプロンプトシールドが導入できる生成AIは限られているものの、一般化したときはセキュリティー対策の効果向上が期待できます。
LLMやRAGへのプロンプトインジェクションには従来と異なる対策が必要とはいえ、全体的なセキュリティー対策を怠ってはいけません。ここでは、企業に求められる全体的なセキュリティー対策を紹介します。
自社のパソコンやシステム、ネットワークなどには、多要素認証とアクセス制限を設定しセキュリティーを強化しましょう。
多要素認証とは、パスワードと他のいくつかの方法を組み合わせた認証方法です。例えば、パスワードとSMSのワンタイムパスコードをセットで入力させるなどです。併せて、アクセスできるユーザーを自社の従業員のみにするなど制限をかければ、さらなるセキュリティー向上に役立ちます。
データ暗号化とは、データを他の文字列に置き換えることです。これにより、不正アクセス時も情報漏えいやデータ窃取の被害を抑え、外部から傍受されたり、攻撃されたりするリスクを低減できます。
ログ管理とは、データ履歴の管理です。パソコンの起動から終了までの操作履歴を残して、誰が・いつ・どの端末で・何をしたのかを記録し監視します。
前述した2つの方法を組み合わせれば、不審な挙動があればすぐに検出して確認できるだけでなく、万が一不正アクセスを受けても情報資産を保護できます。
セキュリティー診断とは、サーバーやソフトウェアなどに欠陥はないかを検出するもので、脆弱性診断とも呼ばれています。ソフトウェアなどは次々と新たなセキュリティー上の問題(脆弱性)が見つかり、その問題を狙ったサイバー攻撃の方法も日々生まれています。
従ってセキュリティー診断は一度切りではなく、定期的に受けることが大切です。その上で、脆弱性に対応し攻撃者が付け入る隙を与えないようにしましょう。
RAGのセキュリティー対策導入のポイントは以下の通りです。
生成AIを事業で活用しているなら、セキュリティー対策に適切な資金や人材を投じましょう。RAGやLLMに対する攻撃は、従来のサイバー攻撃とは性質が異なる方法も多くあります。そのため、セキュリティー対策ツールの導入だけでなく、AI専門の人材を設置したり育成したりするのも効果的です。
企業が情報をどのように扱うのか基準を明確化し、有事の際のマニュアルなどをまとめたものを「情報セキュリティーポリシー」といいます。前述の内容を基に社内教育を実施すれば、情報資産を守るために従業員がすべきことが具体的になり、有事の際にどのような行動をすべきか理解できます。
RAGのセキュリティー対策方法も策定し社員研修で周知すれば、全社的なセキュリティー意識の向上につながるでしょう。
ソフトウェアやアプリケーション、クラウドサービスなどを導入するときは、信頼性やセキュリティー対策を確認します。製品の信頼性は導入実績などを確認すると良いでしょう。またセキュリティー対策は公式のWebサイトを確認したり、直接問い合わせたりすると分かります。
RAGの登場により生成AIの活用の場は広がったものの、一方で、プロンプトが新たなセキュリティー上のリスクにもなっています。そのため、導入時は対策を施すことが大切です。
社内DXを促進するamie AIチャットボットは、社内資料など、学習したファイルやURLの中身をそのまま回答として出力します。そのため、生成AIにありがちな、情報の欠落や誤解を防ぐことが可能です。
万全なセキュリティー対策も実施しているため、詳細について確認したい方はぜひ以下よりお問い合わせください。