はじめに
SSL 3.0プロトコルは、POODLE攻撃(Padding Oracle on Downgraded Legacy Encryption、CVE-2014-3566)に対して脆弱です。この欠陥により、攻撃者はSSLv3で暗号化された通信を傍受することが可能となります。SSLの代替として用いられるTransport Layer Security(TLS)プロトコルには、この欠陥は存在しません。
本文では、POODLE攻撃の仕組みや具体例について詳しく解説します。
CVE-2014-3566として知られる脆弱性、またはPOODLE攻撃CVEは、SSLという安全な接続下で暗号化されたCookie、パスワード、その他のアプリ情報などの機密データを奪取するために利用されます。
アメリカのコンピュータ緊急対応チーム(US-CERT)は、2014年10月にウェブトラフィック取得に用いられる暗号技術の欠陥について警告を発しました。その結果、クライアントとサーバ間の通信において、攻撃者はPOODLE(Padding Oracle On Downgraded Legacy Encryption)の脆弱性を利用して暗号文を解読できるようになりました。
POODLE攻撃は、ウェブ上のデータ暗号化と認証に用いられるTransport Layer Security(TLS)プロトコル、SSL 3.0およびSSL 2.0といった規格に対して有効です。SSLをサポートするアプリも存在しますが、業界ではより新しく安全なTLS接続へと移行が進んでいます。TLSが利用できない場合、攻撃者はPOODLE攻撃を仕掛け、相手の接続を妨害して一部のアプリにSSL 3.0への切替を促します。
中間者(MiTM)攻撃者は、POODLE脆弱性により安全と信じられていた通信を傍受できます。これにより、攻撃者はクライアントの機密情報を盗み出したり、場合によってはクライアントになりすましたりする可能性があります。
POODLE攻撃を成功させるためには、以下の三段階を確実に実行する必要があります:
ブロック暗号では、全てのデータがブロックサイズの倍数でなければなりません。例えば、ブロックサイズが8の場合、データは64、80、または336バイトなど、8の倍数である必要があります。倍数でない場合、適切な長さにするために不要な情報でパディングされます。
ほとんどのウェブサーバが用いるパディングの方法は以下の通りです:
パディングオラクルを利用すると、攻撃者はサーバに送信したデータがパディング不正かMAC不正かにより拒否されたかを判定できます。
次のシナリオを考えてみてください:
以下に、攻撃者が標準的なPOODLE攻撃を実行してウェブセッションクッキーを奪取する手順を示す:
貴社のウェブサーバがSSL 3.0をサポートしているなら、POODLE脆弱性の有無を確認するだけで十分です。Wallarmは、ウェブサーバがSSL 3.0に対応しているかどうかの判定に利用できます。ウェブの脆弱性を手動で特定することも可能ですが、Wallarmはより多くの機能を提供します。
さらに、POODLEは旧式のTLSプロトコル実装にも悪用される可能性があります。ただし、最新のTLS実装は安全です。
なお、POODLEはウェブサーバだけでなくアプリにも影響し、企業全体にとっての脆弱性となる点に留意が必要です。
SSL v3.0暗号化が悪意ある目的で使用される可能性は低いものの、POODLE攻撃により、256回の試行で暗号文の各バイトが解読される恐れがあります。例えば、16バイトのセッションクッキーの場合、約4096回(つまり数分)の試行が必要となり、効果的な攻撃が実行される危険性が生じます。何か重要な対策が求められる状況です。
POODLE脆弱性に対するCVE-ID(CVE-2014-3566)は、2014年10月14日の情報公開時に割り当てられました。ウェブアプリやサーバで旧式のSSL v3.0プロトコルを無効化するのが理にかなっていましたが、2014年当時、多くのウェブサイトやレガシーフレームワークに影響を及ぼすため、容易な選択ではありませんでした。一つの解決策(最近BEAST攻撃対策でも採用された方法)として、弱い暗号方式のサポートを削除し、POODLE攻撃がCBCモードのブロック暗号にのみ影響することから、SSL v3.0が提供する暗号方式へ移行する手法がありました。RC4ストリーム暗号は残されましたが、既に安全でないと示されていたため問題視されました。
POODLEの研究者は、一時的対策としてTLS FALLBACK SCSV暗号スイートの利用を推奨しました。これにより、フォールバック機能を維持しつつ、より安全でないSSL/TLSプロトコルへのダウングレードを防止でき、従来型への攻撃を阻止しながらもレガシーなサーバやアプリへの対応が可能となりました。ベンダーやウェブサイト運営者は迅速にTLS FALLBACK SCSVを実装し、SSL v3.0のサポートを速やかに廃止しました。RFC 7568はその年の6月にSSL v3.0を公式に非推奨としています。
SSL v3.0は、安全性に疑問があるとの明確な証拠があるにもかかわらず、特に旧版のInternet Explorerを利用し続ける内部向けシステムなどのレガシー環境で用いられていました。レガシーサポートが維持される限り、安全なプロトコルへの移行は容易ではなかったものの、実際の脅威として、POODLE攻撃は中間者攻撃の状況下で実行される可能性があります。最近の調査では、2020年頃でも公開ウェブサーバの約4%が依然としてSSL v3.0をサポートしていると示されています。
最新情報を購読