ネットに蔓延るサポート詐欺について (その1 観察編)

2025年の年末ごろから、趣味でネットのサポート詐欺広告を調べてきたので、知見を共有する。

サポート詐欺というのは、ブラウザを使って「PCがウィルスに感染している」という嘘のセキュリティ警告で閲覧者を脅し、偽のサポートセンターの電話番号に電話をかけさせ、言葉巧みに送金をさせたり遠隔操作ソフトウェアをインストールさせたりする犯罪行為だ。

いろいろ書くと結構なボリュームになってしまうので、記事を2つに分ける。その1「観察編」で詐欺を観察し、その2「対処編」でブロックや通報の方法を紹介するという構成だ。詐欺にもいろいろあるが、今回は、Web広告で集客するタイプのサポート詐欺で、主にGoogleの広告プラットフォームで配信されるものを扱う。サポート詐欺はたいてい海外を拠点として行われており、国内プラットフォームを使って配信されている広告ではほとんど見られない。

この記事は、Web技術やWeb広告に興味を持っている人、なんとかして詐欺をやっつけてやりたいと思っている人を想定している。「詐欺に引っかかりたくない」「踏んだときに焦らないで対処したい」という目的の場合は、簡潔に対処法を書いてあるこちらの記事を読めば被害を防げる。

よく見かける詐欺広告

詐欺の入り口となる広告を集めてみたので、その一部をお見せしよう。どこかで見たことがあるようなものだと思う。生成AIで作ったとも思われる画像が殆どだが、他人のそら似だったりするといけないので、人の顔っぽい部分にはモザイク処理をしておいた。

ECサイトのセールっぽいやつ

女性や電子機器の画像+「○○%オフ」+「続きを読むにはここをクリック」という、ファッション通販風のバナー。

このタイプは、運用している広告アカウントも、かけさせようとする電話番号もバラバラなので、安い詐欺キットか、あるいはCaaS (Crime-as-a-Service) を使う、個人や小規模詐欺グループによるものだろうか? よく見ると日本語としておかしい表現があったり、生成AIで作った画像にありがちな文字の崩れがみられたり、宣伝している服が全くの季節外れだったりする。ランディングページは、AWS AmplifyやDigitalOcean、Herokuなどのクラウドサービスを使ったものが多い。無料枠でもそれなりに運用できてしまう。量産型。

ペット用品・ヨガ・旅行サイト風

ペット用品・ヨガ・旅行などのバナー。画像にけっこうバリエーションがある。

こういうのは、たいていランディングページが独自ドメイン。トップレベルドメインには、.shopや.siteや.onlineなど、比較的安くて空きの多いものが使われる。広告審査をやり過ごしたり、ターゲット以外の訪問者に見せたりするためのダミーページは、生成AIで作ったと思われる架空のペット用品やヨガ教室、旅行会社のサイトである。

動画再生UI風の絵

動画再生画面を歪ませたような絵に「ビデオを見る」の字。なんとも不気味である。

このタイプはどうやら特定のグループが運用しているようで、電話番号は共通のものが使われている。ランディングページも広告アカウントも次々と湧いてくるのだが、ランディングページはベラルーシ (.by) ドメインで、広告主の国もベラルーシ。

ニセ農場

なんか怪しげな雰囲気の農場風バナー。飛び先をチェックしたら詐欺だった。

このタイプはあまり数は多くないのだが、怪しさに気づきにくい。メディア側も広告をブロックするときに見逃してしまいそうだ。

偽ボタン

ボタンっぽいパーツを配置したバナー。物によってはサイトのURLに溶け込むようなデザインとなっており、ページの末尾などに出現すると間違って押してしまう人がいるかもしれない。

年金がどうのこうの

これはサポート詐欺とは別ジャンルなのだが、「年金額が変わります」などの文字列に、老人が新聞を読んだり、スーツの男性が転倒したりしている、いかにも生成AIっぽいイラスト。

飛び先は、読売新聞などを丸パクリしたページ。著名人が「投資で儲けた!」「暗号通貨で儲けた!」と言ってるニセ対談記事。どうやら投資詐欺に飛ばされるらしい。

