2016.09.30(金)

BIND 9 の TKEY 機能における実装不備により遠隔からサービス不能にされてしまう脆弱性(Scan Tech Report)

脆弱性と脅威 エクスプロイト

1.概要
DNS サーバを構築するためのソフトウェアである BIND 9 に遠隔からサービスを不能とすることが可能となる脆弱性が報告されています。当該脆弱性を利用して攻撃者に DNS サーバの機能を停止され偽の DNS サーバを設立されることにより、攻撃対象者は悪意のある Web コンテンツに誘導されてしまう可能性があります。


2.深刻度(CVSS)
7.8
https://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2015-5477&vector=(AV:N/AC:L/Au:N/C:N/I:N/A:C)


3.影響を受けるソフトウェア※1
以下のバージョンの BIND が当該脆弱性の影響を受ける可能性があります。

- 9.1.0 から 9.8.x 系の全てのバージョン
- 9.9.0 から 9.9.7-P1
- 9.10.0 から 9.10.2-P2

ただし、以上に示したバージョンのソフトウェアでも、OS のベンダが独自にパッチを適用している場合があるため、パッチが場合は当該脆弱性の影響を受けません。


4.解説
DNS サーバを構成するソフトウェアである BIND のバージョン 9 系に、遠隔からサービスを停止させることが可能な脆弱性が報告されています。

BIND 9 では、マスタサーバがスレーブサーバの間でアップデート情報を転送する際に、攻撃者による中間者攻撃などを防ぐために、TSIG 機能というものが存在します。TSIG 機能では、暗号鍵やパスワードによる認証機能を提供しています。当該機能では、サーバとクライアントの間でパスワードを安全に交換するために、TKEY 機能により公開鍵を用いてパスワードの交換を行います。
脆弱性は、TKEY 機能を構成するプログラム lib/dns/tkey.c に含まれる dns_tkey_processquery() メソッドの dns_message_findname() 関数内での変数処理に不備があるため生じています。

DNS プロトコルでは、どのような情報が要求されているかをサーバに伝えるためにクエリレコードが用いられます。攻撃では、クエリレコードのパラメータの内 Name パラメータと Type パラメータが用いられます。Name パラメータは主にドメイン名、Type パラメータにはどのような情報 (MX レコードなど) が要求されているかを指定します。

クエリレコードで宣言された情報が不十分である場合は追加レコードが参照されます。追加レコードでは、クエリレコードで指定された Name パラメータと Type パラメータが一致する情報を検索し、情報の追加を行います。BIND が提供する TKEY 機能に対するクエリでは、lib/dns/tkey.c のメソッドである dns_tkey_processquery() を用いて追加レコードの検索を行います。当該脆弱性は dns_tkey_processquery() メソッドの dns_message_findname() 関数における name 変数の処理の不備に起因しています。

追加レコードで必要な情報が検索できなかった場合は、応答レコードに対して検索を行います。まず、追加レコード内でクエリレコードの Name パラメータ (name 変数) と一致する情報を検索します。一致する情報が一つでも見つかった場合は、一致するすべての情報が foundname 変数に格納され、name 変数が初期化されます。次に、foundname 変数に格納された情報の内、クエリレコードで指定した Type パラメータが一致するものを検索します。この際に TKEY が検索されれば dns_message_findname() 関数は正の戻り値を出力し、応答レコードの検索を行わず情報の検索を終えますが、TKEY が検索できなかった場合は dns_message_findname() 関数内で name 変数の検証で異常が発生し、BIND のプロセスが assertion error により終了します。

実際に当該脆弱性を利用して攻撃を行うためには、以下のクエリを DNS サーバに送信します。

(1) クエリレコードの Type パラメータに "TKEY"、Name パラメータに適当なドメイン名を指定します。
(2) 追加レコードの情報として、クエリレコードと一致する Name パラメータを指定し、Type パラメータに "TKEY" 以外のものを指定する。

当該脆弱性を用いた攻撃によりサービスが停止した場合、/var/log/messages に以下のような行が出力されます。

Aug 31 20:14:51 localhost named[1746]: message.c:2311: REQUIRE(*name == ((void *)0)) failed, back trace


5.対策
当該脆弱性は TKEY 機能を無効にしていても影響を受けるため、設定の変更による対処が出来ません。以下のバージョンに BIND をアップデートすることにより、対処することが可能です。

- 9.9.7-P2
- 9.10.2-P3

また「◆影響を受けるソフトウェア」にも記載した通り、OS によってはパッチが適用されたバージョンにアップデートされる場合もあるため、各ベンダが公開している情報を確認することを推奨します。


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー・グリッド研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《株式会社ラック サイバー・グリッド研究所》

編集部おすすめの記事

特集

脆弱性と脅威 アクセスランキング

  1. Webサイトの脆弱性検査に有効な5種の無償ツールを紹介、活用例も提案(IPA)

    Webサイトの脆弱性検査に有効な5種の無償ツールを紹介、活用例も提案(IPA)

  2. IoTデバイスの乗っ取りが急増、「root」「admin」の組み合わせは変更を(シマンテック)

    IoTデバイスの乗っ取りが急増、「root」「admin」の組み合わせは変更を(シマンテック)

  3. 複数回のDDoS攻撃により「オーバーウォッチ」のサーバー接続が不安定に(Blizzard Entertainment)

    複数回のDDoS攻撃により「オーバーウォッチ」のサーバー接続が不安定に(Blizzard Entertainment)

  4. 「OpenSSL」がアップデートを公開、重要度「高」の脆弱性も(JVN)

  5. あるランサムウェアの開発者と配布者、半年で約94億円を稼ぎ出す(マカフィー)

  6. 数分で目的を達成する、洗練されたマルウェア攻撃も確認--四半期レポート(ウェブルート)

  7. 「ウイルスに感染した」という偽の表示を判断できるチャートを公開(IPA)

  8. BIND 9.xに、パケットひとつでDNSサービスが停止する脆弱性(JPRS)

  9. 「OpenSSL」が重要度「高」「中」2件の脆弱性に対応するアップデート(JVN)

  10. Drupal の Coder モジュールにおける遠隔から任意のコードが実行されてしまう脆弱性(Scan Tech Report)

  11. 「Joomla!」の脆弱性を悪用したWebサイト改ざんに注意を呼びかけ(JPCERT/CC)

  12. 攻撃者はコストをかけてフィッシングの罠、10代でも10万円以上の高額被害(BBソフトサービス)

  13. 警察庁が上半期レポート、「Apache Struts 2」「PLC」「IP電話」へのアクセス目立つ(警察庁)

  14. 「ウイルスバスター」に、マルウェアの検出を回避される脆弱性(JVN)

  15. 「macOS」「Safari」などに複数の脆弱性、アップデートの適用を呼びかけ(JVN)

  16. 少人数による攻撃でも深刻な影響を与える「Slow HTTP DoS Attack」を把握(警察庁)

  17. Androidアプリ「マネーフォワード」に複数の脆弱性(JVN)

  18. CMS「Geeklog IVYWE版」にクロスサイトスクリプティングの脆弱性(JVN)

  19. ヘルプデスクソフト「ManageEngine ServiceDesk Plus 」に複数の脆弱性(JVN)

  20. 「Splunk Enterprise」および「Splunk Light」に複数の脆弱性(JVN)

アクセスランキングをもっと見る

★~(=^・ω・^)ノ☆★10月7日まで ノベルティや海外カンファレンスのお土産大放出キャンペーンを実施中 ★★
★~(=^・ω・^)ノ☆★10月7日まで ノベルティや海外カンファレンスのお土産大放出キャンペーンを実施中 ★★

登録すれば、記事一覧、人気記事ランキング、BASIC 会員限定記事はもちろんのこと、掲載された全ての限定コンテンツに、フルアクセスが可能となります。

×