2023年6月27日(火)
著者:カウンター・スレット・ユニット(CTU™️)リサーチチーム
※本記事は、https://www.secureworks.com/ で公開されている Unravelling the Attack Surface of AI Systems を翻訳したもので、 2023年6月27日執筆時点の見解となります。
図1:AIシステムにおける脆弱性の分類
テクノロジーの世界で急速に進化している要素のひとつが、人工知能(AI)を用いたシステムです。様々な業界で不可欠な要素になりつつあるAIシステムですが、その安全性については多くのセキュリティ専門家やセキュリティ担当者に懸念視されています。
この記事では、AIシステムの攻撃対象領域についてSTRIDEフレームワーク(表1)に沿って解説します。STRIDEとは、システムを導入する前に脅威を特定・把握して対処することでセキュリティ対策を強化する機動的なアプローチを支援する脅威モデリングのフレームワークです。STRIDEは、Spoofing(なりすまし)、Tampering(改ざん)、Repudiation(否認)、Information Disclosure(情報漏洩)、Denial of Service(サービス拒否)、Elevation of Privilege(権限昇格)の頭文字を取った名称であり、AIシステムで発生し得る攻撃経路の理解を深める際に役立ちます。こうした伝統的なフレームワークを使って新種の脅威を把握できれば、自社のAIアプリケーションのセキュリティを強化することができます。
AIインフラ | AIインターフェース | AIモデル | |
なりすまし(Spoofing) | モデルサプライチェーン | プロンプトインジェクション | トロイの木馬モデル |
改ざん(Tampering) |
プロンプトインジェクション 敵対的サンプル |
データセットの汚染 ハイパーパラメータの改ざん |
|
否認(Repudiation) | ディープフェイク | ||
情報漏洩(Information disclosure) | キャッシュの偽装 |
敵対的サンプル サーバーの出力データをLLMに直接返送(またはその逆方向) |
メンバーシップ推論 機微データの抽出 モデルの抽出 モデル出力結果の不適切なフィルタリング |
サービス拒否 (Denial of service) | モデル出力結果の不適切なフィルタリング | ||
権限昇格(Elevation of privilege) |
モデルサプライチェーン キャッシュの偽装 |
表1:STRIDEフレームワーク
AIテクノロジー特有の新たな攻撃クラスを検証することで、これまでの攻撃シナリオを新たな視点で捉えることができます。AIセキュリティ分野の発展と共に、新たなモデル、アプリケーション、攻撃の種類、実行方法が日々開発・考案されています。
AIインフラに対する攻撃
複雑なシステムの細部にまでAIモデルを組み込んだ開発事例が増えています。モデルの入力・出力値、または周辺インフラが改ざん(Tampering)されると、予測不能かつ有害な結果(予期せぬ振る舞い、AIエージェントとの対話、連鎖するコンポーネントへの影響など)が出ることがあります。
なりすまし(Spoofing)は、モデルまたはコンポーネントの配信中に攻撃者が信頼できるソースを装うことで発生します。攻撃者がこの手法を使うとAIシステムに悪意のあるエレメントが混入される恐れがあります。モデルサプライチェーン攻撃の一環として、なりすましの手法が使われることもあります。たとえば、AI出力のコードが下流で実行されるサードパーティーAIモデルプロバイダー(Huggingfaceなど)に攻撃者が侵入すると、ユースケースによっては上流のモデルの感染により周辺インフラが乗っ取られる恐れもあります。
Webアプリケーション上の機微データ流出はよくある問題ですが、AIシステムを提供するWebアプリケーションも例外ではありません。2023年3月にはRedisのバグによりChatGPTのWebサーバーの非公開データが漏洩しました。また攻撃者が権限昇格しデータ取得要求を送信して情報を窃取することができるChatGPTに対するキャッシュ偽装攻撃が報告されました。Webアプリケーションは全般的に、OWASP Top 10に挙げられている従来型の脆弱性(インジェクション攻撃、クロスサイトスクリプティング、安全でないオブジェクトの直接参照など)の影響を受けやすいとされていますが、AIシステムを提供するWebアプリケーションも同様の状況が当てはまる可能性があります。なぜなら、誰もが注目するAIシステムの悪用に成功すれば、攻撃者として名を馳せることができるからです。
サービス拒否(Denial of service, DoS)攻撃も脅威となり得ます。モデルを提供するベンダーのインフラに攻撃者から大量のトラフィックが流入すると、AIサービスが利用不能になる恐れもあります。AIインフラおよびAIモデルの周辺アプリに耐障害機構を組み込むことが、AIシステムの安全な導入における第一歩です。しかしこれだけでは不十分です。
モデルの訓練と推論に対する攻撃
このセクションでは、訓練済のモデルおよび、最近になって台頭し始めたサードパーティーベンダーの生成系AIシステムに対する攻撃について解説します。
AIモデルの訓練や推論を行う際は、特定の脅威による影響を大きく受けます。STRIDEフレームワークの「改ざん」カテゴリの一部であるデータセット汚染攻撃やハイパーパラメータ改ざん攻撃を受けると、悪意あるデータが訓練用データセットに挿入されてしまいます。攻撃者が意図的に、まぎらわしい画像を顔認証システムAIに読み込ませて誤認識を誘発する、などがその一例です。
情報漏洩や改ざんなどの脅威の一種である敵対的サンプル攻撃もよくある攻撃です。攻撃者によってモデルの入力値が改変されると、予測や分類にエラーが生じます。これにより、モデルの訓練データに関する機微情報が漏洩したり、意図せぬ方法でモデルが動作したりするように仕向けられる恐れがあります。たとえば、一時停止標識に小さなシールを貼ると自動運転車に搭載された画像認識モデルが混乱し、重大な事故を起こしかねないことが、ある研究チームによって証明されています。
STRIDEフレームワークの「情報漏洩」カテゴリに含まれるモデル抽出攻撃は、悪質な攻撃です。攻撃者の目的は、クエリと応答を用いて、独自に訓練された機械学習モデルを複製することです。攻撃者は、モデルに合わせて綿密に設計したクエリを実行し、その応答をもとに標的AIシステムの複製を作成します。この攻撃を受けると知的財産権が侵害され、多大な経済的損失を被る恐れがあります。モデルの複製を所有する攻撃者に敵対的攻撃を仕掛けられたり、訓練データをリバースエンジニアリングされたりすると、さらなる脅威に発展する可能性もあります。モデルの出力結果が悪用されると、そのダメージはとてつもない規模になる恐れがあります。プログラミングの際に、コード生成アシスタントの出力結果をきちんと検証せず、安全でないコードを本番環境にプッシュすると、生成系AIによってディープフェイクが作成されたり、本物そっくりの偽コンテンツが大量に作成されたりする可能性があります。
大規模言語モデルに対する新種の攻撃
大規模言語モデル(LLM)の普及により、これまでになかった攻撃が続々と発生しています。LLMの開発や統合に関する話題が世間を席巻していることもあり、新たな攻撃パターンが毎週のように公開されています。そのため、OWASPプロジェクトでは、大規模言語モデルアプリケーションにおけるOWASP Top 10リスト初版の草案作成に着手しました。
プロンプトインジェクション攻撃には、ジェイルブレイク、プロンプト漏洩、トークン・スマグリングなどがあります。こうした攻撃でLLMの入力プロンプトが乗っ取られると、望ましくない振る舞いを引き起こし、AIが不適切な回答をしたり、機微情報が漏洩したりします(STRIDEフレームワークの「なりすまし」、「情報漏洩」カテゴリに相当)。AIシステムが他のシステムと併用されている、またはソフトウェアアプリケーションチェーンの一部として利用されている場合は、攻撃の威力が甚大化する可能性があります。発覚していないモデル出力結果の不適切なフィルタリング、サーバー出力結果をモデルに投入するなどの攻撃ではAPIが悪用されることもあります。たとえば、アプリケーション開発者向けのLangchainなどのフレームワークを使うと、一般公開されている生成系モデルや公開/非公開システム(データベースやSlack連携など)に複雑なアプリを短時間でデプロイできます。攻撃者によってプロンプトが加工されると、本来ならモデルから実行できないはずのAPIクエリが実行されたり、サニタイジング処理されていない汎用WebフォームにSQLステートメントが挿入されて悪意あるコードが実行されたりする恐れもあります。
情報漏洩攻撃の一種であるメンバーシップ推論およびデータ抽出のリスクも高まっています。メンバーシップ推論攻撃が実行されると、特定のデータポイントが訓練データセットに含まれているかどうかを二値分類で推論されるため、プライバシー侵害の懸念が生じます。データ抽出攻撃では、モデルの応答をもとに訓練データの機微情報が完全に再構築されます。こうしたシナリオは、非公開データセット上でLLMを訓練させる場合に頻発します。非公開モデルには組織に関する機微データが含まれている可能性があり、攻撃者によって特定のプロンプトが作成されると、機密情報が窃取される恐れがあります。
攻撃者が前述の手法を併用すると、深刻な被害をもたらす高度な攻撃を開発できる状態になります。大規模言語モデルの訓練データセット微調整の段階では、たとえわずかな操作であってもデータセット汚染攻撃を受けやすいことが証明されています。さらに、公開されている身近な訓練データの改ざんが実際に可能であることも証明されています。
こうした弱点があると、汎用的な言語モデルがトロイの木馬モデルに改造される隙が生まれてしまいます。表面上は、ほぼすべてのプロンプトで想定通りに動作するものの、微調整の段階で混入された特定のキーワードが隠れています。攻撃者がこれらのキーワードを発動すると、トロイの木馬モデルによる悪意ある振る舞いが大々的に実行されます。具体的には、基幹アプリ上の複雑なタスクを連動させる、権限を昇格させる、システムを使用不能にする(DoS)、非公開の機微情報を漏洩する、などの振る舞いが想定されます。テクノロジーの進化と共に現れるこうした脅威を見ると、常時厳戒態勢が不可欠であることが改めてわかります。
ソフトウェア2.0に対する攻撃
AI研究者のAndrej Karpathyは2017年、「次世代のディープニューラルネットワークモデルの台頭により、ソフトウェアの概念化における定説が覆った」という独創的な記事を公開しました。AIモデルはほぼすべて、命令セットによってではなく訓練データによって定義されます。AIモデルはループや条件式が記述された言語ではなく、連続したベクトル空間と数値の重みで表現されます。その中核にある訓練済のニューラルネットワークによって、データベースと命令セットとの境目があいまいになっています。これは、1996年にオンラインマガジンPhrackに掲載された「Smashing the Stack for Fun and Profit(趣味と実益のスタック破壊)」で初めて明示された、コードとデータの混同違反によるメモリオーバーフローを彷彿とさせる現象です。
機械学習本来の構造によって攻撃の新たな道筋が開かれ、新たな分類の脅威が生まれました。データセット汚染、モデル抽出、メンバーシップ推論、敵対的サンプルなどの斬新な攻撃が台頭し、機械学習の根本的な操作の悪用がさらに進むという懸念は、AIおよびセキュリティの関係者全体で対処すべき深刻な問題です。「Smashing the Model for Fun and Profit」という新たな声明を考えるべき時期が到来しているのかもしれません。
結論
AIの脅威モデリングという領域は、AIおよびサイバーセキュリティの分野がたどってきた急速な進化と同じペースで急拡大しています。AIへの依存度が高まるにつれ、AIシステムのセキュリティ対策の重要度も増します。この記事で解説した攻撃の多くは目新しいものではないかもしれませんが、世界中でAI技術が急速に取り込まれていることを考えると、AIシステムにおけるセキュリティ意識を高め、防衛策を講じることは何よりも優先すべき事項です。STRIDEフレームワークのような体系的なアプローチを採用することで、事業における潜在的な脅威を特定し、強固なセキュリティ対策を整備できます。
そして、自組織で利用中のAIシステムの攻撃対象領域を把握し、開発ライフサイクルにセキュリティ対策を組み入れた包括計画の策定などの行動をただちに起こす必要があります。