---------------------------------------------------------------------
■(緊急)キャッシュポイズニング攻撃の危険性増加に伴う
DNSサーバーの設定再確認について(2014年4月15日公開)
~問い合わせUDPポートのランダム化の速やかな確認・対応を強く推奨~
株式会社日本レジストリサービス(JPRS)
初版作成 2014/04/15(Tue)
最終更新 2014/05/30(Fri)
(対策に関するDNS運用者向け文書へのリンクを追加)
---------------------------------------------------------------------
▼最近の状況
最近、日本の大手ISPにおいてカミンスキー型攻撃手法によるものと考えら
れるキャッシュDNSサーバーへのアクセスが増加している旨、JPRSに報告が
ありました。
JPRSにおいてJP DNSサーバーへの最近の問い合わせ状況を改めて分析したと
ころ、問い合わせUDPポートのランダム化(以下、ソースポートランダマイ
ゼーションと呼びます)が有効にされていないと考えられるキャッシュDNS
サーバーの数は微減傾向にあるものの、問い合わせ状況が判定できたIPアド
レス数のうち(*1)、依然として約10%程度を占めていることが判明しまし
た(*2)。
(*1)ソースポートランダマイゼーションの状況を判定するためには、その
IPアドレスからのDNS問い合わせが一定数存在している必要があります。
(*2)ソースポートランダマイゼーション状況の推移(2006年4月~2014年4月)
<http://jprs.jp/tech/security/2014-04-15-portrandomization-status.pdf>
Transition of source port randomization status (Apr-2006 to Apr-2014)
<http://jprs.jp/tech/security/2014-04-15-portrandomization-status-e.pdf>
▼本件の背景
偽の応答を外部から注入することで利用者のアクセスを偽サイトに誘導し、
フィッシングや電子メールの盗難などを図る「キャッシュポイズニング攻撃」
はDNSに対する有力な攻撃手法の一つであり、古くから知られていました。
その後、従来は不可能であった連続攻撃を可能にすることでキャッシュポイ
ズニング攻撃の効率を高める「カミンスキー型攻撃手法」が2008年7月に発
表され、攻撃に対するリスクが飛躍的に高まりました。
ネットワークやコンピューターのパフォーマンスは日々向上しています。そ
れに伴い、連続攻撃が可能となったキャッシュポイズニング攻撃のリスクも、
高まってきています(*3)。そのため、キャッシュポイズニング攻撃そのも
のの成功率を下げるための対策が重要となります。
(*3)目標に対する、単位時間あたりの攻撃可能回数が増加します。
▼重要な対策:ソースポートランダマイゼーション
攻撃の成功率を下げるための有効な対策の一つとして、ソースポートランダ
マイゼーションが各種DNSソフトウェアに実装されています。
ソースポートランダマイゼーションを有効にすることで、攻撃成功の確率を
設定前の約1/65,000程度に下げることができます(*4)。カミンスキー型攻
撃手法の発表後にリリースされたほとんどのキャッシュDNSサーバーには、
ソースポートランダマイゼーションが標準実装されています。
(*4)監視の強化や実装の工夫など他の対策と併用することで、より効果的な
防御が可能になります。
キャッシュポイズニング攻撃では、JPドメイン名を含むすべてのドメイン名、
すべてのリソースレコードが標的となり得ます。そのため、キャッシュDNS
サーバーにおけるソースポートランダマイゼーションはDNSリフレクター攻
撃防止のためのアクセスコントロールと並ぶ、必須の設定事項となっていま
す(*5)。
(*5)DNSリフレクター攻撃の詳細については、以下の資料をご参照ください。
■技術解説:「DNS Reflector Attacks(DNSリフレクター攻撃)」について
<http://jprs.jp/tech/notice/2013-04-18-reflector-attacks.html>
▼対策を怠った場合の影響
ソースポートランダマイゼーションが有効にされていないキャッシュDNSサー
バーはキャッシュポイズニング攻撃に対しきわめて脆弱であり、数秒~数分
程度の試行で攻撃を容易に成功させることができるため、きわめて危険な状
態です。
▼推奨事項
JPRSでは、すべてのキャッシュDNSサーバーにおいて以下の2点を確認・実施
することを、改めて強く推奨します。
1)ソースポートランダマイゼーションの設定の確認
2)設定が有効でなかった場合の速やかな対応
設定確認・対応の方法については下記「設定の確認と必要な対応」と「特に
注意すべき点」をご参照ください。
(2014年4月30日追加)
JPRSでは、DNSサーバーの運用者がとるべき対策についてまとめた、以下
の一連の技術資料の作成・公開を進めていく予定です。
キャッシュポイズニング攻撃対策
- キャッシュDNSサーバー運用者向け―基本対策編
<http://jprs.jp/tech/security/2014-04-30-poisoning-countermeasure-resolver-1.pdf>
(2014年4月30日公開、最終更新日:2014年4月30日)
- 権威DNSサーバー運用者向け―基本対策編
<http://jprs.jp/tech/security/2014-05-30-poisoning-countermeasure-auth-1.pdf>
(2014年5月30日公開、最終更新日:2014年5月30日)
- キャッシュDNSサーバー運用者向け―応用対策編
(2014年6月公開予定)
- 権威DNSサーバー運用者向け―応用対策編
(2014年6月公開予定)
▼設定の確認と必要な対応
DNS-OARCが、設定確認のためのWebページを提供しています。
Web-based DNS Randomness Test
<http://entropy.dns-oarc.net/>
設定確認をするキャッシュDNSサーバーを利用しているDNSクライアント
(PCなど)から上記サイトにアクセスし、ページ中の「Test My DNS」をク
リックすることで、使用中のキャッシュDNSサーバーの状況を確認できます。
確認結果のすべての項目が「GREAT」と表示されている場合、ソースポート
ランダマイゼーションが有効になっていることを示しています。
もし、「POOR」あるいは「GOOD(*6)」と表示されている項目がある場合、
それぞれの項目に応じたキャッシュDNSサーバーやネットワーク機器のバー
ジョンアップ・設定修正などの対策が必要になります。
(*6)現状を考慮した場合「GOOD」と表示された場合も十分ではなく、適切な
対策が必要になります。
▼特に注意すべき点
1. 設定ファイル(named.conf)の不適切な内容
現在リリースされているBIND 9では、ソースポートランダマイゼーションが
標準でサポートされています。しかし、BIND 9では設定ファイル(通常は
named.conf)において、ソースポートランダマイゼーションが無効に設定さ
れてしまっている場合があります。
具体的には、named.confにおいて下記の設定例のように、
1)query-source/query-source-v6が設定されている行が存在する
2)かつ、portによりポート番号が明示的に指定されている
場合、該当する行を削除し、namedを再起動する必要があります。
(不適切な設定例)
query-source address * port 53;
query-source-v6 address * port 53;
なお、設定を削除した場合組織内のファイアーウォールなど、ネットワーク
機器の設定変更も併せて必要になる場合があります。
2. ネットワーク機器における不適切なポートの再変換
ファイアーウォールやルーターなど、ネットワーク機器におけるネットワー
クアドレス変換(NAT)機能の不適切な実装により、キャッシュDNSサーバー
で実施したソースポートランダマイゼーションが無効にされてしまう場合が
あることが判明しています。
この場合、該当するネットワーク機器の設定変更やファームウェアの更新、
リプレースなどの対応が必要になります。各機器における具体的な対応方法
については、各ネットワーク機器のベンダーにお問い合わせください。
▼DNSSECとの関係
キャッシュポイズニング攻撃を検知するための手法として、DNSSECの導入が
有効です。しかし、DNSSECではキャッシュポイズニング攻撃による意図的な
サービス不能(DoS)攻撃(*7)の防止は困難であり、DNSSECを導入済であ
る場合も、ソースポートランダマイゼーションの設定が必須事項となります。
(*7)キャッシュポイズニング攻撃によりDNSSEC検証エラーを発生させ、利用
者のアクセスを妨害すること。
▼参考リンク
- JPCERT/CC
DNS キャッシュポイズニング攻撃に関する注意喚起
<https://www.jpcert.or.jp/at/2014/at140016.html>
[続報] 複数の DNS サーバ製品における
キャッシュポイズニングの脆弱性に関する注意喚起
<https://www.jpcert.or.jp/at/2008/at080014.html>
- JPRS
キャッシュポイズニング攻撃対策:
キャッシュDNSサーバー運用者向け―基本対策編
<http://jprs.jp/tech/security/2014-04-30-poisoning-countermeasure-resolver-1.pdf>
権威DNSサーバー運用者向け―基本対策編
<http://jprs.jp/tech/security/2014-05-30-poisoning-countermeasure-auth-1.pdf>
ソースポートランダマイゼーション状況の推移(2006年4月~2014年4月)
<http://jprs.jp/tech/security/2014-04-15-portrandomization-status.pdf>
Transition of source port randomization status (Apr-2006 to Apr-2014)
<http://jprs.jp/tech/security/2014-04-15-portrandomization-status-e.pdf>
(上記グラフの英語版)
複数のDNSソフトウェアにおけるキャッシュポイズニングの脆弱性について
<http://jprs.jp/tech/security/multiple-dns-vuln-cache-poisoning.html>
新たなるDNSキャッシュポイズニングの脅威
~カミンスキー・アタックの出現~
<http://jprs.jp/related-info/guide/009.pdf>
▼連絡先
本文書に関するお問い合わせは <dnstech-info@jprs.jp> までご連絡ください。
---------------------------------------------------------------------
▼更新履歴
2014/04/15 13:00 初版作成
2014/04/30 15:00 DNS運用者向け技術文書の公開に関する記述を追加
2014/05/30 15:00 DNS運用者向け技術文書の公開に関する記述を追加
株式会社日本レジストリサービス Copyright©2001-2024 Japan Registry Services Co., Ltd.