ADV200009 で説明されている DNS 増幅のガイダンス

適用対象: Windows Server 2016Windows Server version 1803

概要


要約

2020 年 5 月 20 日に、マイクロソフトはセキュリティ アドバイザリ ADV200009をリリースしました。 このアドバイザリは、イスラエルの研究者によって特定された DNS 増幅攻撃について説明します。 NXNSAttack と呼ばれるこの攻撃は、DNS ゾーンに対して権限を持つ Microsoft DNS サーバーや BIND サーバーを含む、任意の DNS サーバーを標的にする可能性があります。
 
企業イントラネット上に存在する DNS サーバーの場合、Microsoft はこの脆弱性による危険性を低いと評価しています。 ただし、エッジ ネットワーク上に存在する DNS サーバーは NXNSAttack に対して脆弱です。 エッジ ネットワーク上に存在する Windows Server 2016 以前の DNS サーバーは、応答レート制限 (RRL) をサポートする Windows Server 2016 以降のバージョンにアップグレードする必要があります。 RRL は、標的となっている DNS リゾルバーが DNS サーバーにクエリを実行する際の増幅効果を軽減します。

 

現象

DNS 増幅攻撃が行われると、影響を受けるサーバーで次の現象が発生することがあります。

  • DNS の CPU 使用率が上昇しています。
  • DNS の応答時間が長くなり、応答が停止する場合があります。
  • 認証サーバによって予期しない数の NXDOMAIN 応答が生成されます。
     

攻撃の概要

DNS サーバーは、これまで一連の攻撃に対して脆弱でした。 このため、DNS サーバーは通常、DMZ のロード バランサーとファイア ウォールの背後に配置されます。

この脆弱性を悪用するには、攻撃者は複数の DNS クライアントを持つ必要があります。 通常、ボットネット、攻撃を増幅できる数十または数百の DNS リゾルバーへのアクセス、特殊な攻撃者による DNS サーバー サービスなどがこれに該当します。

攻撃の鍵は、攻撃者が所有するドメインに対して権限を持つ、特別に構築された攻撃者の DNS サーバーです。 攻撃を成功させるには、DNS リゾルバーが攻撃者のドメインと DNS サーバーに到達する方法を知っている必要があります。 この組み合わせにより、再帰的なリゾルバーと被害者が権限を持っている DNS サーバーとの間に大量の通信が発生する場合があります。 結果は DDoS 攻撃です。

 

社内イントラネット上での MS DNS の脆弱性

内部のプライベート ドメインは、ルート ヒントとトップレベル ドメイン DNS サーバーを通じて解決できません。 ベスト プラクティスに従うと、Active Directory ドメインなどのプライベートな内部ドメインに対して権限を持つ DNS サーバーにインターネットから到達できません。
 
内部ドメインに対する内部ネットワークからの NXNSAttack は技術的には可能ですが、内部ネットワーク上の悪意のあるユーザーは、攻撃者ドメイン内の DNS サーバーを指す内部 DNS サーバーを構成するために管理者レベルのアクセス権を持っている必要があります。 このユーザーは、ネットワーク上に悪意のあるゾーンを作成し、社内ネットワーク上で NXNSAttack を実行できる特別な DNS サーバーを配置できることも必要です。 このレベルのアクセス権を持つユーザーは、一般的に、非常に目立つ DNS DDoS 攻撃を仕掛けてその存在を公表することよりもステルスを優先します。
 
 

エッジに接続する MS DNS の脆弱性

インターネット上の DNS リゾルバは、ルート ヒントと最上位ドメイン (TLD) サーバーを使用して、不明な DNS ドメインを解決します。 攻撃者は、このパブリック DNS システムを使用することで、インターネットに接続する DNS リゾルバーを使用して NXNSAttack の増幅を試みる可能性があります。 増幅ベクトルが検出されると、パブリック DNS ドメイン (被害者ドメイン) をホストする DNS サーバーに対するサービス拒否 (DDoS) 攻撃の一部として使用できます。

