パスワードを忘れた? アカウント作成
13250865 story
インターネット

ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 28

ストーリー by hylom
よく思いつくなあ 部門より
headless 曰く、

形の似た文字をドメイン名に使い、フィッシングサイトなどを正規サイトに偽装する「IDNホモグラフ攻撃」は以前から知られており、Webブラウザー側での対策も行われているが、Google ChromeとMozilla Firefoxの対策を迂回する方法が発見されたそうだ(Xudong Zheng氏のブログWordfenceのブログRegisterNeowin)。

ASCII外の文字を含む国際化ドメイン名はPunycodeという方式でASCIIに変換して表現される。このようなドメイン名はPunycodeに変換されたことを示すため「xn--」が先頭に付加されるが、ChromeやFirefoxのアドレスバーやリンクのツールチップでは元の文字に逆変換して表示される。

ChromeFirefoxではホモグラフ攻撃対策の一環として、ドメイン名にラテン文字やキリル文字、ギリシャ文字が混在している場合にPunycodeのまま表示する。しかし、文字種を混在させなければ逆変換表示になることを利用し、キリル文字だけで偽ドメイン名を作れば対策の迂回が可能だ。

キリル文字にはラテン文字と似た字形の文字が多く、フォントによっては全く同じ字形で表示されることもある。PoCとして、Xudong Zheng氏は「https://apple.com/」に見えるドメイン https://www.xn--80ak6aa92e.com/ (https://аррӏе.com/)、Wordfenceは「https://epic.com/」に見えるドメイン https://www.xn--e1awd7f.com/ (https://www.еріс.com/)を公開している。

