シマンテックは2014年4月16日、OpenSSLの「Heartbleed(心臓出血)」脆弱性は、SSL通信を行うサーバーソフトだけではなく、クライアントソフトにも影響を与えるとして改めて注意を呼びかけた。悪質なSSLサーバーに接続すると、PCのメモリー上にある情報を盗まれる恐れがある。

 今回の脆弱性の影響を受けるのは、主にサーバーだと考えられる。脆弱性のあるOpenSSLを使っているWebサーバーに対して、細工を施したデータを送信されるだけで、サーバーのメモリー上にある情報を盗み出される恐れがある(関連記事:OpenSSLで露見した脆弱性、「心臓出血」の影響はどこまで及ぶ

 具体的には、そのサーバーを利用する別のユーザーがやり取りしているデータやパスワード、そのサーバーが利用しているSSL証明書の秘密鍵といった重要な情報を盗まれる危険性がある。

図1●脆弱性のあるOpenSSLを利用するサーバーへの攻撃シナリオ(シマンテックの情報から引用。以下同じ)
[画像のクリックで拡大表示]

 攻撃のシナリオとしては、今回の脆弱性が存在する「heartbeat」機能を利用する。攻撃者は、細工を施したheartbeatリクエストをサーバーに送信。脆弱なOpenSSLが稼働するサーバーは、リクエストとして送られたデータに、メモリー上の“無関係なデータ”を追加して、クライアントに返送する(図1)。この無関係なデータには、パスワードや秘密鍵といった、重要な情報が含まれている可能性がある。

図2●脆弱性のあるOpenSSLを利用するクライアントへの攻撃シナリオ
[画像のクリックで拡大表示]

 しかしながら、盗まれる恐れがあるのは、サーバーの情報だけではない。OpenSSLを利用するクライアントソフトを使っている場合には、PCなどのクライアントマシンの情報を盗まれる恐れもある。heartbeatリクエストは、サーバーからクライアントソフトに送信することも可能だからだ(図2)。細工が施されたリクエストをサーバーから送信された場合には、クライアントのメモリー上に存在する“無関係なデータ”を返送する可能性がある。