DNSレコードの書き換えによるRSSアグリゲータへの攻撃

RSSアグリゲータのような定期的にURIにアクセスするプログラムにおいて、不特定多数のユーザにそのURIを投稿することを許している場合、投稿されたURIのバリデーションを行わなければ、当然ながらセキュリティホールになる。なぜなら、URIが無関係な第三者のウェブサイトへの不正なアクセスを促すものであったり、あるいはURIのホスト名がローカルホストやプライベートIPアドレスに解決されたりする可能性があるからだ。

じゃあ、登録時にURIのバリデーションを行えばいいのかというと、そうでもない。なぜなら、攻撃者がURIに含まれるドメインのDNSレコードを書き換える権限を持っていた場合、登録後にDNSレコードを無関係なホストのIPアドレスやプライベートIPアドレスを指すように変更することができるからだ。実際、そこらのダイナミックDNSサービスを使えば、簡単にそういうことができてしまう。

そうしてみると、登録時だけでなく、実際にURIにアクセスする前にもバリデーションを行わなければならないということになる。つまり、URIのホスト名をIPアドレスに解決してみて、それが登録時と同一であることを確認した上で、アクセスするのがよい。

というようなことを、帰りの電車の中でつらつら考えていました。世の中のソフトウェアやらサービスで、そういう対策をしているのは何割くらいなんでしょうね。当然対策してると思ったら実はそうでもない、ってのが多そうで怖い。まあ実際問題として、検索エンジンのクローラのような芋づる式にURIをたどるソフトウェアでは対策のしようもないわけだけれども。


| | 2008-02-13 22:58

Comment

Commenting is closed for this article.