OpenSSL の TLS ハートビート拡張による重大な脆弱性について(CVE-2014-0160)
Posted by hone and zzak on 10 Apr 2014
Translated by jinroq
OpenSSL の TLS/DTLS(トランスポート層セキュアプロトコル)ハートビート拡張(RFC6520)の実装で重大な脆弱性が発見されました。
この脆弱性は CVE-2014-0160 として登録されています。
悪用されると、サーバーからクライアントへ、およびクライアントからサーバーへのメモリの内容が漏洩する可能性があります。 攻撃者は、SSL 暗号化に使用される秘密鍵や認証トークンなどを含む機密データをメモリから遠隔操作によって取得できます。
詳細は heartbleed.com を参照してください.
Ruby の影響範囲
Ruby は、標準添付ライブラリ OpenSSL の C 拡張機能を介した脆弱な OpenSSL のバージョンに対して静的コンパイルをされると影響を受けます。
バージョン 1.0.1 以上 1.0.1f 以下の OpenSSL がこの攻撃に対して脆弱です。 Ruby にリンクしている OpenSSL ライブラリのバージョンを検証するには、以下を実行してください。
ruby -v -ropenssl -rfiddle -e 'puts Fiddle::Function.new(Fiddle.dlopen(nil)["SSLeay_version"], [Fiddle::TYPE_INT], Fiddle::TYPE_VOIDP).call(0)'Ruby を使って現在インストールされている OpenSSL のバージョンを確認するには、以下を実行してください。
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'emboss のスクリプトを使ってクライアントソフトウェア、または実行中のサービスが脆弱かどうかを確認できます。
解決策
最新版である OpenSSL バージョン 1.0.1g もしくはそれ以降にアップグレードする必要があります。そのためには最新の OpenSSL が提供されているかを現在使っている OS パッケージ管理システムで確認する必要があります。
利用可能なバージョン番号に関係なく、その OpenSSL のバージョンにパッチが適用されているかを確認するために、OS ディストリビューターに相談する必要があるかもしれません。
アップグレードがオプションではない場合、ビルド時に -DOPENSSL_NO_HEARTBEATS オプションを付け、パッチが適用されている OpenSSL を再コンパイルします。
アプグレードされている OpenSSL を使っているなら、脆弱なバージョンの OpenSSL へのリンクがないことを確認している Ruby を再コンパイルすることを推奨します。
これは、RVM や ruby-build のような Ruby をビルドするために使うツールを更新することを意味します。
Ruby を自分でビルドする場合は、コンパイル時にアップグレードされた OpenSSL をインストールしているディレクトリにリンクするよう --with-openssl-dir オプションを使用してください。。
$ ./configure --with-openssl-dir=/path/to/openssl
$ make
$ make installOpenSSL と Ruby をアップグレードした後、脆弱なバージョンを使っている全てのプログラムを再起動することが重要です。
多くの OS ディストリビューションは、この攻撃に脆弱であるライブラリに対し、パッチを適用したバージョンと再構築されたパッケージをすでに提供しています(もしくは間もなく提供する予定です)。 安全性を確保するために、OS ディストリビューターを監視することが重要です。
最近のニュース
Ruby 4.0.0 リリース
Ruby 4.0.0 が公開されました。 Ruby 4.0 には “Ruby Box”、”ZJIT” ほか多数の改善が含まれています。
Posted by naruse on 25 Dec 2025
サイトのアイデンティティの再設計
サイトの包括的なデザインのアップデートを発表できることを嬉しく思います。今回の更新ではTaeko Akatsukaさんにデザインを担当していただきました。
Posted by Hiroshi SHIBATA on 22 Dec 2025
Ruby 4.0.0 preview3 リリース
Ruby 4.0.0-preview3 が公開されました。
Posted by naruse on 18 Dec 2025
Ruby 4.0.0 preview2 リリース
Ruby 4.0.0-preview2 が公開されました。Ruby 4.0では、Unicodeバージョンの17.0.0へのアップデートなど様々な改善が行われています。
Posted by naruse on 17 Nov 2025