第7章 既知の問題
以下の項ではバージョン 7.4 の既知の問題について説明します。
7.1. CVE セキュリティー脆弱性
Fuse はミドルウェア統合プラットフォームであるため、多くのサードパーティーコンポーネントと統合される可能性があります。そのため、サードパーティーの依存関係の一部にセキュリティーの脆弱性がある可能性を常に排除することは困難です。ここでは、Fuse 7.4 のサードパーティーの依存関係に影響する既知のセキュリティー脆弱性について説明します。
- ENTESB-12489 CVE-2019-9827 - Fuse Console standalone on Amazon Web Services
-
セキュリティーの懸念があるため、スタンドアロンの Fuse アプリケーションを Amazon Web Services (AWS) にデプロイしないでください。この制限は、サポートされるすべてのスタンドアロン環境 (Spring Boot 1.x および 2.x、Karaf、および Red Hat JBoss Enterprise Application Platform) に適用されます。Fuse Console を AWS にスタンドアロンでデプロイする場合は、Fuse 7.7 以降にアップグレードし、
hawtio.disableProxy
システムプロパティーをtrue
に設定して、Fuse Console のプロキシーサーブレットを無効にすることを強く推奨します。 - CVE-2017-12629 Solr/Lucene -security bypass to access sensitive data - CVE-2017-12629
Apache Solr は、Apache Lucene 検索エンジンを使用する一般的なオープンソースの検索プラットフォームです。アプリケーションが Apache Solar と Apache Lucene の組み合わせ (Camel Solr コンポーネントを使用している場合など) を使用する場合、このセキュリティー脆弱性の影響を受ける可能性があります。この脆弱性の詳細と軽減策について、リンク先のセキュリティーアドバイザリーを確認してください。
注記Fuse ランタイムは Apache Solr や Apache Lucene を直接使用 しません。統合アプリケーションで Apache Solr と Apache Lucene を一緒に使用する場合のみセキュリティー上のリスクが発生します (Camel Solr コンポーネントを使用する場合など)。
- 複数の CVE jackson-databind セキュリティー脆弱性に関連する複数の CVE
FasterXML
jackson-databind
ライブラリーを使用し、JSON コンテンツをデシリアライズして Java オブジェクトをインスタンス化するアプリケーションは、潜在的に リモートコード実行 攻撃に脆弱です。しかし、脆弱性は自動的に発生せず、適切な軽減策を講じれば回避することができます。最低でも以下の前提条件をすべて満たさなければ攻撃を実行することはできません。
jackson-databind
の JSON コンテンツのデシリアライズに対し、ポリモーフィックな型の処理を有効にする必要があります。Jackson JSON でポリモーフィックな型の処理を有効にする方法は 2 つあります。-
@JsonTypeInfo
および@JsonSubTypes
アノテーションの組み合わせを使用します。 -
ObjectMapper.enableDefaultTyping()
メソッドを呼び出します。この方法はポリモーフィックな型をグローバルで有効にするため、危険です。
-
現在のバージョンの
jackson-databind
によってブラックリストに指定されていない ガジェットクラス が 1 つ以上 Java クラスパスにあります。ガジェットクラスは、機密性の高い (潜在的に悪用可能な) 操作を、constructor または setter メソッド (デシリアライズ中に呼び出しできるメソッド) の実行による副次的な影響として定義します。Jackson JSON ライブラリーによって維持されるガジェットブラックリストは、リモートコード実行の脆弱性から守るための最後の手段になります。jackson-databind
の脆弱性に関して多くの CVE が存在するのは、多数のガジェットクラスが存在するためです。ガジェットクラスの種類別に異なる CVE が存在します。重要Fuse はできるだけ早く最新バージョンの
jackson-databind
を使用するようにアップグレードされます。ただし、Fuse 7.4.0 は現在、jackson-databind
の最新バージョンと一致していません。
アプリケーションで
jackson-databind
を使用する必要がある場合、Jackson JSON でポリモーフィックな型の処理を行わないようにし、ObjectMapper.enableDefaultTyping()
メソッドを絶対に呼び出さないことが、リスクを軽減する最も重要な対策になります。