RedAccessがAIコーディングツールで作られ、そのツール自身のドメインで公開されたアプリを調べたところ、ほぼ保護も認証もないものが5,000件以上見つかりました。Wiredに提供した画像には、小売業者のチャットボットと顧客との全会話履歴があり、氏名や連絡先も含まれていました。Wiredは調べたデータの真正性を確認できませんでした。それでもアプリが公開されていたことに変わりはありません。
Salesforce、HubSpot、Pipedrive、Zohoに接続すると、顧客データは設計した画面をはるかに超えて漏れる可能性があります。営業パイプラインの画面に見える顧客企業は一部でも、保存されたキーはもっと多くを開けます。チームにリンクを渡す前に、キーの到達範囲を確認してください。
要約
- CRM認証情報が漏えいの規模を決めます。ツール専用の狭い権限を与え、ユーザーにアクセスが紐づくCRMでは専用の低権限ユーザーを使います。認証情報はサーバー環境設定かシークレットストアに保存し、サーバー側コードだけで使います。
- 顧客記録、商談状況、価格を漏らす導入ミスには、コピーして使える修正指示があります。元のAIツールに変更させ、短いテストを自分で実行して効果を確かめます。
- 実行場所はCRMに何をするかで決まります。読み取り専用ならチーム管理サーバー上で、プライベートネットワークか会社のログインを通して動かせます。書き戻すツールは先にIT部門かCRM管理者へ渡します。
- GDPRとCCPAが適用される場合、ツールのデータコピーと送信先の全サービスも対象です。営業・サポートツールの大半はEU AI法の高リスクではありません。主な顧客向け例外は個人の信用判断、生命・医療保険のリスク評価や価格設定、顔や声から感情を推測するAIです。
漏れたCRMキーでアクセスできる範囲