なお、ここで紹介した広告は、大手ニュースサイトや、計算機技術、宇宙開発、生物、天体観測、アウトドア、ライフハック、音楽、映画などに関するサイトで収集したものである。えっちなサイトやアングラなサイト、アフィ目当ての低品質サイトなどではない。「怪しいサイトを見なければ大丈夫」というものでもないのだ。

詐欺広告を踏むと何が起こるのか

さきほど紹介したような広告をうっかり踏むとどうなるのか。たとえばこんなページに飛ばされてしまう。どれも要約すると「お前のパソコンがウィルスに感染した! 大変だ!! 今すぐこのテクニカルサポート窓口に電話しろ!!!」という内容である。Windows用もMac用もあるよ!

今この記事を読んでいるような人なら、「こんなのに誰が引っかかるんだ?」と思うだろう。
しかし、心の準備なしに遭遇するとけっこうびっくりするだろう。カーソルが見えなくなり、処理が重くなり、音声が流れ、環境によっては全画面表示になる。ブラウザで上に表示されたページではなく、OSレベルの表示であると思わせる仕掛けが満載だ。

実際、けっこう大勢が引っかかってお金を払ってしまったり、さらには遠隔操作プログラムをインストールさせられてアレコレされてしまっているらしいので、効果はあるのだ。

騙すための仕掛けは、技術的には特に高度なものではなく、どれもブラウザの標準的な機能を使ったものだ。

  • 全画面表示になる : JavaScriptでできる。ただし、発動にはカーソルの移動やクリックなどのユーザインタラクションを必要とする。最近は、悪用されがちなブラウザ機能の多くがユーザインタラクションを必要とするようになった。
  • 重くなる : 重い処理を行わせる。JavaScriptのシンプルな無限ループでも実現可能。重くなったときの挙動にはブラウザごとに差がある。Firefoxはこのへんに強い。Chromeだとタブを閉じたりアプリを終了したりするのに時間がかかってしまうことがある。
  • カーソルが消える : CSSの “cursor: none;” で簡単に実現できる。

サポート詐欺の「本番」は実際に騙された人が電話をかけてからだ。言葉巧みに騙して、送金や遠隔操作ソフトウェアのインストールに誘導していく。

こちらが実際にサポート詐欺の電話番号に電話してみたレポートである。

他にも、YouTubeなどで探すと、騙されたフリをしてサポート詐欺の電話にかけてみたり、逆に詐欺師にイタズラを仕掛けたりといった動画がある。興味のある人は探してみよう。

バレにくくする技術

世の中には、このような詐欺をやっつける仕組みや、詐欺から人々を守る仕組みが存在する。クラウドベンダーは悪用を防ぐ仕組みを持っているし、ブラウザ上で危険さサイトをブロックしてくれるGoogle Safe BrowsingやWindowsのSmartScreenもある。配信前にブロックできなくても、ユーザからの通報に応じて改めてスキャンすることでブロックすることがある。

よく「Googleはちゃんと広告審査をしてるのか?」と批判されているが、広告審査は最近AIの活用によってだいぶ賢くなり、高精度で詐欺をブロックしているとのことだ。

技術サポート詐欺は、一見とてもシンプルだ。変なページが一枚表示されるだけ。こんなもん速攻で自動検出して潰してしまえるのでは? と思ってしまうのだが、なかなかそうもいかない。詐欺師も色々と工夫し、バレないためのテクニックや、バレても大丈夫なテクニックを使ってくる。もちろん、これを検出する側の技術や知識もアップデートされ、日々攻防が繰り広げられている。そんなテクニックをここで紹介しよう。

あまり具体的なことを書くとマネするヤツが出てくるんじゃないの? と思うかもしれないが、どれも「誰でも思いつきそうだが、悪いヤツしかやらない」というレベルだ。それより、こういった小細工を見抜き、通報フォームのコメント欄で説明することで、検出を助けることのできる人が多くなったほうがいい。

バレるとどうなるか

詐欺がばれるとどうなるか。まず、Google Adsにバレれば広告が削除される。

Google Safe Browsingが検出すれば、ブラウザがブロックする。詐欺ページがユーザの目に入る前に、こんな真っ赤な画面が表示される。

