コンテンツ

Apache Tomcat のセキュリティモデル

はじめに

Apache Tomcat® セキュリティチームは、報告された脆弱性を以下のセキュリティモデルに基づいてレビューします。

管理者ユーザー

管理者ユーザーは常に信頼されていると見なされます。攻撃者がすでに以下のいずれかにアクセスまたは制御している場合の脆弱性に関する報告は却下されます。

  • Tomcat バイナリおよび/またはスクリプト。
  • Tomcat 設定ファイル。
  • Tomcat ログファイル。
  • 一時ディレクトリ(デフォルトは $CATALINA_BASE/temp
  • Web アプリケーションの作業ディレクトリ(デフォルトは $CATALINA_BASE/work
  • Tomcat に付属の Manager または Host Manager Web アプリケーション。
  • JMX API(ローカルまたはリモート)。
  • Java Attach API またはその他のデバッグインターフェース。

攻撃者が管理者ユーザーを騙して、管理者が意図しないアクションを実行させる(例:CSRF 脆弱性)場合の脆弱性に関する報告は受け入れられます。

Web アプリケーション

Tomcat にデプロイされた Web アプリケーションは信頼されていると見なされます。ユーザーが提供する Web アプリケーションの脆弱性は、Tomcat の脆弱性ではなく、アプリケーションの脆弱性です。

Web アプリケーションの変更を可能にする機能(例:WebDAV、HTTP PUT リクエストなど)を有効にする Web アプリケーションは、その機能を保護するための措置を講じることが期待されます。これを怠ることは、Tomcat の脆弱性ではなく、アプリケーションの脆弱性です。

ASF から提供される標準の Tomcat ディストリビューションに含まれる Web アプリケーションの脆弱性に関する報告は受け入れられます。報告者は、テスト対象のバージョンのドキュメントの「セキュリティに関する考慮事項」セクションにある、提供される各アプリケーションに関するコメントを確認する必要があります。

コネクタ

プロトコルに関わらず、コネクタ経由で受信されたデータは、以下の例外を除き、信頼されていないと見なされます。

  • AJP コネクタの allowedRequestAttributesPattern で許可される標準のリクエスト属性および任意のカスタムリクエスト属性。
  • RemoteIpValveSSLValve、同等のフィルター(RemoteIpFilter)または同様の機能によって処理される HTTP ヘッダー。

クライアントは、Tomcat に提示するデータの帰結に対して責任を負います。クライアントが不正な形式のリクエストを提示し、Tomcat が設定されたプロトコルの仕様に従ってそれを処理した場合、クライアントへのセキュリティ上の影響はクライアントの責任です。

クラスタリング

クラスタトラフィックは、EncryptInterceptor が使用されている場合を除き、信頼されたネットワークを必要とします。EncryptInterceptor が使用されている場合は、機密性と完全性は保護されますが、可用性は保護されません。

マルチキャストによるクラスタメンバーシップは常に信頼されたネットワークを必要とします。

ロギング

リクエストURIに含まれるもの以外は、デフォルト設定ではセキュリティ機密情報がログに記録されることはありません。

変更されたロギング設定、特にデバッグロギングが有効になっている場合は、セキュリティ機密情報がログに記録される可能性があります。

デフォルトのログには、ユーザーのIPアドレスなどの個人を特定できる情報(PII)が含まれる可能性があります。

Tomcat は、アプリケーションによって生成されたログメッセージの内容について責任を負いません。