ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 28
よく思いつくなあ 部門より
形の似た文字をドメイン名に使い、フィッシングサイトなどを正規サイトに偽装する「IDNホモグラフ攻撃」は以前から知られており、Webブラウザー側での対策も行われているが、Google ChromeとMozilla Firefoxの対策を迂回する方法が発見されたそうだ(Xudong Zheng氏のブログ、Wordfenceのブログ、Register、Neowin)。
ASCII外の文字を含む国際化ドメイン名はPunycodeという方式でASCIIに変換して表現される。このようなドメイン名はPunycodeに変換されたことを示すため「xn--」が先頭に付加されるが、ChromeやFirefoxのアドレスバーやリンクのツールチップでは元の文字に逆変換して表示される。
ChromeやFirefoxではホモグラフ攻撃対策の一環として、ドメイン名にラテン文字やキリル文字、ギリシャ文字が混在している場合に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で対策が行われているとのことだ。
ぷにモードで表示されてる事を示すだけじゃダメなの? (スコア:2, おもしろおかしい)
アドレスバーに
аррӏе.com/ぷに
って出すとか。
こんな問題にはどうしよう (スコア:1)
朝日と、朝曰のように、字体がよく似た文字を使われてしますと、
punycode にしても、正しい punycode を知らないと正しいかどうかを
判断することができないのが難点ですね。
# 日本語ドメイン使うなということが解決法になるのかな
Re: (スコア:0)
突き詰めると「Punycode」なんてドメイン名で実装したやつがクソなんだよなぁ
こんなことになるのは有識者が少し考えりゃわかるのに、商売を優先した結果がこれじゃん
こんなクソ仕様をサポートするブラウザごと投げ捨てるべき
まだ使いどころがあるだけActiveXのほうがマシなぐらいだ
Re:こんな問題にはどうしよう (スコア:1)
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が省略して表示される。
Re: (スコア:0)
Safariは2005年にはこの問題を解決(言い換えればRFC無視?)してたそうで、
やはりクソなもの(ユーザーに害をもたらすもの)は無視した方がいいと思うな。
なお、Safariは常にスキーム名(http,https)は省略される。
正当な証明書付きのhttpsでのみ鍵マーク(EVの場合、緑+名称)がつき、そのほかは常に何も表示しない。
オレオレ証明書httpsでも鍵なしでhttp同等扱い。
Re:こんな問題にはどうしよう (スコア:1)
相当なくそRFCである事は間違いない。
W3CとしてはURL入力はデコード状態で受け付けて、アドレスバーやステータスバーにはエンコード済みの値で表示しろって事だったのか、あるいは、アドレスバーとは別にエンコード済みの値が出る想定でもあったのかな…
どちらであれそうしろって書いていない時点で相当間抜けではあるが。
># Edgeのみなぜかhttpsが省略して表示される。
EdgeはそもそもHTTPとHTTPSしか対応していないのですよ。
故に鍵マークの有無だけで判別できるからアドレス入力モードにしないとスキームが表示されない。
Re:こんな問題にはどうしよう (スコア:1)
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も完全に無効化する対策をとってほしい。
Re: (スコア:0)
>オレオレ証明書httpsでも鍵なしでhttp同等扱い
あー。これいい。
いちいち許可するかどうか聞いてくるのうざい。
http同等で処理したら何か問題あるんだろうか。
Re:こんな問題にはどうしよう (スコア:1)
何故問題ないと思ったのかそれを知りたい。
「警告が出る」代わりに「毎回自分で注意深く確認する」ことを要求されてるんだけど。
Re: (スコア:0)
Re: (スコア:0)
基本的に、セキュリティと便利さは反比例するってのは常識だしね
結局は「ユーザーの安全よりも自社製品のコマーシャルと利益が優先だ」って公言しているようなもんだな
Re: (スコア:0)
数えるほどしかないラテン文字の区別がつかんのはフォントが悪いんじゃねぇのって思う
漢字はユニファイするけどラテン文字は形が同じでもガシガシ重複登録するユニコードが一番の糞なんだけど
Re: (スコア:0)
MS PGothicの半角と全角のアルファベットが区別しにくくて仕方ない。
並べてみて「ああ違うな」って分かる程度。
Re: (スコア:0)
プロポーショナルは無駄な幅を防ぐためにやってるからどうしてもそうなる
混在で使うことなんて本来は想定されてないだろうしな
Re: (スコア:0)
フォントレンダに責任とって頑張ってもらってASCIIと母国語以外のURI文字は数十ポイントデカく表示してもらう?
日本語の中に簡体字が混じるときちゃない表示になる現象をもっと目立たせる感じで
Re: (スコア:0)
朝目新聞だと即ギャグだとわかるんだけど
間違えて開いても
ひと目でわかるし…
ぷにコード (スコア:0)
って読む奴が続出するんだろうなー
Re: (スコア:0)
うほっ
Re: (スコア:0)
自分もホモ攻撃の方が気になった
Re: (スコア:0)
ギクッ。ってか十年くらいぷにだと思ってた。ピューニでいいのかな。
「Σd(ゝ∀・)ィィネ!!」ドメインとか取れないかしら? (スコア:0)
でもサイト内容は(+д+)マズーなんだ
Re:「Σd(ゝ∀・)ィィネ!!」ドメインとか取れないかしら? (スコア:1)
! ( )
はドメイン名として取れなかったような
あと「Σ」は大文字小文字同一視される(そして小文字で正規化しろとRFC 3986で言われてる)
ので「σ」に変わっちゃいますね。
文字種ごとに色分けすればいいのに (スコア:0)
文字種ごとに色分けすればいいのにね。混在してればすぐわかるし、ASCII以外以外なら別の色になる。
例えばASCIIが黒で、日本語が青みたいにしとけば、
見慣れない色になればわかるでしょ。
類似した文字を持つ文字種同士が異なる色になるようにうまく配色すれば完璧。
Re:asciiでないドメインネームなんて (スコア:1)
「asciiでないドメインか判別しづらい」ってのが今回の問題では?
Re: (スコア:0)
アホだねお前
Re: (スコア:0)
国際化ドメイン(笑)は最近売れてますかwwww
Re: (スコア:0)
そうでもない [it.srad.jp]。正直な話こっち [it.srad.jp]のほうが怪しい。