2014年に発見されたOpenSSLの脆弱性の名称。心臓から血液がポタポタと漏れるというイメージが付与され、広範囲にわたる情報漏えいが懸念されたが、実害については特に知られていない。しかし脆弱性の致命性という意味ではかなり深刻な内容だった。
暗号化技術は、Webにおける情報セキュリティを支える重要な役割を果たしており、OpenSSLもその一つであった。
OpenSSLには、通信機器の動作を監視する「ハートビート」という拡張機能がある。病院で心拍数を監視するモニターと同じように、通信が生きたままになっているかどうかを確認するためのものである。
「ハートビート」は「監視」することが目的であるため、これまでその挙動を監視するという発想がなかった。そのため「ハートビート」に脆弱性があることは、なかなか気付かれなかった。ところが、2014年4月にこの「ハートビート」に脆弱性が発見されたのである。
Heartbleedのロゴとして出回っている画像。心臓(=クラウド)から血(=情報)が漏れていることを表す。
ハートブリードという名の脆弱性
OpenSSLは、通信の開始時に送る情報を暗号化するに当たって、クライアント側がリクエストを出すと、サーバー側がレスポンスを返す。
このとき、サーバー側はリクエストで要求されたサイズ(=文字数)に従ってデータを渡すルールになっている。
しかし、本来のデータ量(サイズ)を無視して、あえて大きいサイズを指定することが可能で、実際にすると、サーバーは本来要求していないデータまで送り返してしまうのである。
本来のサイズは「5」でなければならないところを意図的に「12」に改ざんすると、IDやパスワードまで送ってしまう
この脆弱性は正式には「CVE-2014-0160」として登録されている。しかし「ハートビート」から情報がポタポタと漏れ出すということで、「ハートブリード」(心臓出血)という恐ろしい名称が付けられた。
漏えいしたデータを読み解けば、IDやパスワード、秘密鍵などの情報が含まれており、しかも、ログが残されないので情報漏えいの有無を確認しようがないことから、その年の最大のセキュリティスキャンダルとなった。
ユーザー側はこの脆弱性に対してなんら対策の施しようもない事態であった。
大事件には至らずに収束
ところがその後、実際に害が出たという報告や報道がない。それはなぜだろうか。
確かに致命的な脆弱性ではあった。しかし、あえて意図的な操作を行わない限りはデータを引き出せないし、どこにどういうデータがあるのかも分からないので、実際に悪用するのは、かなり困難だったのである。
もちろん、クラウドサービスを提供している側は、それぞれが脆弱性の解消に向けて対策を施した。
また、脆弱性はバージョン1.0.1~1.9.1f、そして1.0.2-betaが該当していたので、バージョンアップを施すことで多くのサーバーはこの不具合を修正した。
さらに、暗号化のための「秘密鍵」も変更した場合が多いと考えられるので、恐らくこれからハートブリードによる大きな被害が発見されることはない、と考えてよい。
ただし、OpenSSLの脆弱性問題は、これまであまり意識的ではなかったクラウドサービスのセキュリティに注意を喚起したという意味では重要な意味を持っており、その後も、幾つかの深刻な脆弱性が発見されることになった。