SSLv3 の脆弱性 POODLE への対策を行う (SSLv3の無効化)

セキュリティ対策しなきゃ

SSLv3 に関して脆弱性がレポートされました。
apache に対策を施したのでこの手順に関して書きます。
主要 Web ブラウザにおける対策に関しても記しています。

2014/10/17, 10/18 一部追記

はじめに

ふなっしーに弟必要か?とニュースを見て思った今日この頃、皆様いかがお過ごしですか?

SSLv3 の脆弱性に関するレポートが出されました。

概要に関する日本語記事は以下あたりを参照下さい。

SSLv3を利用している場合、この脆弱性を利用する事でパスワードやクッキーにアクセスできてしまえるというもののようです。

※中間者攻撃が可能なため、サーバ側だけでなく、クライアント (Webブラウザ) 側でも対応した方がよいです ( 対策していないサーバにアクセスした場合に中間者攻撃が行われる可能性がある )。

これに関して確認、及び、対策を行ったので以下手順を書いておきます。

対策

推奨する対策として以下があげられています。

  • SSLv3を無効にする
  • TLS_FALLBACK_SCSV メカニズムを採用する

TLS_FALLBACK_SCSV に関しては、方式自体の説明はありますが、採用する方法が現時点で私には判っていないため、SSLv3を無効にする方法を採る事にします。

※サイトがサポートしているクライアント ( Webブラウザ ) によっては SSLv3 を無効にすることで、問題が発生する可能性があります( TLS をサポートしていない Web ブラウザがある等の理由から )。SSLv3 を無効にしても問題ないかどうかに関しては検証してください。

※古いバージョンのWebブラウザをサポートしなければいけない等の特別な理由がない限りは無効にする方がよいと思います。これを機にセキュリティの理由から古いブラウザをサポート外にする事を検討してみては。

環境 ( サーバ側 )

OSAmazon Linux
HTTPサーバApache ( httpd-2.2.29-1.4.amzn1 )

手順 ( サーバ側 )

対策の手順を以下に示します。

現状の確認

必要であれば、現状SSLv3が有効になっているのか確認しましょう。
以下サイトを利用して確認できます。

  1. 上記サイトの Domain name 欄にチェックを行うドメイン名を入力して [ Submit ] ボタンをクリックします。( しばらく時間がかかります )
  2. チェックが行われたら、SSLv3が有効になっているか確認します。
SSLv3 ON

上記のような結果が出た場合、有効になっているので無効にします。

パッケージのアップデート

Amazon Linux では 2014/10/16 時点で openssl のアップデート ( openssl-1.0.1j-1.80.amzn1 ) が提供されています。SSLv3を無効にするついでに、アップデートも行っておきましょう。

参考 : ALAS-2014-427

$ sudo yum update

apache のSSLv3を無効にする

apache のSSLv3を無効にします。

  1. SSL設定を変更します。
    $ sudo vi /etc/httpd/conf.d/ssl.conf
    
    以下内容 ( 抜粋 ) で編集します。 ( -SSLv3 を追加して SSLv3を無効に )
    #SSLProtocol all -SSLv2
    SSLProtocol all -SSLv2 -SSLv3
    
  2. 設定内容に問題ないか確認し
    $ sudo httpd -t
    Syntax OK
    
  3. 問題なければ、apache を再起動します。
    $ sudo /etc/rc.d/init.d/httpd restart
    

変更後の確認

変更前と同じように、確認を行ってみます。
以下のように無効になっていればOKです。

SSLv3 OFF

クライアント側の対策

ブラウザ側での対策を行う場合、以下で設定が可能です。 ( バージョンによっては以下手順では駄目な場合もあるかも )

Firefox

  1. URL入力欄に about:config を入力
    「動作法相対象外になります!」と注意がなされますが、[ 細心の注意を払って使用する ] をクリック
  2. about:config 画面になったら、[検索] 欄に security.tls.version.min を入力
  3. security.tls.version.min の値を "0" から "1" に変更する。

Chrome

コマンドラインで指定できます。
以下のコマンドラインを追加します。
--ssl-version-min=tls1

chrome sslv3 設定

IE

  1. メニューから [ツール] >[インターネットオプション]をクリック
  2. [詳細設定] タブをクリック
  3. セキュリティ - [SSL 3.0 を使用する] のチェックを外す
  4. [OK] ボタンをクリック

クライアントの確認

以下サイトでチェックできます。

Webブラウザでアクセスして

Warning! Your browser supports SSLv3. To disable SSLv3, follow these instructions.

表示がなされた場合、Webブラウザの SSLv3が有効になっています。
( follow these instructions のリンクに対策が記載されています )

SSLv3が無効の場合

Good News! Your browser does not support SSLv3.

となります。

尚、上記チェックサイトでは Alexaの上位ランク100万(1 million)サイト中で、SSLv3が有効で、かつ、TLSが無効になっているサイトがどの程度あるかを見る事ができます。
日本国内のサイトでもリストされているものがあります。自分が利用しているサイトでSSLv3が有効かどうかを確認するのにも使えるかと思います。

まとめ

先日の shellshock もそうですが、とっとと対策してしまいましょう。

http サーバ以外でも影響を受けるものがある場合 ( メールサーバ等 )、これらも忘れずに。