セキュリティチームのぐっちーです。今回のブログではAzure OpenAI Serviceを利用した際にどのような脅威(インシデントの潜在的な原因)が考えられるかを上げ、その脅威に対してどんな対策を行うことができるかまとめてみました。僕自身もまだまだ模索しながらやっている状況ですが、ChatGPTのようなAIサービスを安全に利用したい方などの参考になれば幸いです。
サマリー
- Azure OpenAI Service利用上のセキュリティ的な懸念について仮説を元に整理しした上で、どのような対策が取れるか考えてみました。
- Azure OpenAI Serviceは、Azureが従来提供していたセキュリティサービスをそのまま利用することができるため、様々な角度からリスク軽減策が行うことができることを確認できました。
本ブログにおける用語の定義
用語 | 定義 |
---|---|
生成AI[1] | 生成AI(Generative AI)は、データから新たな情報やコンテンツを生成する能力を持つAI技術です。例えば、テキスト生成、画像生成、音声生成などが含まれます。 |
脅威 [2] | システム又は組織に損害を与える可能性がある,望ましくないインシデントの潜在的な原因 |
脆弱性 [2] | 一つ以上の脅威によって付け込まれる可能性のある,資産又は管理策の弱点 |
脅威モデリング [3] | 脅威モデリング (Threat Modeling) とは、システムやアプリケーションのセキュリティを向上させるためのプロセスで、潜在的な脅威を特定、分析、軽減することを目的としています。このプロセスでは、アーキテクチャやデザインを評価し、システムの脆弱性を特定してリスクを管理します。 |
基本モデル | マイクロソフト社が用意している生成型AIモデル。広いユースケースで利用でき以下のような種類がある。 ・GPT-4 series (preview) ・GPT-3 base series ・ChatGPT (gpt-35-turbo) (preview) ・Codex series ・Embeddings series |
Fine-tuning(微調整) | 既存の学習済みモデル(基本モデル)を一部再学習させ、自社のユースケース等に適したアウトプットが出力されるように微調整すること。 |
微調整されたモデル | Fine-tuningがなされた自社向けのAIモデル。 |
免責事項
- 本記事の内容には現時点でプレビュー中の機能が含まれます。
- 私は法律の専門家ではありません。本ブログは性質上、法律や観点についても言及をしていますが、助言や保証を与えるものではありませんのでご留意ください。
- 本ブログではAzure OpenAI Serviceに対して簡易的な脅威モデリングを行っています。脅威モデリングの手法としては「Threat Modeling (OWASP)」「Threat Modeling Tools (Microsoft)」などの参考文献をベースにしつつ、「ISO/IEC 27017:2015」や筆者の個人的な観点を盛り込んで作成しています。しかし、脅威の網羅性については保証しているわけではない点についてご了承いただだけたら幸いです。
本ブログの内容は、2023年5月8日時点までの情報を元に作成しておりますが、クラウドサービスの仕様変更等に伴い、将来的に状況が変化することがございます。当社側で仕様変更が確認できた場合は可能な限り修正をしますが、最新の情報を常に維持することは難しい点についてはご了承ください。
Azure OpenAIとは?
Azure OpenAIは、OpenAIとMicrosoftのパートナーシップによって生み出された生成型AIサービスです。最近、かなり注目を集めているChatGPT[4]と同等のAIモデルを利用することができますが下記のような特徴があります。
特徴①:Microsoft Azure上で実行され、Microsoft Azureが従来提供していたセキュリティ機構をそのまま利用することができる
Azure OpenAIはマイクロソフト社が従来Azure上で提供していたAIサービス群「Cognitive Service」の一部として提供されており、Azure上でホストされています。OpenAI社が提供するChatGPTとは完全にサービスとして分離されておりデータの授受などは発生しません。そして、Microsoft Azureが従来提供していたセキュリティ機構をそのまま利用することができるという点がセキュリティ担当目線で嬉しいポイントだと思います。本ブログでではその点にフォーカスしてお話をしています。
特徴②:GUI(Open AI Studio)でAIモデルチューニングやチューニングデータの管理が可能
「Open AI Studio」は、GPT-3やCodexなどのAIモデルをGUI上でデプロイしたりすることができます。また、Open AI Studioにはプレイグラウンド(遊び場)と呼ばれる画面があり、自然言語のプロンプトを入力してモデルの応答を見たり、パラメーターを調整したりすることができます。
特徴③:SLAが99.9%で定義されている
Azureのサービスとして提供されているためSLAが定義されています。現時点では、API 応答時間サービス レベル アグリーメント (SLA) は定義されていませんが、Azure OpenAI Service の全体的な SLA は、他の Azure Cognitive Services と同じ99.9%となっています。[5]
Azure OpenAI利用時の脅威はどのようなものがあるか?
Azure OpenAIのセキュリティを語る前に、前提としてセキュリティ事故は「脅威」と「脆弱性」が合致した際に発生します。そのため、ここではユーザー目線でどのような脅威があるかを洗い出していき、その後、その脅威に対する脆弱性を減らすためにどれだけの対策が講じられるかを紹介していきます。
本格的に脅威モデリングをやるとなると、データフロー図やシーケンス図を作ったりと多様なアプローチとっていくのですが、今回は簡易的に上記のイメージ図を元に見ていきます。上記のイメージ図においての構築や処理の流れ(緑色の丸)は以下の通りです。
- ユーザーは基本モデルを選択して、自社テナントにAzure OpenAI Serviceをデプロイします。
- (任意)ユーザーはFine-tuning用のデータを用意しAIモデルを自社向けにチューニングします。Fine-tuning用のデータとFine-tuningされたモデルはAzure Strageに保管されます。[6]
- ユーザーがAIモデルに対して質問事項などをinputします。inputの方法としてはAPI経由でinputを行うか、Open AI Studioに対しての権限を持っていればGUIでの実行が可能です。
- AIモデルがinputデータを元にその次の流れを予想しoutputを生成します。
- GUIやAPI経由でユーザーに対してoutputを返します。
- inputとoutputのデータはマイクロソフト社のデータベースに30日間保存されます。
- Azure OpenAIが禁止されている用途で利用されている可能性があることを検知した場合、マイクロソフト社の専門部隊にアラートが上がります。
- マイクロソフト社の専門部隊の人員はinputとoutputのデータ等を確認し、禁止されている用途で利用されていると判断された場合は必要な処置を講じます。
一旦、流れだけを書き示しています。それぞれの流れにおいて気になる点があると思いますが、そちらについては後ほどフォローします。
Ⓐ. inputデータに関する脅威
不適切なデータをinputしてしまう
脅威の解説
まず、最初に考えられるのは、「不適切なデータをinputしてしまう」という懸念です。例えば、「顧客との契約に基づき社外に共有してはならないことになっている個人情報」や「発売前の新商品の情報」といった情報などをinputしてしまうケースです。そちらに対しては以下のような対策が考えられます。
対策:データの分類・ラベリングとユーザー教育
最初はシステム的な話ではなく、データの分類・ラベリングとユーザー教育の話です。何を持って「不適切」と判断するかについて企業ごとの指標がないと、そもそもこの議論を始めることができません。そのため、企業で取り扱う情報を分類し、「Azure OpenAIに共有しても良い情報」と「そうではない情報」を仕分けることが望ましいと考えています。話はそこからです。
「Azure OpenAIに共有しても良い情報」と「そうではない情報」を仕分けるための判断をする上で、マイクロソフト社がどのようにInputデータを取り扱うか?という観点が参考になります。そちらについては、E~Gなどを見ていただけると幸いです。
対策:履歴機能を実装し監査する
Azure OpenAIをユーザーに提供する際に、履歴機能を実装し、その履歴を使って監査したり、あるいは独自のフィルタリングを実装することが考えられます。この領域に関してはシステム開発の領域であり、いろいろな実装方式がありますが、参考例をいくつか紹介します。
- Microsoft謹製のAzure OpenAIを利用したエンタープライズ向けのPrivate ChatGPTを利用する。(履歴が残る仕様となっています。)
- Microsoft Power Virtual Agents や Logic Apps を利用して、ユーザーがTeamsチャット経由でAzure OpenAIサービスを利用できるようにする。Teamsのチャット履歴をコミュニケーションコンプライアンス等で監査する。
悪意ある利用・偽情報(ディープフェイク)の生成
脅威の解説:
OpenAIを含む生成型AIは、道徳的に好ましくないケースで利用することもできます。例えば、フィッシング攻撃の生成、マルウェアの開発などです。これにより、標的となった企業や個人の情報が脅かされる可能性があります。 また、生成型AIは、ディープフェイク(人物の顔や声を偽造した動画や音声)を生成する能力があります。これにより、人物の評判損傷やプライバシー侵害が発生することがあります。
対策:マイクロソフト社の検知システム
Azure OpenAI Serviceでは、inputとoutputデータを最大 30 日間保存しており、マイクロソフト社は保存データを使って、倫理規定[7]に違反する可能性のあるサービスの使用がないかを監視しています。ポリシー違反が確認された場合、マイクロソフト社は利用方法の是正や、Azure OpenAI リソースへのアクセス停止、利用終了などの処置を行うため、デフォルトで悪意ある利用・偽情報(ディープフェイク)の生成に対してのある程度の対策は行われていることになります。[8]
対策:自社での教育
マイクロソフト社も対策はしてくれているものの、生成型AIを自社のユーザー等に提供する際には、自社でもユーザー教育を行うことが望ましいです。想定される利用用途や禁止事項をあらかじめ定めて周知するなどの対策が考えられます。
Ⓑ. outputデータに関する脅威
outputデータの公開範囲の違反
脅威の解説:
Azure OpenAI Serviceから生成されたデータ(outputデータ)には、inputデータやFine-tuningに利用するデータの内容が含まれることがあります。つまりinputデータとFine-tuningデータが閲覧してはならない人物は必然とoutputデータも閲覧してはならないということです。inputデータを作るユーザーとoutputデータを作るユーザーは同一であることが多いとは思いますが、特にFine-tuning用のデータについては盲点になりがちだと思います。
対策:outputデータの公開範囲の違反とならないように設計する
この問題に関しては、outputデータの公開範囲の違反とならないように設計する他、なかなか対策の打ちようはありません。また、outputデータの2次利用にも十分に注意をはらってシステム設計・ガイドライン設計を行うことが望まれます。
「outputの利用方法がAzure OpenAI Serviceの規約等に違反してしまう」という懸念については、マイクロソフト社がAzure OpenAIのユースケースや注意点、ベストプラクティスも公開していますのでそちらをご覧いただくと良いと思います。
著作権問題
脅威の解説:
生成AIに関する著作権の問題は複数の側面がありますが、ここでは他者の著作権の侵害について取り上げます。生成AIからの生成物が、既存の著作物と同一・類似している場合は、当該生成物を利用(複製や配信等)する行為が著作権侵害に該当する可能性があるとされており[9]、企業で利用する際には十分な配慮が必要です。
対策:
この著作権問題に関しては、事例もあまり報告されておらず、まだ社会が追いついていない状態であると考えています。現実的な対策としては、Azure OpenAI Service利用においては、プロンプトに既存著作物、作家名、作品の名称を入力しないように教育したり、outputを配信・公開等する場合には、生成物が既存著作物に類似しないかの確認を行うなどの対策が考えられます。
著作権に関しては「著作権のあるコンテンツを生成AIに入力しても良いのか?」や「著作権のあるコンテンツを使った学習は著作権侵害にあたらないのか?」という複数の議論が巻き起こっています。そちらに関しては法律事務所さんなどが見解を出していたりもするので、そちらを参考にしつつ、法務部門と相談されることを推奨します。
Ⓒ. APIに関する脅威
脅威の解説:
APIに関しては、悪意のある第三者にAPIを不正利用され、その結果情報を搾取されたり、AIモデルを悪用されてしまうという脅威も考えられます。そこに対してはマイクロソフトが従来提供していたセキュリティ対策を講じることができるので、ここでいくつか紹介します。
対策:Sentinel(Log Analitics)による監査
Azure OpenAI Serviceに関わるログ(診断情報)はLog Analiticsに送信し、Sentinelなどで分析を行うことができます。例えばAPIを実行した際のクライアント側のIPアドレスなどは取得できるので、それらを使って目付けしていくというものありだと思います。
対策:APIの実行制限
上記で紹介したものは監査ですが、そもそもアクセスできるIPアドレスやネットワークを縛るというのも選択肢の1つです。IPアドレスや仮想ネットワーク、プライベートエンドポイントでの接続などの手法があります。
IPアドレスやプライベートエンドポイント等で利用制限している場合でも、「Open AI Studio」の一部機能は使えてしまうという特性があるので、要件に沿った制御となっているかを検証の上、ご利用いただけたら幸いです。
その他:
Azure Key Vault や、Azure API ManagementやMicrsoft Defendr for APIをつかうと、さらにカッコよくAPI不正利用という脅威に対応できそうな気がしましたが、そちらについてはGW中に検証は終わりませんでした。もし検証できたら加筆するか、別ブログでまとめたいと思います。
Ⓓ. 自社テナントやGUIに関する脅威
Azure自社テナントが侵害されてしまう
脅威の解説:
Azure OpenAI Serviceも他のクラウドサービス同様にテナント侵害のリスクがあります。具体的には、悪意のある者(外部・内部)が自社のAzureテナントを不正利用し、データやリソースを損なうというものです。クラウドセキュリティは利用者とクラウドサービス事業者がそれぞれの責任範囲を定めて、それぞれが対策を行なっていく「責任共有モデル」が基本であり、自社の責任範囲は自社で対策することが必要となります。
対策:Azureのセキュリティ設定を施す
前々からAzureを利用されている方は既にやっている方がほとんどではあると思いますが、Azureには沢山のセキュリティ機能がデフォルトで備わっており、それらを忠実に実施することで大幅なリスク軽減が可能となります。多すぎて全部は紹介しきれないですが、Azure のセキュリティのドキュメント等を参考にいくつかピックアップしてご紹介します。包括的な情報についてはマイクロソフト社のドキュメントをご覧ください。
- 多要素認証(MFA)を行う。
- 条件付きアクセスで認可された状態の端末以外はアクセスできなくする。
- 本番用と検証用でサブスクリプションやリソースグループを分け、誤操作によるリスクを低減する。
- RBAC(ロールベースのアクセス制御)を用いて、不要なユーザーはAzure OpenAI Serviceのリソースをさわれないようにする。
ユーザー向けに提供するGUI画面が侵害されてしまう
脅威の解説:
一般ユーザー向けにChatGPTを利用させようとする場合には、当然GUI画面などを提供する必要があると思いますが、そのような画面を提供するということは当然そこも攻撃面となります。
対策:
ここに関しては、どのような形でユーザーに提供するかによってソリューションが変わってくるかと思うので、一般的な対策を紹介することは難しいかと思います。ただ、個人的には上でご紹介した、Microsoft Power Virtual Agents を使ってTeamsチャットをGUIにするなどを行えば、Teamsで従来行なっていたセキュリティ対策がそのまま転用できるので、非常にエコだと思います。
Ⓔ. Azure上に保管されるデータに関する脅威
Azure上に保管される利用者データが侵害されてしまう
脅威の解説:
Dでは「自社テナントやGUIに関する脅威」についてご紹介しましたが、ここで紹介するのはマイクロソフト社側の責任範囲に関する問題です。Azureの基盤部分や物理的な部分が侵害されてしまうということに関する脅威です。
対策:補完したデータは暗号化されている
Azure OpenAI は Azure Cognitive Services の一部であり、Cognitive Services データは、FIPS 140-2準拠[10]の256 ビット AES暗号[11]を使用してデータはデフォルトで暗号化されています。この場合の暗号鍵はマイクロソフト社が管理をしています。[12]
対策:利用する暗号鍵は自社の暗号鍵を利用することも可能
上記の場合、暗号鍵はマイクロソフト社管理のものになりますが、ユーザー独自のキーの持ち込み (BYOK)を利用することもできます。これを利用することで、マイクロソフト社からの読み取りはできなくなり、例えマイクロソフト社が侵害されたとしても、暗号鍵が流出していない限りはデータは暗号化された状態で保護されます。
対策:その他、マイクロソフト社が実施している有象無象の対策
マイクロソフト社は顧客のデータを守るために、世界最高レベルのセキュリティ対策を行なっています。世界中のセキュリティ認証や規格に準拠したり、とんでもない額の金額をセキュリティやプライバシーの領域に投資したりしています。 [13, 14]
Azure上に保管されるデータに海外の法令が適用されてしまう
脅威の解説:
クラウドサービス利用次には、利用者データが海外のサーバーに保管され、海外の法令が適用されてしまう可能性もあります。海外の法令が適用されること自体が悪ではないですが、その法令の内容によっては日本の法律では考えられないような自体が発生する懸念はあります。
対策:
Azureには複数の規約があり、会社や具体的なケースごとに適用される規約が異なります。そのため、実際のところは下記の事実や、実際にマイクロソフト社と締結している契約書を勘案しながら、自社の法務部門等と相談することが望ましいと考えています。
現在、Azure OpenAIはEast US (米国東部) 、South Central US (米国中南部)、West Europe (西ヨーロッパ)の3つのリージョンでのみサービスを提供しています。日本リージョンでもAzure OpenAIが利用できるようになっています。- Azure OpenAI Service を含むAzureのサービスには、Microsoft Customer Agreement や オンライン サブスクリプション契約 が適用されますが、これらの「国名」を日本にした場合の管轄裁判所は東京地裁で、準拠法は日本法です。
- Microsoft Customer Agreement : https://www.microsoft.com/licensing/docs/customeragreement
- マイクロソフト オンライン サブスクリプション契約 : https://azure.microsoft.com/ja-jp/support/legal/subscription-agreement/
Ⓕ. 基本モデルの学習への利用される脅威
脅威の解説:
「基本モデルの学習」と言われるとピンとこないかもしれませんが、ユーザーがinput/outputしたデータ(利用者データ)が、マイクロソフト社またはOpenAI社の基本モデル(他の顧客が利用する可能性があるもの)の学習に利用されてしまうのでは?という懸念があります。
対策:
まず、Azure OpenAI Serviceでは、利用者データはOpenAI社に送信されることはないとされています。また、マイクロソフト社もAzure OpenAI Serviceのモデルをトレーニングするために利用者データが使用されることはないとサポートに明記しています。[15]
そのため、Azure OpenAI Serviceの規約が変わらない限りは、Azure OpenAI Serviceの利用者データは基本モデルの学習に使われることはありません。
Ⓖ. マイクロソフト社員によるアクセスに関わる脅威
脅威の解説:
前述の通り、マイクロソフト社、inputとoutputデータを最大 30 日間保存し、製品条件に違反する可能性サービス使用を監視しています。これは「悪意ある利用・偽情報(ディープフェイク)の生成」の対策としては良い側面がありますが、マイクロソフト社がinputとoutputデータを読み取るということであり、それが自社のセキュリティポリシー違反に繋がる可能性があります。また、マイクロソフト社はその業務を行う人員を慎重に選抜していると思いますが、それらの人員が悪意を持っていた場合に不正利用のリスクもあります。(可能性は低いと思いますが。。。)
対策:
利用者はフィルタリングや不正使用の監視のオプトアウトをリクエストできます。すべての要件に準拠して承認された場合、inputとoutputデータは保存されなくなり、マイクロソフト社の従業員も閲覧することができなくなります。自社のセキュリティポリシーとの兼ね合い等で、マイクロソフト社の従業員の閲覧を許容できない場合は、こちらを検討すると良いかと思います。[16]
おわりに
個人的には、セキュリティに配慮して生成型AI利用する場合には、ChatGPTよりもAzure OpenAIの方がお勧めだなって思います。ChatGPTは個人利用が主のサービスだと思ってはいますが、今後ChatGPT Businessというビジネス向けのサービスも出てくるようなので、登場したら試して比較してみたいと思います。
参考文献
- Azure OpenAI Service https://azure.microsoft.com/ja-jp/products/cognitive-services/openai-service
- Transparency Note for Azure OpenAI Service https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/transparency-note?context=%2Fazure%2Fcognitive-services%2Fopenai%2Fcontext%2Fcontext&tabs=text
- Microsoft の責任ある AI の基本原則 https://www.microsoft.com/ja-jp/ai/responsible-ai?rtc=1&activetab=pivot1:primaryr6
- 202304_Azure OpenAI Developers Seminar https://livesend.microsoft.com/i/DApm8A9vtIqNC8R2nfGBLxxaZbjPLUSSIGN2czkp7916hlPvmdEZkmecT7reJjAXFAPLUSSIGNfGwIG87WTqmpWz1PLUSSIGNFn22lCqvFzRT4jR0p1wFJUU916LGrxa67eHo8DFDBbxhWHXcifY9
- 0421DS協会_ChatGPTによって描かれる未来とAI開発の変遷.pdf https://speakerdeck.com/hirosatogamo/0421dsxie-hui-chatgptniyotutemiao-kareruwei-lai-toaikai-fa-nobian-qian
- 脅威モデリングガイド | OWASP(Open Web Application Security Project) https://owasp.org/www-community/Application_Threat_Modeling
- 脅威モデリング | Microsoft https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool
- 生成AIの利用ガイドライン作成のための手引き https://storialaw.jp/blog/9414
- 生成AIの利用ガイドライン https://www.jdla.org/document/#ai-guideline
- Azure で ChatGPT × Cognitive Search を使ったエンタープライズサーチを実現 https://qiita.com/nohanaga/items/803c09b5a3a4e2d1776f
- Azure で ChatGPT × Cognitive Search を使ったエンタープライズサーチに履歴機能を付ける https://qiita.com/nohanaga/items/18baccb843b4148e6a77
関連記事・関連サイト
注釈
- ジェネレーティブAI(生成AI)とは? 活用メリット・事例をわかりやすく解説 |ビジネス+IT (sbbit.jp)
- JIS Q 27000:2019情報技術―セキュリティ技術―情報セキュリティマネジメントシステム―用語Information technology — Security techniques — Information security management systems — Overview and vocabulary https://webdesk.jsa.or.jp/books/W11M0090/index/?bunsyo_id=JIS+Q+27000%3A2019
- 脅威モデリングガイド | OWASP(Open Web Application Security Project) https://owasp.org/www-community/Application_Threat_Modeling
- ChatGPT https://chat.openai.com/
- Azure OpenAI での API 応答の SLA はどのようになっていますか? https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/faq#azure-openai—-api—–sla—————
- Data, privacy, and security for Azure OpenAI Service – Azure Cognitive Services | Microsoft Learn
- Azure OpenAI サービスとの統合では、次のことを行ってはなりません https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/code-of-conduct?context=%2Fazure%2Fcognitive-services%2Fopenai%2Fcontext%2Fcontext
- 悪用や有害なコンテンツ生成の防止 Data, privacy, and security for Azure OpenAI Service – Azure Cognitive Services | Microsoft Learn
- 生成AIの利用ガイドライン https://www.jdla.org/document/#ai-guideline
- FIPS 140-2 https://en.wikipedia.org/wiki/FIPS_140-2
- Advanced Encryption Standard https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
- Azure OpenAI Service encryption of data at rest https://learn.microsoft.com/en-us/azure/cognitive-services/openai/encrypt-data-at-rest
- Microsoft コンプライアンスのサービス https://learn.microsoft.com/ja-jp/compliance/regulatory/offering-home
- Azure OpenAI によって処理された顧客データは OpenAI に送信されますか? https://learn.microsoft.com/en-us/compliance/assurance/assurance-privacy
- OpenAI モデルのトレーニングに顧客データは使用されますか? Data, privacy, and security for Azure OpenAI Service – Azure Cognitive Services | Microsoft Learn
- 顧客はログ記録と人間によるレビュー プロセスをオプトアウトできますか? Data, privacy, and security for Azure OpenAI Service – Azure Cognitive Services | Microsoft Learn