Google広告やMeta広告のアカウントが乗っ取られると、攻撃者は数分のうちに日予算を数百万円へ引き上げ、紐づいたクレジットカードの枠が尽きるまで広告を配信します。代理店のMCC(クライアントセンター)が奪われれば、その配下にある全クライアントのアカウントが同時に被害を受けます。2026年に入ってからは、数千万円規模の損害が出た事例も業界内で語られるようになりました。
厄介なのは、2段階認証やパスキー、物理キーを設定していても突破されるケースがあることです。ログイン後に発行されるセッションCookieを盗まれると、攻撃者は認証を経ずに「ログイン済みの状態」をそのまま使えるからです。
このページでは、広告アカウントへの不正アクセスを防ぐ対策を、端末・認証・権限・外部連携・監視・お金の上限・乗っ取り後の初動の7つに分けて、設定の場所や運用ルールの単位まで書き出します。すべてを一度にやる必要はありません。最後に優先度順のチェック表を置いたので、上から順に片付けてください。
広告アカウントが乗っ取られると何が起きるか
攻撃者の目的は、ほとんどの場合「他人のカードで自分の広告を出すこと」です。配信されるのは詐欺的な投資案内、偽ブランド品の通販、フィッシングサイトなど、自前のアカウントでは審査に通らない広告です。典型的な流れは次のとおりです。
- 深夜や連休中にログインし、攻撃者が管理するメールアドレスを管理者として追加する
- 正規の管理者の権限を下げるか削除し、取り戻しにくくする
- 新しいキャンペーンを作り、日予算を数十万〜数百万円に設定する
- カードの利用枠や請求書払いの与信枠が尽きるまで配信を続ける
朝起きて気づいたときには、すでに一晩分の広告費が消化され、自分は管理画面に入れない。こうした状況が実際に起きています。代理店の場合はクライアントへの説明と補償の問題が重なり、金額以上の打撃になります。
乗っ取りの主な侵入経路
対策を選ぶには、どこから入られるかを知っておく必要があります。2026年時点で多いのは次の5つです。
| 侵入経路 | 中身 | 2段階認証で防げるか |
|---|---|---|
| セッションCookieの窃取 | 情報窃取型マルウェア(インフォスティーラー)や悪意あるブラウザ拡張機能が、ログイン済みのCookieを抜き取って外部へ送る | 防げない |
| フィッシング | 「広告が停止されました」「審査に異議を申し立ててください」といった偽通知から偽ログイン画面へ誘導する。中継型のフィッシングはワンタイムコードもそのまま中継する | SMS・認証アプリのコードは防げない。パスキー・物理キーなら防げる |
| 添付ファイル・ダウンロード | 「広告素材」「求人応募書類」「動画の納品データ」を装った圧縮ファイルに実行ファイルを仕込み、開いた端末をマルウェアに感染させる | 防げない(感染後はCookie窃取と同じ) |
| 外部ツール・AIの認証情報 | レポートツール、自動入札ツール、AIエージェントに渡したAPIトークンやログイン済みブラウザが漏れる・悪用される | 防げない |
| 放置されたユーザー | 退職者、契約が終わった外注先、昔の代理店のアカウントが残っていて、そちらが先に乗っ取られる | 相手側の設定次第 |
表のとおり、2段階認証が効くのは「パスワードを盗まれた」ケースまでです。Cookieやトークンを盗まれた場合は、ログイン手続きそのものが省略されるため効きません。そこで、ログインの強化に加えて「盗まれにくい端末」「盗まれても使える範囲が狭い権限」「使われたらすぐ気づく監視」「使われても失う金額に上限がある支払い」を重ねていきます。
端末とブラウザの守り方
広告運用は専用のPCで行う
管理者権限を持つアカウントは、普段のメールやチャット、Web閲覧に使うPCとは別の端末で扱います。Chromeのプロファイルを分けるだけでは、同じOS上のマルウェアからは両方のプロファイルのCookieが読めてしまうため、分離としては弱い手段です。
- 専用PCではブラウザ同期をオフにする。同期をオンにしていると、普段使いのPCで感染した拡張機能やCookieが専用PCまで流れ込む
- OSのユーザーは標準ユーザーで使い、管理者ユーザーはソフトの導入時だけ使う。マルウェアがシステム全体に根を張りにくくなる
- 専用PCではメールの添付ファイルを開かない、ファイル共有サービスからダウンロードしない、チャットツールを入れない
- OSとブラウザは自動更新を有効にし、更新の通知を後回しにしない
専用PCを用意できない小規模な事業者は、少なくとも管理者アカウントだけは専用のブラウザ(普段使わない別のブラウザ)でログインし、作業後にログアウトする運用にしてください。ログアウトすればサーバー側でセッションが無効になり、その時点までのCookieは盗まれても使えなくなります。
ブラウザ拡張機能は入れない
翻訳、スクリーンショット、広告の分析、パスワード管理などの拡張機能は、閲覧中のページの中身やCookieを読める権限を持っていることがあります。開発元が信頼できる会社でも、アップデートに不正なコードが混入したり、開発元ごと買収されて悪意ある機能が追加されたりした例は何度も報告されています。拡張機能は自動更新されるため、昨日まで安全だったものが今日から危険になります。
専用PCでは拡張機能をゼロにするのが原則です。会社でChromeを管理しているなら、Chrome Enterpriseのポリシーで拡張機能のインストールをすべて禁止し、どうしても必要なものだけを許可リスト(ExtensionInstallAllowlist)に載せる方法が使えます。Google Workspaceの管理コンソールからも同じ制御ができます。
パスワードをブラウザに保存しない
情報窃取型マルウェアは、Cookieと一緒にブラウザに保存されたパスワードも抜き取ります。管理者アカウントのパスワードはブラウザに保存せず、パスワード管理ソフトに入れておき、そのパスワード管理ソフト自体もパスキーか物理キーで守ってください。
セッションの寿命を短くする
Google Workspaceを使っている会社なら、管理コンソールで「Googleセッションの長さ」を短く設定できます。広告の管理者を入れた組織部門だけ、たとえば8時間でセッションが切れるようにしておけば、盗まれたCookieが使える時間も短くなります。さらに「コンテキストアウェアアクセス」を使うと、会社が管理する端末や特定のIPアドレス以外からの利用を制限できます。
在宅勤務や外注先の端末から管理画面を触る運用が避けられない場合は、仮想デスクトップで作業環境ごと分ける方法もあります。考え方はVDIで小売ECの情報漏えいを防ぐ方法にまとめています。
ログインと認証の強化
パスキーか物理キーに切り替え、SMS認証は外す
SMSや認証アプリのワンタイムコードは、中継型のフィッシングサイトに入力すればそのまま攻撃者に使われます。パスキーと物理セキュリティキー(FIDO2対応のYubiKey、Google Titan キーなど)は、本物のドメインでしか認証が通らない仕組みなので、偽サイトに誘導されても突破されません。
切り替えたら、SMSと認証コードは2段階認証の手段から削除してください。残しておくと、攻撃者は弱いほうの手段を選んでログインを試みます。物理キーは紛失に備えて2本登録し、1本は金庫など社外に持ち出さない場所に保管します。
機密性の高い操作にも再認証を求める
Google広告には、ユーザーの追加や支払い設定の変更といった機密性の高い操作のときにパスキーでの再認証を求める設定があります。管理者メニューの「アクセスとセキュリティ」内にあるセキュリティ設定から有効にできます(画面の名称や位置はGoogleの更新で変わることがあるため、見つからない場合はヘルプで「機密性の高い操作」と検索してください)。ログイン時だけでなく操作のたびに本人確認が入るため、Cookieを盗まれた場合でも、ユーザー追加のような致命的な操作は止められます。
管理者アカウントにはGoogle Advanced Protectionを適用する
Advanced Protection Program(高度な保護機能プログラム)は、Googleが提供する最も強いアカウント保護です。登録すると、ログインにはパスキーか物理キーが必須になり、アカウント復旧の審査が厳しくなり、信頼されていないアプリからのGmailやドライブへのアクセスも制限されます。日常の使い勝手は少し落ちますが、MCCの管理者アカウントのように「奪われたら全案件が止まる」アカウントには適用する価値があります。
回復用のメールと電話番号を見直す
アカウントの再設定用メールが個人のフリーメールで、そちらの2段階認証が弱いと、そこを足がかりに本体のアカウントを奪われます。再設定用のメールアドレスと電話番号が今も自分の管理下にあり、同じ強さで守られているかを確認してください。
ログインIDを共有しない
1つのGoogleアカウントを複数人で使い回していると、誰の端末から漏れたのか追えず、パスキーや物理キーも運用できません。担当者ごとに個人のアカウントを発行し、権限で使える範囲を分けます。
権限設計で被害の範囲を狭める
MCCを分割する
1つのMCCで全クライアントのアカウントを管理していると、そのMCCが奪われた瞬間に全案件が被害を受けます。クライアントの業種、担当チーム、予算規模などでMCCを分け、1つが奪われても被害が全体に広がらない構成にします。
分割するときは「上位のMCC」と「全MCCに入れる人」に注意してください。MCCを分けても、それらをまとめる上位MCCがあったり、全部のMCCに管理者として入っている人がいたりすれば、そこを奪われると結局すべてに届きます。外部ツールに与える権限も、MCC単位ではなく必要なアカウント単位に絞ります。
必要以上の権限を持たない
日々の運用、つまり入札調整や広告文の差し替え、レポート作成には「標準」アクセス権で足ります。管理者権限が必要なのはユーザーの追加・削除やリンク設定の変更くらいで、頻度は月に数回程度です。普段の運用は標準権限のアカウントで行い、管理者アカウントは専用PCで必要なときだけ使う形に分けると、普段使いの端末から漏れても管理者の操作はできません。レポートを見るだけのクライアント担当者には「読み取り専用」か「メールのみ」を割り当てます。
管理者を3人以上にして複数の管理者による承認を使う
Google広告には、ユーザーの追加・削除や権限の変更を、別の管理者が承認するまで反映しない「複数の関係者による承認(Multi-party approval)」があります。誰か1人の管理者アカウントが奪われても、攻撃者は自分のユーザーを追加できず、正規の管理者を締め出すこともできません。承認されないまま20日が過ぎた申請は自動的に却下されます。
この仕組みを活かすには、承認できる管理者が複数いて、その人たちが別々の端末で別々の認証手段を使っていることが前提です。管理者は3人以上にし、少なくとも1人は普段の運用に関わらない人(経営者や情報システム担当など)にしておくと、同時に乗っ取られる確率が下がります。承認依頼が届いたら、依頼者本人に電話やチャットで「本当に申請したか」を確認してから承認する、というルールも決めておきます。
招待できるメールドメインを自社ドメインに限定する
Google広告の「アクセスとセキュリティ」にある「許可されたドメイン」に自社ドメインを登録すると、それ以外のメールアドレスをユーザーとして招待できなくなります。Gmailなどのフリーメールを許可しないことで、攻撃者が自分のGmailを管理者として追加する手口を防げます。クライアントのアカウントを預かる代理店は、クライアント側のドメインと自社ドメインの両方を登録しておきます。
ユーザーを毎月棚卸しする
月に1回、全アカウントのユーザー一覧を出し、次の観点で確認します。
- 退職者・異動者・契約が終わった外注先が残っていないか
- 半年以上ログインしていないユーザーがいないか
- 管理者権限を持つ必要のない人が管理者になっていないか
- 心当たりのないメールアドレスや、似せたドメイン(例:自社ドメインの1文字違い)がないか
退職時の手続きには「全広告アカウントからの削除」を必ず入れてください。人事の退職フローに広告アカウントが含まれていない会社は珍しくありません。
Meta広告のビジネスポートフォリオも同じ考え方で
Meta広告では、ビジネスポートフォリオ(旧ビジネスマネージャ)の設定で、所属する全員に2段階認証を必須にできます。管理者は最小限にし、日々の運用は広告アカウント単位の権限で行います。APIでつなぐツールには個人アカウントではなく「システムユーザー」を発行し、必要な広告アカウントだけを割り当てます。ビジネス認証を済ませておくと、乗っ取られたときにMetaへ本人確認を求めるときの手続きが通りやすくなります。
AI・外部ツールとの連携を見直す
AIに管理画面を操作させない
AIエージェントやブラウザ操作型のAIツールを導入した直後に、MCCを乗っ取られたという話が2026年に入って複数出ています。原因が特定されていない事例も多いものの、考えられる経路はいくつもあります。
- ログイン済みのブラウザをAIに操作させたことで、そのブラウザのセッションが外部から利用できる状態になった
- AIが読んだWebページやメールに埋め込まれた指示(プロンプトインジェクション)に従って、意図しない操作をした
- 導入を請け負った外部の業者が、設定時に受け取ったトークンやパスワードをそのまま保持していた
- AI用に入れた拡張機能や、AIツールが使う接続用プログラム(MCPサーバーなど)が、必要以上の権限を持っていた
工数を減らせるなら大きなリスクを取ってもよい、と社内で合意できない限り、広告の管理画面をAIに触らせないのが安全です。どうしても使う場合は、次の条件を守ります。
- AIにはレポートの読み取りだけを任せ、APIの権限は読み取り専用にする
- 管理者権限を持つアカウントのブラウザや認証情報を、AIが動く環境に置かない
- APIトークンやパスワードをAIとのチャットに貼り付けない。
.envファイルにも管理者の認証情報を置かない - 導入を外部に依頼した場合は、作業後に依頼先が使った認証情報をすべて取り消し、作り直す
使っていない連携は切る
端末やブラウザを固めても、連携しているレポートツールや自動運用ツールの側で認証情報が漏れれば、そこから操作されます。次の場所を確認し、今使っていないものは削除してください。
| 確認する場所 | 見るもの |
|---|---|
| Googleアカウントの「サードパーティ製のアプリとサービス」 | Google広告へのアクセスを許可したアプリ。使っていないものはアクセス権を削除 |
| Google広告の「APIセンター」と「リンクされているアカウント」 | APIのアクセス設定、連携しているツールやアナリティクス、マーチャントセンターなど |
| Google広告の「スクリプト」と「ルール(自動ルール)」 | 作成者が退職している、目的が分からない、予算を変更する処理を含むもの |
| Metaの「ビジネス設定」の連携アプリとシステムユーザー | 使っていないアプリ、不要になったシステムユーザーとそのトークン |
古いAPIのリフレッシュトークンを取り消す
Google広告APIでは、2026年8月5日以降、新しいリフレッシュトークンを発行するときにパスキーでの認証が必要になりました。パスワードだけ、あるいはSMSや認証アプリのコードではトークンを発行できません。この変更はGoogle広告エディタ、Google広告スクリプト、BigQuery Data Transfer Service、Looker Studioのコネクタなど、APIを使う製品にも及びます。
ただし、それより前に発行されたトークンはそのまま使えます。過去にツール導入のテストで発行したもの、退職者が個人のPCで発行したもの、外部業者が発行したものが残っていれば、それは今も有効な鍵です。使っているツールを洗い出し、不要なものはGoogleアカウント側でアクセス権を削除して取り消し、必要なものはパスキー認証で発行し直してください。なお、新しく作ったパスキーが信頼されるまで最大7日ほどかかることがあるため、発行し直しは余裕をもって進めます。サーバー上で常時動く自社システムには、個人アカウントのトークンではなくサービスアカウントを使う方法もあります。
異変にすぐ気づく監視の仕組み
命名規則に反したキャンペーンを通知する
攻撃者が作るキャンペーンは、自社の命名規則に沿っていません。たとえば「クライアント略称_媒体_目的_開始日」のような規則を決めておき、それに合わないキャンペーンが作られたら通知するスクリプトを置いておきます。
ここで「停止」まで自動でやらせないのがポイントです。自動停止を仕込むと、攻撃者は最初にそのスクリプトを無効にしてから動きます。通知だけなら、攻撃者が気づく前に人が異変を知ることができます。通知先は、管理者アカウントとは別の、攻撃者が触れないメールアドレスやチャットにします。
Google広告スクリプトで書くと、たとえば次のような形になります。1時間ごとに実行するよう設定します。
// 命名規則:英大文字の略称_媒体_目的_8桁の日付(例 ABC_SEARCH_CV_20261001)
var PATTERN = /^[A-Z]{2,6}_(SEARCH|PMAX|DISPLAY|VIDEO)_[A-Z]+_\d{8}$/;
var BUDGET_LIMIT = 50000; // 1キャンペーンの日予算の上限(円)
var NOTIFY_TO = 'ads-alert@example.co.jp';
function main() {
var alerts = [];
var it = AdsApp.campaigns().withCondition('Status = ENABLED').get();
while (it.hasNext()) {
var c = it.next();
var budget = c.getBudget().getAmount();
if (!PATTERN.test(c.getName())) {
alerts.push('命名規則外: ' + c.getName());
}
if (budget > BUDGET_LIMIT) {
alerts.push('日予算超過: ' + c.getName() + ' ' + budget + '円');
}
}
if (alerts.length) {
MailApp.sendEmail(NOTIFY_TO,
'[要確認] ' + AdsApp.currentAccount().getName(),
alerts.join('\n'));
}
}
MCCの場合は AdsManagerApp.accounts() で配下のアカウントを順に回せば、全アカウントを1本のスクリプトで見張れます。
予算・費用・ユーザーの変化を通知する
- 費用の急増:前日比や時間あたりの費用が普段の数倍になったら通知する。上のスクリプトに当日の費用(
getStatsFor('TODAY').getCost())の判定を足してもよい - ユーザーの追加・権限変更:Google広告の通知設定で、アカウントのアクセスに関するメールを受け取るようにし、宛先は複数人が見る共有アドレスにする
- カードの利用通知:法人カードの利用通知をリアルタイムで受け取る。深夜の高額決済にいち早く気づける
- 変更履歴:週に1回、管理画面の変更履歴を見て、誰がいつ何を変えたかを確認する
通知が来ても誰も見ていなければ意味がありません。深夜・休日の通知を誰が受けて、何分以内に確認するかまで決めておきます。
支払いに上限をつけて被害額を抑える
広告アカウントごとにカードを分ける
1枚のカードを全アカウントに登録していると、どれか1つが乗っ取られただけでカードの利用枠全体が消化されます。UPSIDERのように、バーチャルカードを何枚でも発行でき、カードごとに利用上限を設定できる法人カードを使えば、広告アカウントごとに専用のカードを割り当て、月の予算に少し余裕を足した額を上限にできます。乗っ取られても、失うのはそのカードの上限額までです。
媒体側の上限設定も使う
- Google広告:アカウント予算(期間と上限額を決めて、それを超える配信を止める設定)。請求書払いのアカウントで使える
- Meta広告:アカウントの利用上限。設定した総額に達すると配信が止まる
どちらも攻撃者が管理者権限を握れば変更できてしまうため、これだけでは守りになりません。カード側の上限と組み合わせて使います。
乗っ取られたときの初動
乗っ取られたあとに調べ始めると、その間も広告費が出ていきます。事前に手順を決め、必要な情報を手元にそろえておきます。
今のうちに控えておく情報
- 全広告アカウントのIDとMCCのID、それぞれの管理者の氏名と連絡先
- 登録しているカードの会社名、カード末尾4桁、紛失・盗難窓口の電話番号(24時間対応か確認)
- 媒体の担当者の連絡先と、営業時間外の緊急連絡の方法。日頃から担当者と連絡を取り合っておくと、いざというときに話が早い
- クライアントへの連絡先と、報告する担当者
この一覧は管理画面やクラウドの中だけに置かず、紙かオフラインのファイルでも保管します。アカウントを奪われているときは、そのアカウントでしか見られない情報にアクセスできないからです。
時間ごとの動き方
| 目安 | やること |
|---|---|
| 発覚〜15分 | カード会社に連絡して該当カードを止める。管理画面に入れるなら、知らないキャンペーンを一時停止し、予算を最小にする。変更履歴とユーザー一覧の画面を保存する |
| 〜1時間 | 知らないユーザーを削除する。全管理者のパスワードを変え、すべての端末からログアウトさせる。媒体のサポートと担当者に、不正アクセスであることと発生時刻を伝える |
| 〜当日中 | 侵入に使われた可能性のある端末をネットワークから外し、マルウェアの検査をする。連携ツール・APIトークン・スクリプトを全部見直す。クライアントに第一報を入れる |
| 翌日以降 | 不正配信の期間と金額を確定させ、媒体へ返金を申請する。必要に応じて警察のサイバー犯罪相談窓口に相談する。原因と再発防止策をまとめる |
攻撃者が管理者権限を持ったままだと、こちらが削除したユーザーを攻撃者が戻し、こちらの権限を下げる、という取り合いになります。その場合は管理画面での対応にこだわらず、カードを止めたうえで媒体のサポートにアカウントの凍結を依頼するほうが早く止まります。
侵入された端末を検査せずに使い続けると、パスワードを変えても新しいCookieがまた盗まれます。原因の端末が特定できないときは、管理者が使っていた端末をすべて初期化する判断も必要です。
返金を申請するときの伝え方
媒体への返金申請では、管理体制の不備を指摘されて話が進まないことがあります。そのときは、配信された広告が媒体の広告ポリシーに反する内容(詐欺的な投資案内、偽ブランド品の販売など)だったことを示し、なぜその広告が審査を通って配信されたのかという観点でも確認を求めると、話が進みやすくなります。不正な広告の画面、配信期間、費用の内訳を時系列でそろえておいてください。
今日から取りかかる順番
ここまでの対策を、手間と効果で並べ替えました。上の行ほど早く終わり、効き目が大きいものです。
| 優先度 | 対策 | 目安の時間 |
|---|---|---|
| 1 | カード会社の緊急連絡先・アカウントIDの一覧を作り、オフラインで保管する | 30分 |
| 1 | 許可されたドメインを自社ドメインに限定する | 10分 |
| 1 | ユーザーを棚卸しし、退職者・外注・不要な管理者を外す | 1時間 |
| 1 | 管理者アカウントをパスキー・物理キーに切り替え、SMS認証を外す | 1時間 |
| 2 | 機密性の高い操作でのパスキー再認証を有効にする | 10分 |
| 2 | 使っていない連携アプリ・スクリプト・自動ルール・古いAPIトークンを削除する | 半日 |
| 2 | 命名規則違反と予算超過の通知スクリプトを設置する | 半日 |
| 2 | 専用PCと管理者ブラウザから拡張機能を外し、同期をオフにする | 1時間 |
| 3 | 広告アカウントごとにカードを分け、上限を設定する | 1〜2週間 |
| 3 | 管理者を3人以上にし、複数の関係者による承認を使える体制にする | 1週間 |
| 3 | MCCを分割し、上位MCCと横断アクセスを持つ人を減らす | 2週間〜 |
| 3 | 管理者アカウントにAdvanced Protectionを適用する | 1日 |
ECサイトや顧客データまで含めた全体の守り方は小売企業が知るべきサイバー攻撃対策で、端末がマルウェアに感染したときの対応は小売事業者のランサムウェア対策で詳しく書いています。
まとめ
広告アカウントの乗っ取りは、2段階認証だけでは止まりません。盗まれたCookieやトークンはログインを経ずに使われるため、守りを何層にも重ねる必要があります。
- 盗まれにくくする:専用PC、拡張機能ゼロ、同期オフ、パスキーと物理キー
- 盗まれても届く範囲を狭くする:最小権限、MCC分割、許可ドメイン、複数の関係者による承認
- 使われたらすぐ気づく:命名規則と予算の通知、ユーザー追加とカード利用の通知
- 使われても失う額に上限をつける:アカウントごとのカードと上限設定
- 奪われたあとの動きを決めておく:連絡先の一覧、時間ごとの初動手順
まずはチェック表の優先度1の4項目を、今週中に終わらせてください。合計で3時間ほどの作業で、被害の大部分を占める手口を塞げます。

コメント