最近発見されたOpenSSLのセキュリティホールは、かなり前に使用が禁止されたセキュリティプロトコルであるSSLv2を利用して、最新のウェブサイトを攻撃するというものだ。
この「DROWN」(Decrypting RSA with Obsolete and Weakened eNcryption)と名付けられた攻撃手法は、全HTTPSサーバの少なくとも3分の1に有効だと推定されている。
DROWNの危険性は、Alexaのランキングで上位に入っているウェブサイトの一部(米Yahoo、Sina、Alibabaを含む)に、DROWNを使った中間者攻撃に対する脆弱性が存在していることからも分かる。
よく使われていることもあって、DROWN攻撃の対象となる可能性が高いのはオープンソースの「OpenSSL」だが、脆弱性が存在するのはこれだけではない。
Microsoft Internet Information Services(IIS)バージョン7以前や、多くのサーバ製品に使用されている暗号ライブラリであるNetwork Security Services(NSS)のバージョン3.13以前も同様の脆弱性を抱えている。
自分のサイトに脆弱性が存在するかどうかは、DROWN攻撃テストサイトを使用すれば確認できる。
いずれにせよ、OpenSSL 1.0.2を使用しているユーザーは、1.0.2.gにアップグレードしてほしい。またOpenSSL 1.0.1ユーザーは、1.0.1sにアップグレードすること。それ以前のバージョンを使用している場合は、1.0.2gか1.0.1sにアップグレードする必要がある。
幸い、DROWNを発見したのは学術研究者だった。しかし残念ながら、この脆弱性に関する情報が開示されたことで、サイバー犯罪者がすぐに攻撃を開始することは確実だ。
DROWNを発見した研究者らは、次のように述べている。
われわれは、CVE-2016-0703に対する脆弱性が存在するバージョンのOpenSSLに対して、1台のPCを使用して、1分未満で攻撃に成功した。この特定のバグを持っていないサーバに対しても、任意のSSLv2サーバに対して有効な、この攻撃を一般化した手法を用いて、440ドルのコストで8時間未満で攻撃を行うことに成功した。
20年前から安全でないことが判明していたSSLv2が、なぜこれほど重大な攻撃の糸口になるのか、不思議に思う人もいるだろう。研究者らは「正規のクライアントに使用されることはないにも関わらず、SSLv2を使用可能にすることは、最新のサーバやクライアントに対する脅威になる」と述べている。
提供:DrownAttack.com
さらに同研究者らは「(SSLv2を使用可能にしていると)攻撃者は、同じ秘密鍵を共有するSSLv2が有効なサーバにプローブを送信することで、新しいプロトコルであるTLSを使ったクライアントとサーバ間の接続を復号化することができる」と付け加えている。
Qualysのエンジニアリング担当ディレクターであり、Qualys SSL Labsの責任者でもあるIvan Ristic氏は、次のように発言している。
この攻撃は無視できるものではない。まず自分のシステムに脆弱性が存在しないことを確認することをお勧めする。幸い、問題の解決方法は単純で、運用しているすべてのサーバでSSLv2を無効化するだけだ。これは簡単なことだが、必ずすべてのサーバで行う必要がある。RSA(Rivest-Shamir-Adleman)の秘密鍵を再利用している場合(たとえ証明書が異なっている場合でも)、SSLv2をあるサーバで無効化しても、別のサーバ(異なるホスト名、ポートを使用しているかもしれず、プロトコルも違っている可能性がある)でこの時代遅れで脆弱なプロトコルバージョンを使い続けていれば意味がない。
実際、「安全」なサーバも、脆弱性を持つサーバと同じネットワーク上にあればクラッキングできる。RSAの秘密鍵は、Bleichenbacher攻撃を使用することで復号化できる。そして復号化された鍵を使用すれば、同じ秘密鍵を使用している「安全」なサーバの暗号を解読できるというわけだ。
ただちにパッチを適用してほしい。
ソースコードとして入手可能なOpenSSLのパッチが公開されているほか、Red Hat、SUSE Linuxといった組織もパッチを準備している。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。