この記事で分かること
- AIシステムで情報漏えいにつながりやすい脆弱性の考え方
- 入力データ、連携、権限、出力を分けて確認する方法
- 開発前・受入前・運用中に実施したいセキュリティ対策
- 事故が起きたときに影響を小さくするための準備
AIシステムの脆弱性とは何か
脆弱性とは、攻撃者や意図しない操作によって、機密性・完全性・可用性が損なわれる可能性を生む弱点です。AIシステムでは、Webアプリケーションやデータベース、クラウド設定といった従来からの弱点に加え、自然言語の指示、検索対象データ、外部ツールの実行、モデルの出力という経路が加わります。したがって、モデルそのものだけを点検しても十分ではありません。
たとえば、社内文書を検索して回答する仕組みでは、回答モデルが安全でも、検索対象に閲覧権限のない資料が混ざれば情報を返してしまうおそれがあります。逆に、データの分類が適切でも、管理画面の権限が広すぎれば、設定変更やログ閲覧から情報が漏れることがあります。脆弱性は一つの製品名や機能名ではなく、「誰が、どのデータに、どの経路で、どこまで到達できるか」という全体の関係で考える必要があります。
このとき混同しやすいのが、誤った回答と情報漏えいです。AIの回答が事実と異なる問題は品質や業務判断のリスクですが、権限のない人に顧客情報や社内情報が見える問題はセキュリティ上の事故になり得ます。両者は連動する場合があるものの、評価指標、担当者、対策は同じではありません。企画段階で区別し、各リスクの責任者を定めることが出発点です。
守る対象を先に決める
対策の優先順位を決めるには、先に守る対象を言語化します。顧客・取引先の情報、従業員情報、営業資料、設計書、認証情報、操作ログなどを洗い出し、「AIに入力してよいもの」「検索対象にしてよいもの」「回答に表示してよいもの」を別々に定義します。同じ文書でも、要約のために扱うことは許されても、全利用者に原文を表示することは許されない場合があります。
また、守る対象にはデータだけでなく、業務の操作権限も含まれます。AIが在庫更新、顧客への送信、発注登録のような処理を補助するなら、誤った指示や不正な操作を実行できないようにする必要があります。閲覧だけのAIと、外部システムを変更できるAIでは、求められる防御の深さが異なります。

