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 サーバーを用意する必要があります。プロセスとしてはだいたい以下のようになるのでしょうか。まったく自信はありませんが。
- 攻撃者の用意した Web サーバー(仮に www.evil.com とする)のページを開く。このとき、攻撃者の DNS サーバーは www.evil.com の問い合わせに対して普通に攻撃者の Web サーバーのアドレスを返す。
- www.evil.com の TTL が切れるまで待つ(TTL=0 ってのも普通にあるらしいですが^^;)。
- わざとエラーが発生するようなリクエストを www.evil.com に投げる。これにより Web ブラウザの DNS キャッシュがクリアされる(ブラウザの DNS キャッシュは TTL が切れても残っているらしいです)。
- www.evil.com のドメインになんらかのリクエストを投げる。
- 2 回目の DNS 問い合わせが発生するので、攻撃者の DNS サーバーは攻撃対象の IP アドレス( 192.168.0.1 とか)を返す。
- 以降は www.evil.com に対するリクエストがすべて攻撃対象のサーバーに送られるようになる。
要は、あるドメインに対応する IP アドレスを途中ですりかえることで、オリジンサーバー制限を回避しようということみたいです。 Flash を使うと HTTP 以外も投げられるので、かなり厄介とのこと。また、プロキシを介していると名前解決をプロキシ側が行うため、攻撃が容易になるかもしれません( 3 が不要になる上に、クライアント側での対処がより困難になる?)。
実際に実行するのはなかなか面倒そうですし、攻撃対象の IP アドレスがある程度は絞れている必要もありそうですが、 LAN 内にアクセスされてしまうのは怖いですね。デスクトップ PC で Web サーバーを起動するとかは、実はかなり危ないのかもしれません。とくに 80 や 8080 ポートはやめたほうがいいかも。
ところで、 Google Desktop は URL にハッシュっぽい文字列が含まれているので、単純に上記の方法だけではクラックできない気がします。元記事にも XSS を利用しているようなことが書いてあるので、いろいろと組み合わせ技なのかもしれません。恐ろしい。
結論としては、たとえ LAN 内のみ(もしくはローカルマシンのみ)に提供するサービスでも最低限の認証は施しておこう、という感じなんでしょうか。アップデートやパッチの適用もお忘れなく。ていうか、早く Google Desktop 修正してください(´Д`;
詳しくはこちらの記事をどうぞ!
この記事にコメントする