[2014/11/27 09:40 更新] SSLv3 プロトコルに暗号化データを解読される脆弱性(POODLE 攻撃) https://t.co/QHBgOREygU
— JVN 脆弱性レポート (@jvnjp) 2014, 11月 27
今さら感が強いのですが、さっきJVNのつぶやきで気が付きました。先月(10月16日)から、SSL v3の脆弱性が指摘されていたんですね。
というわけで、自分が運営しているサーバー(CentOS6.5)で、POODLE攻撃に対する対策を行ってみました。今回は、自分が行った対策と、そのときに参考にさせていただいたページのまとめです。
用語の確認
まずは用語の確認です。専門的に調べようとすると、かなりディープなところまで行ってしまいそうなので3つだけ。
OpeSSL
OpenSSLは、SSLプロトコル・TLSプロトコルの、オープンソースで開発・提供されるソフトウェアである。中心となっているライブラリ(C言語で書かれている)は基本的な暗号化関数と様々なユーティリティ関数を実装している。
SSL v3
インターネットにおいてセキュリティーを要求される通信を行うためのプロトコルである。当プロトコルは、(中略)Secure Sockets Layer (SSL) と呼ばれてることも多い。
V3というのは、そのSSLのバージョン3ということ。
POODLE攻撃
暗号を直接的に復号することは行わず、クライアントから送信された暗号文自体を細工してサーバに送りサーバ側での処理結果を確認するという手法
SSL v3が有効かどうかの確認
要するに、POODLE攻撃が実行されると、SSL v3で通信しているクライアント→サーバー間の暗号通信が、解読・改ざんされるということです。
実際に自サーバーが、SSL v3を使用しているかどうか、確認する必要があります。こちらのサイトを参考にして、下記のコマンドを実行。
$ sudo openssl s_client -connect localhost:443 -ssl3
やはり、SSL v3を使用していました。脆弱性の対策をしなければなりません。
POODLE攻撃からの脆弱性対策
調べているとやるべきことは、3つくらいあるようです。サーバー側で2つ。クライアントPC側のブラウザで1つ。
1.open sslの更新
$sudo yum update openssl
2.サーバー側でSSL v3を無効化
$ sudo vi /etc/httpd/conf.d/ssl.conf
を開いて、SSL v3を使わないようにします。
SSLProtocol all -SSLv2 -SSLv3
$sudo service httpd restart
1と2の作業が終了したら、再起動をお忘れなく。
これでSSL v3での通信は、できなくなった感じです。
3.クライアント側のブラウザソフトでSSL v3を無効化
いつも使っているGoogle Chromeでも対策せなあかんと思っていたところ、最新安定版のバージョン39.0.2171.65では、特に何もしなくてもいいことが分かりました。
POODLE脆弱性の悪用につながるSSLv3へのフォールバック機能のサポートは、デフォルトで無効にされているとのこと。
ちなみに…
FirefoxはChromeと同じ対応をしているとのことですが、IEについては、いまいちよく分かりませんので使用を控えます。
追記
この記事を書いたあとに、図書館で借りっぱなしのムック本があることに気が付きました。よく読んでみると、SSLの概要(素数計算、ハンドシェイク、盗聴の具体例など)について説明されています。
ぐぐっても調べられることだとは思いますが、体系的に素早く知識を吸収したい人には良いかもしれません。
〔参考サイト〕