ブログトップ 記事一覧 ログイン 無料ブログ開設

piyolog RSSフィード

2014-04-10

OpenSSLの脆弱性(CVE-2014-0160)関連のメモをまとめてみた

| 23:14 | OpenSSLの脆弱性(CVE-2014-0160)関連のメモをまとめてみたを含むブックマーク

HeartBleed(CVE-2014-0160)関係のリンク集、自分のメモ用なので不正確です。

HeartBleedの影響対象となるOpenSSLバージョン

以下のバージョンが影響を受けます。但し、システムによっては原因となっているheartbeat機能が無効化されている場合もあるため、バージョンが一致しただけで当該脆弱性の影響を受けるかは確定しません。

OpenSSL 1.0.1系
バージョン名リリース時期CVE-2014-0160
OpenSSL 1.0.12014/03/14脆弱性あり
OpenSSL 1.0.1a2012/04/19脆弱性あり
OpenSSL 1.0.1b2012/04/26脆弱性あり
OpenSSL 1.0.1c2012/05/10脆弱性あり
OpenSSL 1.0.1d2013/02/05脆弱性あり
OpenSSL 1.0.1e2013/02/11脆弱性あり
OpenSSL 1.0.1f2014/01/06脆弱性あり
OpenSSL 1.0.1g2014/04/07修正
OpenSSL 1.0.2系
バージョン名リリース時期CVE-2014-0160
OpenSSL 1.0.2 beta 12014/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での影響が確認された事例

CVE-2014-0160の影響が確認された事例です。いずれも一例であり、脆弱性を持つすべてのサーバーで以下が発生することが確認されたわけではありません。

FreeBSD9.1が稼働するサーバー秘密鍵が見えた事例

Yahoo.comで他人のメールアドレスパスワードが見えた事例

FOXITの検証を見ると秘密鍵も漏れていた模様

JIRAでHTTPリクエストが漏えいし、セッションハイジャックが出来た事例

CVE-2014-0160のScan結果を公開、まとめているところ

CVE-2014-0160を確認した数確認日時確認元ソース
61万5268サイト
(2858万1134サイトで検証)
Robert Graham不明
Twitter投稿は2014/04/09 8:17 UTC
約50万サイトNetcraft2014年4月調査
489サイト
Alexa Top10000より
James Vasile2014/04/09 11:30 UTC?頃
5サイト
Alexa Top100より
musalbas2014/04/08 11:30 UTC
48サイト
Alexa Top1000より
musalbas2014/04/08 12:00 UTC
630サイト
Alexa Top10000より
musalbas2014/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対応状況
ベンダ対応状況製品名検知シグネチャ
IBM2014/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
McAfee2014/04/09対応済McAfee Network Security PlatformUDS-SSL: OpenSSL TLS DTLS Heartbeat Extension Packets Information Disclosure
Cisco2014/04/09対応済Cisco Intrusion Prevention SystemOpenSSL Information Disclosure
Juniper Networks2014/04/09対応済IDPHIGH SSL:OPENSSL-TLS-DTLS-HEARTBEAT SSL: OpenSSL TLS DTLS Heartbeat Information Disclosure
SecureSoft2014/04/09暫定対応SniperIPS正式シグネチャは準備中
Suricata対応準備中Suricata2.0.1にて対応予定
HP対応済?TippingPoint IPS2014/04/08時点で準備中とのツイートあり
Snort2014/04/08対応済SnortSnort Version 2960
Snort Version 2956
Snort Version 2946
TrendMicro2014/04/08対応済TrendMicro DeepSecurityDSRU-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 TestQualys英語不明有り
LastPass Heartbleed checkerLastPass英語Webサーバーの種類からOpenSSLを推測
証明書の再発行が必要か確認
不明
heartbleed testpossiblelv英語SSLパケットからheartbeat機能の利用有無を確認不明
Heartbleed testFilippo Valsorda英語CVE-2014-0160のExploitを実行して脆弱性の有無を確認有り

脆弱性が存在するサイトをオンラインスキャナーにかけてみると次のように表示されます。

  • Globalsign

f:id:Kango:20140410225637p:image:w640

  • NetAgent

f:id:Kango:20140410225635p:image:w640

  • Qualys

f:id:Kango:20140410225632p:image:w640

f:id:Kango:20140410225636p:image:w640

  • possiblelv

f:id:Kango:20140410225633p:image:w640

  • Filippo Valsorda

f:id:Kango:20140410225638p:image:w640

Github上で公開されているCVE-2014-0160の確認ツール
CVE-2014-0160検証ツール開発者実装言語特記事項
ssltest.pymusalbaspythonファイルを指定して一括チェックが可能
heartbleed FiloSottilego 
docker-heartbleedkasimondocter 
hb-test.py takeshixxpython 

脆弱性が存在するサイトでhb-test.pyを動かしてみた結果です。脆弱性の存在が確認できるとメモリを表示した後に次のような表示が出ます。

f:id:Kango:20140410225631p:image

自分が利用しているAndroidOSが影響を受けるか検証するツール

HeartBleed関連でいくつかアプリが出ています。他のスキャナーと違って、自分自身(AndroidOS)にインストールされているOpenSSLがCVE-2014-0160の影響を受けないか確認するためのアプリです。偽チェックツールも出回るかもしれないので利用前には十分な注意が必要です。Androidの影響を受けるバージョンは4.1.1〜4.4.2_r2です。

開発元アプリ必要な権限
Lookout Mobile SecurityHeartbleed Detecterインターネットへの接続
BlueBoxHeartbleed Scanner特に無し

2社の関連情報も掲載しておきます

Nessusでの確認方法
NMAP Script Engineでの確認方法

以下のコマンドを実行するのみ。

nmap -sV -p SSLポート --script=ssl-heartbleed.nse ターゲットホスト

脆弱性が存在するサイトに対してNSEを実行すると次のように表示されます。脆弱性が存在しなければ何も表示されないようです。

f:id:Kango:20140410232752j:image

Metasploitでの確認方法