なお、Internet ExplorerやMicrosoft EdgeではPunycode表記のまま表示される。Safariも同様のようだ。また、Firefoxでは「about:config」で「network.IDN_show_punycode」の値をtrueに変更すれば逆変換を無効にしてPunycode表示に固定することも可能だ。Chromeにはオプションが存在しないが、Chrome 58で対策が行われているとのことだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2017年04月22日 13時20分 (#3198375)

    アドレスバーに
    аррӏе.com/ぷに
    って出すとか。

  • by Anonymous Coward on 2017年04月21日 14時05分 (#3197699)

    朝日と、朝曰のように、字体がよく似た文字を使われてしますと、
    punycode にしても、正しい punycode を知らないと正しいかどうかを
    判断することができないのが難点ですね。

    # 日本語ドメイン使うなということが解決法になるのかな

    • by Anonymous Coward

      突き詰めると「Punycode」なんてドメイン名で実装したやつがクソなんだよなぁ
      こんなことになるのは有識者が少し考えりゃわかるのに、商売を優先した結果がこれじゃん

      こんなクソ仕様をサポートするブラウザごと投げ捨てるべき
      まだ使いどころがあるだけActiveXのほうがマシなぐらいだ

      • by Anonymous Coward on 2017年04月21日 14時32分 (#3197714)

        Punycode (RFC 3492) はそもそもドメイン名で使用することを想定して
        設計さられたものなので、実装ではなくRFCがクソなのでは?
        Punycode is a simple and efficient transfer encoding syntax designed for
        use with Internationalized Domain Names in Applications (IDNA).
        それともRFCやW3Cなどの定義に準拠しないブラウザが良いってこと?

        このRFCがクソなのには同意。当時から危険性が指摘されていたにも関わらず、
        ゴリ押しされた経緯についても糞だとは思う。

        なお、Chromeは対策済み。Firefoxもabout:configで対応可能で手元の環境では
        IE, Firefox, Chrome共にhttps://www.xn--80ak6aa92e.com/などの表記が確認できた。
        # Edgeのみなぜかhttpsが省略して表示される。

        親コメント
        • by Anonymous Coward

          Safariは2005年にはこの問題を解決(言い換えればRFC無視?)してたそうで、
          やはりクソなもの(ユーザーに害をもたらすもの)は無視した方がいいと思うな。

          なお、Safariは常にスキーム名(http,https)は省略される。
          正当な証明書付きのhttpsでのみ鍵マーク(EVの場合、緑+名称)がつき、そのほかは常に何も表示しない。
          オレオレ証明書httpsでも鍵なしでhttp同等扱い。

          • 一度実装したら曲解に曲解を重ねて延命をしていた当時のMicrosoftでさえ、一度実装した後からこんなくそなRFCなんて窓から投げ捨ててしまえ!ってな事をやっているからね。
            相当なくそRFCである事は間違いない。

            W3CとしてはURL入力はデコード状態で受け付けて、アドレスバーやステータスバーにはエンコード済みの値で表示しろって事だったのか、あるいは、アドレスバーとは別にエンコード済みの値が出る想定でもあったのかな…
            どちらであれそうしろって書いていない時点で相当間抜けではあるが。

            ># Edgeのみなぜかhttpsが省略して表示される。
            EdgeはそもそもHTTPとHTTPSしか対応していないのですよ。
            故に鍵マークの有無だけで判別できるからアドレス入力モードにしないとスキームが表示されない。
            親コメント
            • by Anonymous Coward on 2017年04月24日 15時12分 (#3199307)

              Microsoftはこの仕様投げ捨ててないよ。
              それどころか、Edgeでもこの仕様を使っている

              ただし、システム言語との突き合わせを行っていて
              システム言語と合わない場合は、もとのxn--xxxxの形式で表示している。
              # たしか・・・

              日本語のOSでは下記のような取り違えを起こさせることは可能なので
              同じ脆弱性が残っていると言えると思う。

              (実在) http:/// [http]日本語.jp http://xn--wgv71a119e/ [xn--wgv71a119e]
              (無い) http:/// [http]曰本語.jp http://xn--jov2ew20i/ [xn--jov2ew20i]

              (実在) http:/// [http]モジラ.jp/ http://xn--yck6dwa.jp/ [xn--yck6dwa.jp]
              (無い) http:/// [http]モヅラ.jp/ http://xn--cdkxcwa.jp/ [xn--cdkxcwa.jp]

              ちなみにchromeが対策と言っているのも
              実験したところ、同じ手法での対策に見えるので、
              日本語のOSでは日本語ドメインについて「IDNホモグラフ攻撃」が可能と言えると思う。

              個人的には紛らわしいので、RFC 3492自体廃止するか
              MSもGoogleもMozillaも完全に無効化する対策をとってほしい。

              親コメント
          • by Anonymous Coward

            >オレオレ証明書httpsでも鍵なしでhttp同等扱い
            あー。これいい。
            いちいち許可するかどうか聞いてくるのうざい。
            http同等で処理したら何か問題あるんだろうか。

            • by Anonymous Coward on 2017年04月21日 20時14分 (#3198023)

              何故問題ないと思ったのかそれを知りたい。
              「警告が出る」代わりに「毎回自分で注意深く確認する」ことを要求されてるんだけど。

              親コメント
            • by Anonymous Coward
              白紙より捨て印だけ押した紙の方が危険とかそういう考えなのかも
      • by Anonymous Coward

        基本的に、セキュリティと便利さは反比例するってのは常識だしね
        結局は「ユーザーの安全よりも自社製品のコマーシャルと利益が優先だ」って公言しているようなもんだな

    • by Anonymous Coward
      何万字もある漢字に似た文字があるのはしょうがない気がするけど
      数えるほどしかないラテン文字の区別がつかんのはフォントが悪いんじゃねぇのって思う
      漢字はユニファイするけどラテン文字は形が同じでもガシガシ重複登録するユニコードが一番の糞なんだけど
      • by Anonymous Coward

        MS PGothicの半角と全角のアルファベットが区別しにくくて仕方ない。
        並べてみて「ああ違うな」って分かる程度。

        • by Anonymous Coward

          プロポーショナルは無駄な幅を防ぐためにやってるからどうしてもそうなる
          混在で使うことなんて本来は想定されてないだろうしな

      • by Anonymous Coward

        フォントレンダに責任とって頑張ってもらってASCIIと母国語以外のURI文字は数十ポイントデカく表示してもらう?
        日本語の中に簡体字が混じるときちゃない表示になる現象をもっと目立たせる感じで

    • by Anonymous Coward

      朝目新聞だと即ギャグだとわかるんだけど
      間違えて開いても
      ひと目でわかるし…

  • by Anonymous Coward on 2017年04月21日 13時50分 (#3197685)

    って読む奴が続出するんだろうなー

    • by Anonymous Coward

      うほっ

      • by Anonymous Coward

        自分もホモ攻撃の方が気になった

    • by Anonymous Coward

      ギクッ。ってか十年くらいぷにだと思ってた。ピューニでいいのかな。

  • でもサイト内容は(+д+)マズーなんだ

  • by Anonymous Coward on 2017年04月24日 12時22分 (#3199188)

    文字種ごとに色分けすればいいのにね。混在してればすぐわかるし、ASCII以外以外なら別の色になる。
    例えばASCIIが黒で、日本語が青みたいにしとけば、
    見慣れない色になればわかるでしょ。
    類似した文字を持つ文字種同士が異なる色になるようにうまく配色すれば完璧。

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...