OpenSSLのHeartbleed脆弱性に関する私的まとめ
この記事は最初の投稿日から11年経過しています。内容が古い可能性があります。
※2014/04/14修正
・「ロードバランサー」という記述を「SSLアクセラレータ」に修正。
・脆弱性検査サイトに「QUALYS SSL LABS」を追記。
大騒ぎになっている OpenSSL の Heartbleed脆弱性問題。
こういった問題は、「インターネットの終わり」論調から「現実的に悪用するのはタイヘン」論調まで百家争鳴状態になってしまうことが多々あるので、以下は自分で理解するための私的メモです。
OpenSSLの脆弱性で想定されるリスク – めもおきば を大変参考にさせていただきました。ありがとうございます。
脆弱性の詳細
- 対象となるOpenSSL のバージョン
- 1.0.1/1.0.2系
- Heartbeat拡張における脆弱性。
- 1.0.0までは Heartbeat拡張の実装がないので問題自体がない。
- TLS1.2のハンドシェーク中に発生する脆弱性。
- OpenSSLの脆弱性で想定されるリスク – めもおきば
- つまりコネクション確立する前なのでWebサーバレベルのアクセスログには残らない。パケットレベルのログを取っていれば残ると思うが通常運用状態でそこまでログを採っているサーバはあまりないかと…。
- 今回の脆弱性をついて攻撃者がサーバで実行されているプロセスのメモリ内の情報が取得可能になる。
- サーバがメモリ上に保持している秘密鍵の漏洩の可能性がある。
- SSL はサーバ証明書の検証を行った後、公開鍵暗号方式で共通鍵のやりとりを行い、その後の通信はその共通鍵で暗号化通信を行っている。
- 秘密鍵が漏洩すると、SSL通信確立手順の中にある、暗号化通信用の共通鍵を第三者が解読、取得可能ということになる。
- 例えばSSL通信を行っているサーバの通信の全パケット記録を採っておけば、SSLのハンドシェークの箇所の通信から暗号化通信用の共通鍵を解読し、以降の暗号化通信もまるごと解読できる可能性がある。
- ちなみに、これをできなくするための Perfect Forward Security(PFS)というものがあるようです。
自堕落な技術者の日記 : TwitterのPerfect Forward Secrecy(PFS)対応 – livedoor Blog(ブログ) - SSL通信中の情報が漏洩する可能性がある。
- 例えばセッションCookieなどを盗られるとセッションハイジャックが可能になってしまう。
- CVE-2014-0160 での Cookie 漏洩 – @znz blog
- 正しいSSL証明書を持った偽サーバを立ち上げることが可能。
- SSLの重要の役割の1つに「今接続しているかサイトが本物かどうか証明する」という役割があるが、これが崩壊する。
- 偽サーバを立ち上げても、クライアントに偽のDNS情報も渡す必要があるため、攻撃者がDNSサーバをいじれる状態かDNSキャッシュポイズニングなどでDNSの情報を偽装する必要はある。
対象となるアプリケーション
- IISは問題なし。
- apache の SSL 処理。OpenSSL を使っているので影響を受ける。
- 自分でapacheをコンパイルするのであればリンクする OpenSSL のバージョンによって影響を受けるかどうかが変わる。
- RedHatの場合、6.4以前の OpenSSL 1.0.0 を使っている場合は影響ないとのこと。
OpenSSL の CVE-2014-0160 (Heartbleed バグ) と Red Hat Enterprise Linux – Red Hat Customer Portal ロードバランサーSSLアクセラレータ。OpenSSL を使っていれば影響を受ける。- BIG-IP : SOL15159 – OpenSSL vulnerability CVE-2014-0160
影響を受けるバージョンがあるとのこと。 - A10 : A10 Products Not Vulnerable to OpenSSL CVE-2014-0160 (Heartbleed) | A10 Networks VirtualADC Community
影響なし。
利用者側の対策
- 今の状態だと利用者側の対策は「使わない」以外できないと思わる。
- How To:「Heartbleed」から身を守るには–セキュリティ専門家に聞く – CNET Japan
- パスワードを変更しようにも、そのパスワード変更の通信すら安全かどうかもわからない。
- 自分が使おうとしているサイトについてどのような状態か知る必要がある。
- 過去も今も脆弱性の影響はない
- 過去も今も影響を受けていなければ問題なくそのまま利用可
- 過去も今も脆弱性の影響がある場合
- 対策は「アクセスしない」しかないかも…。
- 過去影響を受けていたが現在は対策済み
- パスワード等の機微な情報の変更をする。
- 自分が使おうとしているサイトにて脆弱性の情報が公開されていなければ、脆弱性があるかどうかの診断サイトを使うという方法もある。
- Heartbleed脆弱性検査
- Qualys SSL Labs – Projects / SSL Server Test(Do not show the results on the boards のチェックを入れないとトップページに載ります。)
- この脆弱性に便乗した攻撃にも気をつける必要がある。
- OpenSSLの「Heartbleed」脆弱性に便乗攻撃、陰謀説や政府機関利用説も – ITmedia エンタープライズ
- 例えば「NHK等のニュースでも報道されていますが、重大なセキュリティ上の問題が発覚したため、パスワードの変更をお願い致します。」というスパムをばらまいて偽パスワード変更サイトに誘導してパスワードを入れさせるとか…。
リンクいろいろ
- OpenSSL の脆弱性に関する注意喚起(JPCERT)
- JVNVU#94401838: OpenSSL の heartbeat 拡張に情報漏えいの脆弱性
- Microsoft サービスは OpenSSL「Heartbleed」脆弱性の影響を受けません – 日本のセキュリティチーム – Site Home – TechNet Blogs
- 該当する場合はアップデートとサーバー証明書の再発行を:OpenSSL 1.0.1/1.0.2系に脆弱性、秘密鍵漏えいの恐れも – @IT
- チェック方法まとめ:OpenSSLの「Heartbleed」脆弱性は2年前から存在、「最悪のケースを想定して対処を」と専門家 – @IT
- Heartbleed情報アップデート:国内でもHeartbleedを狙うパケットの増加を観測 – @IT
- Important: openssl security update / Red Hat Customer Portal
- Security Advisory – 脆弱性:OpenSSL Heartbleed Bug (CVE-2014-0160/CVE-2014-0346) について / ナレッジベース – サーバID サポート