Operaにおけるアドレスバーあるいはステータスバー偽装可能のポテンシャリティー

Operaにおいてアドレスバーないしステータスバーないしリンクアンカーへのオンマウスオーバー時のポップアップにおけるリンク先アドレスなどが偽装可能かも(JavaScript不要)

実際のところ、どこまで悪意ある者がコストをかけてまでアドレスバー偽装等を試みるのか不明といいますか、シェアを考えると、むしろしないだろうなぁと思っているところではあります。せっかく乗っ取った攻撃用サーバを無駄にしますから。…悪意ある者がコストを意識しなければの前提で、気がかりなので、かなり考えた末ですが公共の福利の為に発表してしまいます。Operaの未来の為に。ユーザが安心してブラウザを選択できる未来の為に。

以下に《実際にはコスト的にみて無効であろう》Operaのアドレスバー偽装について論及します。まずは具体的なPoCについて記します。

http://www.xn--gmail-bgd.com/

上記をOperaのアドレスバーに手打ちしたり、あるいはテスト用のHTMLを作成してリンクアンカーとし、OnMouseoverな時のステータスバーやポップアップするリンク先URLの情報を観察して下さい。申し遅れましたが、私は、バージョン 8.54 Build 7730 プラットフォーム Win32 システム Windows XP (with SP2 full patch)で検証しています。

手元の環境では、見事なことに、 www.gmail.com を詐称可能であるかと思います。今気がつきましたが、Winの場合、タスクバー上のタスクボタンのURL表示までも詐称しているような気がします。御確認下さい。なお、JavaScript不要です。

発見の経緯

いわゆる GoogleHack です。 GoogleHack で Google なサイト自身を見たらどうなのかと調べてみたところ、恐るべきことに、検索結果において Google なサイト として、 http://www.xn--gmail-bgd.com/ が紛れ込んでいたのです。なんじゃこりゃ?ですよね?

既に上記PoCを試されて確かにその通りだと結論が出た方々ならば同意して頂けると存じますが、http://www.xn--gmail-bgd.com/ はレジストラによって登録され済みであり、実際にサイトが存在しています。本日確認した限りでは、アクセスカウンターが存在していませんが、以前には、カウンターがあり、私が見た限り数万のカウントを数えていました。つまり、私以外にも不思議だなぁと思った人が大勢いるのです。

http://www.xn--gmail-bgd.com/ 以外にも詐称可能なのかどうか私には具体的なPoCを作成できる能力がないためなんとも言えないのですけれど、可能ならばちょっと気になりますよね?

プニコード

punycodeにおいて、http://www.xn--gmail-bgd.com/ は、ぐうたらにやると、本来アドレスバー等で表示付加な不正な16進数がアドレスに混入していることかと思われます。バイナリの世界は私にはわかりませんが。

ちなみに、プニコードの正当性を検査するCGIロジックが、verisignにあります。

このCGIの結果表示において、OperaFirefoxは騙されで、IEは、なんか変だろ?とかろうじてわかるようです。なお、Firefoxでは、ことアドレスバー偽装については特に実害を感じません。

ゴルァ、IPAへは届けたのか>hoshikuzu

届け済みで、取り扱い終了になりました。Opera脆弱性と判断されたとは言えないと思います。Operaの開発陣には連絡を取っていただいたようですが、修正を待たずに、私には取り扱い終了と連絡がIPAからはいりました。つまり、この件は終了なのです。IPAさんからの御連絡から引用致します。

この問題はブラウザではなく、偽装表示に悪用されるドメインを発行するレジストリにそもそもの問題があるという意見もあります。

ICANNJPRS が公開している情報でも、本問題に対する姿勢や取り組みを確認することができます。

このように複数の団体や機関によって解決が目指されている IDN 表示偽装の問題を、本届出制度の枠組みにおいて、ブラウザ製品単体の問題として取り扱うのは難しいと考えております。

上のIPAからの御連絡には首肯できる部分が多々ありますので賛成です。この上は、ブラウザ単体の問題とは捉えず、広く問題点を世に訴えることが公共の福利にかなうに違いないと判断し、本日の日記に書かせていただきました。(Firefoxにも潜在的な可能性があるかもしれず、私は確認していませんがIE7がIDN対応になっているはずですしね)

正直なところ、PunyCodeの件、RFCまでは調べたのですが、そこで目撃した、C言語?によるPunyCodeエンコードやデコードの具体的なロジックについて私の実力では追尾できず、とても残念です。http://www.xn--gmail-bgd.com/ 以外にアブナゲなのをバンバンと産出できるほど知恵がありません。

PoCのポテンシャリティー

低いだろうと睨んでいますが…間違いだったら教えてくださいませ。>識者

2006/05/30追記:ホワイトリストによるIDN制御

ホワイトリストccTLD の記載がひとつでもあれば、【全て】のccTLDおよび gTLD ( .com 等)の IDN が有効
ccTLD の記載がひとつもなければ、 gTLD ( .com 等)の IDN が無効 

