こんにちは、サイオステクノロジーの金田です。
ネームサーバ (DNS) ソフト BIND の脆弱性、CVE-2012-5166 についての 情報 (ISC.org、日本語) において、「一時的な回避策: "minimal-responses"オプションを"yes"に設定することで回避可能です。」という情報が掲載されています。
minimal-responses のマニュアル*1記載内容は、以下のとおりで、
minimal-responses If yes, then when generating responses the server will only add records to the authority and additional data sections when they are required (e.g. delegations, negative responses). This may improve the performance of the server. The default is no.
「委任応答 (delegations) あるいは ネガティブ応答 (negative responses) といった応答で、必要に応じて、AUTHORITY データセクションと ADDITIONAL データセクションをレコードに追加する」、と読めます。
*1: BIND 9.5 Administrator Reference Manual から options Statement Definition and Usage または、/usr/share/doc/bind-9.8.2/arm/Bv9ARM.ch06.html
そこで今回は、BIND で "minimal-responses"オプションを"yes" と設定した際、どのような動作になるかをご紹介します。
検証環境のディストリビューションは CentOS/Scientific Linux 6.3。bind はディストリビューション同梱の bind-9.8.2-0.10.rc1.el6 を使用します。
比較のために、named.conf 内で options { minimal-responses no; } に設定しているサーバ (namesva)と、options { minimal-responses yes; } に設定しているサーバ (namesvb) を用意し、動作を比較します。なお、経路中に弊社のDNSサーバが挟まっています。
さて、実行結果を示す前に補足があります。いきなり $ dig example.com ANY を実行しても以下のようにはなりません。SOA、NS、A レコードなどの情報をあらかじめ要求・取得しておきます。
では、実行結果です。※RRSIG、DS レコードは省略しています。
$ dig @namesva example.com. ANY ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> @namesva example.com. ANY ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13461 ;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;example.com. IN ANY ;; ANSWER SECTION: example.com. 3584 IN SOA dns1.icann.org. hostmaster.icann.org. 2012081300 7200 3600 1209600 3600 example.com. 172778 IN TXT "v=spf1 -all" example.com. 11659 IN A 192.0.43.10 example.com. 164619 IN NS b.iana-servers.net. example.com. 164619 IN NS a.iana-servers.net. example.com. 164619 IN AAAA 2001:500:88:200::10 ;; AUTHORITY SECTION: example.com. 164619 IN NS b.iana-servers.net. example.com. 164619 IN NS a.iana-servers.net. ;; ADDITIONAL SECTION: b.iana-servers.net. 1661 IN A 199.43.133.53 a.iana-servers.net. 1661 IN A 199.43.132.53 ;; Query time: 0 msec ;; SERVER: 10.1.X.11#53(10.1.X.11) ;; WHEN: Wed Oct 24 14:08:28 2012 ;; MSG SIZE rcvd: 1026
$ dig @namesvb example.com. ANY ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> @namesvb example.com. ANY ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63623 ;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN ANY ;; ANSWER SECTION: example.com. 3584 IN SOA dns1.icann.org. hostmaster.icann.org. 2012081300 7200 3600 1209600 3600 example.com. 172778 IN TXT "v=spf1 -all" example.com. 11659 IN A 192.0.43.10 example.com. 164619 IN NS a.iana-servers.net. example.com. 164619 IN NS b.iana-servers.net. example.com. 164619 IN AAAA 2001:500:88:200::10 ;; Query time: 0 msec ;; SERVER: 10.1.X.12#53(10.1.X.12) ;; WHEN: Wed Oct 24 14:08:28 2012 ;; MSG SIZE rcvd: 966
namesva からは、AUTHORITY SECTION と ADDITIONAL SECTION も含め返ってきましたが、namesvb からは ANSWER SECTION のみが返ってきました。
この時のキャッシュ情報を比較してみます。(各サーバで "rndc dumpdb" 実行後、/var/named/data/cache_dump.db を参照。RRSIG などは省略しています。)
・namesva の cache_dump.db
; answer example.com. 3566 SOA dns1.icann.org. hostmaster.icann.org. ( 2012081300 7200 3600 1209600 3600) ; answer 164601 NS b.iana-servers.net. 164601 NS a.iana-servers.net. ; answer 11641 A 192.0.43.10 ; answer 172760 TXT "v=spf1 -all" ; answer 164601 AAAA 2001:500:88:200::10 ; answer a.iana-servers.net. 1643 A 199.43.132.53 ; answer b.iana-servers.net. 1643 A 199.43.133.53
・namesvb の cache_dump.db
; answer example.com. 3509 SOA dns1.icann.org. hostmaster.icann.org. ( 2012081300 7200 3600 1209600 3600) ; answer 164544 NS a.iana-servers.net. 164544 NS b.iana-servers.net. ; answer 11584 A 192.0.43.10 ; answer 172703 TXT "v=spf1 -all" ; answer 164544 AAAA 2001:500:88:200::10 ; answer a.iana-servers.net. 1586 A 199.43.132.53 ; answer b.iana-servers.net. 1586 A 199.43.133.53
TTL の値を除けば同じ情報をキャッシュしていることがわかります。
ただし、問い合わせドメインやクエリータイプによっては、 namesvb (options { minimal-responses yes; } と設定しているサーバ) でも AUTHORITY SECTION が含まれることもあります。
なお、日常的にはアプリケーションがリゾルバ経由で情報を取得することがほとんどと思われますが、ADDITIONAL セクションで情報が得られない場合は、リゾルバが必要な情報を取得しにいきますので、クライアントサイドでの影響はありません。
最後に、CVE-2012-5166 に対応したアップデートパッケージが、各ディストリビューションからリリースされていますので、以下に列挙します。
- Red Hat Enterprise Linux
- CentOS
- Scientific Lunux
- Ubuntu
- SUSE
(終)
0 件のコメント:
コメントを投稿