SSLv3 に関する脆弱性(POODLE 攻撃)への対処

ALL
スポンサーリンク

SSLv3 に関する脆弱性(POODLE 攻撃)に対する、ブラウザ、Java、サーバの対処方法です。

脆弱性の内容については、以下を参照して下さい。

JVNVU#98283300: SSLv3 プロトコルに暗号化データを解読される脆弱性(POODLE 攻撃)

ブラウザの対応方法

SSLv3 での接続を無効にする必要があります。

Firefox

下記アドオンをインストールすれば、SSLv3が無効になります。

SSL Version Control :: Add-ons for Firefox

また、来月 11月25日に公開が予定されている Firefox の次バージョンより SSLv3 をサポートせず、標準状態では利用できなくするとのことです。

SSL 3.0 の POODLE 脆弱性への対応について | Mozilla Japan ブログ

Google Chrome

最新版で SSL 3.0 へのフォールバックが無効化されています。

フォールバック無効化により、暗号化通信に失敗した場合、下位の暗号化強度の方式で通信することを防ぎます。
これにより、SSL 3.0 での接続が防止されます。

数か月以内のリリースで SSL 3.0 のサポートを完全に削除するようです。

Google Online Security Blog: This POODLE bites: exploiting the SSL 3.0 fallback

それまでの間、 SSL 3.0 を完全無効にするには、 起動オプションに「 –ssl-version-min=tls1」を追加することが必要です。

How to disable SSLv3 in Chome permanently – Google プロダクト フォーラム

デスクトップ上等の Google Chromeアイコンを右クリックして、プロパティダイアログを表示し、ショートカットタブのリンク先の箇所で、末尾に 「 –ssl-version-min=tls1」を追加します。
–ssl-version-min=tls1 の前に半角スペースを忘れずに入れて下さい。

画像

インターネットエクスプローラ

下記ページの「回避策の適用」の箇所の「Internet Explorer で SSL 3.0 を無効にして、TLS 1.0、TLS 1.1、および TLS 1.2 を有効にする」の作業を行います。

マイクロソフト セキュリティ アドバイザリ 3009008

確認方法

SSL 3.0 が無効になっているかは、次のページで確認できます。

SSLv3 Poodle Attack Check

脆弱性がある場合(SSL 3.0 が無効になっていない)は、左の画像が現れます。
脆弱性が無い場合(SSL 3.0 がちゃんと無効の場合)は、右の画像になります。
画像画像

Javaの対応方法

以下に情報があります。
Javaアプレット、Javaアプリケーションについて以下で説明します。
Java APIについても、下記ページ内に記載があります。

CVE-2014-3566 – Instructions to Mitigate the SSL v3.0 Vulnerability (aka “Poodle Attack”) in Java SE

Javaアプレット/WebStart

コントロールパネルの Java を開き、Javaコントロール・パネルを開きます。
無い場合は、コントロールパネルの右上の「表示方法:」を”カテゴリ” から “大きいアイコン” に変更します。
または、スタートメニューの すべてのプログラム -> Java -> Configure Java からも開けます。

Javaコントロール・パネルで詳細タブを選択し、「SSL 3.0を使用する」のチェックを外します。

画像

Javaアプリケーション

起動時のオプションで、httpsで使用されるプロトコルに SSLv3以外を指定します。

java -Dhttps.protocols="TLSv1" <MyApp>

サーバの対応方法

apache、dovecot、postfix での対応を説明します。
「openssl を TLS_FALLBACK_SCSVサポート版に更新する」と、apache、dovecot、postfix の各設定を行います。

openssl を TLS_FALLBACK_SCSVサポート版に更新する

TLS_FALLBACK_SCSVオプションをサポートするバージョンに openssl を更新します。
10/16以降、CentOS/Ubuntu で更新される openssl は、TLS_FALLBACK_SCSVオプションをサポートしています。

TLS_FALLBACK_SCSV とは、暗号化通信に失敗した場合に、下位の暗号化強度の方式で通信すること(ダウングレード)を防ぐ仕組みで、ダウングレードにより SSL 3 で接続することを防ぎます。
同様に、TLS1.2 から強度が低いTLS1.1 や TLS1.0 へのダウングレードも行われず、将来の別な攻撃の回避の一助になります。

Google Online Security Blog: This POODLE bites: exploiting the SSL 3.0 fallback

この方法では、apache、dovecot、postfix、個別に設定する必要は無く、openssl の更新だけで済みます。

ただし、ダウングレードを防ぐのみで、SSLv3 の使用を完全無効にはしません。
クライアントが最初から SSLv3 で接続してきた場合は、apache、dovecot、postfix で SSLv3 が使用されます。

apache、dovecot、postfix で SSLv3 の使用を無効にするには、以降の設定を行う必要があります。

apache で SSLv3 を無効にする

以降の設定を行います。

CentOSの場合

/etc/httpd/conf.d/ssl.conf

SSLProtocol all -SSLv2 -SSLv3

設定を反映させます。

/etc/init.d/httpd reload

Ubuntu14.04の場合

/etc/apache2/mods-available/ssl.conf

SSLProtocol all -SSLv2 -SSLv3

設定を反映させます。

/etc/init.d/apache2 reload

dovecot で SSLv3 を無効にする

以降の設定を行います。

CentOS7の場合

/etc/dovecot/conf.d/10-ssl.conf

ssl_protocols = !SSLv2 !SSLv3

設定を反映させます。

systemctl restart dovecot.service

CentOS5/6の場合

下記によると、現時点(2014/10/27時点)では無効にする方法が無いようです。
対応を待つ必要があります。

Resolution for POODLE SSL 3.0 vulnerability (CVE-2014-3566) in Postfix and Dovecot? – Red Hat Customer Portal

Ubuntu14.04の場合

/etc/dovecot/conf.d/10-ssl.conf

ssl_protocols = !SSLv2 !SSLv3

設定を反映させます。

service dovecot restart

postfix で SSLv3 を無効にする

以降の設定を行います。

smtpd_tls_mandatory_protocols の設定は、smtpd_tls_security_level = encrypt または smtpd_enforce_tls = yes が指定されている場合に必要な設定です。

同様に、smtp_tls_mandatory_protocols の設定は、smtp_tls_security_level = encrypt または smtp_enforce_tls = yes が指定されている場合に必要な設定です。

なお、下記でコメントの通り、main.cf で smtpd_tls_security_level = encrypt にする(している)場合は注意が必要です。
encrypt にすると、メール転送元のサーバが対応していない場合、そのサーバからのメールが届かなくります。
従って、main.cf では smtpd_tls_security_level = may を指定することをお勧めします。

CentOS6でのメールサーバの設定(postfixその1) パソコン鳥のブログ

CentOS6/7の場合

/etc/postfix/main.cf

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3

設定を反映させます。

CentOS7
restart postfix.service
CentOS6
/etc/init.d/postfix reload

CentOS5の場合

/etc/postfix/main.cf

smtpd_tls_mandatory_protocols = TLSv1
smtp_tls_mandatory_protocols = TLSv1

設定を反映させます。

/etc/init.d/postfix reload

Ubuntu14.04の場合

/etc/postfix/main.cf

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3

設定を反映させます。

/etc/init.d/postfix reload

参考

SSLv3 の脆弱性 POODLE への対策を行う : アジャイル株式会社
SSL3.0の脆弱性「POODLE」の個人的メモ: 独房の中
wivern.com | Chrome の POODLE 対策
Resolution for POODLE SSL 3.0 vulnerability (CVE-2014-3566) in Postfix and Dovecot? – Red Hat Customer Portal
Postfix TLSサポート