公開されたCRM APIキーが届くのはダッシュボードだけでなく、そのユーザーやアプリがアクセスできる全範囲です。SalesforceとPipedriveでは管理者キーで、管理者が見る全連絡先、顧客企業、商談を読み、通常は変更もできます。HubSpotとZohoは付与スコープを持ち、Zohoのグループスコープはユーザーの全操作を含みます。
4製品の権限付与と制限方法を示します。表のスコープとは、認証情報に許可された操作一覧です。
| CRM | 認証情報と引き継ぐアクセス権 | 広い権限で開ける範囲 | より狭い設定 |
|---|---|---|---|
| Salesforce | connected appまたはexternal client appを通じ、1人のSalesforceユーザーとして動くOAuth接続 | fullはユーザーがアクセスできる全データ、apiはREST APIとBulk API 2.0経由のアカウントアクセス |
読むオブジェクトだけ許可した専用ユーザーで、apiを要求し、fullは使わない |
| HubSpot | 新規アカウント内連携のService Key、または既存の旧プライベートアプリトークン | 選択した全権限。例として連絡先、会社、商談の読み書き | 表示するオブジェクトだけにcrm.objects.contacts.readなどの読み取りスコープを付与し、sensitiveとhighly_sensitiveは無効 |
| Pipedrive | 「特定ユーザーと会社に紐づき、そのユーザーの全データへアクセスする」個人APIトークン | そのユーザーに見えるすべて | 必要なデータだけ見える専用Pipedriveユーザーのトークン |
| Zoho CRM | service_name.scope_name.operation_type形式のスコープを持つOAuthトークン |
ZohoCRM.modules.ALLなどのグループスコープで、見込み客、連絡先、顧客企業、商談、見積、価格表、販売注文、請求書の読み取り・作成・更新・削除 |
ZohoCRM.modules.contacts.READなどのモジュール別読み取りスコープ |
各行は提供元の用語を使っています。Salesforceのスコープ資料はfullが「他の全スコープを含む」と説明します。HubSpotはプライベートアプリを旧方式とし、新規システム連携にはService Keysを推奨します。既存の旧アプリはEnterpriseアカウントの機密データを含む従来のスコープ資料を使います。
Pipedriveの表現は認証資料からのものです。Zohoのスコープ資料はグループスコープが「ユーザーがレコードで行える全機能への完全アクセス」を与えると説明します。自社の例もZohoCRM.modules.ALLを要求しています。
共通原則は、認証情報がユーザー権限か付与スコープを持つことです。ツール専用の情報を作り、CRMで可能な限り範囲を狭めます。ユーザー連動なら個人の管理者アカウントでなく専用の低権限ユーザーを使います。
書き込みは必要な場合だけ許可し、その時点でIT部門へ渡します。自分の管理者ログインや個人トークンは使わないでください。
旧認証情報を個人に紐づけると退職時に壊れることもあります。HubSpotの旧プライベートアプリ概要では、作成者を削除すると一部API呼び出しが失敗します。Service Keysは従業員でなくアカウント所属なので回避できます。Pipedriveはユーザーごとに有効APIトークン1つで、変更はそれを使う全連携を止めます。
連絡先を開ける広い認証情報は通常、商談や予測、Zohoでは見積と価格表も開けます。保有者は価格や割引構造まで届きます。
CRM管理画面で連携情報を作成し権限やスコープを制限するか、管理者に依頼します。
顧客記録を漏らす導入ミスと修正方法
7つの初期設定が漏えいを招きます。コードやブラウザーのCRMキー、公開リンク、全員が全顧客を見られる設定、不要な項目、外部送信、エクスポート履歴の欠如、削除要求後のコピーです。いずれもデモを簡単にします。
| エラー | 漏れるもの | 修正 |
|---|---|---|
| CRMキーがコード、ブラウザー、チャットにある | キーが届く全範囲。広い権限なら連絡先、商談、メモを含む全顧客DBで、変更もできる場合が多い | 狭い連携認証情報をサーバーだけに置き、旧キーを無効化 |
| 公開リンクで配信 | 顧客連絡先(メール、電話、住所、購入履歴)と価格・割引ページが、競合を含むURL保有者全員に見える | プライベートネットワークか会社ログインを前置 |
| 担当者全員が全顧客を見られる | 全案件、予測、商談額。退職者が全顧客をエクスポートできる | CRMレコード所有者に沿う役割をサーバーで表示・検索・出力に適用 |
| 少数でよいのに全項目を取得 | 更新日のツールに購入、支払い、顧客価値、詳細なサポート情報が入る | 指定項目だけ取得 |
| 記録をAI APIや他サービスへ送信 | 顧客データ、区分、見込み客や顧客状態のスコアが契約のない提供者へコピーされる | 送信を監査・削減し、残す処理を契約化 |
| 誰が何を出力したか記録がない | リストや顧客区分が、時刻も人物も不明のまま外へ出る | アプリが変更できない出力ログ |
| 独自コピーを保存 | CRM削除がツールのコピー、出力、派生スコアに届かない | 保存を最小化しコピーをCRMに追従させる |
アプリを作ったAIツールに大半の修正を依頼できます。以下の指示を自分のCRM、オブジェクト、役割に合わせてください。
AIが変更したと報告しても証拠ではありません。各指示のテストが証拠です。コードに指示を適用し、有効キーや本物の顧客記録をチャットに貼らないでください。
CRMキーをコード、ブラウザー、チャットから外す
コードやチャットに貼ったキーは公開済みです。環境変数も同じです。これは起動時にサーバーが渡し、コードが実値を含まず名前で参照する値ですが、使用コードがブラウザーで動けば漏れます。ブラウザーが読めるキーは誰でもコピーできます。
Viteの資料はVITE_付き変数が「クライアント側ソースコードで公開される」と説明します。Next.jsの環境変数資料もNEXT_PUBLIC_が値をブラウザーのダウンロードに含めると説明します。
コミット済みファイルのキーは履歴に残り、Composeファイルに直書きした秘密と同じくコンテナーを超えて残ります。非公開リポジトリも避難所ではありません。GitGuardianの2026年レポートでは内部リポジトリの秘密直書き確率は公開の約6倍でした。約28%の事故はSlack、Jira、Confluenceなど、完全にリポジトリ外から始まります。
このプロジェクトのSalesforce、HubSpot、Pipedrive、Zohoや他のCRM・営業ツールの全APIキー、トークン、パスワード、接続文字列を探してください。コード、全.envファイル、コミット履歴を確認してください。
各項目について列挙してください。
- 出現するファイルと行
- コード直書きか環境変数から読むか
- 使用コードはサーバーかブラウザーか。VITE_またはNEXT_PUBLIC_で始まる名前を警告する
完全なキー値は表示せず、それぞれ先頭4文字だけ示してください。
次に全CRM呼び出しを、サーバー専用環境変数からキーを読むサーバーコードへ移してください。コードのキーを除去し、実値ファイルをリポジトリから除外し、変更を正確に報告してください。不明なら推測せず明示してください。
注意:メッセージやコミットを消してもキーは秘密に戻りません。貼付・コミット後はCRMで無効化するしかありません。
新キー発行と旧キー停止というローテーションは人の作業です。CRMで狭い連携情報を作り、ITにサーバー環境への設定を頼み、旧キーを止めます。
漏れた私有アプリトークンにHubSpotはRotate and expire nowを用意します。Pipedriveでは変更前に旧トークンの他の利用先を確認します。
人が使うCRM管理パスワードはBitwarden互換サーバーのVaultwardenなどに置きます。人のログイン用です。アプリの秘密の集中ローテーションにはHashiCorp Vaultを検討します。
テスト:アプリと開発者ツールを開き、全読み込みファイルから新キー先頭8文字を検索します(Ctrl+Shift+F、MacはCmd+Option+F)。一致ゼロを確認し、CRM操作を実行してネットワークタブを確認します。URL、ヘッダー、本文にキーがあってはいけません。旧キー拒否を管理者に確認するか、連携設定で状態を見ます。
公開リンクから外す
AIツールがホストすると、そのドメインに公開されます。RedAccessはそこでの単純なGoogleとBing検索で発見しました。価格や割引計算は競合にも担当者にも同じように読めます。
LovableのWiredへの説明は設定を作成者の責任とし、妥当です。プラットフォームは「安全に構築する道具を提供するが、設定は最終的に作成者の責任」です。公開設定は自分で変えます。
全ページ、APIルート、ファイルダウンロード、出力を列挙し、各項目を説明してください。
- ログインせず開けるか
- 顧客、商談、価格データを返すか
未認証リクエストへデータを返すすべてのルートを警告してください。まだ変更せず、先に一覧をください。
テスト:プライベートネットワーク外の携帯回線で、プライベートウィンドウから開きます。読み込めないか会社ログインで止まる必要があります。全データルートを同様に試し、データが出ないことを確認します。
各担当者に自分の顧客だけ見せる
役割なしでは全員が全案件、金額、割引を見て退職前に全顧客を出力できます。CRM所有者に沿うサーバー検証の役割で、検索と出力にも同じ規則を適用します。
各リクエストでサーバー検証する3役割を追加してください。ボタン、メニュー、列を隠すのは検証ではありません。
- 管理者(ツール所有者と営業運用):全記録。
- マネージャー:自チームのメンバーが所有する記録。
- 営業・顧客担当:CRM所有者欄が本人を示す記録のみ。
本人情報と役割はログイン済みアカウントから取得し、画面で変更できる値は使わないでください。検索、一覧、出力、APIにも適用し、ほかは「アクセス拒否」(403)にしてください。
終了後、各ページとルートの役割チェックを報告し、不明点を示してください。
注意:メニューや列を隠しても権限チェックではありません。サーバーが確認しなければ1回の要求で取得できます。
役割名とチーム定義は調整できます。予測会議で全地域を管理職に見せるチームもあります。
テスト:テスト営業で他地域の顧客を検索し、一致しないことを確認します。出力は自分の顧客だけにします。テスト管理職でもチーム外顧客を確認します。
必要な顧客項目だけ取得する
更新追跡は日付、所有者、顧客名が必要です。「全顧客データ」は購入、支払い、サポート本文も取ります。項目が少なければ漏えい、削除対象、外部送信が減ります。
DB、コード、画面、出力、APIで個人・商業情報を持つ全項目を列挙してください。氏名、メール、電話、住所、会社、役職、購入、顧客価値、支払い、商談額、割引、見込み客・顧客状態スコア、サポート本文、一意IDです。
使用する画面・機能と主目的への必要性を示し、不明なら推測しないでください。
CRM要求を[承認した項目]だけに変えてください。他は保存コピー、画面、出力から削除し、正確に変更を報告してください。
連携権限は第二の鍵です。読めないデータはAIコードのバグでも漏れません。保存時暗号化はITに確認し、コードを読む助手の判断だけに頼れません。
テスト:管理者出力の列を承認一覧と比較し、余分がないことを確認します。全画面で削除項目を確認し、一覧を次のテスト用に保管します。
外部へ出る顧客データを確認する
メモをAI APIへ、項目を分析へ、webhookを別ツールへ送る解約予測ツールは記録をコピーします。GDPR対象なら会社に代わる処理者として外部サービスに契約が必要です。後述します。
OpenAI、Anthropic等AI API、CRM、メール、チャット、分析、全webhookの外部呼び出しを監査してください。
本文やアドレスで送る項目を正確に列挙してください。保存、記録、学習に使う可能性のあるサービスを示し、削減または顧客データ不要の呼び出しを挙げてください。
テスト:各受信サービスで受領項目一覧を開きます。分析のユーザー属性やwebhookマッピングを承認一覧と比較し、範囲外はまだ送信されています。一覧がなければ名称と処理条件をDPOやプライバシー責任者へ渡します。
全出力と一括ダウンロードを記録する
出力ボタンは顧客一覧や価格表を1クリックで外へ出します。ログなしでは誰が何を取ったか不明です。全ページ閲覧記録で埋めず、出力、一括表示、削除を記録します。
全出力、ダウンロード、[選んだ件数]超の表示、削除をログ化してください。利用者、操作、記録・区分、行数、時刻を残します。
アプリDBアカウントはログ行追加のみ可能で、変更・削除不可にしてください。管理者だけ読めます。設定したDB権限と強制できなかった点を説明してください。
改変不能はアプリの良心でなく、制限可能なDBアカウントの権限で保証します。ログ自体も誰が誰の記録を取ったか示す個人データなので管理者限定です。
テスト:テスト営業で小さな一覧を出力し、管理者で正しい行数の記録を見ます。ITまたは出力を見せるAIにアプリDBアカウントで削除を試させ、権限エラーを確認します。
削除要求時にコピーをCRMに追従させる
CRMが正本なら先にそこで削除します。キャッシュ、ディスク出力、顧客別スコアはCRM削除が届かない第二の保存先です。
顧客の全情報を一括削除するボタンは誰でも押せれば危険です。私ならコピーを最小にし、削除で追う範囲を減らします。
必要時にCRMから読み、[承認一覧のうち保存必須の項目]だけ保持するよう変えてください。
残る保存先をすべて挙げてください。テーブル、キャッシュ、出力、派生スコア、ログです。
管理者専用削除ツールを追加してください。CRM記録IDで全保存先を表示し、確認後はスコアと出力も全削除。ID、時刻、確認者、消去先だけ記録し、非管理者は「アクセス拒否」にします。
会社が保存すべき例外はDPOやプライバシー責任者が決めるので、指示には含めません。
テスト:CRMでテスト連絡先を作り、ツールに取り込ませます。スコアや出力を作るツールなら、それらも生成します。CRMで連絡先を削除し、管理者で削除ツールを実行して全保存先から消えたことを確認します。最後にテスト営業担当として開き、「アクセス拒否」を確認します。
CRM接続ツールを動かす場所