さらに、ちょっと変わり種としてurlscan.ioを紹介しておこう。URLを送信すると、ユーザに代わってそのURLを見に行き、レポートを作成してくれる。

ウェブ魚拓と仕組みは見ているが、urlscan.ioは技術 & セキュリティ寄り。ヘッドレスChromeで実際にページをレンダリングし、さらに解析を行っている。悪性挙動もできる範囲で検出してくれて “Malicious Activity!” というラベルをつける。また、リダイレクトが行われている場合はその経路、使っているJavaScriptライブラリや配信に使われているCDN、ソース一式を見やすくまとめてくれるし、類似の構造を持つURLのスキャン結果もリストで見られる。

では、こうした検出システムを欺くために詐欺師が使うテクニックを紹介していこう。

クローキング

まずは基本技。相手によって出すコンテンツを切り替える「クローキング」だ。詐欺師はだいたいみんなやっている。

詐欺キャンペーンは、たいていターゲットとする地域や国を決めている。世界中の人が引っかかっていろんな言語で電話がかかってきても詐欺師は困ってしまう。また、広告審査のためのアクセスや、各種botからのアクセスに対しては、詐欺の顔を見られない方がいい。

そこで、広告審査や悪性URL検査に使われるIPアドレスや、対象国以外からのアクセスに対しては、無害なダミーページを見せるのだ。ヨガ教室、ペット用品、旅行サイト、経営コンサル会社やリフォーム会社など、ダミーページのネタはさまざまだ。

そして、対象国の一般人がアクセスしてきた場合のみ、詐欺画面を見せるという仕組みだ。

なお、国別にコンテンツを出し分けしたりbotを遮断したり、ユーザの環境によって提供する内容を変えたりすること自体はごく普通のテクニックである。特定の国を対象としてサービスを提供することもあるし、ユーザの環境に最適な内容を表示することもある。最近だと、行儀の悪いAIクローラのアクセスに応じるだけでもサーバ費用がかかるということで、遮断してしまうことはある。

リダイレクトで「本命」のURLをわかりにくくする

さて、誰かが実際に詐欺サイトに遭遇し、「こいつを通報してやろう!」と思ったらどうするだろうか? とりあえず、ブラウザのURL欄をチェックし、そこに表示された文字列をコピーして通報フォームにペーストするだろう。
しかし、そこに表示されているURLは数分〜数時間で切り替わる「弾除け」用の使い捨てURLであり、通報したところでいまいち効果が薄く、本命のランディングページは無傷である! というケースが多い。

広告から直接飛ばされるランディングページには直接詐欺コンテンツは置かれておらず、ランディングページはHTTPヘッダやJavaScriptによってユーザを詐欺ページに転送しているのである。しかも、大抵、その詐欺ページはMicrosoft AzureやAWS Amplifyなどのクラウドで量産しまくったものだ。

ランディングページの評判が悪くならなければ、そこから波及して広告に影響が及ぶまでの時間も稼げる。

自動検出を回避するための細工

次は、実際にユーザが見せられているのと同じ詐欺ページを自動スキャンし、悪意あるページであるかどうかを判別する段階の話に移ろう。HTMLのソースに “Windowsセキュリティ” や “テクニカルサポート” といった文字列が露骨に含まれていれば一発で検出可能なのだが、そうもいかない。ここにも詐欺師の小細工が色々と仕込まれているのだ。

暗号化・Base64エンコード

悪性のコードやコンテンツを暗号化しておき、JavaScriptで復号して実行するというテクニックだ。たいてい、crypto-jsを使う。ソースのどこを見ても「Windows」「トロイの木馬」などといった文字列は見つからないし、ユーザを脅す全画面表示や処理を重くするための無限ループなども見えない。静的解析にけっこう強い。まあcrypto-jsを入れてる時点でなんか怪しいよねっていうところで目を付けられそうな気もするが……。

それから、画像をBase64でエンコードしてHTMLに埋め込んでおくという手法もよく使われる。ふつうの画像ならば、画像ファイルのURLを通報されれば言い逃れが不要になるが、Base64化され、さらにそれをAES暗号化して……という回りくどい隠し方をするとバレにくくなる。

