1 ポイント 投稿者 GN⁺ 2023-10-20 | 1件のコメント | WhatsAppで共有
  • 検索広告と公式サイトを信頼する習慣を突き、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件のコメント

 
GN⁺ 2023-10-20
Hacker News のコメント
  • Digital Eagle の身元は、当然 Google が確認していたはず。Google の本人確認はお金を受け取る方式で、お金を払えば検証済みということになる
    「Google の担当者はメールにすぐ返信しなかった」というくだりも疑問だ。Google で実際の人間がメールに答えているのか分からないし、10年以上返信を見たことがない。フィッシングやスパムを報告しても、実際に何か処理されているのか疑わしい
    正直、そろそろ世の中は Google から離れるべきだ。少なくとも2年以上、検索エンジンとして安全に使うのは難しかった
    顧客が Google 広告経由でフィッシングサイトに送られたあと、自分が管理するすべてのネットワークで以下のドメインをブロックすることにした
    googlesyndication.com
    googleadservices.com
    googletagservices.com
    googletagmanager.com
    google-analytics.com

    • もっと率直に言えば、私の基準では Google の検索能力は2000年代後半〜2010年代前半ごろから落ちていた。昔は文章をそのまま入力しても見つけられたのに、今では引用符検索すらまともに機能しない
      Google の強みは何年もかけて少しずつ壊れてきた。Windows も同じように、マーケティングと広告がそこそこ良い製品を台無しにしている
    • 「Google に実際にメールへ返信する人がいるのか?」について言えば、Google は常にスケール可能なものに注力してきた。人が電話やメールに答えるのはスケールしないので、ユーザー向けのカスタマーサポートがないのだ
      こうした広告が通ってしまう理由も似ているように見える。かなりの部分を集団での通報に頼っていて、「問題を報告」リンクが悪質な広告をふるい落とす主要な仕組みの一つなのだろう。より多く通過しているなら、通報に時間を割く人が少なすぎて、集団通報方式のバランスが崩れつつある兆候かもしれない
    • 2007年に、自分を個人として識別できる文章を掲示板に投稿したことがある。フォーラム上では削除したが Google の検索結果の要約に残っていて、Google にメールで削除を依頼したところ、実際に削除してくれて、誰かが「done」と返信までしてくれた
      本当に別の時代だった
    • Google を批判する側に回ることが多いが、Google にフィッシング報告をたくさんしてみると、少なくとも Google 上でホストされているフィッシングサイトはかなり早く停止される。返信を受け取ったことは一度もなく、すべて自動化だろうと思うが、他のホスティング事業者よりはるかにましだ
      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」は警告を出さない

    • 関連する Chrome の 国際化ドメイン規則 [1] では、「混在文字体系の類似文字」と「文字体系全体の類似文字」の検出が中核に見える。
      ķ(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...
    • 最初の「Punycode 攻撃」は、キリル文字などを使って「本物」の文字と完全には見分けがつかない文字を利用していた。おそらく、ユーザーは発音区別記号の付いた文字なら、画面のほこりと見分けにくくても認識して避けられる、と想定していたのだろう。
      結局「göogle.com」にもアクセスしないだろうし?
  • Google は YouTube で 広告ブロッカーと戦争を繰り広げる一方で、安全な広告を表示する責任はまったく信用して任せられないという事実を、また示している。
    そのうえ、幼い子どもに戦争映像を広告として見せることさえある。

    • 不適切だったり、詐欺的だったり、明白に違法だったりする広告をずっと報告しているが、たいてい1〜2週間以内に戻ってくるか、そもそも削除すらされない。
      特に気に入っているのは、「スマホを魔法のようにデフラグしてくれる」というばかげたレンガ型充電器の広告と、マイクロ・ゴースト拳銃の広告だ。
    • その一方で、記者が文脈と関係なく戦争映像を使うことは止めている。
    • 7歳の子どもに、カミソリを含む シェービング用品の広告がずっと表示されていた。もちろん Google は父親が大きなひげを生やしていることを知っているのだろうが、冗談はさておき、子どもに刃物へ関心を持たせたくなかったので、家全体に広告ブロックを設定した。
    • 安全な広告を表示するには、誰かが広告を審査しなければならないということだ。Google が人々に YouTube 広告を見させている建物には、Foxconn 式のネットが必要になるだろう。
  • 自分はセキュリティに気を配っているほうだと思っているが、これは気づけたかどうかわからない。uBO をためらわず使うべき、また別の理由だ。

    • スクリーンショットを見て思ったのは「モニターについたほこりを拭かなきゃ」だけだった。uBO がなければ100%だまされていただろう。
    • uBlock Origin は良いものだが、国際化ドメインの類似攻撃とどう関係するのかわからない。自分の環境ではこれを防げなかった。
    • uBO とは何?
  • 「同社は、詐欺広告が報告されれば可能な限り速やかにただちに削除すると述べた」
    解決策の一部になりたかったのなら、広告が公開される前に検証していただろう。だがそれはスケールしないので、人々は詐欺に遭い、社会は被害を受け、Google は手に負えないほどの金を稼ぐことになる。かなり公平な取引なのか……?
    多くの人が言っているように、インターネット広告ブロックは健康で安全なインターネット利用の一部だ。

    • 境界は微妙ではある。Google が広告の事前審査を始め、ある程度正当な広告までブロックするようになれば、それに関する記事もまた出るだろう。
      モデレーションは解くのが難しい問題だ。私たちは正しいものには利便性を求め、少しでも怪しいものには強いブロックを求める。何かしら取りこぼしは避けられない。
      ここで重要なのは、これが例外的な事例なのか、それとも Google 広告でこうした承認例が多く出ている目立った問題なのかだが、記事はその答えを示していない。
    • 「同社は、詐欺広告が報告されれば可能な限り速やかにただちに削除すると述べた」
      1年前にも同じ問題があり、ドメイン名の接頭辞も同じように見える。
      https://www.bleepingcomputer.com/news/security/google-ad-for...
    • 金を受け取るか、善意の目的でなければ、コンテンツモデレーションはしない。Google 広告はそのどちらでもない。
  • 自分が本人確認制度のせいであらゆる手続きを踏まなければならないのなら、生活をやりにくくするこういう場面でも、企業側に同じことをしてほしいと思う。
    誤解を招く広告、迷惑電話、Amazon のような場所での偽造品、メールまで全部そうだ。
    すべてが、世界中の詐欺師が自分に 100% 到達できるよう作られているように見えるのに、肝心のそれを可能にしている企業には、どんな方法でも到達できない。

    • 詐欺経済の根底にある情報の非対称性が本当に腹立たしい。
  • これはかなり巧妙な手口だ。広告ではない文脈でリンクを見ていたら、自分も引っかかっていたかもしれない。
    普通の Unicode 置換は、文字がほんの少しでも変に見えるので見分けるすべを身につけていたが、今回は違った。矢印で示されていても k の下の点に気づかず、自分の目にはモニター上の小さなホコリや汚れのように見えた。
    画面にはそういうものが多いし、視覚システムはそうしたノイズをうまく無視する。

    • 自分も同じようにやられていたと思う。ただしダークモードを使っているので、黒い背景の上の白い点として表示され、画面のホコリには見えない。はっきり見える。
      光を遮る黒いピクセルのようなホコリではなく、光る白いピクセルだ。ダークモードをセキュリティ強化策として考えたことはなかった :)
    • 見分けるのが非常に難しい文字は多い。ブラウザがこういうものを検出すべきだが、常にできるわけではない。
  • Punycode はそもそも用途が疑わしい。主にラテンアルファベット利用者の視点から見た話ではあるが、この10年ほど見てきたいくつもの非ラテン文字圏のサイトは、すべて普通の ASCII ドメインを使っていた。
    Unicode を許可している Web サイトのユーザー名でも、非ラテン文字の利用者の大半がラテンアルファベットのユーザー名を使っているのを目にする。
    実際に Punycode が使われている場所は、ほとんどがスパムドメインだ。キリル文字圏やアジア圏のドメインでも、大半は Punycode を使っていない。
    Punycode の概念は理解できるし技術的には印象的だが、ドメインでは巨大なフィッシングの悩みの種になってしまった。

    • 各国語は全面的に支持するし、ASCII が人類の大部分に適していないのも事実だ。ただ、現在の Unicode がセキュリティに敏感なアプリケーションに適していないことは明らかだ。
      複数の欧州言語を使う自分でも、必要な Unicode 文字は10個未満で、実のところそれぞれは今でも 8 ビットの ISO 8859-15 コードだ。必要だとはいえ、ほとんどのサイトは Punycode ドメインすら登録せず、名前を崩した ASCII 版を使っている。
      実用的な対策として、ブラウザはユーザーが初めて非 ASCII 文字を含む URL を入力したとき、特定言語の URL を許可するか尋ねるべきだ。1つか2つの言語だけを許可しても、ほとんどのユーザーにとって攻撃対象領域は大きく減る。
    • ASCII ドメインの問題の1つは、CJK 言語の音声マッピングだ。
      たとえば現在 asahi.com は朝日(朝日新聞)が取得しているので、Asahi town(旭)は使えない。もちろん asahi-town.co.jp のようなものは使えるだろうが、Asahi と読む地名表記はほかにも多い(旭日、朝陽、浅緋など)。
      これらすべてに任意の ASCII 変形を求めるのは筋が通らない。日本の地名だけを見てもこの程度で、漢字圏全体で重複する問題まである。
      こうしたドメインが実際に登録されているかは鶏と卵に近い問題で、上記の衝突空間が ASCII アルファベット内できれいに解決するとは思えない。
      西洋圏の ASCII ドメインが詐欺に弱いのは問題だが、害虫を退治しようとして家ごと焼いてしまうようなやり方も困る。
    • 非英語圏の国に住んでいて、技術的には非 ASCII ドメインもあるが非常にまれだ。Web サイトの圧倒的多数はラテン文字を使っている。
      ただし .рф のような専用トップレベルドメインでは、Punycode そのものが問題だとは思わない。たとえば кремль.рф のような形式は問題ないと思う。
    • 多くの人が自分の名前や都市名などを登録したいと思うかもしれない。こうしたものはすべて妥当なユースケースに見える。
      ASCII を超えるものはすべて疑わしいと言うこともできるが、英語を母語としない人たちは常に反対するだろう。
    • 不人気な意見だろうが、Unicode 全体をドメイン名に無理やり押し込もうとしたのは悪い考えだった。大文字小文字を区別しない ASCII [A-Za-z0-9-] にとどまるべきだった。
  • 悪質広告を減らす方法の1つは透明性だ。各広告には広告主の法的な連絡先、つまり会社名と国を含めるべきだ。
    問題を完全に解決するわけではないだろうが、消費者は怪しい東欧企業の広告を避けられるようになる。セキュリティ研究者が悪意ある行為者を追跡しやすくなり、広告プラットフォームである Google にもある程度の責任が生じる。
    Facebook はすでに政治広告でこれを行っているので、可能なことだ。

    • そうすると Google と Facebook の売上が減る。
      政府が強制するか、法的責任のリスクが大きくなりすぎない限り、彼らが自主的にやることはないだろう。
    • なぜ東欧が怪しいことになるのか?
      少し外国人嫌悪ではないか?
    • すべての Web サイトのSSL 証明書データベース[0]を用意し、アクセス中の Web サイトや広告枠を購入した Web サイトと照合すればよい。
      [0] https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certi...
    • そうなれば本当にいいと思う。