前回記事:『相次ぐSSL関連の脆弱性 その1 ~今こそ認証局SSLの重要性に注目を~』の続きです。
今回は、2014年10月に発覚したSSL3.0およびLS 1.0 / TLS 1.1の脆弱性「POODLE」についてです。
Googleの研究チームが、2014年10月14日(現地時間)に、SSL3.0に関する脆弱性「POODLE(Padding Oracle On Downgraded Legacy Encryption)」についての発表を行いました。当初はSSL 3.0を有効にしているサーバとの通信にのみ影響が出るとされていましたが、後にTLS 1.0 / TLS 1.1の一部も影響を受ける可能性があると判明しました。
SSL/TLSとは
SSL/ TLSは、インターネット上でデータを暗号化して送受信するプロトコルの1つです。データの送受信を行う一対の機器間でデータの暗号化通信を行うことができ、他の機器によるなりすまし、データの盗み見、改ざんなどを防ぐことができるようになります。
そもそもSSL(Secure Socket Layer)はネットスケープコミュニケーションズ社が開発したプロトコルです。SSL 3.0の次のバージョンがTLS 1.0であり、名称は「TLS」(Transport Layer Security)に変更されました。
現在、広く利用されているプロトコルはTLSですが、SSLという名称が既に広く定着していたため、実際にはTLSを指していてもSSLと表記したり、「SSL/TLS」「TLS/SSL」など両者を併記したりすることも多いです。
POODLEとは
POODLEとは「Padding Oracle On Downgraded Legacy Encryption」の頭文字を取ったもので、SSLのバージョン3.0に存在する脆弱性(CVE-2014-3566)のことを指します。
この脆弱性を突くことで、悪意のある攻撃者は、第三者の通信に介在してSSL/TLSを脆弱なバージョン(SSL3.0)に落とし、通信させることができます。
この結果、SSL 3.0や実装が不十分なTLS1.0/1.1を有効にしているサーバとの通信においてパスワード等の個人情報やCookie情報が第三者に漏えいする可能性があります。
事態を重く見た情報処理推進機構も、この件に関する見解を示しています。
POODLE脆弱性による攻撃の手口
SSL3.0は、パディングオラクル攻撃に弱いという脆弱性があります。
パディングとは、データを固定長として扱いたい場合に、短いデータの前や後に無意味なデータを追加して長さを合わせる処理です。暗号化通信を行う上で、パディングが不正である場合には、特殊なエラー、あるいはデータが処理されないといった事態が発生します。
オラクルパディング攻撃(Padding Oracle Attack)
大量のデータ列をサーバに送りつけ、エラーの発生状況やデータの処理状況などをチェックすることで、そのデータ列が暗号文として適切かどうかを調べるのが、パディングオラクル攻撃という手法です。
中間者攻撃
POODLE脆弱性を持つプロトコルをそのまま放置していると、暗号化に必要な鍵を事前に知らない第三者が、大量通信や中間者攻撃によって、暗号化されたデータを解読してしまう可能性があります。
SSL3.0は15年も前に開発されたプロトコルですが、現在もSSL 3.0を使っているWebサイトやWebアプリが存在するとともに、Webブラウザの多くが何らかの理由でWebページに接続できない場合、SSL 3.0をはじめとする古いバージョンのSSL/TLSで接続を再試行する仕組みを持っているため、SSL 3.0が利用されることも多いです。
しかしPOODLE脆弱性が発見されたため、2015年6月には『RFC 7568』により、SSL3.0の使用は禁止されることとなりました。
我々ができる対策は?
IPAの見解によると、POODLE脆弱性を突く攻撃には、中間者攻撃を行うこと、攻撃対象に大量の通信を発生させることなどの様々な条件が必要であり、実際にこの脆弱性を突く攻撃が行なわれる場合には、攻撃者にとっても時間がかかります。
対策の大きなポイントは、サーバもしくはクライアントのどちらか一方で、SSL 3.0 を無効化することです。ただし、次のような影響が出る可能性について、考慮する必要もあります。
- サーバ側で SSL 3.0 を無効にすると、クライアント側の設定によってはサーバに接続できなくなる可能性があります。
- 逆にクライアント側で SSL 3.0 を無効にした場合は、一部のサーバに接続できなくなる可能性があります。
POODLE脆弱性についての知識を得るとともに、適切な対応を行うことができれば、被害を予防することができます。次回はPOODLE脆弱性への対策について解説いたします。
関連する記事