OpenSSLでHeartbleedエラーを修復する方法は?

OpenSSLでHeartbleedエラーを修復する方法は?

CVE-2014-0160また〜として知られています厳しい努力OpenSSLの脆弱性です。怖いようです。

私が影響を受けたかどうかはどうすればわかりますか?

影響を受けた場合はどうすればよいですか?アップグレードだけでは十分ではないようです。

答え1

この脆弱性は、システムが攻撃を受けた場合にパッチを適用した後も脆弱なままであり、攻撃がログに痕跡を残さない可能性があるため、潜在的な影響が高くなります。すぐにパッチを当てて世間の注目を集める対象でなければ、誰もあなたを攻撃しない可能性が高いですが、確かにわかりにくいです。

私は脆弱ですか?

OpenSSLのバグバージョン

欠陥のあるソフトウェアはOpenSSL ライブラリ 1.0.1~1.0.1fそしてOpenSSL 1.0.2からbeta1まで。以前のバージョン(0.9.x、1.0.0)とバグ修正バージョン(1.0.1g以上、1.0.2ベータ2以降)は影響を受けません。これはプロトコルの欠陥ではなく実装のバグであるため、OpenSSLライブラリを使用するプログラムのみが影響を受けます。

コマンドラインツールを使用してopenssl version -aOpenSSLバージョン番号を表示できます。一部のディストリビューションでは、バグ修正を以前のバージョンにバックポートします。パッケージの変更ログに Heartbleed のバグ修正が記載されている場合は、1.0.1f のようなバージョンが表示されても問題ありません。openssl version -a言及されたビルド日付(最初の行の日付ではない)が2014年4月7日(UTC)の夜の頃であるか、それ以降であれば問題ありません。 OpenSSL1.0.0パッケージには名前しかし、バージョン1.0.1(1.0.0バイナリ互換性を参照)。

影響を受けるアプリケーション

OpenSSLライブラリを使用するアプリケーションを介して攻撃が行われます。SSL接続。多くのアプリケーションは他の暗号化サービスにOpenSSLを使用していますが、大丈夫です。バグは、SSLプロトコルの特定の機能(「ハートビート」)実装にあります。

システムのライブラリとどのプログラムがリンクされているかを確認できます。 dpkgとapt(Debian、Ubuntu、Mintなど)を使用するシステムでは、次のコマンドは使用されているライブラリlibssl1.0.0(影響を受けるパッケージ)に加えてインストールされているパッケージを一覧表示します。

apt-cache rdepends libssl1.0.0 | tail -n +3 |
xargs dpkg -l 2>/dev/null | grep '^ii' | grep -v '^ii  lib'

ちょっと走ってみるとサーバーソフトウェアこのリストにSSL接続の受信、影響を受ける可能性があります。これには、Webサーバー、電子メールサーバー、VPNサーバーなどが含まれます。証明機関に証明書署名要求を送信するか、自己署名証明書を作成して証明書を生成する必要があるため、SSLが有効になっていることがわかります。 (一部のインストールプロセスでは、ユーザーにはわからない自己署名証明書が生成される可能性がありますが、これは通常内部サーバーにのみ適用され、インターネットに公開されているサーバーには適用されません。)インターネットに公開されている簡単なサーバーを実行している場合は、破損したサーバーを使用してください。 2014年4月7日以降、ログに接続が表示されない限り、破損していると見なしてください。 (これはリリース前に脆弱性が悪用されていないと仮定します。)サーバーが内部的にのみ公開されている場合、キーを変更する必要があるかどうかは、追加のセキュリティ対策が適用されているかどうかによって異なります。

クライアントソフトウェアは、それを使用して悪意のあるサーバーに接続している場合にのみ影響を受けます。したがって、IMAPSを使用して電子メールプロバイダに接続する場合は心配する必要はありません(プロバイダが損傷しない限り - しかし、そのような場合は通知する必要があります)。しかし、脆弱なブラウザで検索する場合、ランダムを心配する必要があるウェブサイト。現在まで、該当の脆弱性が発見される前には悪用された事例がないように見え、2014 年 4 月 8 日以降からは悪質なサーバー接続だけを心配してください。

次のプログラムはOpenSSLを使用してSSLを実装しないため、影響を受けません。

  • SSH(非SSLプロトコル)
  • クロム/クロム(NSSの使用)
  • Firefox(NSSを使用)(Ubuntu 12.04ではFirefox 27以降ですが、すべてのバージョンではありませんか?)

どのような影響がありますか?