AI特有の弱点を四つの層で把握する
AIシステムの脆弱性を「モデルの問題」と一括りにすると、修正する場所を取り違えます。開発チームが確認したいのは、取り込む資料、検索と権限、モデルからの出力、外部システムへの操作という四つの層です。OWASPの生成AI向けリスク分類でも、プロンプトインジェクション、機密情報の開示、不適切な出力処理、過剰な権限、ベクトル・埋め込みの弱点などが別々に扱われています。自社の機能がどの層を使うかを先に特定すると、不要な対策の追加を避け、必要な検証を具体化できます。
| 層 | 起こり得る弱点 | 確認する制御 |
|---|---|---|
| 資料の取り込み | 外部文書の悪意ある指示や改ざんされた内容を、信頼できる指示として扱う | 登録元、承認者、更新履歴を記録し、取得した文章は命令ではなくデータとして渡す |
| 検索と権限 | 元文書の閲覧権限が検索用の分割テキストに引き継がれず、権限外の資料が回答に混ざる | 検索時に利用者と文書の権限を照合し、削除・権限変更を索引へ反映する |
| 出力と保存 | 回答やログに機密情報が残り、共有・再利用時に閲覧者が広がる | 出力先ごとの権限、保存期間、内容ログの必要性を確認する |
| 外部操作 | AIが使う連携アカウントに不要な更新・送信権限があり、誤指示で実行される | 操作を許可リストで限定し、高影響な処理は人の承認を経る |
プロンプトに「機密情報を出さない」と書くだけでは、検索APIや連携先の権限は変わりません。アクセス可否はモデルへ資料を渡す前にサーバー側で判断し、モデルの出力を別システムへ渡すときも形式と操作権限を検証します。対策は、どの層で失敗を止めるかを設計書に明記して初めて受入テストで確かめられます。
情報漏えいが起こりやすい主な経路
AIシステムの安全性を検討するときは、抽象的に「セキュリティを強化する」と考えるより、データが通る経路を分解する方が具体的になります。入力、保管・検索、外部連携、出力、管理運用という五つの視点で確認すると、見落としを減らせます。
入力欄に機密情報が渡される
利用者がチャット欄やアップロード画面に、必要以上の情報を入力することがあります。問い合わせ文に顧客名、連絡先、契約内容、認証情報が混在する例も考えられます。入力内容がどこに保存され、誰が閲覧でき、分析や改善に利用される設定なのかを、利用者任せにせず設計で明確にします。
対策としては、入力してはいけない情報を利用規約や画面上で示すだけでなく、入力フォームを業務目的に合わせて分けることが有効です。自由入力が必要な場合でも、秘密情報を貼り付けない運用、マスキングの手順、例外時の相談窓口を決めます。機械的な検知を導入するなら、検知できなかった場合を前提にし、検知結果だけに依存しない運用にします。
検索用データと閲覧権限が一致していない
社内の文書やデータベースをAIに参照させる場合、検索用の索引に登録した時点で、元のアクセス制御が自動的に維持されるとは限りません。部署限定の資料、期限付きの資料、個人情報を含むファイルが、広い利用者グループから検索できる状態になると、回答経由での漏えいにつながります。
元データの権限と、AIが検索・回答するときの権限を対応付けて確認してください。個人単位、部署単位、役割単位のどれで制御するか、異動・退職・委託終了時にいつ権限を外すかも重要です。データ整備の段階で、機密区分、所有者、保管期限をそろえるほど、AI側のルールを実装しやすくなります。AIシステム開発に必要なデータの整備・評価の基本も、データを利用可能な状態にする前提を考える際の参考になります。
外部ツール連携が想定外の操作を許す
AIがメール、ストレージ、顧客管理、基幹システムなどと連携すると、回答生成だけではなく、データ取得や更新までできるようになります。この便利さは、連携用の認証情報、許可する操作、対象範囲を適切に絞れていないときの影響を大きくします。読み取りだけにするべき場面で更新権限を与える、検証用の接続先が本番へ向く、といった設定は特に注意が必要です。
連携ごとに、AIが実行してよい操作を一覧にし、最小限の権限に分けます。高い影響を伴う操作は、AIの提案と人による承認を分離し、実行前に対象・内容・実行者を確認できるようにします。連携先が増えるほど設定確認が複雑になるため、要件定義でデータ項目と操作を表にし、変更時にも更新することが欠かせません。AIシステム開発の要件定義で精度・データ・責任範囲を決める考え方を参照し、セキュリティ要件を後付けにしないようにしましょう。

出力内容をそのまま共有・実行してしまう
AIの回答は、画面に表示されるだけでなく、メール、帳票、社内チャット、ダウンロードファイルなどへ転記されることがあります。回答に含まれる情報の範囲を制御していなければ、元データを閲覧できない人へ二次的に広がる可能性があります。また、外部から取り込んだ文書に含まれる指示をAIがそのまま扱うと、意図しない処理や表示につながることがあります。
回答を利用する業務では、誰が最終確認をするのか、どの種類の回答は自動送信しないのか、表示を許す引用範囲はどこまでかを決めます。特に顧客対応、契約、支払い、採用など影響の大きい業務では、AIの出力を決定そのものではなく、確認のための下書きとして扱う設計が有効です。出力の内容だけでなく、コピー、エクスポート、共有リンクの権限も併せて点検します。
導入前に必ず決めたいセキュリティ設計
安全対策は、開発が終わった後に診断を一度実施すれば完了するものではありません。最初に境界と責任分担を決め、実装時に確認可能な形にし、運用で変化を追える状態にすることが必要です。ここでは、導入前に合意しておきたい項目を整理します。
データの分類と利用目的を結び付ける
まず、AIに渡る可能性があるデータを列挙します。そのうえで、各データについて、利用目的、入力の可否、検索対象への登録可否、保存場所、保存期間、出力可否、閲覧できる役割を決めます。「社内情報」という大きな箱だけでは判断できないため、少なくとも公開可能な情報、社内限定の情報、限定した担当者だけが扱う情報のように区分を設けると整理しやすくなります。
この整理は、既存データの状態に左右されます。ファイル名やフォルダだけに依存している場合、AIで検索できるようにする前に、所有者不明の文書や古い資料を見直す必要があります。対象を広げる前に小さな範囲で始め、分類ルールと例外処理が実務に合うかを確かめると、後から大規模な権限修正をする負担を抑えられます。
認証と権限を最小限にする
利用者、管理者、開発担当者、外部委託先、連携プログラムでは、必要な権限が異なります。共通アカウントを使うと、誰が何を行ったか追いにくくなり、退職・異動後の停止も不十分になりがちです。可能な範囲で個人や用途を識別できる認証にし、管理者権限を通常利用と分けます。
権限は「閲覧できる」「編集できる」だけではありません。AIへのデータ登録、プロンプトやテンプレートの変更、外部連携の設定、ログの閲覧、利用者の追加、出力のダウンロードなど、操作ごとに考える必要があります。権限一覧を作成し、責任者が定期的に見直す手順を持つことで、便利だからという理由で広げた権限が残り続けることを防げます。
秘密情報をコードや設定に残さない
APIキー、パスワード、接続文字列、秘密鍵などを、ソースコード、画面設定、共有ドキュメント、チャットの履歴に直接記載すると、意図しない閲覧や複製の起点になります。AI連携では、開発時の試行や運用中の問い合わせで設定情報を扱う機会が増えるため、保管場所と更新手順を明確にします。
秘密情報は用途ごとに分け、不要になったものは無効化できる状態にします。本番用と検証用を混在させず、漏えいの疑いが生じたときに影響範囲を切り分けられるようにします。設定を変更した人、変更日時、変更内容を追跡できることも、復旧と再発防止のために大切です。

