OpenSSL の Heartbeat 拡張の実装不備による情報漏えいの脆弱性(Scan Tech Report) | ScanNetSecurity
2024.03.28(木)

OpenSSL の Heartbeat 拡張の実装不備による情報漏えいの脆弱性(Scan Tech Report)

OpenSSL には、Heartbeat 拡張の実装不備に起因する情報漏えいの脆弱性が存在します。

脆弱性と脅威 エクスプロイト
1.概要
OpenSSL には、Heartbeat 拡張の実装不備に起因する情報漏えいの脆弱性が存在します。当該脆弱性を悪用されると、ネットワーク越しに OpenSSL を使用したソフトウェアが確保しているメモリ上の情報が一部窃取されてしまいます。
OpenSSL を使用しているソフトウェアが Web サーバの場合、サーバとクライアント間の通信の内容やセッション ID、SSL/TLS 通信に使う秘密鍵などの情報がメモリ含まれていることがあります。本脆弱性を悪用されると、それらの情報が攻撃者に窃取される可能性があります。


2.深刻度(CVSS)
5.0
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2014-0160&vector=(AV:N/AC:L/AU:N/C:P/I:N/A:N)


3.影響を受けるソフトウェア
OpenSSL 1.0.1 から 1.0.1f
OpenSSL 1.0.2-beta から 1.0.2-beta1

上記バージョンで、かつ Heartbeat 拡張が有効の場合に影響を受けます。影響を受けるバージョンは、OpenSSL の Security Advisory の情報(*1)をもとに記載しています。

Heartbeat 拡張の有効無効の確認は、サーバ上で「openssl version -a」を実行し、-DOPENSSL_NO_HEARTBEATS オプションの存在を確認してください。当該オプションが存在しない場合、Heartbeat 拡張は有効と思われます。

(*1): https://www.openssl.org/news/secadv_20140407.txt


4.解説
OpenSSL は、OpenSSL Project が提供する、SSL/TLS 通信を実現するためのソフトウェアであり、Web サーバや VPN ソフトなどで使用されています。
SSL/TLS プロトコルには Heartbeat 拡張と呼ばれる仕組みが存在し、OpenSSL にも実装されています。

Heartbeat 拡張は、SSL/TLS 通信でセッションを維持する keep-alive 機能を実現するためのもので、RFC 6520 (*2)で定められています。Heartbeat リクエストを受信した場合、リクエストに含まれるペイロードと一致するデータをHeartbeat レスポンスとして返す動作が求められます。

しかし、OpenSSL の Heartbeat 拡張には実装不備があり、細工した Heartbeatリクエストを受信した場合に、リクエストに含まれるペイロード以外の(メモリ上の)データも返してしまいます。この脆弱性は、Heartbleed や心臓出血バグとも呼ばれています。

一度の攻撃で、OpenSSL を使用しているソフトウェアが確保しているメモリ上の情報が、最大 65535バイト分窃取されます。攻撃者が、窃取するメモリのアドレスを指定することはできませんが、繰り返し攻撃することにより、メモリ上に展開されている機微な情報が窃取されてしまう可能性が高まります。

OpenSSL を使用しているソフトウェアがサーバの場合、サーバとクライアント間の通信の内容やセッション ID、SSL/TLS 通信に使う秘密鍵などの情報がメモリ含まれていることがあります。セッション ID を窃取された場合、攻撃者が他人になりすますことが可能です。秘密鍵を窃取された場合、攻撃者が暗号化されている SSL/TLS 通信の内容の解読や、本物サイトと区別がつかない偽サイトを立ち上げることが可能です。

国内で本脆弱性が悪用されたと公表する事例が存在します(*3)。OpenSSL の利用者は、至急対策を実施することを推奨します。

(*2): https://tools.ietf.org/html/rfc6520
(*3): http://www.cr.mufg.jp/corporate/info/pdf/2014/140418_01.pdf


5.対策
▽対策済みの OpenSSL の導入
OpenSSL の最新バージョンにアップデートすることで、この脆弱性を解消することが可能です。使用しているディストリビューションが用意している OpenSSLのパッケージを更新するか、以下の Web サイトより、最新バージョンを入手し、OpenSSL を再インストールしてください。

OpenSSL: Source, Tarballs
https://www.openssl.org/source/

または、OpenSSL のコンパイル時に Heartbeat 拡張を無効にすることで本脆弱性を回避することができます。

▽SSL サーバ証明書の入れ替え
Web サーバで SSL/TLS 通信を実現するために、影響を受けるバージョンのOpenSSL を使用していた場合は、SSL サーバ証明書の秘密鍵が漏えいしている可能性があります。対策済みの OpenSSL の導入後に、証明書の失効と再取得・再設定をしてください。手続きについては、利用している証明書を発行した認証局の情報をご確認ください。


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー・グリッド研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《株式会社ラック デジタルペンテスト部》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×