BINDに関してのOperational Notification (DNSSEC鍵の削除による壊れたNSEC / NSEC3チェインと不要なRRSIGの生成)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面です。

11/30/2018(UTC)に、BINDに関して、Operational Notification (DNSSEC鍵の削除による壊れたNSEC / NSEC3チェインと不要なRRSIGの生成)が出ています。今回は、こちらの概要について簡単にまとめてみます。


情報

  • 公開日時: 2018/11/30(UTC)
  • プログラム: BIND
  • 影響するバージョン: 9.9.13- > 9.9.13-P1, 9.10.8 -> 9.10.8-P1, 9.11.4 -> 9.11.5, 9.12.2 -> 9.12.3, 9.13開発ブランチ中の9.13.1 -> 9.13.4

概要

詳しい内容は、一時情報源に目を通すことをお薦めします。

#4964のコード変更で、様々なシチュエーションでアクティブになっていないゾーンのDNS鍵を削除する際の二重署名を防止する機能を導入した際に、ゾーンの処理をする際に一部の移譲されたグルーRRset(リソースレコードセット)が、現在のゾーンのアクティブなZSK(ゾーン署名鍵)を使って生成されるRRSIGが必要と認識してしまうという問題を生み出してしまいました。

幾つかの(全てのケースではありませんが)、新しく署名されたRRsetはゾーンのNSEC/NSEC3チェインに追加されますが、不完全です。これはチェインが壊れる結果となり、ゾン中のレコードの、非存在証明の検証に影響があります。


インパクト

この影響を受けるバージョンのBINDはDNSSEC署名されたゾーンをメンテナンスする際にいくつかの関連した問題を引き起こします。注意:ここに書かれたエラーは署名のメンテナンス中に発生します。DNSSEC署名されたゾーンで署名を行っているサーバのみが直接影響を受けます。

  1. 不適切に署名されたグルーレコード: グルーレコードに対して生成された不要な署名がリゾルバの検証に問題を与えるべきではないと考えています(一部のDNSSEC検証チェッカーがこれらを問題としてハイライトするかもしれません)。BINDはこれらの特別な署名に注意を払わず、その他のリゾルバの真正性の検証と同じだと考えています。
  2. NSEC/NSEC3の破壊:幾つかの(全てではに)ケースでは不適切に署名されたグルーレコードはゾーンのNSEC/NSEC3チェインに追加することが出来、結果としてチェインを破壊します。任意の壊れたNSECまたはNSEC3チェインは、影響の有るゾーンに対してのネガティブレスポンスによるDNSSEC検証を失敗させる原因となります。例えば、完全に検証されたNXDOMAINレスポンス返答に変わって、リゾルバはクライアントに対してSERVFAILを返すかもしれません。
  3. NSEC3オプトアウトを用いている時の、委任状態の安全性証明の消失:NSEC3チェインの破壊のインパクトはNSEC3がOPTOUTと共に使われているサーバに対してより大きくなります。その場合、DNSSECで検証できないネガティブレスポンスは幾つかのDSリコードセットの非存在の証明も含みます。これはリゾルバの検証で、委任状態が検証されていない全てのサブドメインに対してSERVFAILレスポンスがクライアントに返るようになり、偽物として取り扱われる事になります。

回避方法

この問題に対するバグフィックスを含むBINDがリリースされるまでは、現在アクティブかどうかに関わらず、ゾーンにあるどのような鍵も削除しないことをお薦めします。鍵のローリング中の場合には、不要な鍵は無効にして、DNSKEYのRRsetからは削除しないことをお薦めします。


セキュリティ系連載案内


セミナー情報

2019/01/09 18:30-20:30で、「OSSライセンスMeetup Vol.1」を行います。

今回は技術評論社刊「OSSライセンスの教科書」著者・上田さんを迎えて刊行に至った理由・本著に込めた思い・見どころなどを語っていただき、後半ではテクニカルライター可知豊さんと共に上田さんと本書についてのディスカッションを行います。

https://sios.connpass.com/event/104422/がプログラム内容と申し込みの詳細になります。奮ってご参加下さい。

タイトルとURLをコピーしました