と、なるようです。ホワイトリストとして、opera6.ini に IDNA White List という項目がありますので、適宜修正するわけです。これを(A運用)と仮に名付けます。

なお、このホワイトリストは、当初報道通りに、以下のように運用できれば楽なんですが、そうなっていません。

ホワイトリストccTLD の記載がひとつでもあれば、【その】ccTLDの IDN が有効 、gTLD ( .com 等)の IDN が無効
ccTLD の記載がひとつもなければ、全ての TLD の IDN が無効 

上を(B運用)と名前を付けます。hioさんからわざわざご調査頂いて御連絡を頂いた情報を元に、手元でも確認したのですが、hioさん曰く

  .comのIDN回避(試してみました). 
  800 beta2 : Version 8.0  / Build 7483 / OK
  800 beta3 : Version 8.0  / Build 7522 / NG
  8.01      : Version 8.01 / Build 7642 / NG

でして、私の調べによれば

  800 beta2 : Version 8.0  / Build 7483 / B運用
  800 beta3 : Version 8.0  / Build 7522 / A運用
  8.01      : Version 8.01 / Build 7642 / A運用

ということになります。当面、A運用でしょうから、気になる向きには、ホワイトリストから ccTLD 記述を全廃しておいて、.com 等の gTLD をも IDN を抑制したほうが宜しいでしょう。マイクロソフト.com と マイク口ソフト.com の区別がつくように。

なお、beta2 の時の「IDN問題が解決された」報道は以下のURLで。

http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20050311/157348/?ST=print

(Operaの)ベータ2で「http://paypаl.com」にアクセスした場合には,Firefox 1.0.1と同じように,IDNではなくPunycodeが表示される(写真4[拡大表示])。

ところが,ガイドラインに従って運用していることが確認できているレジストリが管理するTLD(例えば,jpやkr)のURLについては,従来通り,IDNをそのまま表示する(写真5[拡大表示])。

Operaのリリースなどによれば,新版ベータ2には信頼できるレジストリTLD(例えば,jpやkr)のリストが含まれていて,そこに記載されているTLDのURLについては,従来通りアドレス・バーにIDNをそのまま表示する。そして,リストにないTLDのURLはPunycodeに変換してから表示するという。リストに掲載するかどうか(そのTLDレジストリが信頼できるかどうか)は同社が判断し,リストは定期的に更新する。

元々、「paypаl.com」と「paypal.com」との問題が発端でしたので、.com .net .biz など、国際的に使われる gTLD において、ブラウザ側で IDN を許可することは危険であったと、そして、ベータ2 では、gTLD においてIDNを許可せず、.jp などの ccTLD については、(例えば日本の)レジストリが安定した運用体制が用意できて、アドレス偽装に使われるような IDN の登録を禁止できるようになっていれば、ホワイトリストに許可の登録をすることでオーケーとなる仕様と推察できます。これがB運用。

ところが、ベータ3以後、(ホワイトリストにひとつでも ccTLD が許可されていれば) gTLD においてIDN が許可されるA運用に切り替わっているわけです。つまり、「paypаl.com」はあいかわらず危険であるということになります。上で引用したITproの記事の末尾に、尊敬すべき勝村さんの提言があります。

FirefoxOpera。どちらの対応が好ましいかは判断が分かれるところだろう。そもそも,「IDNは必要ない」と思っている方も少なくないだろう。また一方で,必要性を感じている人も多いだろう。ただ,いずれの場合でも,今回の「URL偽装問題」が改めてIDNに関心を集めたことは確かだ。せっかくの機会なので,IDNの有用性について改めて考えてみてはいかがだろうか。

IE7 が IDN 対応になりましたし、一部にはIE6においても IDN を可能ならしめるツールバー(個人的に嫌いなので紹介しませんが【舌】)もある世の中です。是非とも、ここは、消費者も落ち着いて良く考えておくべきではないでしょうか。 それと、IDNを使って集客しようとしている企業・団体さんも、よくよく考えておいたほうが良いですよね。

★ hioさんから多量の情報を頂きました。まことにありがとうございます。

追記終わり

2006/05/30追記2:ホワイトリストが自動的に戻っちゃう?

時間が超ないのでちょっとだけ。

Note that this list is automatically updated and if you edited it it'll be overwritten after some hours/days.

せっかくホワイトリストを修正しても、数時間ないし数日後には自動的に元通りに復帰するみたいなことが。

.com なサイトにおいて、IDN問題が微妙な気がしますので、以下、ポストして来ました。確かにキリル文字は禁止されているのかもしれません。しかし他にも偽装できそうなので。

http://my.opera.com/community/forums/topic.dml?id=140737

追記:つたないポストに対するOperaの中の人の説明を読むかぎり、現在の状況は仕様のようです。変更するつもりはなさそう(泣)