現在、バージョン1.0.1
から1.0.1f
(包括的)および1.0.2-beta
に影響する OpenSSLのバグ が見つかっています。
Ubuntu 12.04以降、私たちは皆このバグに対して脆弱です。この脆弱性にパッチを適用するには、影響を受けるユーザーはOpenSSL 1.0.1g
に更新する必要があります。
影響を受けるすべてのユーザーがこの更新プログラムを適用する方法now
セキュリティ更新プログラムは12.04、12.10、13.10で利用可能です および14.04buntu Security Notice USN-2165-1 をご覧ください。
そのため、まず次のコマンドを実行して、利用可能なセキュリティ更新プログラムを適用する必要があります
Sudo apt-get update
Sudo apt-get upgrade
コマンドラインから。
影響を受けるOpenSSLバージョンを使用するサービス(HTTP、SMTPなど)をrestartすることを忘れないでください。そうしないと、依然として脆弱です。 Serverfault.comの Heartbleed:これとは何ですか、またそれを軽減するオプションは何ですか も参照してください。
次のコマンドは、(アップグレード後)再起動する必要があるすべてのサービスを表示します。
Sudo find /proc -maxdepth 2 -name maps -exec grep -HE '/libssl\.so.* \(deleted\)' {} \; | cut -d/ -f3 | sort -u | xargs --no-run-if-empty ps uwwp
その後、- すべてのサーバーSSLキーを再生成する必要があります サーバーから機密情報を取得した可能性があります。
バグは Heartbleed として知られています。
一般に、ある時点でSSLキーを生成したサーバーを実行すると影響を受けます。ほとんどのエンドユーザーは(直接)影響を受けません。少なくともFirefoxとChromeはOpenSSLを使用しません。 SSHは影響を受けません。 Ubuntuパッケージの配布は影響を受けません(GPG署名に依存します)。
OpenSSLバージョン1.0–1.0.1fを使用する任意の種類のサーバーを実行すると、脆弱性が生じます(バグが発見されてからパッチが適用されたコースバージョンを除く)。影響を受けるUbuntuバージョンは、11.10から14.04の信頼できるプレリリースです。これは実装のバグであり、プロトコルの欠陥ではないため、OpenSSLライブラリを使用するプログラムのみが影響を受けます。 OpenSSLの古い0.9.xバージョンに対してリンクされているプログラムがある場合、影響はありません。 OpenSSLライブラリを使用してSSLプロトコルを実装するプログラムのみが影響を受けます。他の目的でOpenSSLを使用するプログラムは影響を受けません。
インターネットに公開されている脆弱なサーバーを実行した場合、2014-04-07のアナウンス以降、ログに接続が表示されない限り、そのサーバーが危険にさらされていると考えてください。 (これは、発表前に脆弱性が悪用されなかったことを前提としています。)サーバーが内部でのみ公開されている場合、キーを変更する必要があるかどうかは、他のセキュリティ対策によって異なります。
このバグにより、any clientがSSLサーバーに接続してサーバーから約64kBのメモリを取得できるようになります。クライアントを認証する必要はありません。攻撃を繰り返すことにより、クライアントは連続してメモリのさまざまな部分をダンプできます。
攻撃者が取得できる重要なデータの1つは、サーバーのSSL秘密キーです。このデータを使用して、攻撃者はサーバーになりすますことができます。
影響を受けるすべてのサーバーをオフラインにします。サーバーが実行されている限り、重要なデータが漏れている可能性があります。
libssl1.0.0
パッケージをアップグレードする、影響を受けるすべてのサーバーが再起動されることを確認します。
「grep 'libssl。(deleted)'/proc // maps`を使用して、影響を受けるプロセスがまだ実行されているかどうかを確認できます
新しいキーを生成する。これは、バグにより攻撃者が古い秘密鍵を取得できる可能性があるためです。最初に使用したのと同じ手順に従います。
妥協のない新しいキーができたので、次のことができますサーバーをオンラインに戻す。
取り消し古い証明書。
損傷評価:SSL接続を提供するプロセスのメモリにあったデータは、潜在的にリークされている可能性があります。これには、ユーザーパスワードやその他の機密データが含まれる場合があります。このデータが何であったかを評価する必要があります。
クライアントアプリケーションが影響を受ける状況はほとんどありません。サーバー側の問題は、誰でもサーバーに接続してバグを悪用できることです。クライアントを悪用するには、次の3つの条件を満たしている必要があります。
wget
を実行してファイルをダウンロードした場合、リークするデータはありませんでした。)2014年4月7日の夕方UTCとOpenSSLライブラリのアップグレードの間にこれを行った場合は、クライアントプロセスのメモリにあったデータが侵害されることを考慮してください。
UbuntuにインストールされているOpenSSLバージョンを確認するには、次を実行します。
dpkg -l | grep openssl
次のバージョンの出力が表示される場合、CVE-2014-0160のパッチが含まれている必要があります。
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)...
https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12 を見ると、どの種類のバグが修正されているかがわかります。
...
SECURITY UPDATE: memory disclosure in TLS heartbeat extension
- debian/patches/CVE-2014-0160.patch: use correct lengths in
ssl/d1_both.c, ssl/t1_lib.c.
- CVE-2014-0160
-- Marc Deslauriers <email address hidden> Mon, 07 Apr 2014 15:45:14 -0400
...
apt-get repositoriesにプリコンパイル済み1.0.1g OpenSSLバージョンなので、公式サイトからソースをダウンロードしてコンパイルするだけです。
curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && Sudo ./config && Sudo make && Sudo make install
Sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
# openssl version should return
openssl version
OpenSSL 1.0.1g 7 Apr 2014
Cf this ブログ投稿 。
NB:この回避策では、「1.0.1g openSSLソースで再コンパイルする必要のあるNginxおよびApacheサーバー」は修正されません。
サーバー全体のパッケージアップグレードを行いたくない場合。私は今日これらのガイドの束を読み、apt-get upgrade openssl
=== apt-get upgrade
これはあなたのマシンに必要なすべてのセキュリティ修正を適用します。すばらしい。どこかで古いパッケージバージョンに明示的に傾いているのでない限り。
これは、Apache 2を実行するUbuntu 12.04 LTSで必要な最小限のアクションです。
このアドレス に進み、脆弱性があることを証明します。 Webサーバーのダイレクト外部アドレスを使用する必要があります。ロードバランサー(ELBなど)を使用している場合、Webサーバーに直接接続していない可能性があります。
パッケージをアップグレードして再起動するには、次の1つのライナーを実行します。はい、すべてのガイドで、2014年4月4日以降にタイムスタンプを設定する必要があると言っていますが、これは私には当てはまらないようです。
apt-get update && apt-get install openssl libssl1.0.0 && /etc/init.d/Apache2 restart
適切なパッケージバージョンがインストールされていることを確認し、Webサーバーで脆弱性をもう一度確認します。
主要なパッケージは次のとおりです。以下のコマンドを使用してこの情報を決定し、不要なものを編集しました(マシンの状態についてそれほど知る必要はありません)。
$ dpkg -l | grep ssl
ii libssl-dev 1.0.1-4ubuntu5.12 SSL development libraries, header files and documentation
ii libssl1.0.0 1.0.1-4ubuntu5.12 SSL shared libraries
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)* binary and related cryptographic tools
1.0.1-4ubuntu5.12
に脆弱性を含めるべきではありません。以下のWebサイトに再度アクセスし、Webサーバーをテストして、これが当てはまることを確認してください。
緊急に助けを必要とする多くのコメンターに気づきました。彼らは指示に従い、アップグレードし、再起動しますが、いくつかのテストWebサイトを使用するときは依然として脆弱です。
Libsslなどの保留中のパッケージがないことを確認する必要があります。
:~$ Sudo apt-get upgrade -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
libssl-dev (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
libssl1.0.0 (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
linux-image-virtual (3.2.0.31.34 => 3.2.0.60.71)
linux-virtual (3.2.0.31.34 => 3.2.0.60.71)
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
それらのapt-mark unhold libssl1.0.0
をアップグレードするには(たとえば)。次に、アップグレードします:apt-get upgrade -V
。次に、影響を受けるサービスを再起動します。