質問はタイトルにあります。 DNSスプーフィングについて読んでいます。機密と見なすWebサイトのIPアドレスを保存し、疑わしい接続を使用しているときにIPアドレスを入力するだけでDNSスプーフィング攻撃を防ぐことができた場合はどうなりますか?うまくいきますか?なぜか、なぜそうでないのか?
これは多くのウェブサイトでは機能しません。多くのウェブサイトは virtual hosts を使用し、単一のウェブサーバーから複数のドメインのウェブサイトをホストします。この場合、あなたがどのサイトから来ているのかを彼らが知る唯一の方法は、ブラウザがHTTPリクエストのHost
ヘッダーで送信するホスト名によってです。
これを行う方法は、これらのエントリを/etc/hosts
(またはWindowsでは\Windows\System32\drivers\etc\hosts
)ファイルに具体的に追加し、通常どおりドメインを入力し続けることです。
残念ながら、これでも実用的ではありません。 DNSベースのロードバランシングやロケーションベースのDNS結果(旅行する場合)などの機能を無効にするだけでなく、サイトでIPアドレスが変更された場合に攻撃を仕掛けることもできます。大規模なサイトが放棄した可能性のあるIPアドレスを取得しようとすることを攻撃者が検討することは不当なことではありません。
TL; DR this
_foo.com
_に_11.11.11.11
_というIPアドレスがあるとします。
DNSスプーフィングでは、_foo.com
_が_11.11.11.11
_に正しく解決されないことを心配します。これは、攻撃者があなたをだましてIPアドレスを_22.22.22.22
_であると考えさせたためです。この場合、問題は、所有しているドメインレコードが本当に必要なIPアドレスをポイントしていないことです。
ここで、常に_11.11.11.11
_を入力して、DNSのなりすましの可能性を回避するとします。 Nowが_foo.com
_を_11.11.11.11
_から_33.33.33.33
_に移動movedしたと仮定します。突然、反対の問題が発生します。所有しているIPアドレスが目的のドメインに対応していません。 (この場合、特定のホストにIP _11.11.11.11
_を再割り当てする権限を持つ誰かに攻撃される可能性があります。)これは、を使用して解決できる管理上の問題です。 DNS。ホストがIPアドレスを変更した場合、DNSレコードを確認しない限り、ホストが移動した場所をどのようにして発見できますか?
もう1つの(軽微な)問題は、Webサーバーが、到達しようとしているホスト名を指定する Host
ヘッダーを取得することを期待していることです。 Webサーバーは単一のIPアドレスで複数のドメインをホストする場合があります(たとえば、_11.11.11.11
_は_foo.com
_と_bar.com
_の両方に応答する可能性があり、本当に必要なドメインを知る必要があります)。アドレスバーに_11.11.11.11
_と入力すると、ブラウザは_Host: 11.11.11.11
_ではなく_Host: foo.com
_が必要であると表示します。これは、HTTPフィールドを手動で指定する(またはそれを行うブラウザ拡張を取得/作成する)ことで克服できます。
もう1つの問題は、ほとんどの最新のWebサイトが他のホスト(CNDまたはWebサイトの所有者が制御するサーバーからのJSライブラリ)にリソースを要求し、ほとんどの場合、URIにDNS名が含まれていることです。 IPアドレスと、目的のWebサイトが必要とするすべてのリソースの適切なHost
ヘッダーを把握し、リンクを自動的に解決するためにブラウザーを停止する必要があります。
言われているすべてにエコーします。
この問題に逆向きに取り組んでいると思います。 DNSレコードがスプーフィングされている場合に、サイトを1つずつ上書きしようとするのはなぜですか?信頼できる安全なopenDNSプロバイダーを見つけ、接続しているネットワークが提供したいサーバーではなく、常にそのサーバーにDNSを解決するようにマシンを設定します。アルミ箔の別の層を追加するには、EC2または同様のものに独自のDNSサーバーをセットアップし、常にそれに解決することができます。
どういうわけかホストIPアドレスを知っていてDNSに依存したくない場合は、それをホストファイルに追加するだけです。これらのDNS設定を維持するために多くのマシンを使用している場合、これらすべてのファイルを最新の状態に保つ方法が必要になります。 XCopyは、DNSの再発明を除けば、このためによく機能します...
ホストがVPN経由で常時接続されていない場合、複数のホストファイルを維持する別の方法は、すべてのゾーンに対してDNSSecを有効にして独自のプライベートDNSサーバーをセットアップすることです。このアプローチに従う場合は、再帰的な名前解決を無効にして、誤ってキャッシュを汚染したり、誤った情報を提供した誰かからの「ハッキングされた」DNSエントリを保存したりしないようにする必要があります。
Webサイトがハッキングされる可能性があり一般的である(SQLインジェクションなど)ため、これらのすべてのソリューションに対してアドバイスします。一部のWebマスターはDNS更新を使用して問題に対処し、PCは更新を取得しません。
次に、「気にしない」ドメインの再帰クエリを条件付きで転送することで、共通の中間点を見つけることができます。