-
サーバ構築のデージーネットTOP
-
OSS情報
-
OSS比較
-
DNSの新しい攻撃手法NXNSAttack
-
サーバ構築のデージーネットTOP
-
OSS情報
-
DNSサーバ
-
DNSの新しい攻撃手法NXNSAttack
DNSの新しい攻撃手法NXNSAttack
2020年5月にイスラエルのテルアビブ大学の研究者らが、DNSサービスへの新しい攻撃手法を報告しました。この攻撃手法は、いわゆるDoS/DDosに類する攻撃です。具体的には、DNSサーバに多量のパケットを送信して、DNSサーバやネットワークリソースを枯渇させます。過去にもDNSサービスへのDoS/DDoS攻撃は、いくつか存在しました。しかしこのNXNSAttackは、攻撃の容易さ、また効率の高さから危険視されています。
NXNSAttackの仕組み
NXNSAttackは、DNSサービスの委任と呼ばれる機能を悪用したものです。委任の仕組みからNXNSAttackのメカニズムまでを解説します。
ドメインの委任
DNSサービスは、世界中に分散しています。その分散の仕組みの根幹を成すのが委任の機能です。前提としてドメインは階層構造になっています。上位のルートDNSと呼ばれるDNSサーバから、下位のcom.やjp.などのドメインに管理権限が委任されています。さらにcom.のDNSサーバから、example.comなどが委任されています。階層構造になっていることで、複数のDNSサーバでドメインを管理することが可能になり、巨大なインターネットの通信を支えることができています。
委任のメカニズム
NXNSAttackを理解するためには、委任と呼ばれる機能が、どのように動作するのかを知る必要があります。例えば、example.comのIPアドレスを知りたい場合、クライアントはルートDNSから順にexample.comについて問い合わせます。その途中経過で、com.ドメインの権威DNSサーバは、「a.gtld-servers.net.」などあることがわかります。
さて、Linux等で使われるdigコマンドで、「a.gtld-servers.net.」にexample.comのIPアドレスを尋ねると、次のように答えが返ってきます。
$ dig @a.gtld-servers.com example.com A
(中略)
;; QUESTION SECTION:
;example.com. IN A
;; AUTHORITY SECTION:
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
この応答の中で、委任の情報を指すのがAUTHORITY SECTIONです。AUTHORITY SECTIONは、example.comのNSレコード、つまり権威DNSサーバの名前を示しています。この情報からexample.comのIPアドレスは、「a.iana-servers.net.」などに問い合わせれば良いことがわかります。
ただこの時点では、「a.iana-servers.net.」のIPアドレスがわかりません。インターネットの通信には、IPアドレスが不可欠です。つまり「a.iana-servers.net.」のIPアドレスも、ルートDNSから順を追って問い合わせを調べる必要があります。NXNSAttackは、この動作を悪用したものです。
委任の特徴
NXNSAttackは、委任の仕組みの次のような欠点をついた攻撃です。
- クライアントは、委任情報を必ず信用して問い合わせを行う
- 委任元は、委任先の了承無く委任情報を登録することができる
- 委任情報(NSレコード)を、複数(大量)に登録することができる
NXNSAttackの動作
NXNSAttackは、次のようなシナリオで行われます。
- 攻撃者は攻撃用のドメインを取得・権威DNSサーバを用意する
- 攻撃用の権威DNSサーバに、大量のNSレコードを登録する
- NSレコードには、攻撃ターゲットになるドメインのレコードを登録する(委任設定)
- 攻撃者は、攻撃用ドメインの名前解決を行う
- 名前解決の処理で大量のNSレコードが返却される
- 大量のNSレコードのIPアドレスを調べるために、大量の問い合わせが発生する
- 問い合わせ先に指定されたDNSサーバが過負荷状態に陥る
NXNSAttackの影響
権威DNSサーバへの影響
NXNSAttackで、攻撃対象に指定された権威DNSサーバは、大量のNSレコードのクエリを受け取って、CPUやメモリリソースの枯渇が発生する恐れがあります。
キャッシュDNSサーバへの影響
NXNSAttackは、権威DNSへの問い合わせにキャッシュDNSを利用します。キャッシュDNSも大量のNSレコードを処理するため、CPUやメモリリソースの枯渇により、サービス停止が発生する恐れがあります。
周辺への影響
攻撃を受けた場合、大量のDNSパケットがネットワーク上を通るため、ネットワーク帯域の専有、ネットワーク機器の過負荷により、通信の速度低下などの影響がでる可能性があります。
NXNSAttackの対策
キャッシュDNSの対策
多くのキャッシュDNSサーバは、すでに対策が施されたバージョンがリソースされています。各ソフトウェアのアナウンスに従って、アップデートを行うことで、キャッシュDNSへの影響を抑えることができます。
現状、キャッシュDNSの機能を持つサーバソフトウェアの対策状況は次の通りです。
- BIND:9.11.19/9.14.12/9.16.3で対策済み
- Unbound:1.10.1で対策済み
- PowerDNS(Recursor):4.1.16/4.2.2/4.3.1のバージョンで対策済み
「BINDに替わるDNSサーバ〜PowerDNS〜」へ
権威DNSの対策
NXNSAttackはDNS仕組みを悪用しているため、権威DNS側では残念ながら根本的な対策方法はありません。ただ、攻撃の緩和策としてレートリミットという仕組みがあります。
レートリミットは、大量のクエリを受信した場合に、大量のクエリを送信しているクライアントからのアクセスを遮断したり、応答を遅延させてサービス停止を防ぐ方法です。
ただし、単純なレートリミットでは、攻撃ではない大量の通信まで遮断してしまう恐れがあります。そのため、クエリの内容から攻撃と思われるものへの応答を、選択的に拒否・遅延させるレスポンスレートリミット(Response Rate Limit:RRL)と呼ばれるレートリミットが、ベターな対策と言われています。
レスポンスレートリミットに対応する権威DNSサーバソフトウェアは次の通りです。
参考URL
http://www.nxnsattack.com
OSSのDNSサーバ構築
- 権威DNSサーバ
- ここでは、BIND、PowerDNS、NSD、KnotDNSについて紹介します。
- キャッシュDNSサーバ
- ここでは、bind、unbound、Recursor、DJBDNS、dnsdistについて紹介します。