Googleホスティングの悪意ある広告、本物そっくりの偽KeePassサイトへ誘導
(arstechnica.com)- 検索広告と公式サイトを信頼する習慣を突き、KeePassを装ったGoogle広告が、セキュリティに慣れたユーザーまでだませる偽サイトへ誘導している
- クリック後、アドレスバーには ķeepass[.]info のように見えるが、実際のドメインは punycode でエンコードされた xn--eepass-vbb[.]info で、FakeBat マルウェアを配布している
- この広告は土曜日から水曜日まで表示され、広告主は Google が本人確認済みの Digital Eagle と表示されていた
- Google広告、正常に見える URL、有効な TLS証明書 が組み合わさっており、アドレスバーの確認だけではなりすましかどうか判断しにくい
- 主要ブラウザー5種すべてで ķeepass[.]info を入力すると偽装サイトへ移動するため、不審に思ったら新しいタブで URL を直接入力するか、TLS証明書の所有者を確認する必要がある
Google広告とKeePassなりすましサイトの組み合わせ
- Googleに KeePass広告のように見える悪意ある広告 が掲載された
- 広告はオープンソースのパスワードマネージャー KeePass を宣伝しているように偽装していた
- ユーザーは Google広告であり、Googleが広告を審査していると知られているため、より簡単に信頼してしまう可能性がある
- クリックすると、アドレスバーには本物の KeePass サイトのように見える ķeepass[.]info が表示される
- 実際の公式 KeePass サイトは keepass.info である
punycodeで作られた類似ドメイン
- アドレスバーに表示される ķeepass[.]info は、実際には xn--eepass-vbb[.]info を示すエンコード表記である
- このサイトは FakeBat として追跡されているマルウェア系統を配布している
- この手口には punycode エンコーディング方式が使われている
- punycode は Unicode 文字を標準 ASCII テキストとして表現できるようにする
- ここでは、k の下に小さなコンマのように見える記号が付いた文字が使われている
- 有効な TLS証明書 まで備えているため、アドレスバーだけを見ると正常なサイトのように見えやすい
広告透明性情報とGoogleの対応
- Google Ad Transparency Center には、この広告が土曜日から水曜日まで実行されたと表示されていた
- 広告費を支払った主体は Digital Eagle という組織として示されている
- 透明性ページでは、Digital Eagle は Google によって本人確認済みの広告主として表示されている
- Google の関係者は掲載後のメールで、同社の規約に基づきこの広告を削除したと明らかにした
Malwarebytesの分析
- Malwarebytes の脅威インテリジェンス責任者 Jérôme Segura は、ユーザーが二段階でだまされる構造だと整理している
- まず、完全に正常に見える Google広告 にだまされる
- 続いて、正規サイトのように見える類似ドメインにもう一度だまされる
- Malwarebytes はこの詐欺を水曜日の投稿で公開した
- Google広告とほぼ同一の URL に見えるウェブサイトが組み合わさり、強力ななりすまし効果を生み出している
過去のpunycode悪用事例
- punycode を悪用したマルウェア詐欺はかなり前から存在していた
- 2年前には、詐欺師らが Google広告 を利用して brave.com とほとんど同じに見えるサイトへユーザーを誘導した
- そのサイトはブラウザーの偽の悪意あるバージョンを配布していた
- 2017年には、あるウェブアプリケーション開発者が apple.com のように見える概念実証サイトを作成し、punycode 手法が広く注目を集めた
ユーザーが確認できる方法
- 悪意ある Google広告 や punycode エンコード URL を確実に検知する方法はない
- ķeepass[.]info を主要ブラウザー5種に入力すると、すべて偽装サイトへ移動する
- 不審な場合は、新しいブラウザータブを開いて URL を直接入力できる
- URL が長い場合、直接入力は常に現実的な方法とは限らない
- もう1つの方法は TLS証明書 を調べ、アドレスバーに表示されたサイトと証明書の所有者が一致しているか確認することである
1件のコメント
Hacker News のコメント
Digital Eagle の身元は、当然 Google が確認していたはず。Google の本人確認はお金を受け取る方式で、お金を払えば検証済みということになる
「Google の担当者はメールにすぐ返信しなかった」というくだりも疑問だ。Google で実際の人間がメールに答えているのか分からないし、10年以上返信を見たことがない。フィッシングやスパムを報告しても、実際に何か処理されているのか疑わしい
正直、そろそろ世の中は Google から離れるべきだ。少なくとも2年以上、検索エンジンとして安全に使うのは難しかった
顧客が Google 広告経由でフィッシングサイトに送られたあと、自分が管理するすべてのネットワークで以下のドメインをブロックすることにした
googlesyndication.com
googleadservices.com
googletagservices.com
googletagmanager.com
google-analytics.com
Google の強みは何年もかけて少しずつ壊れてきた。Windows も同じように、マーケティングと広告がそこそこ良い製品を台無しにしている
こうした広告が通ってしまう理由も似ているように見える。かなりの部分を集団での通報に頼っていて、「問題を報告」リンクが悪質な広告をふるい落とす主要な仕組みの一つなのだろう。より多く通過しているなら、通報に時間を割く人が少なすぎて、集団通報方式のバランスが崩れつつある兆候かもしれない
本当に別の時代だった
namecheap に悪質なウェブサイトを報告すると何か月も生き残ることがあるし、彼らも悪いが、不正利用報告の処理ではもっとひどいところも多い。Google ももっと良くできるはずだが、実際にはかなりまともなほうだ
ただしこの事例は、全員が広告をブロックすべきもう一つの理由だ。広告ブロックは全員をより安全にする
広告仲介者に詐欺広告について部分的な責任を負わせるか、広告を強く実名化するか、あるいはその両方をすべきだ。一般の出版物にドイツ式の impressum 義務を課すのは好まないが、広告は別だ
広告は、ユーザーが制御できない形で他のサイトに攻撃的に入り込むからだ。全面的な広告ブロックを除けば選択肢がない
広告の隅をクリックすれば、責任を持つ事業者の会社番号と事業所住所を確認できるべきだ。他国から入ってくる「海外」広告は、より厳しく検証する必要がある。詐欺であれば、匿名でなくても救済を受けるのははるかに難しいからだ
記事によると、ķeepass[.]info はアドレスバーではそのように見えても、実際には xn--eepass-vbb[.]info を表すエンコード表記で、FakeBat マルウェアを配布していた。Google 広告と、ほぼ同じ URL のウェブサイトが組み合わさり、ほぼ完璧なだましの手口になっていたというわけだ。
2017年に Google Chrome 59 が Punycode フィッシング攻撃を修正したとされていた。例: https://www.engadget.com/2017-04-17-google-chrome-phishing-u...
もしかすると、執拗な犯罪者が Punycode を検査する Chromium のソースコードを分析し、
kの代わりにķを許可する抜け穴を見つけたのかもしれない。https://www.xn--80ak6aa92e.com/ --> 偽の「аррӏе.com」はフィッシング警告を出す
https://xn--eepass-vbb.info/ --> 偽の「ķeepass.info」は警告を出さない
ķ(U+0137)はラテン文字 [2] に属するため、「ķeepass.info」は混在文字体系の類似文字チェックには引っかからないと思われる。「文字体系全体の類似文字」のグリフ [3] の一覧にも
ķは見当たらない。ここに含めるべきなのだろうか?そのファイルのギリシャ文字セクションには「ά、έ、ή、ί のような変形は無視する」という趣旨のコメントがあり、アクセント付き文字は一般に類似文字とは見なさないというルールがあるのかもしれない。だとすれば、ある程度は理解できる。たとえば
éを含むドメイン名が Punycode 形式で表示されるなら、フランスのユーザーはかなりがっかりするだろう。[1] https://chromium.googlesource.com/chromium/src/+/main/docs/i...
[2] https://www.compart.com/en/unicode/U+0137
[3] https://source.chromium.org/chromium/chromium/src/+/main:com...
結局「göogle.com」にもアクセスしないだろうし?
Google は YouTube で 広告ブロッカーと戦争を繰り広げる一方で、安全な広告を表示する責任はまったく信用して任せられないという事実を、また示している。
そのうえ、幼い子どもに戦争映像を広告として見せることさえある。
特に気に入っているのは、「スマホを魔法のようにデフラグしてくれる」というばかげたレンガ型充電器の広告と、マイクロ・ゴースト拳銃の広告だ。
自分はセキュリティに気を配っているほうだと思っているが、これは気づけたかどうかわからない。uBO をためらわず使うべき、また別の理由だ。
「同社は、詐欺広告が報告されれば可能な限り速やかにただちに削除すると述べた」
解決策の一部になりたかったのなら、広告が公開される前に検証していただろう。だがそれはスケールしないので、人々は詐欺に遭い、社会は被害を受け、Google は手に負えないほどの金を稼ぐことになる。かなり公平な取引なのか……?
多くの人が言っているように、インターネット広告ブロックは健康で安全なインターネット利用の一部だ。
モデレーションは解くのが難しい問題だ。私たちは正しいものには利便性を求め、少しでも怪しいものには強いブロックを求める。何かしら取りこぼしは避けられない。
ここで重要なのは、これが例外的な事例なのか、それとも Google 広告でこうした承認例が多く出ている目立った問題なのかだが、記事はその答えを示していない。
1年前にも同じ問題があり、ドメイン名の接頭辞も同じように見える。
https://www.bleepingcomputer.com/news/security/google-ad-for...
自分が本人確認制度のせいであらゆる手続きを踏まなければならないのなら、生活をやりにくくするこういう場面でも、企業側に同じことをしてほしいと思う。
誤解を招く広告、迷惑電話、Amazon のような場所での偽造品、メールまで全部そうだ。
すべてが、世界中の詐欺師が自分に 100% 到達できるよう作られているように見えるのに、肝心のそれを可能にしている企業には、どんな方法でも到達できない。
これはかなり巧妙な手口だ。広告ではない文脈でリンクを見ていたら、自分も引っかかっていたかもしれない。
普通の Unicode 置換は、文字がほんの少しでも変に見えるので見分けるすべを身につけていたが、今回は違った。矢印で示されていても
kの下の点に気づかず、自分の目にはモニター上の小さなホコリや汚れのように見えた。画面にはそういうものが多いし、視覚システムはそうしたノイズをうまく無視する。
光を遮る黒いピクセルのようなホコリではなく、光る白いピクセルだ。ダークモードをセキュリティ強化策として考えたことはなかった :)
Punycode はそもそも用途が疑わしい。主にラテンアルファベット利用者の視点から見た話ではあるが、この10年ほど見てきたいくつもの非ラテン文字圏のサイトは、すべて普通の ASCII ドメインを使っていた。
Unicode を許可している Web サイトのユーザー名でも、非ラテン文字の利用者の大半がラテンアルファベットのユーザー名を使っているのを目にする。
実際に Punycode が使われている場所は、ほとんどがスパムドメインだ。キリル文字圏やアジア圏のドメインでも、大半は Punycode を使っていない。
Punycode の概念は理解できるし技術的には印象的だが、ドメインでは巨大なフィッシングの悩みの種になってしまった。
複数の欧州言語を使う自分でも、必要な Unicode 文字は10個未満で、実のところそれぞれは今でも 8 ビットの ISO 8859-15 コードだ。必要だとはいえ、ほとんどのサイトは Punycode ドメインすら登録せず、名前を崩した ASCII 版を使っている。
実用的な対策として、ブラウザはユーザーが初めて非 ASCII 文字を含む URL を入力したとき、特定言語の URL を許可するか尋ねるべきだ。1つか2つの言語だけを許可しても、ほとんどのユーザーにとって攻撃対象領域は大きく減る。
たとえば現在 asahi.com は朝日(朝日新聞)が取得しているので、Asahi town(旭)は使えない。もちろん asahi-town.co.jp のようなものは使えるだろうが、Asahi と読む地名表記はほかにも多い(旭日、朝陽、浅緋など)。
これらすべてに任意の ASCII 変形を求めるのは筋が通らない。日本の地名だけを見てもこの程度で、漢字圏全体で重複する問題まである。
こうしたドメインが実際に登録されているかは鶏と卵に近い問題で、上記の衝突空間が ASCII アルファベット内できれいに解決するとは思えない。
西洋圏の ASCII ドメインが詐欺に弱いのは問題だが、害虫を退治しようとして家ごと焼いてしまうようなやり方も困る。
ただし
.рфのような専用トップレベルドメインでは、Punycode そのものが問題だとは思わない。たとえば кремль.рф のような形式は問題ないと思う。ASCII を超えるものはすべて疑わしいと言うこともできるが、英語を母語としない人たちは常に反対するだろう。
悪質広告を減らす方法の1つは透明性だ。各広告には広告主の法的な連絡先、つまり会社名と国を含めるべきだ。
問題を完全に解決するわけではないだろうが、消費者は怪しい東欧企業の広告を避けられるようになる。セキュリティ研究者が悪意ある行為者を追跡しやすくなり、広告プラットフォームである Google にもある程度の責任が生じる。
Facebook はすでに政治広告でこれを行っているので、可能なことだ。
政府が強制するか、法的責任のリスクが大きくなりすぎない限り、彼らが自主的にやることはないだろう。
少し外国人嫌悪ではないか?
[0] https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certi...