2014-04-10
OpenSSLの脆弱性(CVE-2014-0160)関連のメモをまとめてみた
調べてみた | |
HeartBleed(CVE-2014-0160)関係のリンク集、自分のメモ用なので不正確です。
HeartBleedの影響対象となるOpenSSLバージョン
以下のバージョンが影響を受けます。但し、システムによっては原因となっているheartbeat機能が無効化されている場合もあるため、バージョンが一致しただけで当該脆弱性の影響を受けるかは確定しません。
OpenSSL 1.0.1系
バージョン名 | リリース時期 | CVE-2014-0160 |
---|---|---|
OpenSSL 1.0.1 | 2014/03/14 | 脆弱性あり |
OpenSSL 1.0.1a | 2012/04/19 | 脆弱性あり |
OpenSSL 1.0.1b | 2012/04/26 | 脆弱性あり |
OpenSSL 1.0.1c | 2012/05/10 | 脆弱性あり |
OpenSSL 1.0.1d | 2013/02/05 | 脆弱性あり |
OpenSSL 1.0.1e | 2013/02/11 | 脆弱性あり |
OpenSSL 1.0.1f | 2014/01/06 | 脆弱性あり |
OpenSSL 1.0.1g | 2014/04/07 | 修正済 |
OpenSSL 1.0.2系
バージョン名 | リリース時期 | CVE-2014-0160 |
---|---|---|
OpenSSL 1.0.2 beta 1 | 2014/02/24 | 脆弱性あり |
OpenSSL 1.0.2 beta 2 | リリースされていない | 修正予定 |
OpenSSLのリリースやリポジトリを見直してみると「OpenSSL 1.0.2 beta」というリリースはないようです。JPCERT/CC他が公開している情報には影響対象に含まれていますが、当該バージョンが存在するのかは不明です。
影響を受けないバージョン
- OpenSSL 0.9.8系
- OpenSSL 1.0.0系
1.0.0h→1.0.1でheartbeatが追加
Changes between 1.0.0h and 1.0.1 [14 Mar 2012]
:
*) Add support for TLS/DTLS heartbeats.
[Robin Seggelmann <seggelmann@fh-muenster.de>]
:
http://git.openssl.org/gitweb/?p=openssl.git;a=blob_plain;f=CHANGES;hb=refs/heads/OpenSSL_1_0_1-stable
HeartBleed(CVE-2014-0160)って何?って人向けの情報
日本語の情報
- CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ - めもおきば
- CVE-2014-0160に関連する情報が分かりやすくまとめられている。ディストリビューターの当該脆弱性に関する情報、参照先のリンクあり。
- 「CVE-2014-0160.」の脆弱性の対処について(Debian Wheezy) - labunix’s blog
- Heartbleed攻撃と対策 | yohgaki’s blog
- 影響を受けた場合の対策等のまとめ
- [ビデオ]OpenSSLのバグ“Heartbleed”ってどんなの?
- OpenSSL の脆弱性 (Heartbleed Bug) に関する Q&A | WWW WATCH
- HeartBleed関係の情報をまとめているセキュメモの該当トピック
- 影響対象やパッチ情報の記載あり
- チェック方法まとめ:OpenSSLの「Heartbleed」脆弱性は2年前から存在、「最悪のケースを想定して対処を」と専門家 - @IT
- 影響を受ける製品やチェック方法のまとめ
英語の情報
- OpenSSL Security Advisory [07 Apr 2014]
- OpenSSLのHeartBleedに関するセキュリティアドバイザリ。
- HeartBleed.com
- HeartBleedについて情報がまとめられたサイト
- The Heartbleed Hit List: The Passwords You Need to Change Right Now
- InfoSec Handlers Diary Blog - Heartbleed vendor notifications
- ベンダー情報が集積されている
CVE-2014-0160での影響が確認された事例
CVE-2014-0160の影響が確認された事例です。いずれも一例であり、脆弱性を持つすべてのサーバーで以下が発生することが確認されたわけではありません。
FreeBSD9.1が稼働するサーバーで秘密鍵が見えた事例
@neelmehta @tqbf @_miw FreeBSD 9.1 #heartbleed pic.twitter.com/AktnQD3E7w
— Tomas Rzepka (@1njected) April 9, 2014
Yahoo.comで他人のメールアドレスやパスワードが見えた事例
Do not login to Yahoo! The OpenSSL bug #heartbleed allows extraction of usernames and plain passwords! pic.twitter.com/OuF3FM10GP
— Mark Loman (@markloman) April 8, 2014
JIRAでHTTPリクエストが漏えいし、セッションハイジャックが出来た事例
CVE-2014-0160のScan結果を公開、まとめているところ
CVE-2014-0160を確認した数 | 確認日時 | 確認元 | ソース |
---|---|---|---|
61万5268サイト (2858万1134サイトで検証) | Robert Graham | 不明 Twitter投稿は2014/04/09 8:17 UTC | ■ |
約50万サイト | Netcraft | 2014年4月調査 | ■ |
489サイト Alexa Top10000より | James Vasile | 2014/04/09 11:30 UTC?頃 | ■ |
5サイト Alexa Top100より | musalbas | 2014/04/08 11:30 UTC | ■ |
48サイト Alexa Top1000より | musalbas | 2014/04/08 12:00 UTC | ■ |
630サイト Alexa Top10000より | musalbas | 2014/04/08 16:00 UTC UTC | ■ |
下3つはログイン用ドメインが別に用意されている等、サブドメインまではチェックしてないリストです。
HeartBleed(CVE-2014-0160)で攻撃してもばれないのか
- アクセスログ、システムログ上からは攻撃トラフィックか判断することが出来ない。
- 目当ての情報を引き出そうと大量にアクセスを試行すればアノマリーなトラフィックとして攻撃と疑われる可能性はある。
- IDS/IPSでHeartBleed対応が行われ始めたので、導入サイトへ対して行えば分かる。
nginxはパッチ後にログが出力されるようになる
nginx, after being patched, logs the following from the PoC exploit:
2014/04/08 12:37:18 [info] 4151#0: *724561 peer closed connection in SSL handshake while SSL handshaking, client: 70.91.145.11, server: 0.0.0.0:8443
https://isc.sans.edu/diary/%2A+Patch+Now%3A+OpenSSL+%22Heartbleed%22+Vulnerability/17921
IDS/IPSのHeartBleed対応状況
ベンダ | 対応状況 | 製品名 | 検知シグネチャ |
---|---|---|---|
IBM | 2014/04/09対応済 | Network Protection XGS Proventia Network IDS Proventia Network IPS Proventia Network MFS Proventia Server (Linux) RealSecure Network RealSecure Server Sensor Proventia Desktop Proventia Server IPS (Windows) | TLS_Heartbeat_Short_Request (既定で遮断) TLS_Heartbeat_Long_Response |
McAfee | 2014/04/09対応済 | McAfee Network Security Platform | UDS-SSL: OpenSSL TLS DTLS Heartbeat Extension Packets Information Disclosure |
Cisco | 2014/04/09対応済 | Cisco Intrusion Prevention System | OpenSSL Information Disclosure |
Juniper Networks | 2014/04/09対応済 | IDP | HIGH SSL:OPENSSL-TLS-DTLS-HEARTBEAT SSL: OpenSSL TLS DTLS Heartbeat Information Disclosure |
SecureSoft | 2014/04/09暫定対応 | SniperIPS | 正式シグネチャは準備中 |
Suricata | 対応準備中 | Suricata | 2.0.1にて対応予定 |
HP | 対応済? | TippingPoint IPS | 2014/04/08時点で準備中とのツイートあり |
Snort | 2014/04/08対応済 | Snort | Snort Version 2960 Snort Version 2956 Snort Version 2946 |
TrendMicro | 2014/04/08対応済 | TrendMicro DeepSecurity | DSRU-14-009 1006010 – Restrict OpenSSL TLS/DTLS Heartbeat Request 1006011 – OpenSSL TLS/DTLS Heartbeat Information Disclosure Vulnerability 1006012 – Identified Suspicious OpenSSL TLS/DTLS Heartbeat Request |
CVE-2014-0160の確認方法
OpenSSLコマンドを使った確認方法
- opensslコマンドを使ってサーバー内で確認する場合
$openssl version -a
出力結果に影響を受けるバージョンであること、無効化オプション(-DOPENSSL_NO_HEARTBEATS)が指定されていないこと、の2つが確認できた場合、脆弱性が存在する可能性が高いです。
- opensslコマンドを使ってリモートからheartbeatが有効となっているか確認する場合
$echo | openssl s_client -connect host:port -tlsextdebug
と入力して「TLS server extention "heartbeat"」と出力されるとheartbeat機能が有効となっていることが分かります。ただし、脆弱性が存在するかは分かりません。
オンラインスキャナーでの確認方法
方法といってもURLを入れるだけです。インターネットに公開されたWebサーバーであればオンラインスキャナーを使ってCVE-2014-0160の影響を受けるか確認することが可能です。
オンラインスキャナー | 提供元 | 言語 | CVE-2014-0160のチェック方法 | ログの記録 |
---|---|---|---|---|
SSLチェックツール | Globalsign | 日本語 | Qualysのチェックサービスを利用 | 有り |
Heartbleed脆弱性検査 | NetAgent | 日本語 | 不明 | 無し |
SSL Labs Server Test | Qualys | 英語 | 不明 | 有り |
LastPass Heartbleed checker | LastPass | 英語 | Webサーバーの種類からOpenSSLを推測 証明書の再発行が必要か確認 | 不明 |
heartbleed test | possiblelv | 英語 | SSLのパケットからheartbeat機能の利用有無を確認 | 不明 |
Heartbleed test | Filippo Valsorda | 英語 | CVE-2014-0160のExploitを実行して脆弱性の有無を確認 | 有り |
脆弱性が存在するサイトをオンラインスキャナーにかけてみると次のように表示されます。
- Globalsign
- NetAgent
- Qualys
- possiblelv
- Filippo Valsorda
Github上で公開されているCVE-2014-0160の確認ツール
CVE-2014-0160検証ツール | 開発者 | 実装言語 | 特記事項 |
---|---|---|---|
ssltest.py | musalbas | python | ファイルを指定して一括チェックが可能 |
heartbleed | FiloSottile | go | |
docker-heartbleed | kasimon | docter | |
hb-test.py | takeshixx | python |
脆弱性が存在するサイトでhb-test.pyを動かしてみた結果です。脆弱性の存在が確認できるとメモリを表示した後に次のような表示が出ます。
自分が利用しているAndroidOSが影響を受けるか検証するツール
HeartBleed関連でいくつかアプリが出ています。他のスキャナーと違って、自分自身(AndroidOS)にインストールされているOpenSSLがCVE-2014-0160の影響を受けないか確認するためのアプリです。偽チェックツールも出回るかもしれないので利用前には十分な注意が必要です。Androidの影響を受けるバージョンは4.1.1〜4.4.2_r2です。
開発元 | アプリ名 | 必要な権限 |
---|---|---|
Lookout Mobile Security | Heartbleed Detecter | インターネットへの接続 |
BlueBox | Heartbleed Scanner | 特に無し |
2社の関連情報も掲載しておきます
- Heartbleed Detector: Check If Your Android OS Is Vulnerable with Our App | The Official Lookout Blog
- Heartbleed Bug Impacts Mobile Devices Bluebox
Nessusでの確認方法
- Beware of Bleeding Hearts (Updated) | Tenable Network Security
- テスト方法については以下で説明有り。
NMAP Script Engineでの確認方法
以下のコマンドを実行するのみ。
脆弱性が存在するサイトに対してNSEを実行すると次のように表示されます。脆弱性が存在しなければ何も表示されないようです。