OpenSSLのHeartbleedバグから回復するにはどうすればよいですか?


93

CVE-2014-0160別名Heartbleedは、OpenSSLの脆弱性です。怖いですね。

影響を受けているかどうかを確認するにはどうすればよいですか?

影響を受けた場合、何をする必要がありますか?明らかにアップグレードだけでは十分ではありません。



いいえ、怖くはありません。それはズボンのように恐ろしいように見えます。
evamvid 14

回答:


95

この脆弱性は、システムが攻撃された場合、パッチを適用した後でも脆弱性を維持し、攻撃によってログに痕跡が残らない可能性があるため、潜在的な影響が大きくなります。すぐにパッチを適用し、注目度の高いターゲットではない場合、誰もあなたを攻撃しようとはしないでしょうが、確実ではありません。

私は脆弱ですか?

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 beta 2以降)は影響を受けません。これは実装のバグであり、プロトコルの欠陥ではないため、OpenSSLライブラリを使用するプログラムのみが影響を受けます。

コマンドラインツールopenssl version -aを使用して、OpenSSLバージョン番号を表示できます。一部のディストリビューションはバグ修正を以前のリリースに移植していることに注意してください。パッケージの変更ログにHeartbleedバグ修正が記載されていれば、1.0.1fのようなバージョンが表示されていても問題ありません。openssl version -aUTC-04以降の2014-04-07のビルド日付(最初の行の日付ではない)について言及している場合は、問題ないはずです。OpenSSLパッケージが有していてもよいことに留意されたい1.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-04-07の発表以降、ログに接続が表示されない限り。(これは、脆弱性が発表される前にこの脆弱性が悪用されていなかったことを前提としています。)サーバーが内部でのみ公開されている場合、

クライアントソフトウェアは、悪意のあるサーバーへの接続に使用した場合にのみ影響を受けます。したがって、IMAPSを使用して電子メールプロバイダーに接続した場合、心配する必要はありません(プロバイダーが攻撃された場合を除きます-しかし、その場合は連絡してください)、脆弱なブラウザーでランダムなWebサイトを閲覧した場合、心配する。これまでのところ、脆弱性は発見される前に悪用されていなかったため、2014-04-08以降に悪意のあるサーバーに接続した場合にのみ心配する必要があります。

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

  • SSH(プロトコルはSSLではありません)
  • Chrome / Chromium(NSSを使用
  • Firefox(NSSを使用)(少なくともUbuntu 12.04上のFirefox 27で、すべてのビルドではありませんか?

影響は何ですか?

このバグにより、SSLサーバーに接続できるクライアントは、一度にサーバーから約64kBのメモリを取得できます。クライアントを認証する必要はありません。攻撃を繰り返すことにより、クライアントは連続した試行でメモリのさまざまな部分をダンプできます。これにより、攻撃者はサーバープロセスのメモリにあるキー、パスワード、Cookieなどのデータを取得できる可能性があります。

攻撃者が取得できる可能性がある重要なデータの1つは、サーバーのSSL秘密キーです。このデータを使用して、攻撃者はサーバーになりすますことができます。

また、このバグにより、SSLクライアントが接続したサーバーは、一度にクライアントから約64kBのメモリを取得できます。脆弱なクライアントを使用して機密データを操作し、後で同じクライアントで信頼できないサーバーに接続した場合、これは心配です。したがって、この側の攻撃シナリオは、サーバー側の攻撃シナリオよりもかなり少なくなります。

パッケージの整合性はSSLトランスポートではなくGPG署名に依存しているため、一般的な配布ではパッケージ配布にセキュリティ上の影響はありません

脆弱性を修正するにはどうすればよいですか?

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

  1. 影響を受けるすべてのサーバーをオフラインにします。実行している限り、重要なデータを漏らしている可能性があります。

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

  3. 新しいキーを生成します。これは、バグにより攻撃者が古い秘密鍵を取得することを許可した可能性があるためです。最初に使用したのと同じ手順に従います。

    • 証明機関によって署名された証明書を使用する場合は、新しい公開キーをCAに送信します。新しい証明書を取得したら、サーバーにインストールします。
    • 自己署名証明書を使用する場合は、サーバーにインストールします。
    • いずれにせよ、古いキーと証明書を邪魔にならないように移動します(ただし、それらを削除しないでください。使用されなくなったことを確認してください)。
  4. 妥協のない新しいキーができたので、サーバーをオンラインに戻すことができます

  5. 古い証明書を取り消します。

  6. 損害評価:SSL接続を提供するプロセスのメモリにあったデータは、潜在的に漏洩した可能性があります。これには、ユーザーパスワードやその他の機密データが含まれる場合があります。このデータが何であったかを評価する必要があります。

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

その他の場合の修復

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

クライアントでは、バグが悪用される可能性のあるまれなシナリオがあります。悪用するには、同じクライアントプロセスを使用して、

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

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

2014年4月7日の夕方UTCからOpenSSLライブラリのアップグレードまでの間にこれを行った場合、クライアントのメモリにあったデータが侵害されることを考慮してください。

参照資料


5
「一般に、ある時点でSSLキーを生成したサーバーを実行すると影響を受けます。」誤解を招く可能性があります。強調するために、あるサーバーでキーを生成し、別のサーバーでそれを使用する場合、それを使用するサーバーが脆弱なバージョンのOpenSSLを実行している場合、問題が発生します。
マットノルドホフ14

3
クライアント証明書も影響を受けますIIRC
Elazar Leibovich

2
@ElazarLeibovich特にクライアント証明書ではなく(実際、このバグによってクライアント証明書が漏洩する可能性は低い)、脆弱なライブラリバージョンを使用するクライアントがサーバー起動ハートビートをサポートするプロトコルを使用して悪意のあるサーバーに接続した場合、クライアントメモリ内のデータ 私はこれについて専門家に尋ねましたが、まだ明確な答えがありませんでした。
ジル14

1
FirefoxはOpenSSLを使用していると思います。を実行するlsof -c firefox | grep 'ssl\|crypto'と、/ usr / lib64 / libssl.so.1.0.0、/ usr / lib64 / libcrypto.so.1.0.0、/ lib64 / libk5crypto.so.3.1、および/opt/firefox/libssl3.soが取得されます。

1
@ B4NZ41ただセキュリティのアップグレードを行ってください。顧問は、 20時間以上出てきました。
ジル14

11

脆弱かどうかをテストするには、http//filippo.io/Heartbleed/にアクセスしてください。

脆弱なアップデートであることがわかった場合はopenssl、ウェブサーバーを再起動してください。


1
ジルが答えで言及したように、単に更新して再起動するだけでは十分ではありません。秘密鍵の侵害の可能性に対応する必要があります。最も基本的な要件はこれらの鍵の失効ですが、鍵を使用して侵害された可能性のある情報にも対処する必要があります。セッションIDなど。
虐待14

0

このバグから回復する方法はありません。すべてのログを保存します。脆弱性が実際に存在することを誰かが実際に認識した場合に、それが発表される前に必要になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.