水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > クラウド時代はDNS Pinningが落とし穴になる

クラウド時代はDNS Pinningが落とし穴になる

2011年8月29日(月曜日)

クラウド時代はDNS Pinningが落とし穴になる

公開: 2011年9月3日19時50分頃

モバツイ (www.movatwi.jp)の作者えふしんさんと、Twitterでこんなやりとりをしました。

これは盲点でした……。

OperaやIEなどは、DNSのTTLが短く設定されていても無視してキャッシュし続ける事があります。これはDNSの負荷を減らすというだけはでなく、セキュリティ上の意味もあり、「DNS Pinning」と呼ばれています。その必要性については、金床さんの以下の解説が分かりやすくまとまっていると思います。

要するに、DNS Rebindingの攻撃を防ぐために必要だということです。DNS Rebindingでは、攻撃者が自分のドメインを自分のサーバに向けた後、DNSのレコードを変更して自分のドメインを攻撃対象のサーバに向けます。すると同一ドメインと見なされ、攻撃者のドメインに置かれていたスクリプトから内容を読み取るようなことが可能になります。DNS Pinningが行われていると、攻撃者がDNSを変更してもその変更がスルーされてしまうため、攻撃が成立しなくなります。

というわけなのですが、攻撃者ではない人が、実際に自分のサーバのIPアドレスが変更になるのでDNSのレコードを変更する、ということはあり得ます。その場合にDNS Pinningが働くと、変更先のサーバに正しくアクセスできないということになります。さらに、変更元のIPアドレスが別のサーバに割り当てられてしまうと、その別のサーバにアクセスしてしまい、しかもCookieなども送出してしまうことになります。これは非常にまずいわけで、DNS Pinningが裏目に出る例だと言えるでしょう。

昔は、サーバのIPアドレスが頻繁に変わるということはあまり考えられませんでした。個人のサーバがDynamic DNSで運用されているということはありましたが、商用サービスのIPアドレスが全く別のサーバに割り当てられるなどということは、ほとんどなかったと言って良いでしょう。

ところが最近では、商用サービスがクラウド上で運用されるケースが増えてきました。クラウドの大きな特長のひとつは、サーバを簡単に追加したり減らしたりできるということです。これが、IPアドレスが別の人に使われるというリスクに繋がってくるわけですね。

DNS Pinningをやめるというわけにもいきませんし、どちらかというと、IPアドレスが別の人に使われる可能性があるということ自体が問題であるように思います。そのような環境で、認証を伴うような重要なサービスを運用するのはリスクがあると言わざるを得ないでしょう。

これは、「クラウドを使うな」というわけではありません。クラウドサービスの全てでIPアドレスがころころ変わるわけでもありませんし、IPアドレスが変わるにしても、放棄されたIPアドレスをしばらくの間 (たとえば24時間) 他人に使わせないようにする、という対応も理論上は可能なはずです。

クラウド上で重要なサービスを運用する場合には、IPアドレスがどのように扱われるのか、事前に確認しておいた方が良いと思います。

※IPv6になると、こういう悩みもなくなってくるのでしょうかね……?

関連する話題: セキュリティ / クラウド / DNS

最近の日記

関わった本など