WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

Anti-DNS Pinning について調べてみました

Open Tech Press で見つけた Google Desktop の脆弱性の記事に、 Anti-DNS Pinning なる言葉を見つけました。どうやら Web ブラウザを介した攻撃方法のひとつのようなのですが、恥ずかしながらまったくの初耳でしたので、少し調べてみました。これまたメモ代わりに記事にしておきます。日本語で解説があるのは以下のサイト様しか見つかりませんでしたので、基本的にそちらの情報をもとにしています。

http://www.jumperz.net/texts/anti_dns_pinning.html

基本的には罠な Web ページを用意して、その閲覧者を踏み台にして LAN 内のサーバーなどにアクセスしようというものみたいです。攻撃者は Web サーバーと、かなり特殊な DNS サーバーを用意する必要があります。プロセスとしてはだいたい以下のようになるのでしょうか。まったく自信はありませんが。

  1. 攻撃者の用意した Web サーバー(仮に www.evil.com とする)のページを開く。このとき、攻撃者の DNS サーバーは www.evil.com の問い合わせに対して普通に攻撃者の Web サーバーのアドレスを返す。
  2. www.evil.com の TTL が切れるまで待つ(TTL=0 ってのも普通にあるらしいですが^^;)。
  3. わざとエラーが発生するようなリクエストを www.evil.com に投げる。これにより Web ブラウザの DNS キャッシュがクリアされる(ブラウザの DNS キャッシュは TTL が切れても残っているらしいです)。
  4. www.evil.com のドメインになんらかのリクエストを投げる。
  5. 2 回目の DNS 問い合わせが発生するので、攻撃者の DNS サーバーは攻撃対象の IP アドレス( 192.168.0.1 とか)を返す。
  6. 以降は www.evil.com に対するリクエストがすべて攻撃対象のサーバーに送られるようになる。

要は、あるドメインに対応する IP アドレスを途中ですりかえることで、オリジンサーバー制限を回避しようということみたいです。 Flash を使うと HTTP 以外も投げられるので、かなり厄介とのこと。また、プロキシを介していると名前解決をプロキシ側が行うため、攻撃が容易になるかもしれません( 3 が不要になる上に、クライアント側での対処がより困難になる?)。

実際に実行するのはなかなか面倒そうですし、攻撃対象の IP アドレスがある程度は絞れている必要もありそうですが、 LAN 内にアクセスされてしまうのは怖いですね。デスクトップ PC で Web サーバーを起動するとかは、実はかなり危ないのかもしれません。とくに 80 や 8080 ポートはやめたほうがいいかも。

ところで、 Google Desktop は URL にハッシュっぽい文字列が含まれているので、単純に上記の方法だけではクラックできない気がします。元記事にも XSS を利用しているようなことが書いてあるので、いろいろと組み合わせ技なのかもしれません。恐ろしい。

結論としては、たとえ LAN 内のみ(もしくはローカルマシンのみ)に提供するサービスでも最低限の認証は施しておこう、という感じなんでしょうか。アップデートやパッチの適用もお忘れなく。ていうか、早く Google Desktop 修正してください(´Д`;

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles