エクスプロイト&脆弱性
SSL 3.0 の脆弱性「POODLE 」とは?
SSL 3.0 に存在する深刻な脆弱性「POODLE」の概要について説明。この脆弱性が利用されると、この脆弱性を利用すると、攻撃者はパディングオラクル攻撃によって暗号化通信の一部(主にクッキー情報)を解読することができます。また、この脆弱性利用を回避する方法も説明します。
Google のリサーチャー Bodo Möller氏、Thai Duong氏、および Krzysztof Kotowicz氏は、2014年10月14日(現地時間)、「Secure Sockets Layer(SSL)」のバージョン3.0 に存在する深刻な脆弱性についてのリサーチペーパーを公開しました。この脆弱性を利用すると、攻撃者はパディングオラクル攻撃によって暗号化通信の一部(主にクッキー情報)を解読することができます。
この脆弱性についての要点は以下のとおりとなります。
- CVE識別子:CVE-2014-3566
- 通称名:POODLE(Padding Oracle On Downgraded Legacy Encryption)
- 脆弱性内容:攻撃者は、SSL 3.0 を使う暗号化通信において、リクエスト送信を繰り返し試み、暗号化通信の一部を解読する恐れが発生。また攻撃者は、TLS/SSL のバージョンをダウングレードさせる可能性がある。
- 想定される被害:Webサイト利用時の認証情報(クッキー、トークンなど)を窃取される
- 回避方法:サーバ、クライアントともに、SSL3.0 を無効にする
■「POODLE」を利用する攻撃の仕組み
上述のリサーチペーパーによると、今回の深刻な問題は、SSL 3.0 におけるブロック暗号上のパディングの検証にあります。このパディングは、プロトコルによって検証されません。そのため、攻撃者は任意データをパディングとして利用し、そこから 1つ前のデータを繰り返し推測することで、暗号化された通信を 1バイトずつ平文に復号し、入手することができます。
SSL 3.0 は、15年前にリリースされた旧式の暗号化プロトコルです。その後、「Transport Layer Security(TLS)」に引き継がれることになり、TLS の最新バージョンは、1.2 となります。しかし、SSL/TLSには、Webサーバとクライアント間の片方が最新バージョンに対応していない場合、古いバージョンのプロトコルで接続を試みるという振る舞いがあります。
これを踏まえ、「POODLE」のもう 1つの要素であるSSL/TLSのバージョンダウングレードについて説明します(図1参照)。多くのブラウザは、TLS のバージョン1.2 まで対応しています。最初の応答確認でブラウザは、対応している最新バージョンの TLS1.2 を使用します。この応答確認が失敗した場合、ブラウザはバージョンを下げて再び応答確認します。例えば、TLS 1.1 に再接続し、それも失敗した場合 TLS1.0 に接続して再び応答確認します。攻撃者は、この仕組を悪用するのです。ブラウザが SSL 3.0 までバージョンを下げた時点で、上記のパディングを利用した攻撃が実行され、Webサーバとクライアント間での通信が解読されることになります。
■対応・回避策
この脆弱性利用は、SSL 3.0 を無効にすることで回避することができます。Webサイトの管理者は、SSL 3.0 のサポートを無効にすることができます。例えば、Apache における SSL 3.0 を無効にする方法は以下を参照ください。
- Disable SSLv2 and SSLv3 in Apache(英語情報)
https://scottlinux.com/2013/06/18/disable-sslv2-and-sslv3-in-apache/
エンドユーザも、以下の手順でSSL 3.0のサポートを無効にすることができます。
- Chrome の場合:コマンド「Chrome.exe -ssl-version-min=tls1」で Chrome を実行することで、SSL の最低バージョンを TLS 1.0 に設定することができます。
- FireFox の場合:検索バーに「about:config」を入力し、設定を変更します。「security.tls.version.min」の検索語で検索し、値を「1」に設定し、SSL 3.0 のサポートを無効にします。
- Internet Explorer の場合:「マイクロソフト セキュリティ アドバイザリ 3009008」で、SSL3.0 のサポートを無効にする手順を参照してください。
企業においては、以下の手順で Webサーバに更新プログラムを適用することを推奨します。
- Webサーバ保護のため、以下の Webサイトで紹介されている手順を参考にして、IIS 7 の SSL 2.0 および SSL 3.0 を無効にしてください。
How to Disable SSL 2.0 and SSL 3.0 in IIS 7(英語情報)
・https://www.sslshopper.com/article-how-to-disable-ssl-2.0-in-iis-7.html - Apache をご使用の場合、コマンド「SSLProtocol All -SSLv2 -SSLv3」を用いて、Apache httpd + mod_ssl を保護してください。
- Webサーバ「nginx」をご使用の場合、コマンド「ssl_protocols TLSv1 TLSv1.1 TLSv1.2」を用いて保護してください。
ただし、SSL 3.0 の無効は、すべてのユーザにおいて実用ではないことをご留意ください。特にレガシーシステムで作業を必要とする場合がこれに該当します。「OpenSSL.org」からのセキュリティアドバイザリ(英語情報)によると、「TLS_FALLBACK_SCSV」を Webサーバ上で使用することを推奨しており、これにより、SSL 3.0 はレガシーシステムの実装が必要な場合のみ有効となり、攻撃者はプロトコルを下げることができなくなります。
■トレンドマイクロの対策
サーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」をご利用のお客様は、以下のフィルタを適用することにより、問題の脆弱性を利用した攻撃から保護されます。
- 1006293 - Detected SSLv3 Request
- 1006296 - Detected SSLv3 Response
トレンドマイクロは、継続してこの脆弱性を利用する脅威を監視しており、随時、本ブログ上で報告致します。
参考記事:
- 「POODLE Vulnerability Puts Online Transactions At Risk」
by Ziv Chang (Director, Cyber Safety Solution)
翻訳:船越 麻衣子(Core Technology Marketing, TrendLabs)