2016年 3月 1日(米国時間)、インターネット上の通信暗号化プロトコル「SSL/TLS」を用いて暗号化する「HTTPS」や他のサービスに影響を与える深刻な脆弱性が新たに確認されました。この脆弱性は、この不具合を確認したリサーチャーにより「Decrypting RSA using Obsolete and Weakened eNcryption(DROWN)」と名付けられ、通信暗号化プロトコル「Secure Socket Layer(SSL)」のバージョン2.0(SSLv2)に存在します。攻撃者は、この脆弱性により、安全なはずの通信から情報を傍受したり収集することが可能となります。なお、現時点では、実際の攻撃は確認されていません。
SSLv2 に存在する DROWN および複数の問題について、以下の脆弱性識別子が割り当てられています。
- 「CVE-2016-0800」
DROWN:Cross-protocol attack on TLS using SSLv2 - 「CVE-2015-3197」:
SSLv2 doesn’t block disabled ciphers - 「CVE-2016-0703」
Divide-and-conquer session key recovery in SSLv2
SSLv2 は、1995年 2月以来、非推奨のプロトコルとみなされており、いかなる本番環境でもこの通信暗号化プロトコル使用は回避すべきです。ただし実際のところ、SSLv2 は多くのサーバ上でいまだ長らくサポートされています。サーバ管理者は、より多くのユーザが自身のサービスを確実に使用できるように、つまり、自身のサーバへ確実に接続できることを考慮しているからです。
DROWN攻撃を実行する攻撃者は、「Man-In-The-Middle(MitM、中間者)攻撃」を仕掛ける状況にいる必要があり、また同時に、攻撃対象サーバへの SSLv2接続を複数接続する方法を備えておく必要があります。攻撃者がサーバに SSLv2接続を複数する場合、サーバ上のセッション鍵を特定するために総当り攻撃を仕掛けることが可能となります。こうしてセッション鍵が確認されると、傍受したトラフィックは該当のセッション鍵が利用されている間、復号されることとなります。
以下のいずれかの条件を満たす場合、サーバは DROWN攻撃による脆弱性を抱えることになります。
- SSLv2 のリクエストをサポートしている場合
- 例え最新バージョンの SSL/TLSプロトコルを使用していても、SSLv2接続をサポートする他のサーバ上と同一の公開鍵と秘密鍵が使われている場合
DROWN を確認したリサーチャーによると、HTTPSサーバ全体の 17%がいまだ SSLv2接続をサポートしています。そのため、中間者攻撃が実行される恐れがある場合、攻撃者は、SSLv2接続を悪用してサーバを綿密に調査し、セッション鍵を探しだし、TLSトラフィックを復号することが可能となります。なお、このシナリオ下では、攻撃対象となったクライアントは SSLv2通信を送信しません。
サーバ公開鍵と秘密鍵の再利用を考慮した場合、HTTPSサーバの 16%がさらに脆弱性を抱えていることになり、つまり、合計で 33%となり、HTTPSサーバ全体の 3分の1 が危険にさらされていることになります。
この脆弱性を確認したリサーチャーは、GitHub上で DROWN の有無を確認するスキャナーを公開しています。このスキャナーは、既定のポートに SSLv2接続リクエストを送信し、サーバの応答を待機します。なお、これにより脆弱性が実際に利用されることはありません。
図1:脆弱性「DROWN」の影響を受けているか確認するツールによるスキャン状況の一例
■脆弱性「DROWN」を突く攻撃からの軽減策およびトレンドマイクロ製品の対策
今回の脆弱性の修正方法は比較的簡単です。OpenSSL も推奨しているとおり、サーバ管理者は、どのサーバ上でも SSLv2 の不使用を徹底的してください。SSLv2 には今回問題となった脆弱性が存在し、長らく非推奨となっていることを看過してはいけません。また、サーバの公開鍵の使い回しはせず、各用途に合わせ作成することをお勧め致します。
OpenSSL の各バージョンにおける更新バージョンについては以下をご参照ください。
- OpenSSL 1.0.2 → OpenSSL 1.0.2g
- OpenSSL 1.0.1 → OpenSSL 1.0.1s
- 上記以前のバージョンを利用している場合、OpenSSL 1.0.2g または OpenSSL 1.0.1s に更新
トレンドマイクロのサーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」をご利用のお客様は、以下のフィルタを適用することにより、問題の脆弱性を利用した攻撃から保護されます。
- 1005321 – Detected SSLv2 Request
また、暗号化通信を破るために利用される SSL/TLSプロトコルに存在する脆弱性は、他にも存在し、「Export Grade cipher suites」をいまだ使用している場合はなおさらです。以下のフィルタを適用することにより、問題の脆弱性を利用した攻撃からの危険を軽減あるいは、保護されます。
- 1006561 – Identified Usage Of TLS/SSL EXPORT Cipher Suite In Response
- 1006485 – SSL RSA Downgrade Vulnerability
- 1006562 – Identified Usage Of TLS/SSL EXPORT Cipher Suite In Request
参考記事:
by Virendra Bisht (Vulnerability Researcher)
翻訳:船越 麻衣子(Core Technology Marketing, TrendLabs)