Skip to main content
QUICK REVIEW

[論文レビュー] NXNSAttack: Recursive DNS Inefficiencies and Vulnerabilities

Yehuda Afek, Anat Bremler-Barr|arXiv (Cornell University)|May 18, 2020
Network Security and Intrusion Detection参考文献 14被引用数 5
ひとこと要約

本論文は、再帰的レゾルバの非効率性を悪用して、制限のないリファラル応答によりパケットのストームを引き起こす、DNSにおける新しい脆弱性NXNSAttackを紹介する。この攻撃により、1620倍を超える増幅効果が達成される。著者らは、不要なプロアクティブなフェッチを防ぐための緩和アルゴリズムMaxFetch(k)を提案し、BINDに実装し、実世界のデータセットを用いて検証した。その結果、レゾルバのパフォーマンスに劣化は認められなかった。

ABSTRACT

This paper exposes a new vulnerability and introduces a corresponding attack, the NoneXistent Name Server Attack (NXNSAttack), that disrupts and may paralyze the DNS system, making it difficult or impossible for Internet users to access websites, web e-mail, online video chats, or any other online resource. The NXNSAttack generates a storm of packets between DNS resolvers and DNS authoritative name servers. The storm is produced by the response of resolvers to unrestricted referral response messages of authoritative name servers. The attack is significantly more destructive than NXDomain attacks (e.g., the Mirai attack): i) It reaches an amplification factor of more than 1620x on the number of packets exchanged by the recursive resolver. ii) In addition to the negative cache, the attack also saturates the 'NS' section of the resolver caches. To mitigate the attack impact, we propose an enhancement to the recursive resolver algorithm, MaxFetch(k), that prevents unnecessary proactive fetches. We implemented the MaxFetch(1) mitigation enhancement on a BIND resolver and tested it on real-world DNS query datasets. Our results show that MaxFetch(1) degrades neither the recursive resolver throughput nor its latency. Following the discovery of the attack, a responsible disclosure procedure was carried out, and several DNS vendors and public providers have issued a CVE and patched their systems.

研究の動機と目的

  • 再帰的レゾルバの動作に起因する、これまで未知のDNSシステムにおける脆弱性を特定・分析すること。
  • 権威のあるネームサーバーからの制限のないリファラル応答が、DNS解決を麻痺させる大規模なパケットストームを引き起こす仕組みを実証すること。
  • 不要なプロアクティブなDNSレコードフェッチを防ぐ、実用的なアルゴリズム的改善であるMaxFetch(k)を提案・評価すること。
  • MaxFetch(1)の実世界における有効性を、レゾルバのスループットやレイテンシに影響を与えることなく検証すること。
  • 主要なDNSプロバイダーやベンダーにおける、責任ある脆弱性開示とパッチ適用を促進すること。

提案手法

  • 攻撃は、再帰的レゾルバが、クエリされたドメインの権威のないリファラル応答に対しても、レコードをプロアクティブにフェッチする傾向を利用している。
  • NXNSAttackは、非存在ドメイン(NXDomain)の応答にNSレコードを含める形で、大量の応答を送信し、レゾルバが追加のクエリを開始させることをだます。
  • 増幅効果は、各リファラル応答が複数の下位クエリを引き起こし、元の攻撃トラフィックをはるかに超えるパケット量を発生させることに起因する。
  • MaxFetch(k)アルゴリズムは、1クエリあたりのプロアクティブフェッチをk件に制限し、MaxFetch(1)が提案されたプロダクション用の強化バージョンである。
  • 緩和策はBINDレゾルバに実装され、パフォーマンスへの影響を測定するために実世界のDNSクエリデータセットを用いて評価された。
  • 評価結果から、MaxFetch(1)がパケットストームを防止する一方で、生産環境に近い条件下で低レイテンシと高いスループットを維持していることが確認された。

実験結果

リサーチクエスチョン

  • RQ1どのようにすれば、見かけ上正当なリファラル応答を利用して、再帰的DNSレゾルバを攻撃し、大規模なパケット増幅を引き起こせるか?
  • RQ2DNS解決プロセスにおける再帰的レゾルバの非効率性によって、最大でどの程度の増幅因子を達成できるか?
  • RQ3負のキャッシュおよびNSセクションキャッシュを含む、既存のDNSキャッシュメカニズムが、こうした攻撃に対してどのように寄与するか、あるいは緩和するか?
  • RQ4再帰的レゾルバの論理に軽量なアルゴリズム的変更を加えることで、攻撃を防げるか、パフォーマンスに悪影響を与えないか?
  • RQ5MaxFetch(1)は実世界のDNSトラフィックワークロードにおいてどの程度有効か?また、レゾルバのスループットとレイテンシを保持できるか?

主な発見

  • NXNSAttackは、パケット量において1620倍を超える増幅効果を達成しており、従来のNXDomain攻撃よりも顕著に高い。
  • 攻撃は負のキャッシュおよびレゾルバキャッシュのNSセクションを飽和させ、リソース枯渇とサービス障害を引き起こす。
  • MaxFetch(1)緩和アルゴリズムは、実世界のDNSデータセットにおいて、パケットストームを防止する一方で、測定可能なレイテンシの増加やスループットの低下を引き起こさなかった。
  • 脆弱性は責任ある形で開示され、複数のDNSベンダーおよびパブリックDNSプロバイダーからCVE番号の割り当てとパッチが提供された。
  • 本研究は、スプーフィングや偽造パケットを用いなくても、再帰的レゾルバの設計上の欠陥がスケールして悪用可能であることを示した。
  • 結果として、レゾルバレベルでのアルゴリズム的ハードニングが、プロトコルレベルの増幅攻撃に対して効果的かつ効率的な防御であることが裏付けられた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。