CVE-2015-7547 はglibcの問題なのですが、getaddrinfo()の処理など名前解決処理に関する不具合で、緩和策にDNS関連のトピックも挙がっているのでひとまず整理しました。
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html で挙げられている緩和策部分を抽出すると、
- Mitigating factors for UDP include:
- A firewall that drops UDP DNS packets > 512 bytes.
- A local resolver (that drops non-compliant responses).
- Avoid dual A and AAAA queries (avoids buffer management error) e.g.
Do not use AF_UNSPEC.
- No use of `options edns0` in /etc/resolv.conf since EDNS0 allows
responses larger than 512 bytes and can lead to valid DNS responses
that overflow.
- No use of `RES_USE_EDNS0` or `RES_USE_DNSSEC` since they can both
lead to valid large EDNS0-based DNS responses that can overflow.
- Mitigating factors for TCP include:
- Limit all replies to 1024 bytes.
反射攻撃やDNSフラグメンテーションが話題になった時のパラメータと顔ぶれが似てますね。
クライアント機器(スタブリゾルバ)で設定すべきものとリゾルバサーバーで設定できるものとありますが、
ひとまずbindのnamed.conf設定で該当するのは以下となります。
edns-udp-size
max-udp-size
どちらもデフォルト値は4096 bytesです。RFC6891を汲んでの値と思われます。
IPv6やDNSSECの要請でサイズが大きくなってきたところに512という小さい値の要求はキビシイ内容ですね....
素直にglibcアップデートを適用しましょう。
glibcなのでOSレベルでのリブートを行うことになるでしょうね..
(適宜更新します