POODLE:SSL 3.0に関する脆弱性について (CVE-2014-3566)

米国時間の 2014年10月14日 に、POODLE(Padding Oracle On Downgraded Legacy Encryption)と名付けられた脆弱性が公開されました。
SSL v3.0 (CBCモード) を利用している場合、プロトコルに存在している脆弱性が悪用され、 暗号化されている通信の内容が漏えいする可能性があります。

◎詳細は下記URLを参照ください。

http://googleonlinesecurity.blogspot.jp/2014/10/this-poodle-bites-exploiting-ssl-30.html
https://isc.sans.edu/forums/diary/OpenSSL+SSLv3+POODLE+Vulnerability+Official+Release/18827
https://access.redhat.com/articles/1232123

https://technet.microsoft.com/ja-jp/library/security/3009008
http://blogs.technet.com/b/jpsecurity/archive/2014/10/15/3009008-ssl3.aspx
■対象
SSL v3.0 による通信が有効なサーバ、クライアント
SSL v3.0 プロトコルの設計上の問題であり、特定製品の実装によるものではありません。
サーバ側だけではなく、SSL v3.0 を使用するクライアント側(ブラウザや HTTPS通信を利用する アプリケーションなど)にも影響があります。

 

■対策
この脆弱性への攻撃は、簡単には行えません。
中間者攻撃には、多くの時間とリソースが必要になります。
したがって、可能性は高くはありませんが、SSL の不具合を回避するために対策を実施される事をお勧めします。

SSL v3.0 を無効にすること(TLSのみを利用する事)が推奨されています。
・SSL v3.0 をもとに標準化され、後方互換性をもつTLSv1.0では影響はありません。
・TLSv1.1以降では影響はありません。

※サーバ側だけでなく、SSLv3.0 を利用するクライアント側でも対策が必要となります。

※ただし、レガシーシステムなど、SSL v3.0 を必要とするアクセスが見込まれる場合、SSL v3.0 を無効にするとこれらのクライアントからアクセスが行えない状態となります。

また、webサーバ等では SCSV と呼ばれる TLS のダウングレード保護機構を実装する事が推奨されています。

 

■SSL v3.0 の有効/無効 確認方法
○コマンドでの確認
次の OpenSSL コマンドを実行することで、指定したサーバ(ポート)にてSSL v3.0 が有効になっているかの確認が可能です。

$ echo x | openssl s_client -ssl3 -connect ホスト名:ポート

(例)HTTPS を対象とした場合、下記のように実行します。
$ echo x | openssl s_client -ssl3 -connect xxx.xxx.xxx.xxx:443

SSL v3.0 が無効な場合は以下のようなエラーとなります。
———————————————————————————————————————————————–
SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/xx/src/ssl/s3_pkt.c:xxxx:SSL alert number 40
SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/xx/src/ssl/s3_pkt.c:xxx:
———————————————————————————————————————————————–

○オンラインでの確認

https://www.ssllabs.com/ssltest/index.html
表示されるリストの中で SSLv3 No であれば 無効です。

クライアント側の確認を行う場合、下記URLで確認が可能です。
https://www.poodletest.com
【 Not Vulnerable 】と表示されればSSL 3.0 は無効です。

 

■対応方法(サーバ)
各 OS での対策方法を記載いたします。

尚、以下ご案内している、SSL v3.0 の無効化は、全てのユーザ様において実用的ではない可能性がございますので、予めご留意ください。

※SSLv3.0 を無効化することによる お客様サービスへの影響はわかりかねます。
実施有無に関してはお客様にて影響をご確認の上、対応をお願いします。
■各OSでの対策例

=========================================================
◎Linux 系 OS
=========================================================

●CentOS6 の場合

CentOS6 では、ベンダーより SCSV と呼ばれるTLS のダウングレード保護機構をサポートする openssl 修正パッケージが 提供されています。

