こんなTシャツを見たことがある。「私は爆発物処理技術者だ、私が走っているのを見たら、起きていた方がいい」。
同じことはネットセキュリティーに関しても言える。知り合いのセキュリティー関係者全員がうろたえていたら、たぶん心配した方がいい。
今日(米国時間4/7)の午後、私の知っている多くのセキュリティー関係者がうろたえている。非常に深刻なバグがOpenSSLに見つかり、公表された。OpenSSLは、インターネットトラフィックの非常に〈非常に〉多くの部分で使われている暗号化ライブラリーだ。
OpenSSLという言葉を聞いたことのない人でも、何らかの形、いやおそらく多くの形で、自分の生活に関わっているはずだ。あなたの使うアプリや訪れるサイトでやり取りするデータが暗号化されていれば、OpenSSLを使っている可能性か高い。例えば、インターネットの50%で使われていると言われるApacheウェブサーバーは、OpenSSLを使っている。
セキュリティー研究者らが “Heartbleed“と呼ぶそのバグを悪用すると、過去2年以内のあらゆるバージョンのOpenSSLが走るシステムで、システムメモリー上にある大量のデータを暴露することが可能だ。
それで何が困るのか。サーバーのシステムメモリーには、極めて機密性の高いデータが置かれていることが多い。例えば、通信データ(ユーザー名、パスワード、クレジットカード等)を暗復号化するためのキー。つまり、アタッカーは容易に秘密の鍵を取り出すことが可能になり、傍受したデータをあたかも暗号化されていなかったかのように読むことができる。これらのキーを持てば、アタッカーが他人になりすまして本来機密性の高いサイトやサーバーに侵入することもできる。
そして、もしどこかのアタッカーが、いずれ解読するつもりでサーバーから山ほどの暗号化データを取り出して持っていたら? それらを解読するためのキーを手に入れているかもしれない(アタックしたサーバーの構成による。例えば、Perfect Forward Secrecyを使って設定されているかどうか)。
非常に控え目に言って、これは悪いニュースだ。
問題のバグは、OpenSSLの “heartbeat” という機能の実装に存在する。そこから “Heartbleed” と名付けられた。
このバグは、OpenSSLに2年以上存在していたが(2011年12月以来、OpenSSL 1.0.1~1.0.1f)、今日初めて発見され公表された。さらに悪いことには、このバグを悪用してもその痕跡はログに残らないようだ。つまり、システム管理者は自分のサーバーが侵入されたかどうかを知る術がない。されたと仮定するほかはない。
このバグはGoogleセキュリティーチームのNell Mehtaによって発見され、OpenSSLチームに報告された。OpenSSLは今日の午後、セキュリティー・アドバイザリと共に緊急パッチを発行した。セキュリティー会社のCodenomiconが、Heartbleedバグの詳しい解説を書いている。
[原文へ]
(翻訳:Nob Takahashi / facebook)