おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

DNSキャッシュポイズニングについて勉強してみた。

はじめに

DNSTTLについて解説した記事にて、リプレイスの際はなるべくTTLを短く設定しようという内容を書きました。

oooomincrypto.hatenadiary.jp

しかしながら、中にはTTLを長く設定したがる企業さんもいます。 ということは...やはり長く設定したほうが好ましい理由もあるわけです。

TTLを長くした方が良い理由

stack overflowで調べてみるとどうやら3点ほどあるようです。

ja.stackoverflow.com

  1. DNSキャッシュポイズニングの成功確率が上がる。
  2. ページへのアクセスなどが遅くなる確率が上がる。
  3. DNSコンテンツサーバーの負荷が上がる

2と3については直感的にも分かるので今回は1に絞って内容を見ていきたいと思います。

DNSキャッシュポイズニング

以下の記事がとても分かりやすかったので引用します。

jprs.jp

要するに、キャッシュDNSサーバが権威DNSサーバへ問い合わせをし、そのレスポンスを返される前に悪い人(ハッカー等)が偽サイトのIPアドレスをキャッシュへ返します。 その結果、キャッシュDNSサーバには偽サイトのIPアドレスがキャッシュされることになるので、サイトを利用する個人が正しいFQDNを入力しても偽サイトへ飛ばされてしまう、ということが起きてしまうのですね。

TTLを長く設定しているとキャッシュDNSサーバが権威DNSサーバへ問い合わせを行う回数が減るため、DNSキャッシュポイズニングの被害に合う確率も減るということです。

おわりに

上記の理由でTTLの長さを短くしたがらない企業さんもいますが、とはいえTTLが長いと前回の記事で解説したようにリプレイスの際に困るので、その時だけ限定的に短くしてもらう、等の対処をしていくようにしましょう。