POODLE や その他の SSLフォールバック問題を軽減するため、アップデートを実施いただく事を推奨します。

*****************************************************************************************
※SSL v3.0を無効にするものではありません。
SSL v3.0を無効にする場合は、各アプリケーション側での設定変更が必要となります。
*****************************************************************************************
◇修正後のバージョンは下記となります。
CentOS6: openssl-1.0.1e-30.el6_5.2 ( http://lists.centos.org/pipermail/centos-announce/2014-October/020697.html )

CentOS では、rpm にて OpenSSL がインストールされています。
現在のパッケージバージョンは下記で確認が可能です。

# rpm -q openssl

サーバにて OS 標準の OpenSSL を利用している場合、上記バージョンより古いものはアップデート対象となります。

アップデートは下記コマンドで実施可能です。
# yum update openssl*

openssl だけでなく、すべてのパッケージにてアップデートを行う場合は次のように実施します。
※この場合、多数のパッケージがアップデートされますので、ご注意ください。
# yum update

パッケージのアップデート後は、各サービスの再起動を実施してください。
可能であればサーバ再起動を実施してください。

●SSL v3.0 の無効化
SSL v3.0 をサポートしているアプリケーションに影響があります。

ここでは httpd に関しての設定例を記載します。

●SSLv2 および SSLv3 を無効にする (SSLv2 と SSLv3 以外はすべて有効にする)

・SSLの設定が記載されているファイルにて、【 SSLProtocol 】部分を次のように変更します。
—————————————————–
SSLProtocol All -SSLv2 -SSLv3
—————————————————–

複数SSL 設定を行われている場合は、各ディレクティブ内の記述すべて変更が必要です。

 

設定変更後、 httpd 再起動が必要です。

# /etc/init.d/httpd restart

または

# service httpd restart

を実施します。

※SSL 設定時の内容によっては、httpd 起動時にパスフレーズの入力が必要となります。

=========================================================
◎ Windows Server
=========================================================

Windows Server の場合は、以下方法で対策する事ができます。

●SSL v3.0 無効化 対策例

・IIS で SSL v3.0 を無効にするには、以下方法で無効にする事ができます。

レジストリの変更が必要となります。

手順詳細に関しましては、以下マイクロソフト社の資料をご確認ください。
http://support2.microsoft.com/kb/187498

設定反映の為、サーバ再起動が必要となります。

———————————————————————
■各クライアントでの対策例

以下の対策を実施する事で、SSL v3.0 を無効にする事ができます。

・InternetExplorer の場合

手順詳細に関しましては、以下マイクロソフト社の資料中の「推奨するアクション」項の「Internet Explorer で SSL v3.0 を無効にして、TLS 1.0、TLS 1.1、および TLS 1.2 を有効にする」箇所をご確認ください。

https://technet.microsoft.com/ja-jp/library/security/3009008

・FireFox の場合
手順詳細に関しましては、以下Mozilla社の資料を確認ください。

https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0

URL入力欄に「about:config」と入力することで、設定を変更する事ができます。
「security.tls.version.min」項の値を「1」にすることでSSL v3.0 を無効にすることができます。

・Chrome の場合
最新のバージョンにて当該脆弱性に対応している為、最新のバージョンにアップデートすることで無効にすることができます。

バージョンアップを行わない場合は、コマンドプロンプトにてChromeのインストールディレクトリに移動し、以下コマンドを実行することでSSLの最低バージョンを TLS 1.0 に設定することができます。

「Chrome.exe -ssl-version-min=tls1」

Windows8.1でのChromeインストールディレクトリの例
C:\Program Files (x86)\Google\Chrome\Application

※ブラウザの設定方法は、ご利用のブラウザバージョン等によって異なる可能性がございます。
詳細は各社のマニュアル等をご確認ください。

クライアント側の確認を行う場合、下記URLで確認が可能です。
https://www.poodletest.com
【 Not Vulnerable 】と表示されればSSL 3.0 は無効です。