« インターネットバンキングでの不正送金の被害が急増 | トップページ | CVE-2014-0160 OpenSSL Heartbleed bug Honeypot »

OpenSSLに重大な脆弱性が発覚 HeartBleed Bug (CVE-2014-0160)

OpenSSLに重大な脆弱性が発覚 HeartBleed Bug (CVE-2014-0160)

概要

OpenSSL の HeartBeat と呼ばれる機能の実装にバグがあり、悪用されるとシステム上にあるメモリのデータ(64KB単位で)が閲覧出来てしまうという。これにより、WebサーバのSSL証明書の秘密鍵やプロセス内の秘密情報などが漏洩する。悪用されても記録が残らないため、被害の調査を行うことは難しい。既に証明書の秘密鍵が漏洩している可能性があるため、グローバルサインなどの認証局は、SSLサーバ証明書の再発行を無償対応している。
この脆弱性の影響を受けるシステムは、OpenSSL のバージョン(1.0.1 ~ OpenSSL 1.0.1f、 1.0.2 bata ~1.0.2-beta1)を利用しているシステムが該当する。
OpenSSL は、Apache や Sendmail、 OpenVPN などの多くのサーバやクライアントソフトウェアに利用されており、影響範囲が非常に大きい。
この問題に対応するためには、既にリリースされている修正済みのバージョン(OpenSSL 1.0.1g)に入れ替える必要がある。※ 1.0.2-bata2 はリリース待ち。


2014年8月より Heartbleed 脆弱性を狙ったパケットが増加してる。また、HeartBleed 脆弱性を持つサイトを調査するウイルスも確認されている。

影響を受けるバージョン

OpenSSL 1.0.1 : 1.0.1a ~ 1.0.1f
OpenSSL 1.0.2-bata :  1.0.2-beta1

対策方法

OpenSSL 1.0.1g にバージョンアップ
OpenSSL 1.0.2-bata2 はリリース待ち
その他、「-DOPENSSL_NO_HEARTBEATS」オプションをつけて再コンパイルし、HeartBeat 機能をオフにする

バージョンアップ方法

rpm パッケージの場合

# rpm update openssl

ubuntu debian パッケージの場合

# apt-get update
# apt-get upgrade openssl

修正済みバージョンにアップデートされたかを確認する方法は
下記の「CVE-2014-0160 が修正されているか確認する方法」を参照してください。

OpenSSL を利用するプログラムなのか確認する方法

パッケージの依存関係情報から調べる方法

RedHat系 Linux rpm の場合

> rpm -qR mod_ssl | grep -i ssl
config(mod_ssl) = 1:2.2.15-29.el6.centos
libssl.so.10 
openssl >= 0.9.7f-4

> rpm -qR sendmail | grep -i ssl
libssl.so.6 openssl

CVE-2014-0160 が修正されているか確認する方法

CVE-2014-0160 を修正済みのパッケージなのかを確認する方法

HeartBleed バグのチェックサイトで調べる方法

詳細は不明ですが、OpenSSL CVE-2014-0160 HeatBleed バグをチェックしてくれるサイトが出来ているようです。どこまでチェックして結果を出しているかは確認出来ていません。


HeartBleed バグのチェックツールで調べる方法

Windows, Linux, MacOSX 用のプログラム(バイナリ)も提供されている。

指定したウェブサイトに CVE-2014-0160 の脆弱性(HeartBleed)があるかチェックしてくれます。

> ./heartbleeder www1.example.jp
INSECURE - www1.example.jp:443 has the heartbeat extension enabled and is vulnerable

> ./heartbleeder www2.example.jp
SECURE - www2.example.jp:443 does not have the heartbeat extension enabled


nmap コマンドで調べる方法

ssl-heartbleed NSE script

> nmap -sV www.example.jp --script=ssl-heartbleed


openssl コマンドで調べる方法

heartbeat (id=15) が表示されなければ、対策済み(heartbeat 機能オフ)と考えてよい。

> openssl s_client -connect www.example.jp:443 -tlsextdebug | grep heartbeat
...
TLS server extension "heartbeat" (id=15), len=1
...

> openssl version -a
OpenSSL 1.0.1 14 Mar 2012
...


Web サーバにアクセスして調べる方法

Apache などのサーバの設定でバージョン情報を公開しない設定になっている場合は、バージョン情報は表示されません。

> telnet www.example.jp 80
GET / HTTP/1.0


HTTP/1.0 200 OK
Date: Tue, 08 Apr 2014 05:44:11 GMT
Server: Apache/2.2.22 (Ubuntu) mod_ssl/2.2.22 OpenSSL/1.0.1


