CVE-2014-0160

読み:スィーヴィーイー・にーゼロいちよん・ゼロいちろくゼロ
外語:CVE-2014-0160 英語
品詞:固有名詞

OpenSSLに存在した脆弱性の一つ。Heartbleed脆弱性。

目次

MITRE社の脆弱性情報データベースCommon Vulnerabilities and Exposures(CVE)に登録されている脆弱性の一つ。

これは、OpenSSLの欠陥により、本来秘匿すべき情報(暗号通信の内容、秘密鍵など)が漏洩する可能性がある、極めて重大なセキュリティホールである。

  • 影響: OpenSSL 1.0.1 ‐ 1.0.1f
  • 影響: OpenSSL 1.0.2-beta ‐ 1.0.2-beta1

1.0.1gおよび1.0.2-beta2にて修正された。

問題

  • 情報漏洩

原因

TLS heartbeat拡張(RFC 6520)の処理で境界検査が不足していた。

この脆弱性が悪用されると、読み込みでオーバーランを発生させ、OpenSSLが使用している保護されたシステムメモリーの内容を誰でも閲覧することができた。このため理論的にはメモリー上にある暗号通信や秘密鍵などを盗聴することが可能だった。

heartbeat(心拍)の実装による情報漏洩バグであったため、本件はHeartbleed(心臓出血)と命名された。

影響

このバグは気付かれず、または気が付かれてはいたがそのまま放置されていたようだが、2年以上経ってから修正された。

この問題が報告されてからネット界隈はパニックに陥ったが、比較的簡単な対応で修正できたため、パニックは数日間で収まった。なお、この2年以上の間にどれだけの情報が漏洩していたのかは定かではない。

例えば、アメリカの通信社Bloombergは、米国家安全保障局(NSA)は少なくとも2年前からHeartbleedの脆弱性を認識しており情報収集に利用してきた、と報道して大きな騒ぎになったが、NSAはこれを否定する声明文を発表している。

OpenSSLはAndroidでも使われているが、Androidの場合はAndroid 4.1.1のみが影響するとしている(端末メーカーが不具合のあるOpenSSLバージョンに置き換えていない場合に限る)。

修正

境界チェック処理を追加した。短すぎる場合と、長すぎる場合(今回の問題)とで、チェックをするようにしている。修正は「Add heartbeat extension bounds check.」と題されている。そもそも無かったbounds checkを追加した、ということが良く分かる題名である。

RFC 6520のセクション4において、「受信HeartbeatMessageのpayload_lengthが大きすぎる場合は、受信HeartbeatMessageは黙って破棄しなければならない(MUST)」とあり、今回の修正では、RFC通りに黙って破棄するように修正されている。

RFC通りに実装されていなかったことが問題となったもようである。

その後

このバグは世界が震撼させたが、頻発するOpenSSLの不具合調査をしたThe OpenBSD Projectは、抜本的な改善が必須との結論に至った。

OpenSSLでの抜本的な修正は困難だったため、ここからLibreSSLとして分岐され、抜本的な修正と改良が開始された。

この不具合を契機として、今後の主流はOpenSSLからLibreSSLへと移っていくものと予想される。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club