インターネットから発信された未承諾の受信 DNS クエリが許可されている場合、リゾルバーまたはフォワーダとして機能するエッジ DNS サーバーを攻撃の増幅ベクトルとして使用できます。 パブリック アクセスにより、悪意のある DNS クライアントは、全体的な増幅攻撃の一部としてリゾルバーを使用できます。

パブリック ドメインに対して権限のある DNS サーバーは、ルート ヒントと TLD DNS インフラストラクチャから再帰的なルックアップを行っているリゾルバーからの未承諾の着信 DNS トラフィックを許可する必要があります。 それ以外は、ドメインへのアクセスに失敗します。 これにより、すべてのパブリック ドメインの権限を持つ DNS サーバーが NXNSAttack の被害者になる可能性があります。 エッジに接続する Microsoft DNS サーバーは、WINDOWS Server 2016 以降のバージョンを実行して RRL サポートを受ける必要があります。

解決策


この問題を解決するには、適切なサーバーの種類に応じて次の方法を使用します。
 
イントラネットに接続する MS DNS サーバーの場合

このエクスプロイトのリスクは低いです。 内部 DNS サーバーを監視して、異常なトラフィックを検出します。 社内イントラネット上に存在する NXNSAttack を使用する内部攻撃者が検出された場合は無効にします。
 
エッジに接続する権限を持っている DNS サーバーの場合
 
Windows Server 2016 以降のバージョンの Microsoft DNS でサポートされている RRL を有効にします。 DNS リゾルバーで RRL を使用すると、最初の攻撃の増幅を最小限に抑えられます。 パブリック ドメインの権限のある DNS サーバーで RRL を使用すると、DNS リゾルバーに反映される増幅が減ります。 既定では、RRL は無効になっています。 RRL の詳細については、次の記事を参照してください。
 
 
SetDNSServerResponseRateLimiting PowerShell コマンドレットを実行し、既定値で RRL を有効にします。 RRL を有効にすると、正当な DNS クエリが調整されすぎるために失敗する場合は、 応答/秒 およびエラー/秒のパラメータの値を増分的に増やして、DNS サーバーが以前に失敗したクエリに応答します。

また、他のパラメータを使用すると、管理者が RRL 設定を管理しやすくなります。 これらの設定には、RRL 例外が含まれます。
 
詳細については、次の Microsoft Docs の記事を参照してください。

DNS ログと診断

よく寄せられる質問


Q1: ここで要約されている軽減策は、すべてのバージョンの Windows Server に適用されますか。

A1: いいえ。この情報は SQL Server 2012 または SQL Server 2012 R2 には適用されません。 これらのレガシー バージョンの Windows Server では、標的となっている DNS リゾルバーが DNS サーバーにクエリを実行したときに増幅効果を軽減する RRL 機能はサポートされていません。

Q2: Windows Server 2012 または Windows Server 2012 R2 を実行しているエッジ ネットワーク上に存在する DNS サーバーがある場合、何をすべきでしょうか。

A2: Windows Server 2012 または Windows Server 2012 R2 を実行しているエッジ ネットワーク上に存在する DNS サーバーは、RRLをサポートする Windows Server 2016 以降のバージョンにアップグレードする必要があります。 RRL は、標的となっている DNS リゾルバーが DNS サーバーにクエリを実行する際の増幅効果を軽減します。

Q3: RRL が正当な DNS クエリを失敗させる原因であるかどうかを判断する方法はありますか。

A3: RRL が LogOnly モードに構成されている場合 、DNS サーバーは RRL 計算をすべて実行します。 ただし、サーバーは、予防措置 (応答のドロップや切り捨てなど) を実行する代わりに、RRL が有効であるかのように潜在的なアクションをログに記録して、通常の応答を引き続き提供します。