このタイプは、静的解析には弱いものの、ブラウザ環境を再現できるタイプの自動スキャンならば見破れる。それを防ぐため、次項で紹介するように、ユーザインタラクションがなければ悪性挙動を行わないような仕掛けと組み合わせてあることが多い。

ユーザインタラクションを要求

いきなり悪性の挙動をするのではなく、ユーザがクリックやカーソル移動などの動きをすることで発動する仕掛けだ。最初に偽のクッキー同意ダイアログを出す場合もある。Cookie同意ダイアログを見ると速攻で閉じようとする現代人の習性を利用している。

mousemoveやclickなどのイベントが発生すると、詐欺画面を出すためのコードが実行される。

なぜこんなことをするかというと、おそらく自動スキャン環境で再現しないようにするためだろう。たとえば urlscan.io のスキャンは、実際にサーバ上でヘッドレスChromeを動かすことにより、ユーザの環境に近い条件を再現し、静的スキャンで検出が難しいようなトリックも見破ることができる。しかし、「ユーザがマウスを動かす」というところまでは行わないため、悪性の挙動が再現しないというわけだ。

ディレイ

まず最初に何かをロードしているような感じのスピナーやプログレスメーターを表示し、7秒くらい経過してから詐欺画面を表示するタイプ。

こちらも、おそらくはヘッドレスブラウザでの自動スキャンを逃れるため。自動スキャンは、無限に待つわけではない。たとえば urlscan.io でのスキャンは5秒待ってからの挙動によって判断を行う。開始5秒の時点では、”Loading” と表示されているだけなので、悪性とは判定されない。詐欺画面を表示するためのコードも暗号化されており、静的スキャンにも引っかからない。

しかし、一般ユーザの環境ならば、7秒ほど経過した時点で暗号化されていた悪性のコードを復号し、詐欺画面を表示する。人間だけが7秒待つ。そして詐欺画面を見せつけられるのだ。

無関係なコンテンツで薄める

むかし、SEOスパムとして、人間が読めないような場所や色、サイズの文字で大量の文字列を仕込んでおくという手口が横行したことがあった。今では画面上での見え方がしっかり検索結果に反映されるようになったためその手口は無効となったが、同じようなテクニックがサポート詐欺のページにも使われている。

詐欺ページのソースに、関係ない文字列をたくさん仕込んでおき、その上にかぶせるように詐欺画面を表示するのだ。ソースに占める「まともなテキスト」の割合を増やしてまともなサイトと誤認させようという魂胆であろう。

機能の分散

ひとつの詐欺ページが一枚岩ではなく複数のドメインにまたがった構成になっている場合がある。たとえばこんな構成だ。

  • ドメインAに置かれているページをユーザがブラウザで開く
  • ユーザがマウスをちょっと動かすと、ドメインBに置かれたAPIにリクエストが送られる
  • ドメインBに置かれたAPIは、ユーザの属性 (タイムゾーンやUAなど) を判定し、ターゲットとなる属性と一致すれば暗号化されたJavaScriptを返す
  • APIのレスポンスを復号すると、「画面全体を覆うiframeを生成し、そこにドメインC上のURLをロードする」という内容のJavaScriptになり、実行される
  • ドメインCに置かれたURLがiframe内にロードされ、詐欺画面がユーザの目の前に出現する

こうしたパズルのピースが集まってはじめて詐欺画面が表示されるようになっている。そのピースをすべて別の所に置いておくのだ。すると、パズルのピースひとつひとつを単独で通報してもその悪意を判定することが難しい。

画像化

クローラーに拾われたくない文字列やコピペされたくない文章を画像にするというテクニックはあちことで使われる。たとえば、不祥事の際に謝罪文をテキストではなく画像で発表したりするとか。

この技を、詐欺師も使ってくる。偽のアラートダイアログをまるごと画像にしてしまうのだ。しかも “alert-dialog.webp” とか “microsoft-logo.webp” などといったバレバレな名前は決してつけない。”stock-photo-meeting.webp” とか “cover-image.webp” とか “hero.webp” とか “share-button.webp” とか、あたかも一般の企業サイトのトップページで使われてそうな名前をつけている。 OCRで簡単にバレるとはいえ、画像解析は計算コストがかかる。このタイプは、urlscan.ioでスキャンしても悪性判定されなかったりする。

