web-dev-qa-db-ja.com

HeartBleedの脆弱性はTomcat Nativeを使用するApache Tomcatサーバーに影響を及ぼしますか?

Tomcat Native&APRを使用するApache Tomcatサーバーは、HeartBleed OpenSSLのバグに対して脆弱ですか、またはこのレイヤーはそれらを隔離しますか? http://Tomcat.Apache.org/native-doc/

HeartBleed OpenSSLバグ情報: http://heartbleed.com/

私のApache Tomcatサーバーには、次のものが含まれています。

  • OpenSSLの脆弱なバージョン
  • APRの構築とインストール
  • -with-aprおよび-with-sslを使用してTomcat Nativeを構築およびインストール
  • Tomcatはリクエストを直接処理しています。ポート443のコネクターは、SSLEnabled、SSLProtocol、SSLCipherSuite、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile の属性で構成されます。
    • SSLProtocol = "-ALL + SSLv3 + TLSv1"
    • SSLCipherSuite = "ALL:!aNULL:!eNULL:!ADH:RC4 + RSA:+ HIGH:+ MEDIUM:!LOW:!SSLv2:!EXPORT"

質問:

  • Tomcat、APR、またはTomcat Nativeのバージョンは脆弱性に影響を及ぼしますか?
  • SSLProtocolまたはSSLCipherSuiteの値は脆弱性に影響を及ぼしますか?
13
Arlo

リンクしたドキュメントによると、APRコネクタ

  • TLS/SSL機能にOpenSSLを使用(リンクされたAPRライブラリでサポートされている場合)

したがって、Tomcat Native LibraryはHeartbleedバグに対して脆弱であると想定するのが妥当です。ただし、TomcatはJavaで記述されており、Javaには独自の割り当てシステム(有名なガベージコレクター)があり、OSから非常に離れた巨大なブロックによってメモリを取得するため、条件は異なります。 OpenSSLがブロックを取得するゾーン。

したがって、ハートブリードバッファオーバーランによって、Javaベースのオブジェクトとして存在する秘密情報が明らかになることはほとんどありません。ただし、OpenSSLが独自のバッファーを取得するのと同じヒープから割り当てられた情報を取得する場合があります。特に、脆弱性がOpenSSL自体によって使用される秘密鍵の一部またはすべてを明らかにする可能性があるのは可能です。

11
Thomas Pornin

私はWindowsにTomcat 7.0.29サーバーを持っていますが、これはqualys heartbleedスキャンで脆弱であると表示されています。 server.xmlのこのコネクタ構成でAPRを使用しています。

Connector protocol="org.Apache.coyote.http11.Http11AprProtocol"
URIEncoding="UTF-8"
port="443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="${catalina.base}/conf/ssl/XXXX.cer" 
SSLCertificateKeyFile="${catalina.base}/conf/ssl/XXXX.key"
SSLCertificateChainFile="${catalina.base}/conf/ssl/XXXX.cer"
SSLPassword="XXXX"
clientAuth="optional" 
SSLProtocol="ALL" 
SSLCipherSuite="ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!SSLv2:RC4+RSA"

ブライアン

5
Brian O'Nolan

これは、apr-1.5.0、openssl-1.0.1gに準拠したWindowsのtcnative-1.1.29バイナリへの a link です。これはVC 2008に準拠しているため、Windows 2003またはXP用のMicrosoft Visual C++ 2008再頒布可能パッケージが必要です。 Juan Caleroからのファイルにはwin32が含まれておらず、VC 2010に準拠していた。どちらか一方がより適切に機能する可能性がある。 Tomcatを停止し、tcnative-1.dllを置き換えて、Tomcatを起動するだけです。

1
user44127

Tomcatは箱から出してハートブリードすることに対して脆弱ではないと思います。

はい、APRライブラリがリンクされ、SSLEngineがオンになっています。

<Listener className="org.Apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

ただし、デフォルトのTomcatデプロイメントのserver.xml設定ファイルを見ると、SSLコネクタはAPRライブラリではなくJSSEを使用しています。

<!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the BIO implementation that requires the JSSE
     style configuration. When using the APR/native implementation, the
     OpenSSL style configuration is required as described in the APR/native
     documentation -->
<!--
<Connector port="8443" protocol="org.Apache.coyote.http11.Http11Protocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->

したがって、Heartbleedを介して悪用することはできません。 SSLコネクターを手動でAPRを使用するように変更しない限り、あなたは脆弱ではないと言っても安全だと思います。

ハートブリードのオフラインテスターを知っていますか。

http://alexluca.com/2014/04/10/heartbleed-and-Tomcat-out-of-the-box-ssl-config/

よろしく、

アレックスL.

1
Alex