「学習除外」という甘い罠
深夜2時、本番環境で発生した原因不明のセグメンテーションフォールト。焦り狂う若手エンジニアが、スタックトレースと顧客の個人情報が含まれた生ログをそのままChatGPTのプロンプトに叩き込む――。我々開発の現場において、このような「一触即発のセキュリティインシデント」は日常茶飯事だ。そして、マネジメント層やセキュリティ担当者に「法人プランだから学習されないので安全です」と言い訳をして、その場をやり過ごしてはいないだろうか。私はこの「法人プラン=安全」という思考停止の風潮に、シニアエンジニアとして、またITジャーナリストとして、強い技術的懸念を抱かざるを得ない。
今回の調査で浮き彫りになったのは、「学習に使われない」という一言が、エンジニアにとっての完全な安全を意味しないという冷酷な現実だ。そもそも「学習」という言葉には、モデルの重み(パラメータ)を更新する「追加学習」や、👍/👎ボタンによる「選好チューニング」など複数のフェーズが存在する。しかし、我々が本当に恐れるべきは、モデルのパラメータ変化ではない。データが「人間のレビュアーに読まれること(②)」、そして「データが削除されずに保存され続けること(③)」である。
規約を精読すると、これらは全く連動していない。例えば、学習をオプトアウト(拒否)したとしても、データは提供元のサーバーに残り続け、品質向上の名目で人間のオペレーターが中身を覗き見ている可能性があるのだ。これは、データベースのデッドロックを解消するために、トランザクションを強制終了したものの、ロックされたリソースがメモリ上に残り続けているようなものである。我々は「学習」という言葉の定義を分解し、どの経路でデータが漏洩し得るのかを、より解像度高く見極めなければならない。
規約の行間に潜む「人の目」
多くのエンジニアは、APIや法人プランを使っていれば、データは暗号化されたブラックボックスの中に消え去ると思っている。だが、それは幻想だ。主要なAI製品の規約を比較すると、驚くほど「⚪ 記載なし」というブラックボックスが存在することがわかる。特に、エンジニアが最も警戒すべき「人間のレビュアーによる閲覧(②)」について、明記しているベンダーは極めて少ない。
例えば、Geminiの個人向けプラン(アクティビティON)では、人間のレビュアーがデータをレビューすることが明記されており、一度レビューされたデータはアカウントから削除しても最長3年間保持される。一方で、Workspace版やMicrosoft 365 Copilotのように「人によるレビューもしない」と明記している製品はごく一部だ。多くの製品は、この「人の目」が入る可能性について規約上「沈黙」している。
さらに厄介なのが、DifyやCline、n8nといった「持ち込みキー型(BYOK: Bring Your Own Key)」のツール群だ。これらのツールは「自社サーバーでは学習しない」と謳うが、それは単に責任の境界線をAPI提供元(OpenAIやAnthropicなど)に丸投げしているに過ぎない。接続先のAPI設定が「学習用データとして利用する」になっていれば、どれだけフロントエンドツール側でセキュリティを叫んでも、データは裏口から吸い上げられる。これは、自社コードの脆弱性を放置したまま、WAF(Web Application Firewall)を入れたから安全だと主張するような、極めて危ういセキュリティ設計である。
以下に、主要製品のプラン別におけるデータハンドリングの実態をまとめた。この表の「記載なし」の多さこそが、我々が直面している不確実性の正体である。
| 製品名 | プラン・設定 | ① 再学習されるか | ② 人が読むか | ③ 保存期間・場所 |
|---|---|---|---|---|
| ChatGPT | 個人(無料・Plus等) | 🔴 使われる(初期設定、オフ可) | ⚪ 記載なし | ⚪ 記載なし |
| ChatGPT | 法人(Enterprise・API) | 🟢 使われない | ⚪ 記載なし | 日本含む10地域から選択可 |
| Claude | 個人(Free・Pro) | 🟢 使われない(許可時のみ) | ⚪ 記載なし | 評価送信時は最長5年 |
| Claude | 法人(Team・Enterprise) | 🟢 使われない | ⚪ 記載なし | 管理者が評価送信を無効化可 |
| Gemini | 個人(アクティビティON) | 🔴 使われる | 🔴 人間のレビュアーが閲覧 | 18ヶ月(人が読んだ分は最長3年) |
| Gemini | Workspace | 🟢 使われない | 🟢 人によるレビューなしと明記 | ⚪ 記載なし |
| Perplexity | 個人(Free・Pro) | 🔴 使われる(初期設定、オフ可) | ⚪ 記載なし | 止める前のデータは削除不可 |
| Microsoft 365 Copilot | 全般 | 🟢 使われない | 🟢 不正監視の対象外と記載 | 管理者が保持設定可能 |
ゼロトラストAIへの処方箋
我々エンジニアが明日から取るべき行動は、AIベンダーの「善意」や「曖昧な規約」に依存しない「ゼロトラストAI」の体制構築である。まず、最も重要な技術的真実として、「オプトアウト(学習停止設定)は過去に遡及しない」という点を肝に銘じるべきだ。Perplexityの規約が明記しているように、設定をオフにする前に送信されたデータは、すでにモデルの重みに変換されるか、あるいは提供元のストレージに固定されており、後から消去することは不可能である。これは、Gitの履歴に誤ってコミットしてしまったAPIシークレットキーを、後から .gitignore に追加して安心しているような致命的なミスと同じだ。
実践的な処方箋として、以下の3つのアプローチを提案したい。
- 第一に、社内から外部AIへのプロキシ層を構築し、個人情報や機密キーワード(未発表のプロジェクト名や顧客名)を自動的にマスキングするゲートウェイを導入すること。
- 第二に、機微なソースコードやインフラ構成図を扱う開発業務においては、Ollamaなどを活用した「完全ローカル実行型LLM」への移行を真剣に検討すること。
- 第三に、AIツールの選定において、単に「学習しない」という文言を鵜呑みにせず、「誰の(自社か接続先か)」「何を(プロンプトかメタデータか)」「どこまで(保存期間と閲覧権限)」の3軸で規約を監査するチェックリストを義務付けること。
最後に、私は業界全体に痛烈な問いを投げかけたい。我々は、日々のコーディングの効率化や、ドキュメント作成のスピードアップという「目先の果実」と引き換えに、自社の最もコアな知的財産であるソースコードや顧客データの主権を、ビッグテックに無償で切り売りしているのではないか?「便利だから」という免罪符のもとで、我々自身がスパゲッティコードのような不透明な規約の共犯者になってはいないだろうか。この問いに対する答えを出さない限り、真のセキュアな開発は訪れない。


コメント