LinuxサーバーにOpenSSLの脆弱なバージョンをインストールする方法は?


9

Heartbleedの脆弱性のあるOpenSSLバージョンをコンパイルして、チームのWebセキュリティチャレンジ用にセットアップしているサーバーにインストールしたい(明らかな理由により、Ubuntuのリポジトリからのインストールは利用できないため)。

ソースOpenSSL 1.0.1fをダウンロードして、提供された指示に従って実行し./config(次にmakemake installを実行)、GitHubから公開されているHeartbleed POC PC から実行しようとしましたが、スクリプトはハートビート応答が受信されなかったことを通知し、サーバーはおそらく脆弱ではありません。

実行openssl versionすると、次の出力が生成されます:OpenSSL 1.0.1f 6 Jan 2014。もちろんSSL証明書をインストールし、SSLアクセスはサーバーで機能します。

OpenSSLは、Apache 2.4.7で動作するようにインストールされています。

誰か助けてもらえますか?


3
一般に、古いバージョンとLinuxディストリビューションをテストする良い方法は、ディストリビューションの古いISOイメージをダウンロードし、それを使用してVMをインストールすることです。これですべてのパッケージが利用できるわけではありませんが、OpenSSLは確かに利用できます。
Bruno

Debianのパッケージングにある程度慣れている場合は、現在のopensslソースパッケージをダウンロードしてCVE-2014-0160.patchを削除し、再ビルドするのはかなり簡単です。
Matt Nordhoff、2015

回答:


7

ここで起こっている可能性のある2つの事柄があります:

  1. 単純な「./configure; make; make install」では、デフォルトで共有ライブラリがに配置されます/usr/local/lib。ただし、システムにインストールされたライブラリ/usr/libは、ライブラリ検索パスの前半にあるに含まれます。システムにインストールされたバージョンのOpenSSLを削除しない限り、脆弱なバージョンは見つかりません。

  2. システムライブラリを上書きしている場合でも、Apacheを再起動するまで変更は反映されません。削除されたファイルは、ファイルハンドルを開いているすべてのプログラムがそれらのファイルハンドルを閉じるまで、アクセス可能なままです(ディスク上の領域を占有します)。


7

どのサーバーソフトウェアが使用されていますか?

OpenSSLバイナリは脆弱ですが、OSパッケージからインストールされたWebサーバーは、脆弱ではないライブラリバージョンを使用している可能性があります。

脆弱なリスナーを実行する最も簡単な方法openssl s_serverは、完全なWebサーバーを脆弱にする必要がある場合、脆弱なOpenSSLに対してコンパイルする必要があるでしょう。


1
おっと、それs_serverが何かであるとは知りませんでした。私はs_client永遠に使用してきましたが、サーバーオプションもあるはずです。
EEAA 2015年

1
@EEAAええ、そこには多くの異なるサブコマンドが詰め込まれているのはおかしいです。
シェーンマッデン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.