DNS関連技術情報のトップへ戻る

---------------------------------------------------------------------
■(緊急)BIND 9.xの脆弱性(システムリソースの過度な消費)について
  (CVE-2019-6477) - フルリゾルバー(キャッシュDNSサーバー)/
  権威DNSサーバーの双方が対象、バージョンアップを強く推奨 -

                                株式会社日本レジストリサービス(JPRS)
                                            初版作成 2019/11/21(Thu)
---------------------------------------------------------------------
▼概要

  BIND 9.xにおける実装上の不具合により、namedに対する外部からの攻撃が
  可能となる脆弱性が、開発元のISCから発表されました。本脆弱性により
  namedが動作するサーバーのシステムリソースが過度に消費され、結果とし
  てサービスの一時停止や品質低下などが発生する可能性があります。

  該当するBIND 9のパッケージを利用しているユーザーは、各ディストリビュー
  ションベンダーからリリースされる情報の収集やバージョンアップなど、適
  切な対応を速やかに取ることを強く推奨します。

▼詳細

▽本脆弱性の概要

  BIND 9.xには設定ファイル(通常はnamed.conf)により、namedに対するTCP
  での同時接続数を制限する機能があります。

  一方、BIND 9.11.0以降ではRFC 7766で推奨事項とされた、一つのTCP接続で
  複数のDNSトランザクションの並列処理を可能にするQuery Pipeliningが、
  TCP-pipeliningとしてサポートされています。当該BINDではTCP-pipelining
  のサポートが、デフォルトで有効に設定されています。

  BIND 9.xでは2019年4月に公開された脆弱性CVE-2018-5743への対応により、
  TCPでの同時接続数を計算する方法が変更されています。本脆弱性はこの変更
  の影響により、TCP-pipeliningを用いた複数のDNSトランザクションの並列処
  理において、TCPでの同時接続数の制限がバイパスされてしまうことに由来し
  ています。

  一つのTCP接続から複数のDNSクエリが並列で送られると、受け取ったクエリ
  ごとにシステムリソースが割り当てられます。多数のDNSクエリが並列で送ら
  れたTCP接続がクローズされた場合、それまでに割り当てられたシステムリソー
  スの解放処理が発生し、サーバーが一時的に応答しない状況に陥る可能性が
  あります。

  外部の攻撃者がこの状況を発生させることで、サービスの一時停止や品質低
  下などを発生させることが可能になります。

▽対象となるバージョン

  本脆弱性は、以下のバージョンのBIND 9が該当します。

  ・9.14系列:9.14.1~9.14.7
  ・9.12系列:9.12.4-P1~9.12.4-P2
  ・9.11系列:9.11.6-P1~9.11.12

  なお、ISCではBIND 9.11.0より前のバージョンにおいて、本脆弱性の評価を
  実施していません。

▽影響範囲

  ISCは、本脆弱性の深刻度(Severity)を「中(Medium)」と評価しています。

  JPRSでは、本脆弱性の内容と影響について検討した結果、DNSの運用に与える
  影響が大きいと判断し、緊急の注意喚起として情報提供しています。

  本脆弱性については、以下の脆弱性情報[*2]も併せてご参照ください。

  [*2] CVE - CVE-2019-6477
       <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6477>

▼一時的な回避策

  設定ファイル(通常はnamed.conf)に以下のオプションを追加して
  TCP-pipeliningを無効にした後、namedを再起動することで、本脆弱性を回避
  できます。

    keep-response-order { any; };

  rndcコマンドによるreloadやreconfigでは接続中のTCPクライアントの設定が
  リセットされないため、namedの再起動が必要になります。

▼解決策

  本脆弱性を修正したパッチバージョン(BIND 9.14.8/9.11.13)への更新、
  あるいは、各ディストリビューションベンダーからリリースされる更新の適
  用を、速やかに実施してください。

▽注意事項

  今回のパッチでは、サーバーにおけるメモリリークの問題が修正されます。
  TCP-pipeliningにより極めて多数のDNSクエリが送られた際に、そのTCP接続
  において一部の応答がドロップされる状況は、パッチの適用後も発生する可
  能性があります。

  当該サーバーでTCP-pipeliningによるサービスを提供する必要がない場合、
  「一時的な回避策」に記述したTCP-pipeliningの無効化をサーバーに適用す
  ることで、影響を最小限に抑えることが可能になります。

▼参考リンク

  以下に、ISCから発表されている情報へのリンクを記載します。また、各ディ
  ストリビューションベンダーからの情報や前述のCVEの情報なども確認の上、
  適切な対応を取ることを強く推奨します。

  - ISC

   セキュリティアドバイザリ

    CVE-2019-6477: TCP-pipelined queries can bypass tcp-clients limit
    <https://kb.isc.org/docs/cve-2019-6477>

   パッチバージョンの入手先

    BIND 9.14.8
    <https://ftp.isc.org/isc/bind9/9.14.8/bind-9.14.8.tar.gz>
    BIND 9.11.13
    <https://ftp.isc.org/isc/bind9/9.11.13/bind-9.11.13.tar.gz>

▼連絡先

  本文書に関するお問い合わせは <dnstech-info@jprs.co.jp> までご連絡くだ
  さい。

---------------------------------------------------------------------
▼更新履歴
  2019/11/21 11:00 初版作成


株式会社日本レジストリサービス Copyright©2001-2019 Japan Registry Services Co., Ltd.