JP Vendor Status Notes(JVN)は10月11日,TLSやSSLを使うためのライブラリ「OpenSSL」に見つかったセキュリティ・ホールを公表した。OpenSSLを利用するサーバーにおいて特定のオプションを有効にしている場合には,通信経路上の攻撃者によって,TLS/SSLのバージョンを強制的に「SSL 2.0」に変更される可能性がある。SSL 2.0には複数の脆弱性が見つかっているため,以降の通信を盗聴されたり改ざんされたりする恐れがある。対策は,SSL 2.0を無効にすることやOpenSSLをバージョンアップすること。
最新のSSL(TLS)プロトコルであるTLS 1.0の仕様では,通信経路上でSSL 2.0へ変更するような攻撃(バージョン・ロールバック攻撃)を受けると,通信が失敗するようになっている。
ところがOpenSSLでは,バージョン・ロールバック攻撃を許す場合がある。それが今回公表されたセキュリティ・ホールである。OpenSSLでは,SSL 2.0しか利用できないアプリケーションに対応するために「SSL_OP_MSIE_SSLV2_RSA_PADDING」というオプションを用意している。このオプションが有効になっていると,ユーザーのアプリケーション(Webブラウザなど)がSSLをサポートするサーバーに対してTLS 1.0あるいはSSL 3.0を使うよう要求しても,通信経路上の攻撃者により,SSL 2.0を使うようなリクエストに変更される可能性がある。「SSL_OP_ALL option」というオプションを有効にしている場合も,SSL_OP_MSIE_SSLV2_RSA_PADDINGが有効になるので同じように影響を受ける。
SSL 2.0には複数の脆弱性が見つかっている。このためSSL 2.0に変更することで,通信経路上の攻撃者は通信内容を盗聴したり改ざんしたりすることが可能となる。アプリケーションの多くはTLS/SSLを使っているかどうかしか目立つ場所には表示しないので,ユーザーは“弱い”プロトコルを使っていることに気づかない。
対策は,セキュリティ・ホールを修正したバージョンへアップグレードすること。バージョン0.9.7系列では0.9.7h,0.9.8系列では0.9.8aで今回のセキュリティ・ホールは修正されている。0.9.7hおよび0.9.8aは「OpenSSL Project」のサイトなどから入手できる。
また,SSL 2.0を無効にすることも有効な対策である。SSL 2.0には既知の脆弱性があるとして,OpenSSL ProjectではSSL 2.0を無効にすることを強く勧めている。
今回のセキュリティ・ホールを悪用することは容易ではない。このため,セキュリティ・ホールの危険度はそれほど高くないと考えられる。セキュリティ・ベンダーのSecuniaでは,今回のセキュリティ・ホールの深刻度を「Less critical」(5段階評価で下から2番目)に設定している。とはいえ,OpenSSLを利用しているサーバーの管理者は,このような攻撃が存在すること,SSL 2.0は無効にすべきであることを認識したほうがよいだろう。
なお今回のセキュリティ・ホールは,産業技術総合研究所の大岩寛氏が発見し,「情報セキュリティ早期警戒パートナーシップ」に基づいて処理された(関連記事)。
◎参考資料
◆JVN#23632449 OpenSSL におけるバージョン・ロールバックの脆弱性(JP Vendor Status Notes)
◆JVN#23632449:「OpenSSL」におけるバージョン・ロールバックの脆弱性(情報処理推進機構)
◆OpenSSL Security Advisory [11 October 2005] Potential SSL 2.0 Rollback (CAN-2005-2969)(OpenSSL Project)
◆OpenSSL Potential SSL 2.0 Rollback Vulnerability(Secunia)