開発・受入テストで確認するチェックポイント
設計書に対策を書くだけでは、実際の画面や連携で意図どおりに機能するかは分かりません。開発中と受入前には、利用者の視点と管理者の視点の両方で、想定外の経路がないかを確かめます。ここでの目的は、すべての異常を一度に見つけることではなく、優先度の高い事故を起こしにくくし、問題を発見したときに直せる状態にすることです。
| 確認領域 | 確認したい内容 | 見落とした場合の影響 |
|---|---|---|
| 利用者権限 | 役割ごとに閲覧・登録・管理の範囲が異なるか | 不要な資料や設定に到達する |
| 検索対象 | 機密区分や元データの権限が検索・回答に反映されるか | 回答経由で限定情報が表示される |
| 外部連携 | 許可された操作・接続先・データ項目だけを扱うか | 意図しない更新やデータ取得が起こる |
| 管理機能 | 設定変更とログ閲覧の担当者が適切に限定されているか | 不正変更の発見が遅れる |
| ログ | 調査に必要な操作記録が残り、過度な機密情報を残していないか | 原因追跡ができない、またはログ自体が漏えい源になる |
テストでは、正しい操作だけを試すのでは不十分です。一般利用者で管理機能に入れないか、異なる部署の資料を質問して表示されないか、アクセスを外した後に回答できなくなるか、連携先を誤って選んでも実行できないかといった境界条件を確認します。テスト用データにも実在の機密情報を持ち込まないという原則を守り、問題を再現するための記録を残します。
AIの入力は自然言語であり、利用者によって言い回しが変わります。単一の質問で正常に答えることを確認するだけでなく、長い依頼、複数の指示、権限外の資料を求める質問、外部文書を貼り付けた質問など、業務で起こり得る形を用意します。受入条件にセキュリティの確認項目を入れ、機能要件の完了と同じように判定できるようにすることが重要です。
運用中に情報漏えいを防ぐための仕組み
AIシステムは、データ追加、組織変更、連携先の更新、モデルやサービス設定の変更によって、導入時にはなかったリスクが生じます。運用の安全性は、初期設定の完成度だけでなく、変更を把握して確認する仕組みで決まります。
ログを目的別に扱う
ログは、障害調査、不正利用の検知、利用状況の把握に役立ちます。一方で、質問文、回答、ユーザー識別子、参照した文書名などが残る場合、ログそのものが重要な情報になります。何を記録するのか、誰が閲覧するのか、どのくらいの期間保管するのか、調査後にどう扱うのかを定めます。
すべてを詳細に残せば安全になるわけではありません。調査に必要な情報と、不要に蓄積しない情報を分けることが大切です。通常時に見る指標と、事故調査時にだけ扱う詳細記録を分けると、日常の閲覧範囲を狭めやすくなります。ログ閲覧も権限の一つとして扱い、閲覧履歴を確認できるようにします。
変更管理と定期点検を習慣にする
新しいデータソースの追加、権限グループの変更、連携機能の追加、プロンプトやテンプレートの更新は、いずれも情報の流れを変える行為です。変更依頼の段階で、扱うデータ、影響する利用者、追加される権限、テスト方法、戻し方を確認し、承認の記録を残します。緊急変更にも、後から点検する手順を用意します。
定期点検では、利用されなくなったアカウントや連携、期限切れのデータ、広がりすぎた権限、失敗したログインや異常な操作を確認します。点検の頻度は、業務の重要度、扱う情報、変更の多さに応じて決めます。チェックリストを使い回すだけでなく、実際に起きた問い合わせや変更内容を次回の点検項目へ反映すると、運用に根付きます。
導入後の利用定着と安全な運用は切り離せません。利用者が困ったときに個人判断で別のAIサービスへ情報を移したり、共有設定を広げたりしないよう、相談経路と利用ルールを整備します。導入後の支援範囲も含めて検討したい場合は、AI開発の相談時に、運用ルールや権限見直しの進め方を確認するとよいでしょう。
インシデントに備える初動と復旧の考え方
対策をしていても、設定ミス、認証情報の流出、想定外のデータ共有などを完全にゼロにすることは困難です。だからこそ、疑いが生じたときに誰が何を判断し、どの順序で影響を抑えるかを、平時から決めておく必要があります。発見者が迷って報告を遅らせないことが、被害を小さくする第一歩になります。
初動では、事実が確定していなくても、影響が拡大する経路を止められるかを検討します。該当アカウントや連携を一時停止する、公開範囲を狭める、秘密情報を更新する、関連ログを保全する、といった選択肢を事前に整理しておくと迅速です。ただし、復旧を急いで記録を失うと原因調査が難しくなるため、誰が停止を判断し、どの記録を保全するかを明確にします。
その後は、漏えいした可能性のある情報、閲覧・利用された範囲、発生時刻、関係する設定変更を確認します。法令、契約、社内規程に基づく連絡や対応が必要になる場合もあるため、法務、情報システム、業務責任者、委託先の連絡体制を決めておきます。原因が一つに見えても、権限、データ分類、手順、監視のどこで防げたかを振り返り、再発防止を設計と運用に戻すことが重要です。
AIシステムのセキュリティに関するよくある質問
AIに社内文書を参照させるだけなら、権限管理は不要ですか?
必要です。参照だけの仕組みでも、検索対象と回答に表示できる範囲が広すぎれば、閲覧権限のない情報が出る可能性があります。元データの権限、AI側の検索権限、回答の表示範囲が対応しているかを確認してください。
利用者に「機密情報を入力しない」と伝えれば十分ですか?
注意喚起は必要ですが、それだけでは十分とはいえません。入力画面の設計、権限、保存設定、ログの扱い、相談先を組み合わせ、利用者が誤って入力しても影響を広げにくい仕組みにします。
セキュリティ対策は開発完了後にまとめて確認してもよいですか?
後工程だけで確認すると、データ構造や権限モデルの変更が大きくなりがちです。要件定義で守る対象と利用範囲を決め、開発中に実装を確認し、受入と運用で繰り返し点検する進め方が現実的です。
AIの回答精度を上げれば、情報漏えいのリスクも下がりますか?
回答精度の改善は重要ですが、それだけでは権限外の情報表示や不適切な連携操作を防げません。精度評価と、アクセス制御、データ分類、操作承認、ログ確認を別々の観点で管理します。
まとめ:AIの脆弱性はデータと業務の流れで管理する
AIシステムの脆弱性対策は、モデルに特殊な対策を足すだけでは完結しません。入力する情報、検索させる情報、連携先で行える操作、利用者と管理者の権限、出力の共有方法、ログと変更管理を、一つの業務の流れとして確認することが大切です。特に、社内データを活用するAIでは、データの分類と権限の対応が安全性の土台になります。
最初から対象を広げすぎず、扱うデータと利用者を限定した範囲で検証し、受入条件と運用ルールを整えてから拡張する進め方が有効です。自社の既存システム、データ管理、委託範囲を踏まえて整理したい場合は、開発前にリスクと優先順位を可視化し、実装・運用の責任分担まで決めておきましょう。