必要な情報は http://heartbleed.com/ にまとまっているのですが、英語だし長いしって人のために手短にまとめておきます。
どうすればいいのか
- OpenSSL 1.0.1〜1.0.1fを使っていなければセーフ
- あてはまる場合には、一刻も早くバージョンアップして、サーバごと再起動(わかるひとはサービス単位でもOK、ただしreloadではだめなことも)
- SSL証明書でサーバを公開しているなら、秘密鍵から作り直して証明書を再発行し、過去の証明書を失効させる(末尾に関連リンクあり)。
- サーバを公開していない場合も、外部へのSSL通信があれば影響を受けるので、詳しく精査する。
- PFS(perfect forward secrecy)を利用していない場合、過去の通信内容も復号される可能性があるため、詳しく精査する。
漏洩する情報の具体例は、OpenSSLの脆弱性で想定されるリスクとして別の記事に書きましたのでそちらをご覧くださいまし。
影響を受けるディストリビューション
基本的には、パッケージ更新などでOpenSSLをバージョンアップして、そのあとOpenSSLを読んでいるサービスを再起動します。外部サーバへの接続なども含めるとOpenSSLを利用するサービスが多いので、よく分からない人はサーバごと再起動がおすすめ。
1.0.1からの新機能による脆弱性なので、1.0.0とそれ未満であれば問題ありません。逆に、1.0.1eやそれ以前のバージョン番号のまま脆弱性のみ修正される場合もあるので、OpenSSLのバージョンだけでなく、パッケージのバージョンを確認してください。
ディストリ | どうすればいいか |
---|---|
Debian Wheezy (stable)以降 | DSA-2896-1 stable: libssl1.0.0 1.0.1e-2+deb7u5 で修正 testing/unstable: libssl1.0.0 1.0.1g-1 で修正 |
Ubuntu 12.04.4 LTS以降 | [USN-2165-1] 12.04: libssl1.0.0 1.0.1-4ubuntu5.12 で修正 12.10 libssl1.0.0 1.0.1c-3ubuntu2.7 で修正 13.10 libssl1.0.0 1.0.1e-3ubuntu1.2 で修正 |
RHEL 6.5 | [RHSA-2014:0376-1] openssl-1.0.1e-16.el6_5.7で修正 |
CentOS 6.5 | [CESA-2014:0376] openssl-1.0.1e-16.el6_5.7 で修正 |
Scientific Linux 6.5 | openssl-1.0.1e-16.el6_5.7 で修正 |
Fedora 18以降 | [Bug 1085065] Fedora 19: openssl-1.0.1e-37.fc19.1 で修正 Fedora 20: openssl-1.0.1e-37.fc20.1 で修正 (Fedora 18はサポート切れのため公式パッケージ無し) |
OpenBSD 5.3以降 | [Patches for OpenSSL bounds checking bug] パッチあり: 5.3 / 5.4 / 5.5 |
FreeBSD ports | [[ports] Revision 350548] security/openssl 1.0.1_10 で修正 |
FreeBSD 10.0 | [FreeBSD-SA-14:06.openssl] freebsd-updateでバイナリ更新するかpatchあててbuildworld/installworld/reboot |
NetBSD pkgsrc | [NetBSD Security Advisory 2014-004] openssl-1.0.1gで修正 |
NetBSD 6.0以降 | [NetBSD Security Advisory 2014-004] 各arch向けにビルド済みバイナリが配布されている。 |
OpenSUSE 12.2 | [openSUSE:Maintenance:2718] |
Amazon Linux 2013.03以降 | [Thread: openssl heartbleed] ALAS-2014-320: openssl Security Update - Information Disclosure Vulnerability] 2013.09: openssl-1.0.1e-4.58.amzn1 で対応 2014.03: openssl-1.0.1e-37.66.amzn1.x86_64 で対応 |
Amazon ELB | [HeartBleed Bug Concern] [AWS Services Updated to Address OpenSSL Vulnerability / 参考和訳] 全てのRegionで対応済み、ただし証明書の更新を推奨 (リスクの度合いは不明) |
Amazon CloudFront | [AWS Services Updated to Address OpenSSL Vulnerability / 参考和訳] 対応済み、ただし証明書の更新を推奨 (リスクの度合いは不明) |
Homebrew | [openssl 1.0.1g] brew update brew upgrade openssl brew link openssl --force (コメ欄にて詳しい手順有り) |
Gentoo Linux | [GLSA 201404-07 / openssl] dev-libs/openssl-1.0.1g で修正 |
BIG-IP | [SOL15159: OpenSSL vulnerability CVE-2014-0160] 11.5.0以降が影響を受ける模様 「Use only Native SSL stack ciphers」に設定していれば回避可能 |
Google Compute Engine | [Security Bulletins] 各ディストリの v20140408 以降のイメージで作り直すか、yum/aptでパッケージ更新 |
Android 4.1.1 | [Google Services Updated to Address OpenSSL CVE-2014-0160 (the Heartbleed bug)] Android 4.1.1のみ影響 ChromeはOpenSSLを使わない(NSS)のため影響外 |
自前で入れたり、バージョンアップがすぐにできない場合は、「-DOPENSSL_NO_HEARTBEATS」を設定し、OpenSSLをコンパイルしてもよい。
- 影響を受けない主要ディストリ:
- Vyatta Core 6.x/VyOS 1.0.x(Debian Squeezeベース) [CVE-2014-0160]
- 個別のベンダー製品については、各社のURLが以下の記事に集約されているのでこちらを探してください。
その他影響を受けるソフトウェア群
ソフトウェア | 対応 |
---|---|
Cygwin | [Updated: openssl-1.0.1g-1] openssl-1.0.1g-1 で対応 |
影響無し 当初「SSH部分に影響無し、TTProxyでSSL利用時のみ影響を受ける可能性」と書いていましたが、今のところSSL通信をしないとのこと[出典] |
|
Apache mod_spdy | 独自OpenSSLを内部で持つのでv0.9.4.2に上げる(出典) |
Phusion Passenger | [Phusion Passenger 4.0.41 released, OpenSSL Heartbleed security update] OpenSSLを静的リンクしており4.0.41未満で影響あり |
Ruby RVM | [rvm/config/db] rvm管理下で別にopensslを入れた場合は対応が必要 |
Ruby rbenv/ruby-build | [OpenSSL library updated to 1.0.1g #547] ruby-buildプラグインで別にopensslを入れた場合は対応が必要 plugins/ruby-build下でgit pullしてrbenv installしなおす |
OpenVPN | [OpenVPN 2.3.2 Windows build I004 リリース] [OpenSSLの脆弱性 – Heartbleed について] Windows版バイナリにOpenSSLが含まれるため、OpenVPN側のバージョンアップも必要。 Android版クライアントもAndroid 4.1(.0)と4.1.1は影響を受けるのでAndroid対応待ち 修正(2014/04/10 18:24) TLS-Authの記述が逆になっていました。TLSハンドシェークの前にHMACによるチェックを挟む機能で、有効にしていれば影響を受けません。こちらの記事に詳しく書かれています。 |
FFFTP | [臨時版 1.98g1 - FFFTP] FTPS(FTP over TLS/SSL)のみ影響、1.98g1 で対応 |
WinSCP | [OpenSSL vulnerability CVE-2014-0160] 5.5.3で対応予定 通常のSCP/SFTPには無関係、FTP over TLS/SSLを使っている場合のみ影響 |
関係しそうなサービス
何が起きているの
OpenSSLに脆弱性があり、SSLで通信している相手のメモリを閲覧できます*1。
具体的には、以下のようなシナリオが考えられます。
SSL証明書等の扱い
脆弱性のあるバージョンを使っていた場合、最悪でSSL証明書の秘密鍵が奪取されている可能性があります。この場合、現在使っているSSL証明書を失効(revoke)させ、再発行する必要があります。
証明書の失効方法については、SSL証明書を発行したCAに問い合わせてください。CA側で管理する証明書失効リストに掲載され、漏洩した秘密鍵によるSSL証明書が使えないようになります。例えばSymantec(旧Verisign)であればストアフロントから失効申請ができるようです。
直接の関係が無いもの
- あくまでSSL通信(TLSプロトコル)上の脆弱性のため、OpenSSLライブラリを使っていても、OpenSSHやGnuPG(PGP)などには直接は関係しません。ただし、OpenSSHがLDAP等で外部へのSSL通信を行う場合、そこから攻撃される可能性が残ってはいます。
- 読み取られるのは、SSL通信を行っているプロセスのメモリ内容のため、ロードバランサや前段のApache等でSSL処理を行っている場合は、別プロセスのアプリケーションサーバ内のメモリ内容は漏洩しません。ただし、前述の通り外部へのSSL通信を行っている場合は別です。
- そのプロセスが読んでいない無関係なファイル等は、たとえそのプロセスの実行ユーザにパーミッションが開かれていても漏洩しません。あくまでプロセスのメモリ内容のみです。
関連URL
- Heartbleed test テストツール
- 脆弱性の性質が性質なので自己責任で。ソースコード確認してから手元で動かしてもいいのよ。
- A checker (site and tool) for CVE-2014-0160 ソースコード
- heartbleed-masstest 別のテストツール(Python)
- Heartbleed FAQ: Akamai Systems Patched
We were contacted by the OpenSSL team in advance. As a result, Akamai systems were patched prior to public disclosure.
カコイイ
- 国内ブログでのまとめ
- 警察庁 インターネット治安情勢 OpenSSLの脆弱性を標的としたアクセスの増加について
警察庁の定点観測システムにおいても、9日以降、当該攻撃コードに実装されているClient Hello パケットと、完全に一致するパケットを多数観測しています。このことから、同攻撃コードを使用して、脆弱性が存在するサーバ等の探索が実施されているものと考えられます。
- CA からの注意喚起と、再発行に関する対応告知 (ここの分で特記無い場合は再発行は無償)
- Symantec(旧Verisign): Security Advisory - 脆弱性:OpenSSL Heartbleed Bug (CVE-2014-0160/CVE-2014-0346) について
9. サーバIDの再発行にはどれくらい時間がかかりますか?
シマンテックの営業時間に申請した場合には即日または翌営業日、営業時間外に申請した場合には翌営業日の発行となります。 - グローバルサイン: OpenSSL 1.0.1に含まれる脆弱性への対応のお願い
- クロストラスト: OpenSSL 1.0.1に含まれる脆弱性(The Heartbleed Bug)への対応に関するお知らせ
- セコムトラスト: OpenSSL (1.0.1〜1.0.1fおよび1.0.2-betaシリーズ)に含まれる脆弱性に関する重要なお知らせ
- DigiCert: OpenSSL Heartbleed(心臓出血)脆弱性への DigiCert の対応
- COMODO: OpenSSL の脆弱性対策に関する重要なお知らせ及び確認ツールのご提供
- Rapid-SSL.jp(RapidSSL代理店): OpenSSL の脆弱性対策について
正常にインストールが出来ましたら、旧証明書の失効化をご依頼下さい。
失効化の方法は方法が決まり次第、別途ご連絡申し上げます。 - エスロジカル
- Symantec(旧Verisign): Security Advisory - 脆弱性:OpenSSL Heartbleed Bug (CVE-2014-0160/CVE-2014-0346) について