Tomcat Native&APRを使用するApache Tomcatサーバーは、HeartBleed OpenSSLのバグに対して脆弱ですか、またはこのレイヤーはそれらを隔離しますか? http://Tomcat.Apache.org/native-doc/
HeartBleed OpenSSLバグ情報: http://heartbleed.com/
私のApache Tomcatサーバーには、次のものが含まれています。
質問:
リンクしたドキュメントによると、APRコネクタ
- TLS/SSL機能にOpenSSLを使用(リンクされたAPRライブラリでサポートされている場合)
したがって、Tomcat Native LibraryはHeartbleedバグに対して脆弱であると想定するのが妥当です。ただし、TomcatはJavaで記述されており、Javaには独自の割り当てシステム(有名なガベージコレクター)があり、OSから非常に離れた巨大なブロックによってメモリを取得するため、条件は異なります。 OpenSSLがブロックを取得するゾーン。
したがって、ハートブリードバッファオーバーランによって、Javaベースのオブジェクトとして存在する秘密情報が明らかになることはほとんどありません。ただし、OpenSSLが独自のバッファーを取得するのと同じヒープから割り当てられた情報を取得する場合があります。特に、脆弱性がOpenSSL自体によって使用される秘密鍵の一部またはすべてを明らかにする可能性があるのは可能です。
私は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"
ブライアン
これは、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を起動するだけです。
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.