オープンリダイレクトの悪用

2026年5月頃から見られるようになった手口。無関係なWebサービスや企業のURLリダイレクト機能を使う。たとえば、

https://www.example.com/hogehoge?redirectURL=詐欺サイトのURL

というようなURLが広告のランディングページとして設定されている。example.com は本来詐欺とは全く無関係のまっとうなサイトではあり、/hogehoge というのは指定されたリダイレクトプログラムのパスである。こういったリダイレクト機能は、脆弱性でもなんでもない。一般企業がクリック計測のために設置していることもあるし、SNSが外部リンクにワンクッションはさむものなど、ごく普通に使われている。それが詐欺サイトに飛ばすためのクッションとしてつかわれているのだ。

このタイプは、メディア側が広告を審査するときに、一見、見たことのあるまともな企業のドメインなので見逃してしまいやすい。ドメイン単位でのブロックもやりにくい。

頻繁なアップデートとランダム化

同じようなやり方で詐欺をずっと続けていると、検出側にパターンを読まれるようになり、だんだんバレやすくなる。そうならないよう、変化をつけてくる。

クローキングのために用意するダミーページも、毎回異なる架空の企業サイトとなっていたりする。悪性のコンテンツを「薄める」ためのダミーのテキストも毎回変わる。そのあたりはパターンを読まれないようにするためにAIをガンガン使っているように見える。

Geminiに訊こう!「こいつなんでバレてないの?」

明らかに詐欺サイトなのにスキャンをすり抜けやすい、妙に耐性の高いページも存在する。そんなときは、ChromeでGeminiタブを開いて質問してみると分析してくれる。

画像解析もしてくれるようだ。

なお、Geminiに「あなたは今こうして詐欺ページを見ているけれど、そのことでGoogle AdsやGoogle Safe Browsingなどに何か影響はあるのか?」と訊いたところ、答はNOであった。それができてしまうと、たとえば「ネットワークをちょっといじって、潰したいサイトのURLで偽のフィッシングサイトを表示しているような状況を作り、レピュテーションを汚染する」といった攻撃が可能になってしまうのだろう。

それでも、解析を手伝ってくれるのは助かる。詐欺ページの小細工を言語化し、通報フォームのコメント欄に適切な説明を書き込むことができれば、通報の効力が上がるかもしれない。

バレてもわりと大丈夫?

なんだかんだで詐欺はバレる。バレれば広告は削除され、常習性があれば広告アカウントは停止される。通報はけっこう多くの人がやっているし、実際、通報のあった広告やページは削除されている。

こちらのスクリーンショットは、消された広告と、消された広告アカウントの墓標だ。

しかし、詐欺師の目的は稼ぐことである。通報されたりバレて消されたりしても、トータルで満足のいくROIが出れば詐欺を続けるだろう。

宵越しのサイトは持たない! 営業時間内で逃げ切る

詐欺には「営業時間」がある。たいていは10:00〜18:00の8時間営業で、その時間帯に集中して広告を投入し、詐欺ページを見せる。それ以外の時間はダミーページを見せる。「営業時間」が始まる前の朝の時間帯から広告を出しているところもあるが、短時間だけ「健全なページ」を見せることによって審査をやり過ごそうという魂胆かもしれない。

詐欺の「営業時間」にも理由があるだろう。

被害者からの電話を受け、送金や遠隔操作ソフトウェアのインストールに誘導する必要がある以上、人間が対応する必要がある (そのうちこういうのもAIになるかもしれないが……)。大きな詐欺グループならコールセンターで働く人がおり、個人が詐欺キットを使って小遣いを稼ぐ場合も、生身の人間である以上、生活というものがある。

また、その時間帯のほうが良い「獲物」を見つけやすいのかもしれない。昼間ならば、企業の人が勤務中に調べ物や息抜きをしていて詐欺広告を踏んでしまうこともある。法人を釣ることができれば、個人よりも多額のお金を引き出すことができるだろうし、お金以外にも個人情報などを抜くことができる。実際、企業がお金を詐取された上、「個人情報流出の可能性」を発表することもある。騙されなかったとしても、忙しいとなかなか通報できないかもしれない。

