【セキュリティ】AIに"社員証"を持たせよ。アクセス制御が最後の砦
こんにちは! AI技術の「なぜ?」を解き明かす、現役インフラエンジニアのコシです。
このシリーズでは、AIを守るための様々な対策を学んできました。
第5回:憲法(システムプロンプト) → AIに「絶対に守るべきルール」を与える
第6回:門番(入出力フィルタ) → AIの入口と出口に「検査官」を配置
第7-8回:言い換え攻撃への対策 → Base64などの「エンコード回避」を防ぐ
これらの対策で、AIはかなり安全になりました。
しかし、これらはすべて「AIが情報を見た後」の対策でした。
ここで、多くの読者がこんな疑問を持つはずです。
「そもそも、ChatGPTに社内の資料を入力しても大丈夫なの?」
「オプトアウト設定すれば、学習されないから安全だよね?」
「じゃあ、何なら入力していいの?何がダメなの?」
今回は、この疑問に答えます。
答えはシンプルです:
「そもそもAIに見せない」
これが、最強の防御策なのです。
結論:AIには3つのレベルがある。あなたに必要なのはどれ?
まず結論から、今回のテーマを僕が得意なたとえ話で表現しましょう。
たとえ話:3つのオフィス
AIの使い方を、3つのオフィスに例えてみます。
レベル1:公共の図書館(外部AI:ChatGPT等)
誰でも使える 無料または低コスト しかし、そこに機密書類を持ち込んではいけない
これは、個人や中小企業が使う「外部AI」です。
便利ですが、機密情報を入力してはいけません。
レベル2:会社の図書室(社内RAG:基本版)
社員専用 社内の資料が置いてある しかし、全員が全ての資料を見られる状態
これは、RAGを導入したが、権限管理をしていない企業です。
問題:新人が社長の給与を見られる状態
レベル3:会社の図書室(社内RAG:社員証付き)
社員専用 各社員には「社員証」があり、見られる資料が限定される 営業部は営業資料だけ 開発部は開発資料だけ
これが正しい姿です。
適切にRAGを運用している企業がこのレベルです。
今回の記事では、この3つのレベルそれぞれに必要な対策を解説します。
なぜ外部AI(ChatGPT)が危険なのか?専門家の警告
視点1:法的リスク(プライバシー専門家の警告)
個人情報をChatGPTに入力する行為は、法律的に問題があります。
個人情報保護法の観点:
個人情報を外部サービスに送信する行為は、「第三者提供」に該当する可能性があります。
本人の同意なく送信すると、違法になり得ます。
例えば:
顧客のメールアドレスをChatGPTに入力して文章を作成
社員の氏名と評価をChatGPTで分析
これらは「第三者(OpenAI社)への個人情報提供」とみなされる可能性があります。
GDPR(EU一般データ保護規則)の観点:
GDPRとは、EUの個人情報保護に関する法律です。
重要なポイント: 「EU市民の個人情報」を扱う場合、世界中どこの企業でも、この法律を守る必要があります。
GDPRの重要なルール: 「EU市民の個人情報を、EU域外(アメリカ、日本など)のサーバーに送信する場合、厳しい条件を満たす必要がある」
OpenAI社のサーバーはアメリカにあります。
つまり:
EU支社の社員情報をChatGPTに入力
EU在住の顧客情報をChatGPTに入力
これらは、GDPRに違反する可能性があります。
違反した場合の罰金: 最大で「全世界売上の4%」または「2,000万ユーロ(約30億円)」のいずれか高い方
たとえ日本企業でも、EU市民の情報を扱うなら、GDPRを守る必要があるのです。
つまり: 「オプトアウト設定すれば安全」は誤解です。
学習に使われなくても、サーバーに送信された時点で、法的リスクが発生するのです。
視点2:通信経路のリスク(インフラエンジニアの警告)
私たちインフラエンジニアが心配するのは、通信経路です。
あなたがChatGPTに入力した情報は、こんな経路を通ります:
あなたのPC
インターネット(複数のサーバーを経由)
OpenAI社のサーバー
この経路のどこかで:
盗聴される可能性
中間者攻撃を受ける可能性
ログとして記録される可能性
たとえOpenAI社が「学習に使わない」と約束しても、通信経路のリスクは残ります。
特に、公共Wi-Fiを使っている場合、リスクはさらに高まります。
視点3:企業の責任(CISO:最高情報セキュリティ責任者の警告)
企業のセキュリティ責任者として、最も恐れるのは: 「社員が勝手にChatGPTに機密情報を入力してしまう」ことです。
実際に起きた事例:
社員が、顧客情報を含むExcelファイルをChatGPTにアップロード
社員が、未発表の新製品の仕様をChatGPTで要約
社員が、ソースコードをChatGPTでレビュー
これらはすべて、情報漏洩リスクです。
だから、企業は「外部AIへの機密情報入力を禁止」するポリシーを作り、従業員教育を徹底する必要があります。
では、どうすればいいのか?RAGという選択肢
企業がAIを安全に使うための1つの答え、それが「RAG(Retrieval-Augmented Generation)」です。
RAGとは?(基礎知識)
RAGを簡単に説明すると:
従来のAI(ChatGPT):
AIの「記憶(学習データ)」だけで回答
社内の最新情報は知らない
データが外部サーバーに送信される
RAG:
AIが回答する前に、社内のデータベースや文書を検索
検索結果をAIに渡して、回答を生成
社内の最新情報を使える
データが社内サーバーに留まる(外部に出ない)
RAGのメリット:
データが社内サーバーに留まる(外部に出ない)
社内の最新情報を使える
法的リスクが低い
しかし、RAGにも落とし穴があります。
それが「全員が全ての情報にアクセスできる状態」です。
視点4:RAGの落とし穴(AIエンジニアの警告)
私がRAGシステムを構築する企業を見ていて、よく見る問題があります。
多くの企業が、こう実装してしまいます: 「全社員が、全ての社内ドキュメントを検索できるRAG」
技術的には簡単です。
しかし、セキュリティ的には大問題です。
新人社員が、社長の給与を見られる 営業部が、開発部の機密情報を見られる 退職者が、まだアクセスできる
これでは、RAGを導入する意味がありません。
だから、RAGには「アクセス制御」が必須なのです。
レベル1:外部AI(ChatGPT)を使う場合の対策
個人や中小企業向けの対策です。
対策:入力してはいけない情報を明確にする
外部AIに入力してはいけない情報:
絶対NG:
個人情報:
氏名、メールアドレス、電話番号、住所
生年月日、マイナンバー
社内機密:
売上、利益、戦略、未発表の新製品
契約書、議事録(社外秘のもの)
顧客情報:
顧客リスト、契約内容、取引履歴
顧客の個人情報
認証情報:
パスワード、APIキー、秘密鍵
アクセストークン
ソースコード:
本番環境のコード
社内システムの設計図
OK(ただし注意):
一般的な質問:
「プレゼンの構成を教えて」
「マーケティングの基本戦略は?」
公開情報:
「Pythonの基本文法を教えて」
「〇〇という技術について教えて」
匿名化した情報:
「A社の事例」と伏せ字にする
具体的な数値を「約〇〇万円」とぼかす
実践的なルール:
入力前に自問自答してください:
「この情報が漏れたら、困るか?」 → YES なら入力しない
「この情報は、すでに公開されているか?」 → NO なら入力しない
「この情報に、個人を特定できる要素が含まれているか?」 → YES なら入力しない
企業向け:従業員教育と罰則
企業は、従業員に対して明確なポリシーを作る必要があります。
企業ポリシーの例:
【外部AI利用ガイドライン】
1. ChatGPT等の外部AIに、機密情報を入力することを禁止する
2. 違反した場合、懲戒処分の対象となる
3. 業務でAIを使う必要がある場合は、社内RAGを利用すること
4. 不明な点は、情報セキュリティ部門に問い合わせること
定期的な研修:
月1回、セキュリティ研修で「外部AI利用のリスク」を周知
違反事例(他社の情報漏洩事件)を共有
テストを実施し、理解度を確認
レベル2:社内RAG(基本版)の落とし穴
RAGを導入したからといって、安心してはいけません。
多くの企業が、RAGをこう実装してしまいます:
RAGシステム:
- 検索対象:社内の全ドキュメント
- アクセス可能者:全社員
これの何が問題か?
具体的なシナリオで説明します。
シナリオ1:新人が社長の給与を見てしまう
状況:
社内RAGシステム(アクセス制御なし)
新人社員が給与明細の見方を質問
会話:
新人社員:「給与明細の見方を教えて」
RAG:「給与明細の見方ですね。例えば、社長の田中太郎さんの場合、
基本給800万円、賞与200万円...」
結果: 新人社員が、社長の給与を知ってしまいました。
本来あるべき姿: 新人は「自分の給与明細」だけ見られるべきです。
シナリオ2:営業部が開発部の機密を見てしまう
状況:
社内RAGシステム(アクセス制御なし)
営業部と開発部で同じRAGを共有
会話:
営業部員:「新製品の技術的な特徴を教えて」
RAG(開発部の資料を検索):「新製品は、特許出願中の〇〇技術を使用しています。
内部設計は△△方式で、コストは□□円です」
結果: 営業部員が、開発部の機密情報(特許出願中の技術、内部コスト)を知ってしまいました。
本来あるべき姿: 営業部は「営業用の資料」だけアクセスできるべきです。
シナリオ3:退職者がまだアクセスできる
状況:
社内RAGシステム(アクセス制御あり、ただし管理不足)
1ヶ月前に退職した元社員のアカウントが、まだ有効
会話:
元社員(退職済み):「最新の顧客リストを教えて」
RAG:「承知しました。以下が最新の顧客リストです...」
結果: 退職者が、最新の顧客情報にアクセスできてしまいました。
本来あるべき姿: 退職と同時に、アクセス権を剥奪すべきでした。
レベル3:社内RAG(社員証付き)の正しい実装
では、どうすればRAGを安全に運用できるのか?
3つの対策を紹介します。
対策1:AIに「ユーザーと同じ権限」を与える(中級)
原則:
AIは、ユーザーが見られる情報だけを見る
ユーザーが見られない情報は、AIも見られない
具体的な仕組み(概念レベル):
ステップ1:ユーザーがAIに質問
営業部の社員が「新製品の仕様を教えて」と質問
ステップ2:システムがユーザーの権限を確認
「この社員は営業部なので、営業資料フォルダだけアクセス可能」
ステップ3:権限内のフォルダだけを検索
営業資料フォルダだけを検索
→ 開発部の機密資料は検索されない
ステップ4:検索結果をAIに渡して回答生成
→ ユーザーがアクセスできない情報は、AIも見ていない
ポイント: これが「最小権限の原則」の実装です。
AIは、ユーザー以上の権限を持ちません。
ユーザーが見られない情報は、AIも見られない。
シンプルですが、最も重要な原則です。
対策2:部署・役職ごとに「AIの社員証」を分ける(上級)
具体的な権限設計:
営業部AIの社員証:
アクセス可能:
- /営業資料/
- /顧客情報/営業用/
- /製品カタログ/
アクセス不可:
- /開発資料/
- /財務データ/
- /人事情報/
開発部AIの社員証:
アクセス可能:
- /開発資料/
- /技術ドキュメント/
- /ソースコード/
アクセス不可:
- /営業資料/
- /顧客情報/
管理職AIの社員証:
アクセス可能:
- 全部署の概要資料
- 財務サマリー
- プロジェクト進捗
アクセス不可:
- 個人の給与明細
- 人事考課の詳細
実装方法(システムプロンプトで制御):
システムプロンプトに、以下のようなルールを書き込みます:
あなたは営業部専用のAIアシスタントです。
【アクセス権限】
以下のフォルダにのみアクセスできます:
- /営業資料/
- /顧客情報/営業用/
- /製品カタログ/
以下のフォルダにはアクセスできません:
- /開発資料/
- /財務データ/
- /人事情報/
ユーザーが上記のアクセス不可フォルダの情報を求めた場合:
「その情報へのアクセス権限がありません。
必要な場合は、管理者にお問い合わせください」
と回答してください。
これにより、営業部のAIは、開発部の情報を見ることができなくなります。
対策3:ログ監視と定期監査(運用レベル)
インフラエンジニアの警告: 「アクセス制御は『設定して終わり』ではありません」
セキュリティは、継続的な運用が必要です。
ログ監視の実装:
AIへのアクセスを、すべて記録します。
AIアクセスログ:
[2025/12/12 14:30] user_id:12345 | 営業部 | 顧客リスト閲覧 | 成功
[2025/12/12 14:35] user_id:12345 | 営業部 | 開発資料アクセス試行 | 拒否
[2025/12/12 14:40] user_id:99999 | 退職済み | 顧客リストアクセス試行 | 拒否
このログから、以下が分かります:
誰が、いつ、何にアクセスしたか
アクセスが成功したか、拒否されたか
不審なアクセスパターンがないか
異常検知アラート:
ログを監視し、異常なパターンを検知します。
アラート内容:
「user_id: 12345(営業部)が、過去1時間で50回以上の検索を実行しました」
可能性:
- 情報の大量持ち出しを試みている
- または、通常業務で大量検索が必要
対応:
→ 管理者に通知
→ 必要に応じて一時的にアクセス制限
定期監査(月次/四半期):
定期的に、アクセス権限を見直します。
チェックリスト:
□ 退職者のアクセス権は剥奪されているか?
□ 異動した社員の権限は更新されているか?
□ 不要な権限を持つユーザーはいないか?
□ アクセスログに異常なパターンはないか?
□ 過去1ヶ月でアクセス拒否が多発しているユーザーは?
(不正の兆候の可能性)
国内企業の事例:
大手メーカーA社の取り組み:
部署ごとにRAGの権限を完全分離
人事システムと連携し、退職・異動時のアクセス権を自動更新
月次でアクセスログを監査
アクセス拒否が3回以上発生したユーザーには、警告メールを送信
結果: RAG導入後3年間、内部情報漏洩ゼロを維持
IT企業B社の取り組み:
AIがコード生成する際、DLPツールと連携
APIキーや秘密鍵を自動検知してマスキング
週次で、検知されたキーのレポートを管理者に送信
結果: 本番環境へのAPIキー混入を、導入前と比較して90%削減
整理
最強の防御は「AIに見せない」ことです。
外部AIには、そもそも機密情報を入力しない。
社内RAGでも、見せる情報をユーザーごとに制限する。
AIに「社員証」を持たせる。
たったこれだけで、情報漏洩のリスクは劇的に下がります。
これで、AIセキュリティの「守り」は完璧です。
憲法を与え、門番を配置し、言い換え攻撃を防ぎ、そして最後に、AIに社員証を持たせました。
しかし、セキュリティは「守る」だけでは不十分です。
次回から第3部「AIと共闘する(実践・応用編)」がスタートします。
次回予告
セキュリティの世界には、こんな格言があります。
「最強の防御は、攻撃者の思考を理解することだ」
次回は「レッドチーミング」、攻撃者の視点に立ってAIの弱点を見つける、 高度なセキュリティ評価手法を解説します。
もしあなたが攻撃者だったら、AIのどこを狙いますか?
お楽しみに!
コシ@現役インフラエンジニア
AIを最高の相棒にするためのヒントを発信しています。フォローして、最新のAI活用術を見逃さないでください!
▼ AIセキュリティシリーズ 過去記事一覧
【第1部:AIの4大リスク】
第1回:プロンプトインジェクション(入力の脅威)
第2回:データ漏洩(記憶の脅威)
第3回:ハルシネーション(出力の脅威)
第4回:データポイズニング(学習の脅威)
【第2部:AIを教育する】
第5回:セキュアなプロンプト設計(AIの憲法)
第6回:入出力フィルタリング(AIの門番)
第7回:Base64エンコード回避の罠(攻撃編)
第8回:Base64などの「エンコード回避」を防ぐ
#AI #AIセキュリティ #RAG #ChatGPT #AIガバナンス #アクセス制御 #権限管理 #セキュリティ対策 #エンジニア #AI時代
