POODLE (Padding Oracle On Downgraded Legacy Encryption; CVE-2014-3566)の解説

このブログではウェブサイトやその上で動作しているウェブアプリケーションの脆弱性について紹介すると共に注意喚起をする目的でまとめられています。

今回はSSL3.0の脆弱性POODLE (Padding Oracle On Downgraded Legacy Encryption; CVE-2014-3566)について解説をしています。

概要

インターネット上の通信暗号のプロトコルとして、従来からSSL(Secure Sockets Layer)が広く使われています。このSSLの一番新しいバージョン3.0を効率的に解読する方法が今年の10月に米Google社のセキュリティチームにより公表され、POODLE(Padding Oracle On Downgraded Legacy Encryption)と命名されました。POODLEを用いるとSSL3.0上のHTTPS通信の一部が解読される可能性があります。

攻撃のイメージと影響

SSL3.0による暗号化では、CBC方式のブロック暗号を選択することができ、その場合には一定の長さのブロックという単位で暗号化が行われます。対象のデータサイズはブロック長の倍数とは限らないため、ブロックの余白の部分にはパディングというダミーのデータを配置します。SSL3.0のパディングについては厳密なチェックが仕様として要求されていないため、パディングを巧妙に操作することにより、1回の通信で1/256の確率で1バイトのデータが復号できます。これを繰り返すことにより、数十バイトのデータを得ることができます。クッキーやBASIC認証のパスワードが攻撃の対象になります。

POODLE攻撃を行う前提として、利用者の端末からの通信を外部から操作できることが必要となります。そのような性質を持つプロトコルとしてHTTPがあります。一方、HTTP以外のメールやデータベースのプロトコルではPOODLEの影響は受けません。

脆弱性による影響

この脆弱性による影響として、通信の一部が第三者に漏えいする可能性があります。典型的な影響の例としては、クッキーの漏洩によるなりすましや、BASIC認証のIDとパスワードが漏洩して不正ログインなどが考えられます。

攻撃の性質上、HTTP以外のメール等の暗号を解読することはできません。また、クッキーやHTTP認証(BASIC認証やDIGEST認証)を使用していないサイトは影響を受けにくいと考えられます。

脆弱性の有無の確認方法

WebサーバーのPOODLE脆弱性を検証する方法として、SSL3.0が有効になっているかどうかで判定することができます。例えば、Windowsのインターネットオプションの「詳細設定」タブで「SSL3.0を使用する」を有効に、その他のSSLおよびTLSを有効にしない設定にして、対象サイトをInternet Explorer(IE)でHTTPSアクセスします。正常にアクセスできた場合は、SSL3.0が有効ですので、POODLE脆弱性があることになります。

チェックの後は必ずインターネットオプションを元に戻しておいてください。

対策

POODLE脆弱性はプログラムのバグではなくプロトコル自体の脆弱性であるため、パッチ適用等では根本的に修正することはできません。POODLEの影響を受けるウェブサイトの場合、SSL3.0を無効にしTLSのみを有効にすることで、POODLE脆弱性を受けなくなります。(このブログを修正している時点(2020年4月現在)では、このSSL3.0はブラウザで警告対象となっていますし、その後継であるTLS1.1および1.2もブラウザの警告対象となることが計画されている状況です。その事からもサーバーのセキュリティは、推奨される設定が常に変化しています。それらへの対応が求められます。)

なお、デジサートの「クラウド型WAF」では、POODLE脆弱性によりウェブサイトが攻撃を受けるのを防ぐことができます。

参考文献

更新:SSL 3.0 の脆弱性対策について(CVE-2014-3566)

JVNDB-2014-004670 OpenSSL およびその他の製品で使用される SSL プロトコルにおける平文データを取得される脆弱性
http://jvndb.jvn.jp/ja/contents/2014/JVNDB-2014-004670.html

JVNVU#98283300 SSLv3 プロトコルに暗号化データを解読される脆弱性(POODLE 攻撃)
https://jvn.jp/vu/JVNVU98283300/index.html

修正の上再掲しました。

Posted in WAF