チームのWebセキュリティの課題のためにセットアップしているサーバーに、Heartbleedの脆弱性のあるOpenSSLバージョンをコンパイルしてインストールしたい(明らかな理由により、Ubuntuのリポジトリからインストールできないため)。
提供された手順を使用して、ソースOpenSSL 1.0.1fからダウンロードしてコンパイルしました(./config
、次にmake
およびmake install
)、そして私のPCからオープンに利用可能なHeartbleed POC GitHubから を実行しようとしましたが、スクリプトはハートビート応答が受信されておらず、サーバーに脆弱性がない可能性があることを通知しています。
ランニング openssl version
は次の出力を生成します:OpenSSL 1.0.1f 2014年1月6日。もちろんSSL証明書をインストールし、SSLアクセスはサーバーで機能します。
OpenSSLは、Apache 2.4.7で動作するようにインストールされています。
誰か助けてもらえますか?
ここで起こっているかもしれない2つの事柄があります:
単純な「./configure; make; make install」では、デフォルトで共有ライブラリを/usr/local/lib
。ただし、システムがインストールしたライブラリは/usr/lib
、これはライブラリ検索パスの前にあります。システムにインストールされたバージョンのOpenSSLを削除しない限り、脆弱なバージョンは見つかりません。
システムライブラリを上書きしている場合でも、Apacheを再起動するまで変更は反映されません。削除されたファイルは、ファイルハンドルを開いているすべてのプログラムがそれらのファイルハンドルを閉じるまで、アクセス可能なままです(ディスク上の領域を占有します)。
どのサーバーソフトウェアが使用されていますか?
OpenSSLバイナリは脆弱ですが、OSパッケージからインストールされたWebサーバーは、脆弱ではないライブラリバージョンを使用している可能性があります。
脆弱なリスナーを実行する最も簡単な方法はopenssl s_server
です。完全なWebサーバーを脆弱にする必要がある場合は、脆弱なOpenSSLに対してコンパイルする必要があります。