GTMと計測タグに不正コードが混ざる:Googleの通信に隠れる2026年の手口と、バージョン履歴・権限・通知で見つける手順
GTM(Googleタグマネージャー、計測タグを一元管理するツール)の改ざんは、バージョン履歴・カスタムHTMLタグ・サイトのソースの3か所で見つけます。履歴では公開者と日時、カスタムHTMLでは中身、ソースでは自社以外のGTM IDがないかを見る。この3点にGA4の通信先とGoogle広告のCVステータスを加えた5か所を確認します。きっかけは2026年5月、米国の大手自動車メーカー系のEC複数でGTMの共有コンテナ経由でカード情報を盗むコードが配信されていたという、セキュリティ会社Source Defenseの報告です。盗んだデータの送り先はGoogleアナリティクスの通信そのもので、CSP(ブラウザに「このドメイン以外からの読み込みと送信を拒否せよ」と指示する仕組み)で塞がれた後の版では外部ドメインへの通信がありません。
決済ページに忍ばせたスクリプトでカード情報を抜き取る手口は「Magecart」と総称されます。2026年に変わったのは運び方です。盗んだカード番号や氏名、住所など12項目を読めない文字列に変えて(難読化して)、攻撃者が用意したGA4の測定ID宛てに、Googleアナリティクスの正規の送信先に投げる。サイト側がGoogleのドメインを信頼している以上、通信先の一覧をいくら眺めても異常は出ません。
この記事の要点
- 2026年の2事例はどちらも、盗んだデータをGoogle(GA4・GTM)かStripeの正規通信に載せて運んだ
- 自社GTMの履歴がきれいでも、サイト側に別のGTM IDが埋め込まれる型がある。ソースを見る工程は省けない
- 公開通知を「常に」にし、カスタムHTMLの編集を2段階認証済みのユーザーに限定すること
- 承認ワークフローは有料版(Tag Manager 360)だけ
今の広告アカウントの設定を、外部の現役運用者が項目ごとに点検した診断の例をご覧いただけます。
サンプルを見る(無料・その場でダウンロード)1. 2026年の2つの事例:GTMとGA4が「運び屋」に使われた
Source Defenseの報告は2026年5月19日付で、8月9日に更新されています。被害サイトは米国の大手自動車メーカーのグッズ・部品を売るEC複数で、ブランド名と被害件数は公表されていません。共通点は、GTM-MX8L362Lという1つのGTMコンテナを読み込んでいたことでした。コンテナに仕込まれたコードが決済ボタン周辺の送信を監視し、取得した12項目をXORとBase64で読めない文字列に変えたうえで、攻撃者の測定IDであるG-7DTFFTL7Y8宛てにカスタムパラメータとして3分割して送っていました。
順番に注目してください。初期の版は盗んだデータを不審な外部ドメインに送っていました。サイト側がCSPで塞いだところ、送り先がGoogleのインフラに移ったのです。
2つ目は、セキュリティ会社Sansecが2026年6月4日に報告し、Reflectizが7月6日に解説した事例です。2025年12月24日ごろから活動するMagento(Adobe Commerce)向けのスキマーが、侵害されたGTMコンテナから読み込み用のコードを配信し、本体は攻撃者のStripeアカウントの顧客データに隠してapi.stripe.com経由で取り出していました。盗んだ情報は偽のStripe顧客レコードとして送出します。関与が確認されたGTM IDは4件。被害店舗数は非公表です。
Sansecは2025年10月22日に悪性と判定したGTMコンテナID145件を公開しています。攻撃者がGTMを使う理由は、Googleがホストするので海外サーバーへの通信として警告が出ないこと、CSPでGoogleドメインが最初から許可済みであることの2つ。2025年2月にはSucuriが、同じ悪性IDが少なくとも6サイトに埋め込まれていたと報告していました。
割り引く点もあります。Source DefenseもReflectizもブラウザ側の防御製品を売る会社で、「CSPでは防げない」という主張には営業的な側面があります。GTMとGA4の通信に隠すという事実関係は複数社で一致していますが、被害件数が非公表である以上「急増」とも言えません。
2. 手口の仕組み:自社のGTM履歴に何も残らない型がある
混入の経路は2つに分かれます。1つは、自社のGTMアカウントに入られてカスタムHTMLタグが追加される型です。この場合はバージョン履歴に公開者のアカウント名と日時が残るので、身に覚えのない公開を探せば見つかります。
もう1つは、サイト側(WordPressやMagentoなどのCMS)が侵害され、HTMLに別のGTM IDの読み込みが追記される型です。Source DefenseやSucuriが報告した事例の多くはこちらで、自社のコンテナは無傷のまま、知らないコンテナが同じページで動いています。履歴をいくら見ても何も出ません。だからソースを見る工程が外せません。
GA4にも誤解しやすい点があります。Source Defenseの事例で使われたのは攻撃者自身の測定IDで、被害者のGA4プロパティは触られていません。被害者の管理画面には警告も異常な数字も出ません。「乗っ取られた」のではなく「通信路を借りられた」が正確です。
3. 日本の自社サイトで今日確認する5か所
確認は5か所、所要は1時間前後です。
| 確認箇所 | 開く場所 | 見るもの | 見つけたら |
|---|---|---|---|
| ①GTMのバージョン履歴 | コンテナのVersions | Published列の公開者と日時。自社・現行代理店以外の名前、深夜や休日の公開 | 前のバージョンをSet as Latest Versionで戻し、Workspace Changesで差分を見る |
| ②カスタムHTMLタグ | タグ一覧をCustom HTMLで絞る | 外部スクリプトの読み込み、長いBase64文字列、sk_で始まる文字列、別のGTM ID | タグを一時停止し、作成者に用途を照会 |
| ③サイトのソース | ブラウザの「ページのソースを表示」 | GTM-で始まるIDの数が自社の数と一致するか。Sansec公開の145件と、Stripe経由の事例の4件と照合 | サイトの制作会社・保守先に連絡 |
| ④GA4の通信 | 開発者ツールのネットワーク | google-analytics.com/g/collectのtidが自社の測定IDだけか。決済・フォーム送信ページで | 知らないIDがあれば②③へ戻る |
| ⑤Google広告のCVステータス | 目標>概要 | Misconfigured、Awaiting conversionsへの変化 | 計測ミスと決めつけず①②を先に |
③は誰でもできます。右クリックで「ページのソースを表示」を選び、「GTM-」で画面内検索するだけです。自社のコンテナが1つなのに2種類目が出たら、制作会社に連絡します。
確認と並行して、次に同じことが起きたとき気づける設定を3つ入れます。1つ目は通知で、GTMの管理にあるContainer Notificationsで「Version published」を「Always」にします。2つ目は2段階認証の要件で、アカウントの設定にある「特定の操作に2段階認証を要求する」をオンにすると、カスタムHTMLタグ・カスタムJavaScript変数・ユーザー設定の変更が、2段階認証を済ませたユーザーに限定されます。3つ目はPublish権限の絞り込みで、コンテナ権限5段階のうちPublishを持つ人を実際に公開する1〜2名に減らします。
承認してから公開する承認ワークフローはTag Manager 360だけの機能で、無料版の上限は「公開できる人を絞る」と「公開されたら届く」の2つまで。自社ページでカード決済を受けているECは、PCI DSS(カード情報を扱う事業者向けのセキュリティ基準)4.0.1の6.4.3(決済ページのスクリプト一覧の管理)と11.6.1(改ざん検知)が該当するとReflectizは指摘しており、該当するかどうかは決済代行会社か専門家に確認してください。
4. Google広告側の症状:CVステータスが変わっても、計測ミスと決めつけない
広告担当者が最初に異変に気づくのは、GTMよりGoogle広告のコンバージョン(CV、問い合わせや購入などの成果地点のこと)ステータスであることが多い。ヘルプによれば「目標>概要」のステータスは5種類で、Active(計測中)、Needs attention(注意が必要だが記録は止まっていない)、Misconfigured(設定エラーかタグ破損で記録停止)、Awaiting conversions(7日間CVなし)、Removed(削除済み)です。
不正コードの混入が直接このステータスを変える、という記述はヘルプにありません。混入の過程で既存タグが壊れたり、別のコンテナが同じイベントを横取りしたりした結果として、MisconfiguredやAwaiting conversionsが出ることがある、という位置づけです。通常の計測不具合の切り分けはコンバージョンが計測されないの手順に譲りますが、順番を1つだけ変えてください。タグの設定を見直す前に、表の①と②を先に開く。
ここで止まる担当者が多いのは、バージョン履歴の差分を開いても、その変更が正当なものかは、誰がどのタグを何のために入れたかを覚えていないと判断できないからです。代理店が計測用に足したのか、制作会社がヒートマップ用に足したのか、前任者がテストで入れて消し忘れたのか。3者が触るコンテナでは、その記憶を全部持っている人がいないのが普通です。差分は読めても正否を決める材料が社内にそろわず、確認が「見たけれど分からなかった」で終わります。
※ 計測タグの状態と変更履歴を、設定した本人以外の目で定期的に見てほしい方へ ― GTMと広告アカウントの閲覧権限だけで確認は完結します。実際の診断レポートのサンプル(無料)を用意しています。
5. 注意点と誤解:履歴がきれいでも、通知が届いていても
「履歴に異常がなかったから安全」とは言えません。サイト側に別のGTM IDが埋め込まれる型では自社の履歴は無傷で、履歴の確認とソースの確認は片方で代替できません。
通知にも穴があります。個人単位の設定なので、受けていた担当者が退職すると通知先も一緒に消えます。誰が通知を受けているかは、GTMの権限を棚卸しするときに一緒に見る項目です。GTMのタグ全体の棚卸しは計測タグを半日で棚卸しする手順にあり、今回の確認はその中の「公開者」と「カスタムHTML」に焦点を絞ったものです。
日本の中小広告主への影響は少し違います。2026年の事例は自社ページでカード決済を行う米国の大手ECが中心で、決済を外部サービスに任せている日本のLP(広告のリンク先ページ)では、カード情報を盗まれる場面は限られます。現実的なのは、同じ経路でサイトが改ざんされ、広告の審査に引っかかって配信が止まる形です。止まったときの復旧の順番はLP改ざんで広告が不承認になったときの復旧手順に書きました。
6. 1時間で開ける5か所と、来歴を知る人にしか答えられない1問
表の5か所は、管理画面と1時間があれば社内で開き終わり、通知と2段階認証の設定も同じ日に入ります。
開いた先で見つけた変更が正当かどうか。この1問だけは、1時間では答えが出ません。公開者は読めても、その人がそのタグを入れてよい立場だったのか、中身が計測に必要な範囲に収まっているのかは、コンテナの来歴と広告運用の両方を知る人でないと言えません。確認の手順は自社のものです。変更履歴と権限と計測タグの状態を、設定に関わっていない人が定期的に見比べる体制のほうは、アカウント診断が受け持つ範囲になります。
※ GTMの変更履歴と公開権限、計測タグの中身を、設定に関わっていない運用者に月次で見てほしい方へ ― 確認する項目は、実際の診断レポートのサンプル(無料)でご確認いただけます。
参考:公式ヘルプ
よくある質問
Q. GTMは代理店が管理しています。自社では何を見ればよいですか?
A. 自社に閲覧権限(Read)があれば、バージョン履歴の公開者と日時、カスタムHTMLタグの一覧は見られます。閲覧権限がないなら、まずそれを付けてもらうのが先です。閲覧権限だけなら代理店側の運用に影響しません。サイトのソースに自社以外のGTM IDがないかは権限と無関係に確認でき、GA4の通信先も同じです。代理店に聞くのは「カスタムHTMLタグが何本あり、それぞれ誰が何のために入れたか」の1点で、即答できなければ棚卸しの時期です。
Q. 不審なGTM IDがサイトに埋め込まれていました。広告は止めるべきですか?
A. 決済やフォーム送信のあるページで見つかったなら、そのページへ送る広告は一時停止して、サイトの制作会社か保守先に連絡します。訪問者を増やしているのが広告だからです。GTM側は前のバージョンに戻せますが、サイト側の埋め込みはサーバーの作業になるので、広告担当者が直す範囲ではありません。再開は、埋め込みが除去されたことを制作会社から書面で受け取ってからにすると、同じ説明を社内で繰り返さずに済みます。
Q. GTMが改ざんされていないか確認する方法は?
A. GTMのバージョン履歴で公開者と日時を、カスタムHTMLタグで外部スクリプトや別のGTM IDの有無を見ます。そのうえでサイトのページのソースを開き、「GTM-」で検索して自社のコンテナ以外のIDが出てこないかを確かめます。自社の履歴がきれいでもサイト側に別のコンテナが埋め込まれる型があるので、ソースの確認は省けません。
この記事の執筆者:アドサプリ運営チーム(運営:ライムクロス株式会社)。現役の広告運用者が、月次の広告アカウント診断「アドサプリ」を提供しています。
実際のカルテ(サンプル)をその場でダウンロード
ご入力後、その場でサンプル(PDF・一部抜粋)をダウンロードできます。まず中身を見たい方向けです。