詐欺広告も詐欺サイトも使い捨てであり、朝になると新しいものが湧く。さらに、「営業時間」内に新しい広告とサイトが次々と投入される。けっこう高額で入札しているのか、健全な広告に競り勝って大量に表示されてしまう。そして、営業時間が終われば、サイトも広告もお払い箱だ。独自ドメインであっても1日で放棄してしまう。宵越しのサイトは持たないのだ。

そんなスピードで詐欺師が動いているので、メディアがちゃんとブロックしているつもりでも間に合っていないことが多い。たとえば、AdSenseを利用している個人が毎晩しっかり詐欺広告をブロックしていても、そこでブロックしたものは、すでに一日の「営業時間」を逃げ切り、役目を終えたものかもしれない。

とはいえ、たとえ後手となったとしても、ブロック & 通報は無駄にはならないだろう。広告アカウントには悪い評価が蓄積し、その悪評が一定値を超えれば将来的なアカウント停止処分につながるかもしれない。

通報上等! 高速ローテーション

ランディングページからリダイレクトする二段・三段構えの詐欺ページは、広告やランディングページとはまた別のライフサイクルで回っている。リダイレクト先がとにかく頻繁に変わるのだ。1時間くらいで交代するものもあれば、2分くらいの高速で交代するものもある。

こういった最終リダイレクト先となるページは、Google Safe Browsingに通報すると、高確率で「危険」判定される。「危険」判定されたページにユーザが飛ばされたとしても、Google Safe Browsingが発動してページはブロックされ、詐欺は成立しなくなる。Microsoft Defender SmartScreenも同様だ。詐欺師にとっては、広告費を「無駄撃ち」したことになる。

しかし、Google Safe Browsingが悪意あるページを検知しても、実際にそれがユーザのブラウザに反映されるまで10分ほどかかる。その間にリダイレクト先は変更されている。Google Safe Browsingが追いつかない。

とはいえ、この手法も決して無敵ではないだろう。こういった使い捨てページは、Microsoft AzureやAWS Amplifyなどのクラウドサービスを使って量産されている。クラウド側は、通報を受け付けたり、危険なサイトを検出したりして対応している。たとえその1ページへの対応が間に合わなかったとしても、悪質な行為が続けば、やがてアカウントは処分を受ける。

それからもうひとつ、最近ではブラウザ側のローカルAIによる悪性サイトの判定ができるようになった。Google ChromeのEnhanced Safe Browsing (保護強化機能) は、ローカルで動くAI・Gemini Nanoによってページを解析し、たとえGoogle Safe Browsingが今まで把握していない初見のページであってもブロックすることができる。まだまだ検出率は高くはないが、今まで後手に回っていた高速ローテーションに対処できるようになったというのは大きな希望だ。詳しくはこちらの記事をどうぞ。

怒られても復活する

詐欺師にとって、広告アカウントの停止処分はけっこう重い。広告アカウントの作成には、法人ならばその国で法的に有効な登記情報、個人ならば本人確認、そして決済手段が必要になるはずで、それなりにハードルは高い。

しかし、ひとつの電話番号 (詐欺電話を受けるコールセンター) を共有する多数の広告アカウントが続々出現するのを確認している。ペーパーカンパニーを量産しているのかもしれないし、他人の名義を借りたり不正利用していたりするかもしれない。

また、広告代理店とおぼしきアカウントで詐欺広告を出稿しているところもある。同じ広告主の広告をリストで見ると、詐欺ではなくまともっぽい広告も多く、詐欺専門というわけでもなさそうなのだ。代理店としては「善良なフリをした悪質な顧客に利用された」と被害者ポジションになるし、広告プラットフォーム側としては大きめの代理店を丸ごと出禁にするのは難しい。それをわかっていて代理店も見て見ぬふりをしているのかもしれない。

このあたりはまだよくわからない点が多い。

次回予告

次回は「対処編」だ。どこに通報すればいいのか? メディア側ではどうブロックするのか? 詐欺被害を減らしていくためにできることを具体的に紹介していく。