このエラーはすべての顧客SSLサーバーに接続して一度にサーバーから約64kBのメモリーを検索できる人。クライアントは何らかの方法で認証する必要はありません。反復攻撃により、クライアントは連続試行でメモリの他の部分をダンプできます。これにより、攻撃者はキー、パスワード、クッキーなどを含むサーバープロセスメモリ内のすべてのデータを取得できます。

攻撃者が検索できる主なデータの1つは、サーバーのSSL秘密鍵です。このデータを使用して、攻撃者はあなたのサーバーを偽装することができます。

さらに、このバグは、SSLクライアントが接続しているすべてのサーバーが一度にクライアントから約64 kBのメモリを取得できるようにします。脆弱なクライアントを使用して機密データを操作し、同じクライアントを使用して信頼できないサーバーに接続する場合は心配することがあります。したがって、こちらの攻撃の可能性はサーバー側に比べて著しく低いです。

一般的な分布の場合パッケージ展開にセキュリティ影響がないパッケージの整合性は、SSL 転送ではなく GPG 署名に依存するためです。

この脆弱性を解決するには?

公開されたサーバーの修理

  1. 影響を受けるすべてのサーバーをオフラインにします。実行中に機密データが漏洩する可能性があります。

  2. OpenSSLライブラリパッケージのアップグレード。すべてのディストリビューションには修正が必要です(1.0.1gまたはバージョン番号を変更せずにバグを修正するパッチを含む)。ソースからコンパイルする場合は、1.0.1g以上にアップグレードしてください。影響を受けるすべてのサーバーが再起動されていることを確認してください。
    Linuxでは、潜在的に影響を受けるプロセスがまだ実行中であることを確認できます。grep 'libssl.*(deleted)' /proc/*/maps

  3. 新しいキーの生成。これは、バグが原因で攻撃者が以前の秘密鍵を取得できるために必要です。最初に使用したのと同じ手順に従います。

    • 証明機関が署名した証明書を使用している場合は、新しい公開鍵をCAに送信してください。新しい証明書がある場合は、サーバーにインストールします。
    • 自己署名証明書を使用している場合は、サーバーにインストールしてください。
    • どちらの場合も、古いキーと証明書を別の場所に移動します(ただし、削除せずに使用しないことを確認してください)。
  4. これで、破損していない新しいキーがあるので、次のことができます。サーバーをオンラインに戻す

  5. キャンセル古い証明書。

  6. ダメージ評価:SSL接続を提供するプロセスのメモリ内のすべてのデータが破損している可能性があります。これには、ユーザーのパスワードやその他の機密データが含まれる場合があります。このデータが何であるかを評価する必要があります。

    • パスワード認証を許可するサービスを実行している場合は、脆弱性が発表される直前に接続されたユーザーのパスワードは破損していると見なす必要があります。ログを確認し、影響を受けるユーザーのパスワードを変更してください。
    • また、すべてのセッションクッキーが破損している可能性があるため、無効にしてください。
    • クライアント証明書は破損しません。
    • 脆弱性が発生する直前から交換されたすべてのデータはサーバーメモリに残り、攻撃者に漏洩した可能性があります。
    • 誰かが既存のSSL接続を記録してサーバーキーを取得した場合は、ログを復号化できます。 (しない限り無進行生存保証されます。知らなければそうではありません。 )

その他の状況に対する救済策

localhostまたはイントラネットでのみリッスンするサーバーは、信頼できないユーザーがそのサーバーに接続できる場合にのみ公開されていると見なされます。

クライアントの場合、このバグが悪用される可能性があることは非常にまれです。脆弱性を悪用するには、同じクライアントプロセスを使用する必要があります。

  1. 機密データ(パスワード、クライアント証明書など)を操作します。
  2. その後、同じプロセスでSSLを介して悪意のあるサーバーに接続します。

したがって、たとえば、完全に信頼できないメールプロバイダに接続するためにのみ使用される電子メールクライアントは問題ではありません(悪意のあるサーバーではありません)。ファイルをダウンロードするためにwgetを実行することは問題ではありません(機密データは漏えいしません)。

これを行い、2014年4月7日(UTC)の夜間にOpenSSLライブラリをアップグレードすると、クライアントメモリ内のすべてのデータが破損することを検討してください。

引用する

答え2

脆弱性をテストするには、ここに進んでください。http://filippo.io/Heartbleed/

脆弱であると判断した場合は、opensslWebサーバーを更新して再起動してください。

答え3

このエラーを修復する方法はありません。すべてのログをアーカイブします。脆弱性を発表する前に、誰かが脆弱性が実際に存在することを認識している場合に必要です。

関連情報