web-dev-qa-db-ja.com

DNSクエリソースを偽装できますか?

DNSサーバーに代わってDNS要求を送信した場合、DNSサーバーは偽装アドレスに応答しますか?

私が質問しているのは、DNSスプーフィングではなく、送信元アドレスのスプーフィングです。

1
AdrianL

これは、使用されている基本的なプロトコルによって異なります。

一般的な経験則として、接続を確立したり、ハンドシェイクを使用するネットワークプロトコルは、送信元アドレスのスプーフィングの影響を受けません。これは、送信元アドレスがスプーフィングされた場合、接続は成功しないためです(スプーフィングされた宛先は応答方法を知らないため)、接続は確立されず、最初のハンドシェイクパケットしか送信されません。いくつかの例:

  1. [〜#〜] ip [〜#〜] はハンドシェイクを使用せず、ソースのなりすましに対して脆弱です
  2. [〜#〜] tcp [〜#〜] (IPの上に構築される別名TCP/IP)はハンドシェイクを使用し、送信元アドレスのスプーフィングの影響を受けません
  3. [〜#〜] udp [〜#〜] はコネクションレス型プロトコルであり、送信元アドレスのなりすましに対して脆弱です。

「標準」DNSは、TCP/IP( h/t Patrick )またはUDPを使用できます。 通常デフォルトはUDPです。これはコネクションレスであり、ソースアドレスのなりすましに対して脆弱です。つまり、偽造されたアドレスを持つDNSサーバーに偽装されたUDPパケットを送信した場合、DNSサーバーは、偽装された送信元アドレスに応答を送信する必要があります。

ただし、基盤となるさまざまなプロトコルを使用する新しいDNS "バージョン"のロールアウトがあります。たとえば、DoH(DNS over HTTPS)は、TCP/IPの上に構築されたHTTPS自体を使用します。したがって、HTTPサーバーの送信元アドレスを偽装できないのと同じ理由で、DoHを使用して送信元アドレスをDNSサーバーに偽装することはできません。同様に、DNSの他の新しいバリアントがこのような攻撃に対して脆弱かどうかは、使用されている基になるプロトコルによって異なります。

0
Conor Mancone