web-dev-qa-db-ja.com

DNSサーバーの再帰クエリキャッシュポイズニングの弱点「バウンスDoS」

Tenable Nessusは、DNSサーバーの再帰クエリキャッシュポイズニングの弱点がある場合、ホストがUDP経由の再帰クエリを許可すると、ホストを使用して、別のネットワークまたはシステムに対するサービス拒否攻撃を「バウンス」できると述べています。

バウンスDoS攻撃とは何ですか?その中でUDPの重要性は何ですか?

3
user80761

基本的に、DNSキャッシュポイズニング(DNSスプーフィングとも呼ばれます)の構成要素は次のとおりです。

攻撃者は、インターネットドメインの偽のアドレスレコードをDNSに挿入しようとします。サーバーが偽のレコードを受け入れると、キャッシュがポイズニングされ、ドメインのアドレスに対する後続の要求は、攻撃者が制御するサーバーのアドレスで応答されます。偽のエントリがサーバーによってキャッシュされている限り(エントリには通常、数時間の存続時間(TTL)があります)、サブスクライバーのブラウザーまたは電子メールサーバーは、侵害されたDNSサーバーによって提供されるアドレスに自動的にアクセスします。

リンク で説明しています。

侵害されたDNSサーバーの重要度が高いほど、受信される要求の数が増え、それをフォワーダーとして使用する他のDNSサーバーのユーザーも影響を受けます。それはあなたが話している「バウンス」です。

そして、あなたの質問に答えるためにhow important is UDP?。 UDPがDNS要求に使用されるプロトコルであるのと同じくらい簡単です。 TCPはゾーン転送にのみ使用されます。したがって、すべての要求はUDPとして送信されます。そして、ご存じのように(私は推測します)、UDPパケットはTCPと同様の方法で機能しますが、すべてのエラーチェック機能をスローします。すべての往復通信と配信可能性は、低速化を保証します。そのため、UDPは通常、DoSを実行する方が高速であるため、DoSの実行に適しています。

ここに別の興味深い記事があります。 this では、DNSサーバーを使用してDDoS(分散型サービス拒否)攻撃の一部となる方法が非常によく説明されています。

1
OscarAkaElvis

「キャッシュポイズニング」という用語が、あなたの考えていることを意味しているかどうかはわかりません。これはDoSの形式ではなく、セキュリティ違反です。

UDPおよびDoS攻撃に関しては、UDPパケットのソースIPフィールドがISPによって常にフィルタリングされるとは限らないため、他のサーバーに代わってパケットを不正に送信することが可能な場合があります。これにより、あらゆる種類の増幅およびリフレクトDoS攻撃が可能になります。

現在最も危険なDoS攻撃の1つは、古典的なDNS増幅攻撃です。古典的なSYNフラッドのように、source IPフィールドが悪意を持って改ざんされたコンピューターでパケットが偽造されます。この攻撃では、パケットのソースはreportedが最終ターゲットになるため、サーバーからの応答は通常、攻撃者は、ターゲットに送られます。これにより、ネームサーバーはフラッドのサイズを倍増させ、消費される帯域幅を増加させ、攻撃の発信元を追跡することを非常に困難にします。

もちろん、これはDRDoS(分散型サービス拒否攻撃)攻撃に拡張できます。この攻撃では、複数の悪意のある接続が攻撃のターゲットに代わって複数のネームサーバーでリクエストを偽造し、ネームサーバーの帯域幅を増やして狙います。最後のターゲットで。

明確に言うと、特にDNSSEC拡張がインストールされていない場合、パケットの信頼性の低さは確かに多くの攻撃を引き起こしますが、UDPはDNSキャッシュを汚染するために必須ではありません

たとえば、ISPの悪意のある従業員(または問題のネームサーバーへの管理アクセス権を持つ人)がローカルの脆弱性を使用してメモリを破損する可能性があり、これはDNSを構成しますUDPにまったく依存しないキャッシュポイズニング攻撃。

TCPがUDPの代わりに使用されている場合でも、RAMのチップ内のどこかにエラーがあり、ソースと宛先の間にエラーが発生する可能性があります。反転するビット。stac koverflow.comからstac ioverflow.comへのビット反転クライアント側は、リクエストが潜在的に悪意のあるネームサーバーに転送されるようにします。たとえば、そのドメインを所有するかのように応答する可能性があります。これはbitsquattingと呼ばれ、特にUDPに依存しています; DNSは(少なくとも部分的に)TCPをサポートしています。

さらに、各パケットにはTTL(time-to-live))フィールドがあり、パケットがルーター間で宛先に送信されるときに各ルーターが更新します。この理由は、たとえば、ルートが存在しない場合にソースに通知できることなどです。残念ながら、これは各ホップでチェックサムを更新する必要があることを意味します。これは、各ホップのメモリ内のエラーがUDPチェックサムメカニズムによって識別されない可能性があることを意味します。 :(

DNSキャッシュポイズニング攻撃は確かに主要な懸念事項であることがわかりますが、質問の大部分に実際に関連していないことがわかるはずです。

0
autistic