パッケージの修正ログ(changelog)から調べる方法

OpenSSL を rpm や deb などのパッケージでインストールしている場合、パッケージバージョンやプログラムが出力するバージョン番号だけでは、修正パッチが適用されているのか判別することが難しい。パッケージには修正履歴を記録したログ(changelog)が含まれているので、このログを見ればどのパッチが適用されているのかを確認することができる。

  • rpm パッケージの場合

# rpm -q --changelog openssl

  • ubuntu debian パッケージの場合

# apt-get changelog openssl

openssl (1.0.1-4ubuntu5.12) precise-security; urgency=medium

  * SECURITY UPDATE: side-channel attack on Montgomery ladder implementation
    - debian/patches/CVE-2014-0076.patch: add and use constant time swap in
      crypto/bn/bn.h, crypto/bn/bn_lib.c, crypto/ec/ec2_mult.c,
      util/libeay.num.
    - CVE-2014-0076
  * SECURITY UPDATE: memory disclosure in TLS heartbeat
extension
    - debian/patches/CVE-2014-0160.patch: use correct lengths in
      ssl/d1_both.c, ssl/t1_lib.c.
    - CVE-2014-0160

Heartbleed 攻撃を検知する方法

iptables -t filter -A INPUT  -p tcp --dport 443  -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"


CVE-2014-0160 検証コード

CVE-2014-0160 の検証コードが出ています。
試してみるとメモリデータと思われる内容が出力された。
Apache + mod_ssl で試したところ、access_log、error_log に記録は残らなかった。


CVE-2014-0160 Heartbleed bug の事例

Heartbleed を使ったセッションハイジャックやプライベートキー(秘密鍵)の取得成功、情報漏えいなど事故事例など

 
  • JIRA ticket tracking system が稼働しているシステムでのセッションハイジャックの事例
  • ヤフーメール(mail.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

  • SSL サーバ証明書の秘密鍵(プライベートキー)の一部が取得できた事例

約250万回、約10万回の試行で秘密鍵の取得に成功(Heartbleed Challenge)

少なくとも 2人成功。1人は約250万回の試行、もう1人は約10万回の試行で成功したようです。サーバの環境は "nginx-1.5.13 linked against OpenSSL 1.0.1.f on Ubuntu 13.10 x86_64" とのこと。

 

警察庁の定点観測システムで Heartbleed 攻撃のパケットを 4/9 以降に多数観測

オープンソースのSSL/TLS実装「OpenSSL」に極めて重大な脆弱性が発覚した問題で、カナダ歳入庁は4月14日、何者かがこの脆弱性を悪用して、納税者約900人の社会保障番号を同庁のシステムから削除していたことが分かったと発表した。

OpenVPN からプライベートキーの取得に成功

取得に成功した環境は、Ubuntu 12.04 (VM using KVM) OpenVPN 2.2.1 OpenSSL 1.0.1-4ubuntu5.11

大手カード会社である三菱UFJニコスが、OpenSSL の脆弱性を攻撃されて、同社ウェブサイトが不正アクセスされたと発表した。894人分の個人情報が外部に流出した可能性があるが、現在のところ、クレジットカードの不正利用は確認されていない。悪用された脆弱性は Heartbleed との報道もある。

CVE-2014-0160 ハニーポット

  • CVE-2014-0160 Heartbleed bug 攻撃を捕捉するハニーポット

CVE-2014-0160 OpenSSL HeartBleed bug Honeypot

参考 URL


« インターネットバンキングでの不正送金の被害が急増 | トップページ | CVE-2014-0160 OpenSSL Heartbleed bug Honeypot »

セキュリティ事件、サイバー攻撃」カテゴリの記事

セキュリティ(Security)」カテゴリの記事

ニュース」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/503138/59433535

この記事へのトラックバック一覧です: OpenSSLに重大な脆弱性が発覚 HeartBleed Bug (CVE-2014-0160):

» OpenSSL:ネットセキュリティー2年間“重大な穴”  本当にHeartbleedな欠陥 対策は? [自分なりの判断のご紹介]
4月9日にマイクロソフトが サポート終了したXP. これは個人、会社のPCの問題。 右の絵は「Heartbleed」. 心臓からの出血を絵にしたもの。 まあ、こうなると死んじゃいます。 死んじゃうのが誰かというと、 みなさんどころでなく、ネットで アクセスする相手先。 ネットショッピングや検索や 銀行などの金融機関。 影響甚大ですよね。 ...... [続きを読む]

« インターネットバンキングでの不正送金の被害が急増 | トップページ | CVE-2014-0160 OpenSSL Heartbleed bug Honeypot »

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索