配置はCRM操作によります。読み取り専用はチーム管理サーバーで、私設ネットワークか会社ログイン経由にします。書き込みは利用前にITかCRM管理者へ渡します。
| CRMへの操作 | 実行場所 | 公開前の承認者 |
|---|---|---|
| 本物と同じ構造の例・合成データ | 開発・デモ用AIツールのホスティング | まだ不要。本物の記録は入れない |
| 少人数固定チーム向けに本物を読む | TailscaleやWireGuardなど私設ネットワークだけで届くチームサーバー | 読み取り認証情報を発行・承認するCRM管理者 |
| 分散・出張担当向けに本物を読む | 同じサーバーに、AuthentikやKeycloakなどのIDプロバイダーを使う会社ログインを前置 | CRM管理者とログインを接続するIT |
| 段階、所有者、項目、一括変更を書き戻す | CRMサンドボックスかテストアカウントで開発し、本番前に審査 | 利用前にITかCRM管理者 |
| 個人信用、生命・医療保険のリスク・価格、顔や声の感情を判断 | 審査まではどこでも動かさない | ITと法務、DPOまたはプライバシー責任者 |
チームのサーバーで動くまでは、例データを使って開発とテストを行います。ログイン、シークレット管理、ログを備えたマネージドプラットフォームも、すでに予算を確保し、ベンダー審査を行っているチームには合理的な選択です。
私設ネットワークは公開インターネットから応答しません。SSOは既存会社アカウントを本人確認基盤で検証します。AIが書いたログインページは世界中から届き、コードの強さ次第です。
Georgia TechのVibe Security Radarは公開脆弱性DBからAIツールの署名に紐づく欠陥を探します。2026年3月だけで35件、2025年全体以上で、認証回避も含みます。Georgia Techの2026年4月記事時点の数字です。
研究者Hanqing Zhaoは「エージェントが認証なしで作るのは誤字ではなく、最初から組み込まれた設計欠陥」と述べました。私の解釈では鍵はAIコードの外、ツールの手前です。
サーバーはITに頼みます。チームが完全管理するレンタルサーバーVPSで、CoolifyやDokployがコードを実行し、CRMキーを含む環境変数を保持します。
Tailscaleは構築が速いものの独自の調整サーバーを使います。オープンソース代替のHeadscaleなら自前運用でき、WireGuardは完全セルフホストです。
会社ログインにはAuthentikが大半の小規模な社内アプリ構成に適します。Keycloakは既存ディレクトリーを接続する会社向きです。CaddyやNginx Proxy Managerなどのリバースプロキシが、Web向けログインにHTTPSを加えます。どの構成でも、サーバーと連携認証情報の責任者を1人、名前を明確にして指定します。
サーバーも必要です。当社のLinux VPSはrootを提供し、Coolify、Tailscale、WireGuard、Authentik、Keycloakをワンクリックで展開でき、ITはテストに時間を使えます。拠点はEUのフランクフルトとアムステルダム、英国ロンドン、米国の複数都市。選択をDPOや責任者の判断材料にします。
顧客データのGDPR、CCPA、EU AI法
サーバー位置は自分のコピーの所在地を決めますが、外部サービスの保存先や単独での法令遵守は決めません。英国はUK GDPR、監督機関はICOです。
GDPR:法的根拠、処理者、削除
GDPRが適用される会社では、ツールコピーも他の「全部または一部自動化された手段」による個人データ処理と同じ対象です。
利用ごとに認められる法的根拠が必要です。本人との契約履行や本人が求めた契約前措置に必要なら契約が該当し得ます。CRM、特にB2B連絡先は正当な利益が適切な場合もあり、本人の権利と比較衡量します。両方とも第6条です。
既存データの新用途なので、元の根拠で足りるかDPOや法務に確認します。
会社に代わる外部処理は処理者です。AI API、分析、ホスティングは多くの場合そうですが、役割を個別に確認します。第28条は「十分な保証」と各処理の契約を求めます。送信先監査一覧を持参します。
第17条の削除権が適用されれば会社の全コピー、ツールも対象です。だからCRMに追従させます。
CCPA:削除権はツールコピーにも及ぶ
カリフォルニア消費者は対象会社に、収集した個人情報をコピー・出力も含め削除要求できます。州司法長官のCCPAページによるとCivil Code 1798.105(d)と1798.145に例外があります。
CCPAはサービス提供者や請負先との書面契約で利用を制限することも求めます。会社が要求を処理し、必要時に相手が支援します。対象性はFAQの閾値で決まります。
EU AI法:営業・サポートの大半は高リスクではない
リード採点、案件予測、顧客状態、キャンペーン画面、CRM自動化は付属書IIIの高リスク目的にはありません。限定例外は個人信用、生命・医療保険のリスクと価格、生体データからの感情推定です。
高リスクは最も重い義務の分類です。2026年10月時点で付属書III規則は2027年12月2日開始予定。第50条の透明性は既に適用です。EU AI法付属書IIIの5(b)は「自然人の信用力評価・スコア設定。ただし金融詐欺検知AIを除く」を挙げます。
5(c)は「自然人の生命・医療保険のリスク評価と価格設定」です。該当ツールは高リスクになり得てITと法務の事前審査へ。自社営業の能力評価は4(b)雇用分類の可能性があり、人事と法務の別問題です。
1(c)は感情認識で、第3条は「生体データを基に自然人の感情や意図を識別・推測すること」とします。声や顔から気分を読む通話ツールも高リスクになり得て同じ審査経路です。
法律が扱うのはAIシステム。普通のコードの画面はAIが書いたというだけでは該当しません。実行中ツール自体が定義を満たすかです。
高リスクでなくても規則はあります。第50条は「自然人と直接やり取りする」システムに、明白でなければAIであることの説明を求めます。顧客チャットボットも正体を示します。
別に第4条は提供者と導入者に、従業員や代理利用者のAIリテラシー向上措置を既に求めます。
よくある質問
ChatGPTやClaudeでCRMを作るのは安全ですか?
例データでの開発は低リスクです。本物の秘密や顧客データでリスクが始まり、他人への公開で増えます。事前に狭いCRM認証情報をサーバー環境か秘密庫に置き、サーバーだけで使います。さらに私設ネットワークか会社ログインで外部を遮断。両方完了まで例データにします。
顧客が見ない社内画面もGDPR対象ですか?
会社に適用されれば顧客個人データの社内画面も例外ではありません。処理が対象で、見る人ではありません。第4条は「識別された、または識別可能な自然人に関するあらゆる情報」と定義します。適用と既存根拠の範囲はDPOや法務の判断です。
商談額や割引は個人データですか?
通常は会社データで、案件額、予測、価格表は役割と出力ログで守ります。ただし消費者購入や個人事業主など、特定可能な人に関係すれば第4条上個人データになり得ます。
CCPAはどの会社が対象ですか?
カリフォルニアで事業を行い、いずれかの基準を満たす営利会社です。California Privacy Protection Agencyの2025年インフレ調整売上基準は26,625,000ドル。州司法長官は他に、10万人・世帯以上の州住民情報を購入・販売・共有するか、年売上50%以上が消費者情報の販売・共有由来と説明します。DPOや法律顧問が該当性を確認します。
ディスカッション
コメント
ログインしてディスカッションに参加してください。