3 WebLogic Serverのロックダウン
本番環境にWebLogic Serverをインストールする場合は、次の項で説明するガイドラインに従うことを強くお薦めします:
WebLogic Serverのセキュアなインストール
-
WebLogic Serverをインストールする前に、ホスト・マシン、オペレーティング・システムおよびファイル・システムを保護して、アクセスが認可されたユーザーのみに制限されるようにしてください。具体的な推奨事項については、「ホスト環境の保護」を参照してください。
-
インストール・プログラムの実行時には、WebLogic Serverサンプル・アプリケーションをインストールせず、セキュリティ更新を受信するオプションを選択してください。詳細な手順は、『Oracle WebLogic Serverセキュリティの管理』のWebLogic Serverのセキュア・インストールの実行に関する項を参照してください。
最新のパッチおよび更新の適用
インストールした環境のセキュリティを確保するために、最新のWebLogic Server、Javaおよびデータベースのクリティカル・パッチ・アップデートをリリース後すぐに適用することを強くお薦めします。
表3-1 最新のパッチ・セットおよび更新の適用
セキュリティ・アクション | 説明 |
---|---|
最新のパッチ・セット更新(PSU)をインストールします。 |
WebLogic Serverのセキュリティ脆弱性の修正は、クリティカル・パッチ・アップデート(CPU)プログラムでリリースされたWebLogic ServerのPSUに含まれています。PSUは計画されたスケジュールに基づき、クリティカル・パッチ・アップデート、セキュリティ・アラートおよび掲示板に従って、サポートが有効でエラー修正対象のWebLogic Serverバージョンおよびパッチ・セットに対して発行されます。 これらのPSUのインストールをスケジュールし、リリースされたら適切なタイミングで適用することを強くお薦めします。 サイトのセキュリティ関連の問題の担当者は、インストールしたWebLogic ServerをOracle Supportに登録し、 WebLogic Serverのセキュリティ脆弱性の詳細はMy Oracle SupportドキュメントのOracle DatabaseおよびFusion Middleware製品のセキュリティ脆弱性に関するFAQ (ドキュメントID 1074055.1)を参照してください。 |
使用しているWebLogic Serverのバージョンおよびパッチ・セットのサポートが有効で、エラー修正対象であることを確認します。 |
セキュリティ脆弱性の修正を含む新しいバグ修正は、PremierまたはExtended Support対象およびエラー修正対象の製品バージョンとパッチ・セットの場合のみ提供されます。 WebLogic ServerバージョンがPremierまたはExtended Supportの対象か確認するには、Oracle Fusion MiddlewareのOracleのライフタイム・サポート・ポリシーを参照してください。 WebLogic Serverバージョンおよびパッチ・セットがエラー修正の対象か確認するには、My Oracle SupportドキュメントのOracle WebLogic Serverのエラー修正のサポート日(ドキュメントID 950131.1)に記載されているOracleのエラー修正ポリシーを参照してください 必要に応じて、使用しているWebLogic Serverバージョンおよびパッチ・セットのアップグレードを先見的に計画し、Premier SupportまたはExtended Supportおよびエラー修正の対象となるようにしておく必要があります。 |
本番システムで使用されるJDKおよびJVMバージョンのセキュリティを維持します。 |
JDKおよびJVMバージョンとWebLogic Serverの組合せがOracle Fusion Middlewareサポートされているシステム構成で動作保証され、ベンダーによって現在サポートされ、最新のセキュリティ更新が適用されていることを確認します。 Oracle JDKおよびJVMのユーザーには、次のことを強くお薦めします。
|
セキュアなドメインの構成
セキュアなドメインの構成には、保護された本番モードの使用、パスワード検証プロバイダの構成、監査およびユーザー・ロックアウトの構成、WebLogicリソースへのアクセス権を持つアカウントの制限などが含まれます。
内容は次のとおりです:
保護された本番モードの構成
脅威に対する脆弱性を軽減するために、ドメインを保護された本番モードで実行するように構成することを強くお薦めします。
セキュリティおよびロギングに関するデフォルトの設定は、ドメイン・モードにより決定されます。開発モードでは、セキュリティ構成が比較的緩和されます。起動IDファイルを使用して管理サーバーを起動するか、autodeploy
ディレクトリを使用してアプリケーションをデプロイできます。本番モードでは、アプリケーションのデプロイおよび管理サーバーの起動にはユーザー名とパスワードが必要になるなど、セキュリティ構成がさらに厳しくなっています。保護された本番モードでは、セキュリティ構成のデフォルトがよりセキュアであり、セキュアでない構成アイテムは警告として記録され、デフォルトの認可およびロール・マッピング・ポリシーはより制限的であるため、本番ドメインは非常にセキュアです。「ドメインのモードがデフォルトのセキュリティ構成に与える影響の理解」を参照してください。
保護された本番モードを構成するには、まずドメインが本番モードであることを確認する必要があります。保護された本番モードは、開発モードで実行しているドメインには使用できません。ドメイン内のWebLogic Serverインスタンスが本番モードで実行されるように変更する方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの本番モードへの変更に関する項を参照してください。WebLogic Scripting Toolを使用してドメイン構成に移動し、ProductionModeEnabled
MBean属性をtrue
に設定することで、DomainMBean
で本番モードを有効化することもできます。MBean Oracle WebLogic ServerリファレンスのDomainMBeanに関する項を参照してください。
保護された本番モードの構成方法の詳細は、『Oracle WebLogic Serverセキュリティの管理』の本番用のWebLogicドメインの作成に関する項を参照してください。
また、WebLogic Server MBeanの最もセキュアな値を有効にすることを強くお薦めします。WebLogic Serverには、WebLogicドメインのセキュリティに影響する属性を持つ、多数のMBeansが含まれています。保護された本番モードを有効にすると、これらの属性のほとんどは自動的に最もセキュアな値に設定されます。ただし、一部のMBean属性は自動的に設定されず、環境に応じて最もセキュアな値に手動で設定する必要があります。たとえば、SSLはデフォルトで有効になっていますが(SSL MBeanではEnabled
=true
)、SSLMBean
およびNetworkAccessPointMBean
のTwoWaySSLEnabled
およびClientCertificateEnforced
属性は、すべてのクライアントからの証明書を必要とするためtrue
に設定されません。双方向SSLが必要な場合は、これらの属性を手動で設定します。これらの属性の包括的なリストと、その最もセキュアな値については、『Oracle WebLogic Server MBeanリファレンス』のMBean属性のセキュアな値に関する項を参照してください。
ドメインのモードがデフォルトのセキュリティ構成に与える影響の理解
選択したドメイン・モードにより、そのドメインのデフォルトのセキュリティ構成が決定されます。ドメインの構成時には、WebLogic Serverの実行環境のセキュリティ要件に最も合うドメイン・モードを選択してください。
表3-2に、ドメインを開発モード、本番モードまたは保護された本番モードで構成した場合の、セキュリティおよびパフォーマンス関連の構成パラメータの違いを示します。デフォルトをオーバーライドする属性値を設定することで、様々なドメイン・モードの動作をカスタマイズできます。たとえば、本番モードのドメインで管理ポートを有効にできます。
ノート:
WebLogic Serverは、ドメインが特定のセキュリティ標準を満たしているかどうかを自動的にチェックします。ドメイン内の潜在的なセキュリティの問題ごとに、警告がログに記録され、管理コンソールのセキュリティ警告レポートに表示されます。ドメインが開発モードから本番モード、保護された本番モードへと進むにつれて、セキュリティ検証チェックはより厳格になります。
表3-2 ドメイン・モードでの相違点
機能 | 開発モード | 本番モード | 保護された本番モード |
---|---|---|---|
SSL/TLS |
WebLogic Serverセキュリティ・サービスによって提供されるデモンストレーション・デジタル証明書とデモンストレーション・キーストアを使用できます。これらの証明書を使用すると、SSL/TLSで保護された環境で動作するアプリケーションを設計できます。 『Oracle WebLogic Serverセキュリティの管理』のWebLogic ServerにおけるSSLの構成の概要に関する項を参照してください。 |
本番モードでは、デモンストレーション・デジタル証明書とキーストアは推奨されません。使用すると、警告メッセージが表示されます。 |
このモードでは、SSL/TLS構成がセキュアでない場合に、WebLogic Serverで警告がログに記録されます。また、SSLアイデンティティ証明書が期限切れの場合、管理サーバーは起動しません。WebLogic Serverは、最小SSL/TLSバージョン、制約および暗号を検証します。 |
管理ポート |
管理ポートは、デフォルトでは無効です。 |
管理ポートは、デフォルトでは無効です。 ドメインに対して管理ポートを有効にする方法は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのドメイン全体の管理ポートの構成に関する項を参照してください。 |
管理ポートは、デフォルトでは有効です。管理トラフィクは、非管理ポートでは許可されなくなります。このモードでは、WLSTを使用して管理サーバーに接続する際には、T3sプロトコルと管理ポートを指定する必要があります。管理コンソールは、管理ポート(デフォルトでは9002)で |
リスニング・ポート |
サーバーのリスニング・ポートは、デフォルトで有効になります。ポート値のデフォルトは7001です。 |
サーバーのリスニング・ポートは、デフォルトで有効になります。ポート値のデフォルトは7001です。 |
リスニング・ポートは、デフォルトでは無効です。 リスニング・ポートの有効化および管理の方法は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのリスニング・ポートの構成に関する項を参照してください。 |
SSL/TLSリスニング・ポート |
SSL/TLSリスニング・ポートは、デフォルトでは無効です。 |
SSL/TLSリスニング・ポートは、デフォルトでは無効です。 ドメイン内のサーバーのSSL/TLSリスニング・ポートを有効にできます。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのリスニング・ポートの構成に関する項を参照してください。 |
SSL/TLSリスニング・ポートは、デフォルトでは有効です。ポート値のデフォルトは7002です。 |
監査 |
セキュリティまたは構成監査は、デフォルトでは無効です。 |
セキュリティまたは構成監査は、デフォルトでは無効です。 |
ドメインが作成されると、デフォルトでWebLogic監査プロバイダが構成されます。構成変更は監査されます。WebLogic Serverは、監査プロバイダが構成されていない場合に警告をログに記録します。 |
アプリケーションのデプロイ |
WebLogic Serverインスタンスでは、domain_name |
自動デプロイメント機能は無効化されます。WebLogic Server管理コンソール、 |
保護された本番モードでの自動デプロイメント機能の動作は、本番モードの場合と同じです。 |
ログ・ファイルのローテーション |
デフォルトでは、WebLogic Serverインスタンスを起動すると、サーバーは自動的にローカル・サーバー・ログ・ファイルの名前を 『Oracle WebLogic Server Administration Consoleオンラインヘルプ』のログ・ファイルのローテーションに関する項を参照してください。 ロギング構成の「保持するファイル数の制限」の設定のデフォルト値は |
サーバーは、ローカル・ログ・ファイルのサイズが5000KBになるとファイルのローテーションを実行します。 サーバーが本番モードで構成されている場合は、ログ・ファイルのすべてのバージョンがデフォルトで保持されます。管理者は保持されるログ・ファイルの数をカスタマイズする必要がある場合があります。LogFile MBean属性を使用して、WebLogic Serverインスタンスがログ・メッセージを格納するために使用する場所、ファイルのローテーションの基準およびファイルの数を構成します。 ロギング構成の「保持するファイル数の制限」の設定のデフォルト値は |
保護された本番モードでのログ・ファイルのローテーション動作は、本番モードの場合と同じです。 |
|
|
|
|
内部アプリケーションのデプロイメント |
開発ドメインの場合、デフォルトでは、WebLogic Serverによって内部アプリケーションが初回アクセス時に(オンデマンドで)デプロイされます。 |
本番モードの場合、デフォルトでは、WebLogic Serverによって内部アプリケーションがサーバーの起動の一部としてデプロイされます。この動作を変更する場合は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』の内部アプリケーションのオンデマンド・デプロイメントに関する項を参照してください。 |
保護された本番モードでの内部アプリケーションのデプロイメントは、本番モードの場合と同じです。 |
ノード・マネージャのユーザー名およびパスワード |
開発モードでは、ノード・マネージャーはデフォルトのユーザー名およびパスワード資格証明を使用します。 |
本番モードでドメインが作成されたときに、ノード・マネージャのユーザー名およびパスワードがランダムに生成されます。 『Oracle WebLogic Serverノード・マネージャの管理』のノード・マネージャのユーザー名およびパスワードの指定に関する項を参照してください。 |
保護された本番モードでは、ノード・マネージャのユーザー名とパスワードは本番モードと同じ方法で生成されます。 |
Webサービスのテスト・クライアント |
開発環境では、デフォルトで、Webサービスのテスト・クライアントは有効です。 |
本番環境では、Webサービスのテスト・クライアントはデフォルトでは無効です(デプロイされていません)。本番モードではWebサービスのテスト・クライアントを有効にしないことをお薦めします。 Webサービス・テスト・クライアントは、管理コンソール、Fusion Middleware ControlまたはWLSTを使用して有効または無効にできます。 『Webサービスの管理』のWebサービスのテスト・クライアントの有効化と無効化に関する項を参照してください。 |
保護された本番モードでのWebサービス・テスト・クライアントのデフォルトの動作は、本番モードの場合と同じです。 |
クラスローダー分析ツール |
開発モードでは、クラスローダー分析ツール(CAT)は内部のオンデマンド・アプリケーションとしてのみデプロイされます。デプロイメントは初回のアクセス時に実行されます。 |
サーバーが本番モードで稼働中の場合、自動的にデプロイされません。本番モードでデプロイする際には、その使用に制限はありませんが、他のWebアプリケーションと同様に手動でデプロイする必要があります。 『Oracle WebLogic Serverアプリケーションの開発』のクラスローダー分析ツール(CAT)の使用に関する項を参照してください。 |
保護された本番モードでのCATツールの動作は、本番モードの場合と同じです。 |
FastSwapデプロイメント |
FastSwapデプロイメントを使用して、再デプロイメントを最小化できます。FastSwapは、WebLogic Serverが開発モードで実行している場合にのみサポートされます。 『Oracle WebLogic Serverへのアプリケーションのデプロイ』のFastSwapデプロイメントによる再デプロイメントの最小化に関する項 を参照してください。 |
本番モードでは、FastSwapは自動的に無効になります。 |
保護された本番モードでは、FastSwapは自動的に無効になります。 |
管理コンソールのチェンジ・センター |
管理コンソールのチェンジ・センターは、ドメイン構成をロックする手段を提供します。これにより、編集セッションの間は他のアカウントが変更を行えない状態にして、構成を変更できます。 開発モードでドメインが実行されている場合は、この機能はデフォルトで無効になります。開発ドメインでは有効にしたり無効にしたりできます。 『Oracle WebLogic Server Administration Consoleオンラインヘルプ』のドメイン構成ロックの有効化と無効化に関する項を参照してください。 |
本番モードでは、ドメインの構成を変更する前に、ロックおよび編集セッションを取得する必要があります。このため、このドメイン構成ロック機能は、本番ドメインでは常に有効になっています。 |
ドメイン構成ロック機能は、本番モードの場合と同じです。 |
JMSファイル・ストア |
ファイル・ストアは、ファイル・システムに自動的に作成されます。 |
ファイル・ストア・ディレクトリはファイル・システムに自動的に作成されず、ユーザーは必要な権限を持つディレクトリを手動で作成する必要があります。 |
JMSファイル・ストアのデフォルトの動作は、本番モードと同じです。 |
ドメインの管理ポートの構成
管理トラフィックにドメイン全体の管理ポートを使用することを強くお薦めします。
ノート:
ドメインが保護された本番モードで実行するように構成されている場合は、デフォルトで管理ポートが有効になり、非管理ポートでは管理トラフィックは許可されなくなります。このモードでは、管理ポートが有効になっていないと、WebLogic Serverで警告がログに記録されます。管理ポートにより、WebLogic Serverドメインのサーバー・インスタンス間のすべての管理トラフィックが1つのポートに制限されます。管理ポートが有効になっている場合、WebLogic Serverはサーバー・インスタンスの起動時にポート設定に基づいて自動的にドメインの管理チャネルを生成します。管理チャネルは、管理トラフィックを処理するためのリスニング・アドレスおよびリスニング・ポートを用意します。
管理ポートを使用せずにサーバーを実行すると、管理クライアントが誤って機密性の高いサーバー構成をクリアテキストでネットワーク上に送信する可能性があります。管理ポートを使用してサーバーを実行すれば、この問題が起こる可能性は大幅に低くなります。さらに、管理ポートを構成することは、管理ポートへのリクエストを処理するためのリソースや管理ポートへのリクエストに対する制限がサーバーの他の部分から分離されるため、サービス拒否(DoS)攻撃が発生した場合に有用です。
接続フィルタと組み合せて使用すると、WebLogic Serverインスタンスが、既知のマシンまたはサブセットからのみ、かつ単一のポートでのみ管理リクエストを受け入れるように指定できます。
管理ポートを有効にするには、クライアントがSSLを使用してWebLogic Server管理コンソールと対話する必要があります。SSLは、ネットワーク上での攻撃者による機密データの傍受や一部のクロスサイト・スクリプティング攻撃を防止します。
詳細は次のトピックを参照してください。
-
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのドメイン全体の管理ポートの構成に関する項
-
『Oracle WebLogic Serverサーバー環境の管理』の管理ポートと管理チャネルに関する項
未使用の内部アプリケーションの無効化
アプリケーションの用途とドメインの構成によっては、特定のドメインでいくつかの内部アプリケーションを使用しない場合があります。攻撃面を減らすために、これらのアプリケーションへのアクセスを無効にすることを強くお薦めします。
構成設定を使用して、未使用の内部アプリケーションを無効化できます。いくつかの内部アプリケーションは、デフォルトで無効になります。これらは、必要な場合にのみ有効にする必要があります。次の表に、無効にできる内部アプリケーションとそれらを無効にするプロセスのリストを示します。
表3-3 内部アプリケーションの無効化
内部アプリケーション | 無効化のプロセス |
---|---|
WebLogic Server管理コンソール |
|
RESTfulサービス |
|
管理EJB (Java EE管理API) |
|
デフォルトの内部サーブレット |
|
Webサービス非同期リクエスト-レスポンス |
OptionalFeatureMBean を使用してJAXRPC_ASYNC_RESPONSE という名前の非同期リクエスト-レスポンス内部アプリケーションを追加し、その機能をfalse に設定します。これは、次のスニペットに示すようにWLSTを使用して実行できます。
|
Webサービスの原子性トランザクション(WSAT) |
OptionalFeatureMBean を使用してWSAT という名前のWSAT内部アプリケーションを追加し、その機能をfalse に設定します。これは、次のスニペットに示すようにWLSTを使用して実行できます。
|
準備完了アプリケーション |
|
ドメイン作成後の追加のセキュリティ設定の構成
ドメインを作成して保護された本番モードを構成した後、ドメインを保護するために完了する必要がある追加のステップおよび構成がいくつかあります。
次の表では、ドメインのセキュリティを確保するために構成する必要がある追加の構成および設定について説明します。
表3-4 ドメインを保護するための追加の構成および設定
セキュリティ・アクション | 説明 |
---|---|
システム管理者権限を持つ、少なくとも2つのユーザー・アカウントを作成します。 |
少なくとも2つのシステム管理者のユーザー・アカウントがあれば、1つのユーザーが辞書攻撃や総当り攻撃でロックアウトになった場合でも、もう1つのユーザーでアカウント・アクセスを保持できます。 システム管理者ユーザーのうちの1つは、ドメインの作成時に作成されます。他のユーザー(複数可)を作成し、これらを ノート: 保護された本番モードを有効にしている場合、WebLogic Serverは、管理者グループのユーザーに |
新しいWebLogicドメインを構成した後、ただちにパスワード検証プロバイダを構成します。 |
WebLogic Serverに含まれているパスワード検証プロバイダは、いくつかの即時利用可能な認証プロバイダでパスワード作成ルールを実施および管理するように構成できます。そのため、セキュリティ・レルムでパスワードを作成または更新された場合は、パスワードは確立された構成要件を満たしていることを確認するために、対応する認証プロバイダによって、パスワード検証プロバイダが自動的に呼び出されます。 パスワード検証プロバイダの構成方法および使用方法の詳細は、『Oracle WebLogic Serverセキュリティの管理』のパスワード検証プロバイダの構成に関する項を参照してください。 |
UNIX上で保護されているポートにバインドするには、ユーザーIDを切り替えるか、またはネットワーク・アドレス変換(NAT)ソフトウェアを使用するようにWebLogic Serverを構成します。 |
UNIXシステムでは、権限があるユーザー・アカウント(ほとんどの場合、root)で実行されるプロセスのみを、1024より小さいポートにバインドできます。UNIXシステムでは、システム管理者(root)ユーザーのみが許可されます。 ただし、WebLogic Serverのような長期にわたって実行されるプロセスは、これらの権限が付与されたアカウント下で実行しないでください。かわりに、次のいずれかを行います。
ノート: 保護された本番モードで実行するドメインを使用している場合、WebLogic Serverは次に該当する場合に警告をログに記録します:
|
JNDIルート・コンテキストを保護します。 |
WebLogic Server管理コンソールが外部から参照できる場合、 ノート: ドメインに対して保護された本番モードが有効になっている場合、WebLogic Serverでは、リストまたは変更操作のためのリモート匿名JNDIアクセスは許可されません。匿名JNDIアクセスは、 |
過負荷状態を回避するために、WebLogic Serverを構成します。 |
過負荷状態を回避して十分な処理能力を得られるようにWebLogic Serverを構成します。サーバーにかかる負荷が大きい場合に、管理者がWebLogic Serverに接続して問題を修正できるようにします。 システムが過負荷状態のときには、管理チャネルを介した通信は妨げられないため、現在の過負荷がどのような状態であっても管理者は常に接続できます。 負荷が大きい場合、管理者はサーバーを管理状態にして、問題のあるユーザーを特定し、そのユーザーがリクエストによってサーバーを過負荷状態にすることを防止する必要があります。 過負荷状態を回避するためにWebLogic Serverを構成するには、過負荷保護のMBeanで共有容量の属性を設定します。管理者からではないリクエストがWebLogic Serverで受信されなくなった後は、この属性で選択した設定がしきい値となります。 『Oracle WebLogic Serverセキュリティの管理』の過負荷の回避と管理に関する項を参照してください。 |
ユーザー・アカウントの攻撃を防ぐために、ユーザーのロックアウトおよびログイン時間制限を構成します。 |
WebLogicセキュリティ・サービスには、デフォルトでユーザー・アカウントの辞書攻撃および総当たり攻撃に対するセキュリティが用意されています。アカウントがロックされるまでの無効なログイン試行回数、アカウントがロックされるまでの無効なログイン試行期間、またはユーザー・アカウントのロック時間を開発時に変更した場合は、設定内容を確認して、その設定が本番環境に適しているかどうかを検証する必要があります。 ノート: ユーザー・ロックアウトはサーバー単位でWebLogicセキュリティ・サービスによってサーバーごとに有効にされます。たとえば、特定の管理対象サーバー(またはクラスタ)でホストされているアプリケーションからロックアウトされたユーザーは、必ずしもWebLogic Server管理コンソールでロックアウトされるわけではありません。同様に、WebLogic Server管理コンソールからロックアウトされたユーザーは、必ずしも管理対象サーバーでホストされているアプリケーションへのログインができなくなるわけではありません。 Oracle WebLogic Server管理コンソール・オンライン・ヘルプのユーザー・ロックアウト属性の設定に関する項を参照してください。 背景情報: 辞書攻撃および総当たり攻撃では、ハッカーはスクリプトを作成し、辞書に登録されているパスワードを使用してログインを試行します。WebLogic Serverのユーザー・ロックアウトおよびログイン設定により、辞書攻撃および総当たり攻撃からユーザー・アカウントを保護することができます。 ノート: 保護された本番モードで実行するようドメインを構成している場合、WebLogic Serverは、ユーザー・ロックアウトがデフォルト値よりも小さい値に構成されていると警告をログに記録します。 |
セキュリティ監査を有効にします。 |
監査は、主要なセキュリティ・イベントをWebLogic Server環境に記録する処理です。WebLogicセキュリティ・サービスが提供する監査プロバイダを有効にすると、イベントが 監査プロバイダは、WebLogic Server管理コンソールの「セキュリティ・レルム」→「レルム名」→「プロバイダ」→「監査」ページで有効にします。 Oracle WebLogic Server管理コンソール・オンライン・ヘルプの監査プロバイダの構成に関する項を参照してください。 ノート: 監査プロバイダを使用すると、少数のイベントのみが記録される場合でも、WebLogic Serverのパフォーマンスが低下する場合があります。 監査レコードを定期的に確認し、セキュリティ違反または違反未遂を検出します。度重なるログインの失敗や、予期しないパターンのセキュリティ・イベントに注目することで、重要な問題を防げる可能性があります。 独自のカスタム監査プロバイダを開発して、プロバイダのMBeanから監査イベントをポストする場合の詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のベスト・プラクティス: プロバイダのMBeanからの監査イベントのポストを参照してください。 ノート: ドメインに対して保護された本番モードが有効になっている場合、WebLogic Serverは、監査プロバイダが構成されていないと警告をログに記録します。このモードでは、 |
デフォルトのWebLogic Serverセキュリティ・ロールにユーザーおよびグループを正しく割り当てたことを確認します。 |
デフォルトでは、すべてのWebLogicリソースは、セキュリティ・ロールのデフォルト・セットに基づくセキュリティ・ポリシーによって保護されています。 目的のユーザーおよびグループをこれらのデフォルト・セキュリティ・ロールに割り当てます。 『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』のユーザー、グループおよびセキュリティ・ロールに関する項を参照してください。 |
Federal Information Processing Standards (FIPS) 140-2に準拠する必要がある場合は、FIPSモードが有効になっていることを確認します。 |
FIPSモードは、RSAプロバイダを使用するJSSEでサポートされます。FIPS 140-2は、重要だが非機密的な使用に関する米国連邦政府の要件が記述された標準です。 インストール済のJDKファイルからFIPSを有効にする方法は、『Oracle WebLogic Serverセキュリティの管理』のjava.securityからのFIPS 140-2モードの有効化に関する項を参照してください。 ノート: 2021年4月のパッチ・セット更新(PSU)では、RSA Crypto-J V6.2.5、RSA SSL-J V6.2.6およびRSA Cert-J V6.2.4.0.1のサポートが追加されています。 |
WebLogicリソースへのアクセスを単一のユーザー・アカウントに制限する権限の設定
各ホスト・コンピュータで、(アクセスの権限を持つ2つのシステム管理者ユーザーに加えて)1つのオペレーティング・システム(OS)ユーザー・アカウントにのみWebLogicリソースへのアクセス権を付与し、ディスクおよび永続ストアに格納されているデータへのアクセスを制限するためのオペレーティング・システム・ファイルのアクセス権を設定します。
重要: WebLogicドメインおよびサーバーの構成ファイルには、WebLogicサーバーを構成または実行するオペレーティング・システム・ユーザーしかアクセスできないようにする必要があります。他のオペレーティング・システム・ユーザー(システム管理者以外)には、WebLogic Serverの製品ファイルおよびドメイン・ファイルの読取り、書込み、実行のためのアクセス権を付与しないでください。
各WebLogic Serverホスト・コンピュータで、オペレーティング・システムを使用して、WebLogic Serverの実行用に特別なユーザー・アカウント(wls_owner
など)を設定します。このオペレーティング・システム(OS)・ユーザー・アカウントには、次のディレクトリへのアクセス権限のみを付与します。
-
Oracleホーム
マシンにインストールされているすべてのOracle Fusion Middleware製品用に作成される最上位ディレクトリ。このディレクトリは、WebLogic Serverのインストール時に作成されます。
-
WebLogic Server製品インストール・ディレクトリ
このディレクトリには、システムにインストールすることを選択したすべてのWebLogic Serverソフトウェア・コンポーネントがプログラム・ファイルも含めて格納されます。デフォルトでは、このディレクトリはOracleホームのサブディレクトリであり、
wlserver
という名前になります。 -
WebLogicドメイン・ディレクトリ
これらのディレクトリには、単一のWebLogicドメインの構成ファイル、
SerializedSystemIni.Dat
などのセキュリティ・ファイル、ログ・ファイル、Java EEアプリケーション、その他のJava EEリソースが格納されます。デフォルトでは、ドメインはOracleホームのサブディレクトリです(Oracle/WebLogicServer/user_projects/domains/
domain1
など)。ただし、ドメイン・ディレクトリはWebLogic Serverインストール・ディレクトリやOracleホーム以外に配置することもできます。WebLogic Serverホスト・コンピュータに複数のドメインを作成する場合は、各ドメイン・ディレクトリを保護する必要があります。 -
キーストア・ディレクトリ
これらのディレクトリには、秘密キー、秘密キーに関連付けられたデジタル証明書、信頼できるCA証明書を含む秘密キーストアとルート認証局(CA)キーストアが含まれます。『Oracle WebLogic Serverセキュリティの管理』の秘密キー、デジタル証明書、信頼できる認証局の格納に関する項を参照してください。
-
アプリケーション・アーカイブ・ディレクトリ
これらのオプションのディレクトリには、ドメインのプロビジョニング・ステージでデプロイメント中にWebLogicサーバーにプロビジョニングされるアプリケーション・アーカイブが含まれます。これらのディレクトリは、WebLogic Serverのインストールおよびドメイン・ディレクトリとは別です。
これにより、WebLogic Serverと同じマシンで実行されている他のアプリケーションのWebLogic Serverファイルおよびドメイン・ファイルへのアクセス権が制限されます。このように保護しないと、他のアプリケーションが書込みアクセス権を得て、動的コンテンツを提供するJSPやその他のファイルに悪意のある実行コードを挿入する可能性があります。そのファイルが次にクライアントに提供されると、挿入されたコードが実行されます。
知識の豊富なオペレーティング・システムのユーザーが、以下のファイルに対して書込みアクセス権(場合によっては読込みアクセス権)を付与されている場合、WebLogic Serverのセキュリティを無視することができます。
-
WebLogic Serverのインストール
-
JDKファイル(通常、WebLogic Serverインストール内にあります。ただし、別になるように構成できます)
-
ドメイン・ディレクトリ
-
JMS SAFファイル
-
HTTPセッションをバックアップしたファイル
永続ストアを使用するすべてのファイル(JMS SAFファイルなど)には、読込みアクセスと書込みアクセスから保護する必要のある重要なデータが含まれています。永続ストアは、ファイルベースのストアまたはJDBC対応データベースの永続性をサポートします。
ファイル・ストアを使用してWebLogic Serverにファイルを格納する場合、ファイルを任意の場所に格納できます。読込みアクセス権および書込みアクセス権からアプリケーションを保護するには、すべてのファイルの場所を覚えておく必要があります。
JDBCストアを使用してデータを格納する場合、読込みアクセスおよび書込みアクセスから保護することでデータベースを適切に保護します。
ノート:
ドメインが保護された本番モードで実行されていて、ファイル・システムでPOSIXがサポートされている場合には、WebLogic Serverはディレクトリおよびファイル(ドメイン・ディレクトリ、JMS SAFファイルなど)に不正な権限がある場合に警告をログに記録します。権限を設定する際には、最小値としてumask 027を使用します。暗号化されていないパスワードをコマンドおよびスクリプトに含めない
WLSTおよびweblogic.Deployer
コマンドなどのいくつかのWebLogic Serverコマンドでは、暗号化されていないパスワードをコマンド行に指定することができます。暗号化されていないパスワードをコマンド行またはスクリプトに含めないことを強くお薦めします。
コマンド行で暗号化されていないパスワードを指定するのはセキュリティ・リスクです。他のユーザーがモニター画面から簡単に見ることができたり、それらのコマンドの実行をログするプロセスのリストに表示されます。
コマンド・ウィンドウまたはスクリプトで、暗号化されていないパスワードが必要であるコマンドを入力するとき、パスワードは安全に入力されていることを確認するには、以下の注意事項を考慮してください。
-
要求されたときだけパスワードを入力します。コマンド行からパスワードを除くと、コマンドを実行するときにパスワードの入力を要求されます。入力した文字はエコーされません。
-
リモート管理サーバー・インスタンスを開始するスクリプト・ベースのノード・マネージャ・コマンドで、リモート起動のユーザー名とパスワードは管理サーバーの起動IDファイルから取得されていることを確認します。
-
ユーザー名とパスワードが必要であるコマンドを含むWLSTスクリプトのためにユーザー構成ファイルを作成します。WLST
storeUserConfig
コマンドを使用して、作成できるこのファイルは、次の情報を含みます。-
暗号化された形式の資格証明
-
資格証明を暗号化するためにWebLogic Serverが使用するキー・ファイル
WLSTセッション中、または、WLSTスクリプトで、次に示すように、ユーザー構成ファイルをコマンドに渡すことができます:
-
connect
— 実行中のWebLogic Serverに接続するため -
startServer
— 管理サーバーを起動するため -
nmConnect
— WLSTをノード・マネージャに接続してセッションを確立するため
-
-
ユーザー名とパスワードが必要であるコマンドを含む
weblogic Deployer
スクリプトのために、暗号化されていない資格証明を入力するかわりに、WLSTstoreUserConfig
コマンドを使用して、作成したユーザー構成ファイルを指定できます。
ユーザー資格証明をスクリプトに安全に渡すことに関する詳細情報については、以下のトピックを参照してください。
-
『Oracle WebLogic Serverサーバーの起動と停止の管理』のサーバーの起動と停止に関する項および起動IDファイルに関する項。
-
『WebLogic Scripting Toolの理解』のWLSTのセキュリティに関する項。
-
『Oracle WebLogic Serverノード・マネージャの管理』のスクリプトベースのノード・マネージャのリモート・サーバー起動セキュリティの構成に関する項。
-
『Oracle WebLogic Serverへのアプリケーションのデプロイ』のweblogic.Deployerを呼び出すための構文に関する項
WebLogicリソースの保護
WebLogicセキュリティ・サービスでは、セキュリティ機能の複数のレイヤーを組み合せることにより、JDBC、JMSまたはEJBリソースなどのWebLogic Serverリソースに対する不正なアクセスを防ぎます。
WebLogicサーバー・ドメインのリソースを保護するには、次の表の各項目を確認します。
表3-5 WebLogicリソースの保護
セキュリティ・アクション | 説明 |
---|---|
アプリケーションによるRMIを介したJDBCの使用を制限します。 |
RMIを介したJDBCアプリケーション・コールはセキュアではなく、データベースへの無制限のアクセスが許可される可能性があります。RMIのJDBCセキュリティを構成して、RMIを介したJDBCアプリケーション・コールを無効にすることをお薦めします。そのように行うには:
|
JTA通信のクロス・ドメイン・セキュリティを構成します。 |
通信チャネルは、悪質なサード・パーティがトランザクションの結果に影響を与える中間者攻撃を使用できず、1つ以上のドメイン間で管理制御を取得できないようにセキュアにしておく必要があります。ドメイン間のセキュアな通信チャネルを確保するために、WebLogic Serverでは、「クロス・ドメイン・セキュリティ」というドメイン信頼がサポートされています。クロス・ドメイン・セキュリティでは2つのドメイン間(ドメイン・ペア)の信頼関係が確立されて、一方のWebLogicドメインのサブジェクト内のプリンシパルが、もう一方のドメイン内で呼出しを実行できるようになります。WebLogic Serverは、クロス・ドメイン・ユーザーのセキュリティ・ロールを確立し、各ドメインのWebLogic資格証明マッピング・セキュリティ・プロバイダを使用してクロス・ドメイン・ユーザーが使用する資格証明を格納します。 詳細および詳しい構成は、次を参照してください。
|
すべてのWebLogicセキュリティ・ポリシーを確認します。 |
WebLogic Serverでは、WebLogicリソースへのアクセス権を誰が持っていますか、という質問に対して、セキュリティ・ポリシーが解答を出します。 WebLogicリソースからセキュリティ・ポリシーを削除していないこと、およびセキュリティ・ロールの割当てによってユーザーに目的のアクセス権を提供していることを確認します。 様々なリソース・タイプ、およびポリシーを使用してリソース・タイプを保護する方法の詳細は、『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』の次のトピックを参照してください。
|
潜在的なセキュリティの問題の確認
WebLogic Serverの2021年7月のパッチ・セット更新(PSU)には、ドメインのセキュリティ構成設定を検証する、新しいWebLogic管理コンソールのセキュリティ検証画面および新しいセキュリティ検証MBeanが含まれています。2021年7月のPSUが適用されると、WebLogic Serverは、ドメイン構成設定を一連のセキュリティ構成ガイドラインに照らし合せて定期的に検証し、ドメインがOracleが推奨する主要なセキュリティ・ガイドラインを満たしているかどうかを判断します。
ドメインがセキュリティ構成設定の推奨事項を満たしていない場合、WebLogic管理コンソールのセキュリティ警告レポートに警告が記録されます。セキュリティ警告レポートにアクティブな警告があると、管理コンソール上部に赤いテキストのバナーが表示されます。テキストをクリックすると、レポートが表示されます。セキュリティ警告レポートには、対処が必要な問題と、どのサーバーについて対処すべきかが表示されます。管理コンソールのホーム・ページでセキュリティ警告レポートの表示をクリックして、現在の警告を確認することもできます。
不適切なSSL/TLS構成、古いパッチ・アップデート、差し迫った証明書の有効期限など、セキュアでないドメインを示している可能性がある一般的な問題について警告が表示されることがあります。ドメインを保護するには、セキュリティおよびビジネスの要件と一致するように、これらの警告を解決します。警告を解決するには、ドメイン構成設定を更新してOracleの推奨事項に合せるか、そのドメイン構成設定のセキュリティ検証チェックを無効にします。
セキュリティ警告レポートの各警告には、ドメイン構成設定の更新方法に関する推奨されるソリューションが含まれています。推奨されるソリューションに従うと、警告は解決されます。同じ問題が、ドメイン内の複数のサーバーに同時に影響を与える可能性があります。セキュリティ警告レポートを確認する際には、影響を受けるすべてのサーバーで問題を修正してください。問題とその解決策によっては、セキュリティ警告レポートを更新するためにサーバーを再起動することが必要な場合があります。
特定されたソリューションの実装に関する詳細なアドバイスについては、My Oracle Supportの記事(ドキュメントID 2788605.1)を参照してください。2021年10月のPSUがインストールされている場合、詳細な解決情報はコンソール内からも利用できます。「セキュリティ警告」表で警告メッセージを選択し、「詳細の表示」をクリックします。「詳細」の横にあるリンクをクリックすると、警告の解決方法に関するガイダンスが表示されます。
Oracleでは、ドメイン構成設定を変更して警告を解決することをお薦めしますが、セキュリティおよびビジネスの要件に基づいて、特定の警告がドメインに適用されないと判断する場合があります。これらの警告については、関連するセキュリティ構成設定を無効にすることができます。WebLogic管理コンソールで、「ドメイン」→「セキュリティ」→「警告」に移動します。警告を表示したくない設定の選択を解除します。
ドメイン構成に移動し、関連する属性をtrueまたはfalseに設定することで、WLSTを使用してSecureMode
MBeanにセキュリティ構成設定を構成することもできます。たとえば、WLSTを使用し、次を行います。
edit()
startEdit()
cd("SecurityConfiguration/mydomain/SecureMode/mydomain")
cmo.setWarnOnAnonymousRequests(false)
activate()
アイデンティティおよび信頼の属性の証明書有効期限は、SecurityConfiguration
MBeanを使用して構成できます。
WebLogic Serverは、ドメインに最低限必要なJDKバージョンがあるかどうかを常に確認します。JDKのバージョン・チェックを無効にすることはできません。
あるレベルのセキュリティ検証は、すべてのドメイン・モードで行われます。検証は、保護された本番モードでは最も厳格で、開発モードでは最も厳格ではありません。保護された本番モードでは、ほとんどすべてのセキュリティ構成設定がデフォルトで有効になっています。表3-6に、セキュリティ構成設定を示します。
ドメインは24時間ごとにスキャンされます。必要に応じて、スキャンを手動で実行することもできます。
ノート:
ドメインのセキュリティを判断するために、セキュリティ警告レポートだけに依存しないでください。これらのセキュリティ構成設定は、潜在的なセキュリティの問題に幅広く対応していますが、警告が発生しない他のセキュリティの問題がドメイン内にまだ存在している可能性があります。
表3-6 セキュリティ検証チェック
セキュリティ構成設定 | 説明 | 適用可能なドメイン・モード |
---|---|---|
パッチに関する警告 | ドメインに最新のWebLogic ServerまたはCoherenceクリティカル・パッチ・アップデートがない場合、警告を発行します。 | 本番モード |
匿名リクエストに関する警告 | 匿名リクエスト構成属性(RemoteAnonymousRMIT3Enabled 、RemoteAnonymousRMIIIOPEnabled )が無効になっていない場合、警告を発行します。
|
本番モード |
アイデンティティ証明書のチェック | 警告の有効期限が切れるまでの日数構成設定で指定された期間内にアイデンティティ証明書の期限が切れるように設定されている場合、警告を発行します。 | 本番モード |
信頼証明書のチェック | 警告の有効期限が切れるまでの日数構成設定で指定された期間内に信頼証明書の期限が切れるように設定されている場合、警告を発行します。 | 本番モード |
警告の有効期限が切れるまでの日数 | WebLogic Serverがアイデンティティ証明書または信頼証明書の期限切れが差し迫っていることを警告するタイミングを日数で入力します。 | 本番モード |
証明書チェック間の日数 | WebLogic Serverがアイデンティティ証明書または信頼証明書が期限切れに設定されているかどうかをチェックする頻度を日数で入力します。 | 本番モード |
非セキュアなSSLへの警告 | SSL/TLS構成がセキュアでない場合、警告を発行します。これには、ホスト検証、SSLバージョン、制約などのチェックが含まれます。 | 本番モード |
非セキュアなファイル・システムへの警告 | ドメイン・ディレクトリのファイル権限がセキュアでない場合、警告を発行します。 | 本番モード |
非セキュアなポートに関する警告 | ネットワーク・ポート構成がセキュアでない場合、警告を発行します。 | 本番モード |
ユーザー・ロックアウトに関する警告 | ユーザー・ロックアウト設定がセキュアでない場合、警告を発行します。 | 本番モード |
ユーザー名パスワードに関する警告 | ユーザー名またはパスワードが推奨される複雑度標準を満たさない場合、警告を発行します。 | 本番モード |
非セキュアなアプリケーションへの警告 | アプリケーションがセキュアでない場合、警告を発行します。 | 本番モード |
監査に関する警告 | 監査が有効でない場合、警告を発行します。 | 保護された本番モード |
ネットワークの保護
ソフトウェアおよびハードウェアを使用してファイアウォール、受信および送信アプリケーション・トラフィックを分離するネットワーク・チャネルなどのコンポーネント、およびネットワーク・レベルでアクセスを拒否する接続フィルタを作成し、本番環境のネットワークを保護します。
ネットワークの保護の一環として、管理ポートを有効にして、WebLogicサーバー・ドメインのサーバー・インスタンス間のすべての管理トラフィックを単一ポートに制限してください。「ドメインの管理ポートの構成」を参照してください。
ファイアウォールの構成
ファイアウォールは、信頼できるネットワークと信頼できないネットワーク間の壁の役割を果たすことでネットワーク・トラフィックを制御します。ファイアウォールとともに、ネットワーク・チャネル、管理ポート、WebLogic Server接続フィルタおよび境界認証を使用して、ユーザーおよびネットワーク情報に基づいてリソースへのアクセスを制限できます。
次のことを強くお薦めします:
-
HTTPSプロトコル・ネットワーク・チャネルを構成して、HTTPSアプリケーション・トラフィックを分離します。これにより、HTTPSアプリケーション・トラフィックが単独で専用ポートで実行されるようになります。HTTPSポートへの外部アクセスを許可し、HTTPS以外のポートへの外部アクセスをブロックするようにファイアウォールを構成します。
-
HTTPS以外のプロトコルの内部チャネルを構成し、ファイアウォールを使用して信頼できるクライアントIPアドレスのみが内部チャネルにアクセスできるようにします。
-
チャネルでトンネリングを有効にしないようにします。
HTTPS以外のトラフィックからのアクセスを防止するためのネットワーク・チャネルおよびファイアウォールの構成
ネットワーク・チャネルとファイアウォールの組合せを使用して、外部アクセスをHTTPSアプリケーション・トラフィックのみに制限し、HTTPS以外のトラフィック(T3/T3s/IIOP/IIOPs)の外部アクセスをブロックすることを強くお薦めします。
ネットワーク・チャネルは、ネットワークがサポートするプロトコル、リスニング・アドレス、セキュアな通信およびセキュアでない通信のリスニング・ポートなど、WebLogic Serverへのネットワーク接続の属性を定義します。ネットワーク・チャネルを使用することで、管理者はWebLogicサーバーへのネットワーク・アクセスの公開を詳細に制御できます。『Oracle WebLogic Serverサーバー環境の管理』のネットワーク・チャネルの理解に関する項を参照してください。
ネットワーク・チャネルを定義したら、ロード・バランサまたはファイアウォールを使用してそのチャネルのネットワーク接続をさらに分離できます。
-
T3/T3s/IIOP/IIOPsプロトコルの使用をファイアウォールの内側にあるWebLogicサーバーおよびクライアントのみに制限するには:
- 外部アプリケーションからのHTTPSトラフィックのみをサポートするネットワーク・チャネルを作成します。ネットワーク・チャネルの作成に必要なステップは、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのカスタム・ネットワーク・チャネルの構成に関する項を参照してください
- 前のステップで作成したネットワーク・チャネルが外部で使用可能になり、デフォルトのネットワーク・チャネルおよび他の顧客内部チャネルにのみ内部的にアクセスできるようにファイアウォールを構成します。必要なステップについては、ファイアウォールのドキュメントを参照してください。
- 外部で使用可能なネットワーク・チャネルでトンネリングを有効にしないようにします。トンネリングはデフォルトでは有効になっていません。
-
外部アプリケーションからのHTTPSトラフィック用の既存のネットワーク・チャネルがすでにある場合、T3またはIIOP呼出しがHTTPSプロトコル内にラップされないようにトンネリングを無効にすることを強くお薦めします。既存のネットワーク・チャネルでトンネリングが有効化されている場合は、WebLogicサーバー管理コンソールを使用して無効化します:
- サーバーを選択します。
- 「プロトコル」→「チャネル」に移動します。
- 目的の外部チャネルを選択します。
- 「トンネリングの有効化」チェックボックスを選択解除します。
- 変更を保存してアクティブ化します。
-
HTTPSトラフィックに対してのみ開いているファイアウォールを介してユーザーがWeb層にアクセスする外部層。ファイアウォールは、T3/T3s/IIOPやIIOPsなどのHTTPS以外のプロトコルからのアクセスをブロックするように構成されます。
-
ロード・バランサと2つのHTTPサーバーで構成されるWeb層。Web層とアプリケーション層の間のファイアウォールは、ポート8102でのみHTTPSトラフィックを許可するように構成されます。
-
管理サーバーと2台の管理対象サーバーで構成されたWebLogic Serverドメインを含むアプリケーション層。ドメインは次を使用して構成されます:
-
ポート9002(保護された本番モードのデフォルト)を使用するように有効化および構成された管理ポート。管理ポートは、ドメイン内のアプリケーション・トラフィックから管理トラフィックを分離し、ドメイン内の各管理対象サーバーによって管理サーバーとの通信にのみ使用されます。管理ポートの使用の詳細は、「ドメインの管理ポートの構成」を参照してください。
- 2つのネットワーク・チャネル:
-
1つのネットワーク・チャネルは、信頼できるクライアントからのT3sトラフィックのみをサポートするようにポート7102で構成されます。
-
2つ目のネットワーク・チャネルは、ファイアウォールを介して外部アプリケーションから送信されるHTTPSトラフィックのみをサポートするようにポート8102で構成されます。
ネットワーク・チャネルに使用可能な任意のポート番号を指定できます。
-
-
-
ポート9002で管理トラフィックを許可し、ポート7102でT3sトラフィックを許可するように構成された、アプリケーション層と信頼できるアプリケーション・クライアントの間のファイアウォール。内部ファイアウォール内:
-
信頼できる管理者グループの管理者は、WLSTおよび管理コンソールを信頼できるIPアドレスのセットとともに使用して、管理ポート9002を使用して管理サーバーと通信します。
-
一連の信頼できるIPアドレスで実行されている信頼できるJMSクライアントおよびEJBクライアントは、ポート7102でT3sプロトコルを使用して管理対象サーバーと通信します。
-
内部アプリケーションへのアクセスを防ぐためのファイアウォールの構成
ドメインの管理ポートを有効にし、管理ポートでアクセス可能な内部アプリケーションへの外部アクセスを防ぐためにファイアウォールを構成します。管理ポートとファイアウォールの両方を使用すると、WebLogicサーバー管理コンソールやRESTfulサービスなどの内部アプリケーションに外部からアクセスできなくなります。
内部アプリケーションへのアクセスをブロックするには:
- 「未使用の内部アプリケーションの無効化」の説明に従って、未使用の内部アプリケーションが無効になっていることを確認します。
- SAMLおよびWebサービスなどの非管理ポートでアクセス可能な内部アプリケーションへのアクセスを制限するようにファイアウォールを構成します。これを行うには、適切なコンテキスト・パスへのアクセスを無効にします。
次の表に、WebLogic Serverの内部アプリケーションとそのコンテキスト・パスを示します。
表3-7 WebLogic Serverの内部アプリケーションのコンテキスト・パス
内部アプリケーション | 管理ポートのみ(有効な場合) | コンテキスト・パス | 説明 |
---|---|---|---|
ファイルの配布 |
はい |
|
管理対象サーバーへの初期LDAPデータの配布に使用されます。 管理対象サーバーのみがこの内部アプリケーションにアクセスします。 |
WebLogic Server管理コンソール |
はい |
|
管理およびモニターに使用されます。 WebLogicの管理者、デプロイヤ、モニターおよびオペレータが、クライアント・マシン上のブラウザからコンソールにアクセスします。 コンソールのコンテキスト・パスは、 |
WebLogicサーバー・テスト・クライアント |
はい |
|
クライアント・コードを記述せずにWebサービスをテストするために使用されます。本番モードでは、テスト・クライアントは無効です。 WebLogic開発者が、クライアント・マシン上のブラウザからこのアプリケーションにアクセスします。 |
RESTfulサービス |
はい |
|
管理およびモニターに使用されるREST API機能を提供します。 WebLogicの管理者、デプロイヤ、モニターおよびオペレータが、クライアント・マシンからRESTfulサービスにアクセスします。 |
デプロイメント・サービス |
はい |
|
デプロイメントを調整し、管理サーバーと管理対象サーバーの間の変更をアクティブ化するために使用します。このWebアプリケーションは、WLSTまたは WebLogic管理サーバーおよび管理対象サーバーが、このアプリケーションにアクセスします。WebLogicの管理者、デプロイヤおよびオペレータが、クライアント・マシンでWLSTおよび |
クラスタ・サーブレット |
はい |
|
レプリケーション、状態の保存、セッション・リカバリなどのクラスタ通信に使用されます。クラスタ・メンバーのみがこのAPIを使用します。 |
内部サーブレット |
いいえ |
|
HTTPを介したRMI/IIOPのトンネリングに使用されます。このアプリケーションは、デフォルトでは無効になっています。 クライアント・マシン上で実行されている管理対象サーバーおよびWebLogic Serverクライアントが、このアプリケーションにアクセスします。 |
Webサービス非同期レスポンス |
いいえ |
|
Webサービスの非同期レスポンス・サービスが含まれます。このアプリケーションは、デフォルトでは無効になっています。 WebLogic Server JAX-RPC非同期アプリケーション・クライアント(WS-RMなど)がWebLogic Serverサーバー・アプリケーション内で実行されている場合にこのアプリケーションにアクセスします。 |
WebサービスATアプリケーション |
いいえ |
|
WebLogic Server Webサービス原子性トランザクション・サービスが含まれます。このアプリケーションは、トランザクション・コーディネータとして機能します。 クライアント・マシン上で実行されているWebサービス・クライアントがこのアプリケーションにアクセスします。 |
クラスローダー分析ツール |
はい |
|
Webベースのクラス分析ツール。クラスローダー構成のフィルタリングを簡素化し、競合の検出、アプリケーションのクラスパスやクラス競合のデバッグなどのクラスローディングの問題の分析を支援し、それらの解決に役立つソリューションを提案します。このアプリケーションは本番ドメインでは無効です。 WebLogicアプリケーション開発者が、クライアント・マシン上のブラウザからこのアプリケーションにアクセスします。 |
SAML ITSアプリケーション基本 |
いいえ |
|
基本認証のサイト間転送サービスをサポートします。このアプリケーションは、適切な Webブラウザを使用するアプリケーション・シングル・サインオン(SSO)統合機能、SAMLパートナおよびアプリケーション・ユーザーが、デプロイされたアプリケーションでSAMLシングル・サインオン(SSO)をサポートするためにこれらのエンドポイントにアクセスできます。 |
SAML ITSアプリケーション証明書 |
いいえ |
|
クライアント証明書認証のサイト間転送サービスをサポートします。このアプリケーションは、適切な Webブラウザを使用するアプリケーション・シングル・サインオン(SSO)統合機能、SAMLパートナおよびアプリケーション・ユーザーが、デプロイされたアプリケーションでSAMLシングル・サインオン(SSO)をサポートするためにこれらのエンドポイントにアクセスできます。 |
SAML ACSアプリケーション |
いいえ |
|
SAMLアサーション・コンシューマ・サービスをサポートします。このアプリケーションは、適切な Webブラウザを使用するアプリケーション・シングル・サインオン(SSO)統合機能、SAMLパートナおよびアプリケーション・ユーザーが、デプロイされたアプリケーションでSAMLシングル・サインオン(SSO)をサポートするためにこれらのエンドポイントにアクセスできます。 |
SAML ARSアプリケーション |
いいえ |
|
受信アサーション取得リクエストをリスニングします。このアプリケーションは、 Webブラウザを使用するアプリケーション・シングル・サインオン(SSO)統合機能、SAMLパートナおよびアプリケーション・ユーザーが、デプロイされたアプリケーションでSAMLシングル・サインオン(SSO)をサポートするためにこれらのエンドポイントにアクセスできます。 |
SAML2アプリケーション |
いいえ |
saml2 |
SAML 2サポートに使用されるサービスが含まれます。これには、SPイニシエータ、IdP SSOサービス、SPアサーション・コンシューマ・サービスおよびアーティファクト解決サービスが含まれます。このアプリケーションは、 Webブラウザを使用するアプリケーション・シングル・サインオン(SSO)統合機能、SAMLパートナおよびアプリケーション・ユーザーが、デプロイされたアプリケーションでSAMLシングル・サインオン(SSO)をサポートするためにこれらのエンドポイントにアクセスできます。 |
クラスタ通信のためのファイアウォールの構成
ファイアウォールを適切に構成できるように、クラスタ内のサーバー間の通信を理解することが重要です。
WebLogic Serverでは、クラスタ・メンバー間でマルチキャストまたはユニキャスト通信を構成できます。ファイアウォールを使用すると、クラスタ・メンバーを持つサブネットからのクラスタ・ネットワーク・トラフィックは許可されますが、他のサブネットからのトラフィックは妨げられます。クラスタ内の通信の詳細は、『Oracle WebLogic Serverクラスタの管理』のクラスタでの通信に関する項を参照してください。JMSまたはEJBを使用する場合は特に、より複雑なポートの分割が必要になることがあります。このような場合、3つ以上のポートが必要になることがあります。ポートの分割により、様々なプロトコルに対して様々なファイアウォール・ルールを柔軟に定義できます。たとえば、HTTPS以外のプロトコルを使用するリモート・クライアントのIPが認識されている場合は、関連するHTTPS以外のプロトコルが独自のポートに適切に分割されると想定して、そのIPに基づくファイアウォール・ルールを構成できます。
『Oracle WebLogic Serverクラスタの管理』のクラスタ・アーキテクチャのセキュリティ・オプションに関する項を参照してください。
接続フィルタの構成
ファイアウォールの作成に加えて、WebLogic Server接続フィルタを使用して受信接続を制限します。
接続フィルタを使用すると、外部に公開されたポートへの接続は、予期されるフロントエンド・ホストからのみで、管理トラフィックの接続は、他のWebLogic Serverまたは管理コンソールが実行されている予期されるサブネットからのみです。
接続フィルタは、WebLogic Serverドメイン内のマシンがお互いにファイアウォールを通過せずにアクセスできる場合に最も適しています。たとえば、ネットワークの外からのトラフィックの制限にはファイアウォールを使用し、ファイアウォールの後ろでのトラフィックの制限にはWebLogic Serverの接続フィルタを使用できます。
単一サーバー構成では、接続フィルタを使用して組込みLDAPリスニング・ポートを閉じ、組込みLDAPポートをブルートフォース攻撃から保護することを強くお薦めします。この場合、複数サーバー構成における組込みLDAPポートは保護されませんが、デフォルトの接続フィルタ実装ではソースのIPアドレスに基づいたフィルタ処理がサポートされていますので、これを使用してドメインを構成するサーバーからのアクセスのみを許可してください。その結果、ドメイン内のマシンのみがLDAPポートにアクセスできるようになります。
接続フィルタの構成の詳細は、『Oracle WebLogic Serverセキュリティの管理』の接続フィルタの使用に関する項を参照してください。
タイムアウトの構成
サービス拒否(DoS)攻撃の可能性を減らすには、メッセージ・サイズを制限し、システムに適した完全なメッセージのタイムアウトを構成し、サーバーに許可されるソケットの数を制限します。
表3-8 セキュアなタイムアウトの構成
セキュリティ・アクション | 説明 | 詳細 |
---|---|---|
システムに合せてComplete Message Timeout パラメータを適切に構成します。
|
このタイムアウトは、発信者が特定のサイズのメッセージを送信することを示すが、送信が終了することのないサービス拒否(DoS)攻撃からの保護に役立ちます。 このパラメータのデフォルト値は60秒で、デフォルト・ネットワーク・チャネルのすべての接続プロトコルに適用されます。サーバーに待機時間の長いクライアントが多くある場合、この設定が適切である場合があります。ただし、システムの可用性を侵害することなく、この設定を可能なかぎり小さな値にする必要があります。 特定のプロトコルのために完了メッセージ・タイムアウトを指定する必要がある場合、かわりに、そのプロトコルに対して新しいネットワーク・チャネルを構成できます。 |
|
サービス拒否攻撃を防ぐために、外部チャネルに対してリクエストのサイズおよび時間を制限します。 |
サービス拒否(DoS)攻撃を防ぐために、WebLogic Serverではメッセージのサイズ、およびメッセージの到着にかかる最大時間を制限できます。デフォルトの設定では、メッセージのサイズは10MB、完了メッセージのタイムアウトは480秒です。次のことをお薦めします。
背景情報: DoS攻撃を受けると、Webサイトは動作するが使用できない状態になります。ハッカーは、Webサイトの1つ以上の重要なリソースを枯渇させたり、削除したりします。 侵入者がWebLogic Serverインスタンスに対してDoS攻撃を実行する場合、サイズが非常に大きいリクエスト、完了までに時間がかかるリクエスト、完了しないリクエストを多数使用してサーバーを攻撃するため、リクエストが完了する前にクライアントからのデータの送信が停止します。 |
これらの設定をHTTP、T3およびIIOPプロトコルに対して構成するには、Oracle WebLogic Server管理コンソール・オンライン・ヘルプで次のタスクを参照してください: 『Oracle WebLogic Serverのパフォーマンスのチューニング』のサービス拒否攻撃の可能性の軽減に関する項も参照してください。 |
ソケットおよびファイル記述子の構成
DoS攻撃を防ぐために、サーバーに許可されるソケットの数を制限することを強くお薦めします。UNIXシステムでの可用性を最適化するには、ソケットで消費されるファイル記述子の数をシステムに適した数に設定してください。
表3-9は、ソケットおよびファイル記述子の数を設定するために実行する必要があるアクションを示しています。
表3-9 ソケットおよびファイル記述子
セキュリティ・アクション | 説明 | 詳細 |
---|---|---|
DoS攻撃を防ぐために、サーバーに許可されるソケット数を設定します。 |
DoS攻撃を防ぐためには、プロセス全体で許可されるソケット数よりも少なくなるように、サーバーで許可されるソケット数を制限します。これにより、オペレーティング・システムの制限で許可されるファイルの記述子の数を超えないようにすることができます。 サーバーの制限を超えたとしても、管理者は管理ポートを介してサーバーにアクセスできます。
|
Oracle WebLogic Server管理コンソール・オンライン・ヘルプのサーバー: 構成: チューニングに関する項を参照してください。 |
UNIXシステムでは、ファイル記述子の数をシステムに適した値に設定します。 |
UNIXシステムでは、WebLogic Serverへの各ソケット接続がファイル記述子を消費します。可用性を最適化するには、WebLogic Serverのファイル記述子数がホスト・マシンに適している必要があります。デフォルトでは、WebLogic Serverには、1024個ファイル記述子数が構成されています。ただし、特に本番システムでは、この値は小さく設定される場合があります。 WebLogic Serverのファイル記述子の数をチューニングする場合、完全なメッセージのタイムアウト・パラメータに行った変更とバランスの取れた変更を加える必要があることに注意してください。「完了メッセージ・タイムアウト」パラメータの値が大きい場合、メッセージ・タイムアウトが発生するまでソケットが閉じられません。これにより、ファイル記述子の保留時間が長くなります。したがって、完全なメッセージのタイムアウトの値が大きい場合は、ファイル記述子の上限も大きく設定する必要があります。このようにバランスを取ると、システムの可用性が最適化され、DoS攻撃の可能性も軽減されます。 |
|
SSL/TLSの構成
機密データの漏洩を防ぐには、SSL/TLSを使用してデータ転送を保護します。SSL/TLSは、ネットワークを介して接続する2つのアプリケーションが互いのIDを認証できるようにするとともに、アプリケーション間で交換されるデータを暗号化することで、セキュアな接続を実現します。
管理ポート、ネットワーク・チャネル、データベース接続、LDAPサーバー接続、および保護する必要がある通信を処理するその他のリソースに対してSSL/TLSを構成することを強くお薦めします。特に、ドメイン内のリモート・サーバー・インスタンスへの接続がSSL/TLSで保護されていることを確認します。一方向SSL/TLSまたは双方向SSL/TLSのいずれかを構成する必要がある特定のコンポーネントは、本番環境のトポロジ全体によって異なります。SSL/TLSの構成の詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。
2019年10月のPSUでWebLogic Serverは、HTTP Strict Transport Security (HSTS)を有効にする機能を追加しました。HSTSは、Webブラウザまたは他のユーザー・エージェントがHTTPSなどのセキュアな接続のみを使用してサーバーにアクセスできるようにWebサーバーを構成できるWebセキュリティ・ポリシー・メカニズムです。このリリースのWebLogic ServerでHSTSを有効にする方法の詳細は、My Oracle SupportのドキュメントOracle WebLogic ServerのHTTP Strict Transport Security (HSTS) (ドキュメントID 2146367.1)を参照してください。
SSLでのNull暗号の使用に関する重要なノート
本番環境では、暗号化されていないnull暗号を使用できないようにすることを強くお薦めします。SSL/TLSクライアントは、サーバーに接続してSSL/TLSハンドシェイクを開始します。接続の一環として、クライアントは、サポートする暗号スイートのリストをサーバーに送信します。次に、サーバーは、クライアントが提供したリストから、クライアントおよびサーバーの双方がサポートしている暗号スイートを選択し、このセッションで使用します。
ただし、不適切に構成されたクライアントが、null暗号しか含まれない一連の暗号スイートを指定する可能性があります。null暗号では、データがクリア・テキストでネットワークに渡されます。(null暗号を含む暗号スイートの例は、SSL_RSA_WITH_NULL_MD5です。)null暗号を使用した場合、ネットワーク・パケットを傍受して、SSLメッセージを見ることができます。実質的に、SSLは使用されますが、セキュリティは実現されません。
サーバーは、クライアントとサーバーが共通して持っている暗号スイートがnull暗号のみの場合に限り、null暗号を選択します。サーバーがクライアントの暗号スイート・リストからnull暗号を選択した場合、ログには、「Null暗号を使用するセッションがSSLで確立されました。」というメッセージが含まれます。
このメッセージは、サーバーがクライアントのリストからnull暗号を選択した場合にのみ出力されます。
ノート:
SSL/TLSクライアントが、null暗号を使用してサーバーに不適切に接続している可能性が少しでもある場合は、ログ・ファイルを調べて、このメッセージがあるかどうかを確認してください。新しいクライアントの構成の際は、null暗号の使用に関して十分な注意を払い、必ず、適切に構成することをお薦めします。
以前にnull暗号を使用していなければ、既存のクライアントの構成で、突然null暗号の使用が開始されることはほぼありえません。ただし、無意識のうちに誤って構成された既存のクライアントの構成で、null暗号が使用されている場合があります。
null暗号とは関連のない、その他のSSL/TLSエラーも生じる可能性があります。どちらの場合も、対応するエラー・メッセージがログに表示されます。
SSLの構成の詳細は、『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。ログ・ファイルの表示の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのログの表示と構成に関する項を参照してください。
Null暗号の使用を防ぐためのWebLogic Serverのコントロール
WebLogic Server 10g リリース3 (10.3)では、サーバーによるnull暗号の使用を防ぐためのコントロールがWebLogic Server管理コンソールに導入されました。
WebLogic Server管理コンソールで「サーバー」→「ServerName」→「構成」→「SSL」→「詳細」を選択すると表示される「非暗号化Null暗号の許可」コントロールは、null暗号化を許可できるかどうかを決定します。デフォルトでは、この制御は設定されず、Null暗号の使用はサーバーで許可されません。このような構成では、SSL/TLSクライアントが(サポートされる暗号スイートとしてSSL_RSA_WITH_NULL_MD5のみを指定して) null暗号スイートの使用を求めた場合、SSL/TLSハンドシェイクは失敗します。
この制御を設定した場合、Null暗号スイート(SSL_RSA_WITH_NULL_MD5など)が、サポートされる暗号スイートのリストにサーバーによって追加されます。SSL/TLS接続では、クライアントが求めた場合にnull暗号スイートが使用される可能性があります。Null暗号スイートが使用される合、メッセージは暗号化されません。
注意:
設定の意味とその結果を認識しない限り、本番環境ではこのコントロールを設定しないでください。
このコントロールはシステムの実行時パラメータweblogic.security.SSL.allowUnencryptedNullCipher
、およびSSLMBean
のAllowUnencryptedNullCipher
属性としても公開されます。
JEP 290を使用した受信シリアライズJavaオブジェクトの制限
セキュリティを高めるために、WebLogic Serverは、JDK JEP 290メカニズムを使用して受信したシリアライズJavaオブジェクトをフィルタして、デシリアライズできるクラスを制限します。フィルタにより、サービス拒否(DOS)攻撃やリモート・コード実行(RCE)攻撃を引き起こす可能性のある、特別に作成された悪意のあるシリアライズ・オブジェクトによる攻撃から保護できます。
起動時にWebLogic Serverにより、禁止されたクラスおよびパッケージのセットを含むデフォルトのJEP 290フィルタおよび、いくつかのJEP 290オプションのデフォルト値が構成されます。
WebLogicサーバーのパッチ・セット更新(PSU)には、デフォルト・フィルタで使用される一連の禁止されたクラスおよびパッケージの更新が含まれる場合があります。システムが最新のデフォルト・フィルタでデシリアライズの脆弱性に対し保護されるようにするには、最新のWebLogic Server PSUおよびJavaクリティカル・パッチ・アップデート(CPU)をリリース後すぐに適用してください。クリティカル・パッチ・アップデート、セキュリティ・アラートおよび掲示板のページには、My Oracle Supportで入手可能な最新のJavaおよびWebLogic Serverのアップデートが一覧表示されています。
デフォルトのフィルタ設定のリストは、My Oracle Supportドキュメント、シリアライズされたJavaオブジェクトのOracle WebLogic Serverへの受信の制限(ドキュメントID 2421487.1)を参照してください。My Oracle Supportにはhttps://support.oracle.com/
からアクセスできます。
2021年4月のWebLogic Server PSUでは、動的ブロックリストのサポートが追加されています。これにより、サーバーの実行中に更新または置換できる構成ファイルを作成して、ブロックリスト・フィルタを更新できます。
ノート:
JEP 290グローバル・スコープ・フィルタリングをサポートし、WebLogic Serverで動作保証され、Oracleによって引き続きサポートされているJDKバージョンでWebLogic Serverを実行することを強くお薦めします。このWebLogic Serverリリースでは、少なくとも次のJDK更新レベルを使用することを強くお薦めします:
-
JDK 8 Update 191 (JDK 8u191)以降
JEP 290グローバル・スコープ・フィルタリングをサポートしないJDKを使用している場合、WebLogic Serverは実行を継続し、既知のデシリアライズ攻撃に対する保護を提供しますが、JEP 290のより高度な機能の保護はありません。
WebLogic Serverシステム・プロパティを使用して、フィルタをカスタマイズ、置換、または無効化できます。詳細は、『Oracle WebLogic Serverセキュリティの管理』のカスタムJEP 290デシリアライズ・フィルタの構成に関する項を参照してください。
WebLogic Serverにはシステム・プロパティweblogic.oif.serialFilterLogging
もあり、現行のブロックリスト・クラスおよびパッケージの記録に使用できます。ログを有効にするには、weblogic.oif.serialFilterLogging
システム・プロパティをtrue
に設定してWebLogic Serverを起動します。フィルタ設定がサーバー・ログに表示されます。
JEP 290の詳細は、http://openjdk.java.net/jeps/290
を参照してください。
デシリアライズ・タイムアウト間隔の設定
デシリアライズに時間制限を設定することで、潜在的なサービス拒否攻撃に対する保護を強化できます。時間制限が経過すると、デシリアライズ・プロセスは自動的に終了します。
2022年4月のパッチ・セット更新(PSU)では、weblogic.rmi.stream.deserialization.timelimitmillis
システム・プロパティのサポートが追加されています。
デフォルトでは、Javaオブジェクトのデシリアライズ時に時間制限が無効になり、強制されません。制限を追加するには、weblogic.rmi.stream.deserialization.timelimitmillis
システム・プロパティを使用して、必要な時間間隔をミリ秒単位で設定します。
100ミリ秒以上の間隔を入力します。非常に短い間隔では、デシリアライズがスムーズに動作しない可能性があります。
たとえば、時間制限を10秒に設定するには、-Dweblogic.rmi.stream.deserialization.timelimitseconds=10000
を使用します。
時間制限を無効にするには、0を入力します。
リモート匿名RMI T3およびIIOPリクエストを無効にします
デフォルトでは、WebLogic Serverはクライアントに匿名RMIリクエストの実行を許可します。2021年4月のPSUに、クライアントからの匿名リクエストを無効にする機能が追加されました。
クライアントからの匿名リクエストを無効にする機能には、次の2つの利点があります:
-
認証されていないクライアントは拒否され、WebLogicサーバーでの起動は許可されません。
-
匿名リクエストが無効になっている場合は、追加のJEP 290フィルタリングが実行され、デシリアライズ攻撃からの保護に役立ちます。
匿名RMI T3およびIIOPリクエストを無効にするには、次のいずれかを実行します:
- WebLogic Server管理コンソールを使用して、リモート匿名RMI T3およびIIOPリクエストを無効にします:
ノート:
2021年7月のPSUで、リモート匿名RMI T3およびIIOPリクエストを無効にするコンソール・サポートが追加されました。-
管理コンソールの「チェンジ・センター」で、「ロックして編集」をクリックします。
-
管理コンソールの左ペインの「ドメイン構造」の下で、ドメイン名を選択します。
-
「セキュリティ」→「全般」を選択し、「詳細」ノードを開きます。
-
IIOP経由でのリモート匿名RMI アクセスおよびT3経由でのリモート匿名RMI アクセスチェック・ボックスの選択を解除します。
-
「保存」をクリックして、「チェンジ・センター」で「変更のアクティブ化」をクリックします。
-
-
匿名リクエストを無効にするには、WLSTを使用して、
RemoteAnonymousRMIT3Enabled
およびRemoteAnonymousRMIIIOPEnabled
属性をfalse
に設定します。(デフォルト値はtrue
です。)たとえば、WLSTオンラインの使用:edit() startEdit() cd("SecurityConfiguration/mydomain") cmo.setRemoteAnonymousRMIIIOPEnabled(false) cmo.setRemoteAnonymousRMIT3Enabled(false) activate()
-
WebLogic Serverの起動時に
RemoteAnonymousRMIT3Enabled
およびRemoteAnonymousRMIIIOPEnabled
システム・プロパティをfalse
に設定します。たとえば:-Dweblogic.security.remoteAnonymousRMIT3Enabled=false
-Dweblogic.security.remoteAnonymousRMIIIOPEnabled=false
ノート:
これらのシステム・プロパティを使用すると、リモート匿名T3およびIIOPアクセスが無効になりますが、WebLogic Serverの2021年7月のPSUで提供されるセキュリティ検証インフラストラクチャでは、リモート匿名T3およびIIOPアクセスが有効であると誤って警告される場合があります。この警告を解決するには、前述のWebLogic Server管理コンソールまたはWLSTを使用して、リモート匿名T3およびIIOPアクセスを無効にする手順に従います。
WebLogic Server環境で次のいずれかが使用されている場合、リモート匿名RMI T3およびIIOPリクエストを無効にすることはできません:
-
JNDI初期コンテキストをWebLogic Serverに作成するときに資格証明(ユーザー名およびパスワード)を渡さないT3またはIIOPクライアント
-
非推奨の
weblogic.rmi
APIを使用するT3クライアント -
weblogic.j2eeclient.Main
APIを利用するクライアント -
セキュリティの相互運用性モードが
performance
またはdefault
に設定されたドメイン間トランザクション通信を構成する環境(管理チャネルが構成されていない場合)。匿名RMI T3およびIIOPリクエストを無効にする場合、Oracleでは、ドメイン間通信に対してクロス・ドメイン・セキュリティを有効にすることをお薦めします。Oracle WebLogic Server JTAアプリケーションの開発で、ドメイン間およびドメイン内トランザクションのセキュアな通信の構成を参照してください。
リモート匿名リクエストを環境内で必要とするときに無効にすると、匿名リクエストが拒否され、<BEA-000582>および<BEA-002045>エラーがサーバー・ログに記録されます。
ロックダウンされた環境で使用できない構成および設定
開発モードやデモ用証明書などのセキュアでない構成および設定を使用しないこと、および環境を保護するために設計されたデフォルトのセキュア設定を無効にしないことを強くお薦めします。
表3-10 ロックダウンされた環境で使用できない構成および設定
構成/設定 | 説明 | 詳細 |
---|---|---|
ファイアウォールの外部で使用可能なチャネルでトンネリングを有効にしないようにします。 |
トンネリングを許可すると、外部クライアントからT3/IIOPトラフィックが送信され、T3/RMIシリアライズ・セキュリティの脆弱性につながる可能性があります。 |
|
本番環境ではWebLogic Serverを開発モードで実行しないようにします。 |
本番モードまたは保護された本番モードでは、本番環境にとってよりセキュアで適切な設定を使用してサーバーが実行されるように設定されます。本番環境に高いセキュリティ標準を確保するために、保護された本番モードを有効にすることを強くお薦めします。 注意: WebLogic Serverを開発モードで構成した場合、不正を行うアプリケーションやWebLogic Serverの無効な構成などのエラー状況により、デプロイされているトレース・スタックが発生する可能性があります。エラー・レスポンスは一般的には危険ではありませんが、悪意の目的で使用することが可能な、アプリケーションおよびWebLogic Serverインストールの情報を攻撃者に与えるおそれがあります。ただし、本番モードまたは保護された本番モードでWebLogic Serverを構成する場合、スタック・トレースは生成されないため、本番環境では開発モードでWebLogic Serverを実行しないでください。 |
|
MLet MBeanを使用しないようにします。 |
MLet (管理アプレット) MBeanを使用すると、クライアント・ユーザーはMBean実装をアップロードして、その実装をWebLogic Serverで実行できます。認証されたユーザーはインスタンス化と起動を実行できるため、デフォルトではJMX MBeanの MLet MBeanの使用を有効にしないことを強くお薦めします。MLet MBeanを有効化する場合は、Javaセキュリティ・マネージャとともに実行し、権限を使用してMLet MBeanへのアクセスを制限することにより、認可されたユーザーのみがMLet MBeanにアクセスできるようにする必要があります。管理者ロールまたはデプロイヤ・ロールを持つ認可されたユーザーに、 |
Oracle WebLogic Server Java APIリファレンスのWLSPolicyFileGroupPrincipalImplに関する項を参照してください。 |
デジタル証明書のセキュリティ制約を無効にしないようにします。 |
SSLを使用して通信する場合、WebLogic Serverではデフォルトで、認証局によって定義された基本制御拡張を持たない証明書チェーンのデジタル証明書を拒否します。これにより、デジタル証明書のなりすましからWebサイトを保護します。 この設定を無効にする次のオプションを含むサーバー起動コマンドがないことを確認します。
ノート: ドメインに対して保護された本番モードが有効になっている場合、WebLogic Serverは、 |
『Oracle WebLogic Serverセキュリティの管理』のSSL証明書の検証に関する項を参照してください。 |
本番環境でデモ用のデジタル証明書を使用しないようにします。 |
WebLogic Serverには、開発のみの目的で、デモ用の秘密キー、デジタル証明書、および信頼性のある認証局が用意されています。WebLogic Serverをダウンロードするユーザーには、これらのデジタル証明書に対して秘密キーが付属します。デモ用のIDおよび信頼を使用しないでください。 |
|
SNMPv1およびSNMPv2プロトコルを使用しないようにします。 |
デフォルトでは、Simple Network Management Protocol (SNMP)はWebLogic Serverで無効になります。ただし、SNMPを有効にすると、SNMPv1プロトコルとSNMPv2プロトコルが有効になります。SNMPv1とSNMPv2はセキュリティで保護されておらず、SNMPサービス上で不正アクセスやサービス拒否攻撃などのセキュリティ問題が発生する原因となる可能性があります。 SNMPv1プロトコルとSNMPv2プロトコルを無効にし、かわりにSNMPv3プロトコルを使用することを強くお薦めします。SNMPv3プロトコルを使用している場合、SNMPエージェントおよびマネージャは通信を成功させるためにプロトコル・データ・ユニット(PDU)内で同一の資格証明をエンコードする必要があるため、追加のセキュリティ構成が必要になります。SNMPv3を使用できない場合は、ネットワークが保護され、WebLogic Server環境のポートへのアクセスを制限するようにファイアウォールが構成されていることを確認することで、SNMPv1とSNMPv2のセキュリティの脆弱性の問題を限定する必要があります。 |
詳細と構成情報については、次のトピックを参照してください。
|
SSLv2、SSLv3、TLSv1.0、TLSv1.1プロトコル・バージョンを使用しないようにします。 |
TLS v1.1が、このリリースのWebLogic Serverで構成されているデフォルトの最小プロトコル・バージョンです。ただし、本番環境ではTLS v1.2以降を使用し、TLS v1.0およびv1.1を使用しないことを強くお薦めします。 |
『Oracle WebLogic Serverセキュリティの管理』のSSLプロトコル・バージョンの指定に関する項を参照してください。 |
JVMのプラットフォームMBeanサーバーへのリモート・アクセスを有効にしないようにします。 |
JDKでは、MBeanサーバー(プラットフォームMBeanサーバー)と、JVMのモニター情報を含む一連のMBeanが提供されます。WebLogic Serverの実行時MBeanサーバーを構成してプラットフォームMBeanサーバーとして実行できます。これにより、JMXクライアントは単一のMBeanサーバー接続からJVM MBeanおよびWebLogic Server MBeanにアクセス可能です。 プラットフォームMBeanサーバーへのリモート・アクセスは、標準のJDKセキュリティ機能によってのみ保護できます( リモートのJMXクライアントがJVM MBeanにアクセスできるようにする必要がある場合は、WebLogic Server実行時MBeanサーバーを介してアクセスすることをお薦めします。 |
『Oracle WebLogic Server JMXによる管理可能アプリケーションの開発』のJVMプラットフォームMBeanサーバーでのMBeanの登録に関する項。 |
ホスト名検証を無効化しないようにします。 |
WebLogic SSLはデフォルトで、接続が確立したホストが対象のパーティまたは認可されたパーティであることを検証します。ただし、サイトでWebLogic Serverを実装するときに、ホスト名検証が無効になっている場合があります:
背景情報: ネットワークに配置されたマシンによって、疑いを持たないパーティへのメッセージがキャプチャされたり、変更されたり、再送信されたりすると、介入者攻撃が発生します。接続が確立したホストが対象のパーティまたは認可されたパーティであることを検証すると、介入者攻撃を避けることができます。SSLクライアントは、SSLサーバーのデジタル証明書を使用して、SSLサーバーのホスト名を比較することで、接続を検証することができます。WebLogic Serverのホスト名検証は、介入者攻撃からSSL接続を保護します。 ノート: ドメインに対して保護された本番モードが有効になっている場合、WebLogic Serverでは、ホスト名検証が無効になっていると警告がログに記録されます。 |
『Oracle WebLogic Serverのセキュリティの管理』のホスト名検証の使用に関する項。 ホスト名検証が無効になっている場合に有効にする方法は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのカスタム・ホスト名検証の構成に関する項を参照してください。 |
アプリケーションの保護
一部のセキュリティ・オプションについては、WebLogicセキュリティ・サービスを使用すると、これらの設定がサーバーまたは個々のアプリケーションのいずれの分担であるのかを判断できます。本番環境にデプロイする各アプリケーションについて、次の表の項目を確認して、そのリソースが保護されていることを確認してください。
ノート:
WebLogic Serverに含まれるHTTPパブリッシュ/サブスクライブ・サーバーには特別な保護ステップがあります。これについては、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のHTTPパブリッシュ/サブスクライブ・サーバーの使用に関する項で説明されています。
表3-11 アプリケーションの保護
セキュリティ・アクション | 説明 |
---|---|
どのデプロイメント・モデルがWebアプリケーションおよびEJBを保護しているのかを判断します。 |
デフォルトでは、各WebアプリケーションおよびEJBはデプロイメント記述子(XMLファイル)を使用して、保護されたリソースおよびそれにアクセスできるセキュリティ・ロールを宣言します。 WebアプリケーションおよびEJBデプロイメント記述子でセキュリティを宣言せずに、WebLogic Server管理コンソールを使用して、WebアプリケーションおよびEJBへのアクセスを保護するセキュリティ・ポリシーを設定できます。この技術により、すべてのWebアプリケーションおよびEJBに対するセキュリティを、1つの場所から集中管理できます。 これらの2つの技術を組合せ、URL (Web)またはEJBリソースの初期デプロイメントで、既存のデプロイメント記述子からセキュリティ構成をコピーするようにWebLogic Serverを構成できます。これらのセキュリティ構成をコピーした後は、WebLogic Server管理コンソールを使用して更新できます。 『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』のWebアプリケーションおよびEJBリソースの保護のオプションに関する項を参照してください。 |
リダイレクト攻撃を防止するには、 |
Webアプリケーションのリクエストは別の場所にリダイレクトした場合、リクエストでのホスト・ヘッダーは、デフォルトでレスポンスのロケーション・ヘッダーに使用されます。ホスト・ヘッダー は、別のホスト名または他のパラメータを含まれるように破損させる、つまりなりすます可能性があります。そのため、サード・パーティでリダイレクト拒否攻撃を起動するには、この動作は、返す機能があります。 この発生の可能性を防ぐには、 Oracle WebLogic Server MBeanリファレンスの |
HTMLコメント・タグではなく、JSPコメント・タグを使用します。 |
JSPファイル内にある、機密データを含むコメントやエンド・ユーザーを対象としていないコメントは、HTML構文の |
本番マシンには未コンパイルのJSPおよびその他のソース・コードをインストールしないようにします。 |
常に、ソース・コードを本番マシンに置かないようにする必要があります。ソース・コードにアクセスすると、侵入者はセキュリティ・ホールを発見できます。 JSPをプリコンパイルし、コンパイル済のJSPのみを本番マシンにインストールすることを検討します。『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のJSPのプリコンパイルに関する項を参照してください。 |
SSLを使用するようにアプリケーションを構成します。 |
『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のsecurity-constrainに関する項を参照してください。 |
|
本番環境での かわりに、サーブレットをURIに明示的にマップします。本番環境でWebアプリケーションを使用する前に、すべてのWebアプリケーションから、WebLogicサーブレットと サーブレットのマッピングの詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のサーブレットの構成に関する項を参照してください。 ノート: ドメインが保護された本番モードで実行されている場合、Webアプリケーション・コンテナは、Servlet サーブレットがアプリケーションで使用されている場合に警告をログに記録します。
|
本番環境で、 |
本番環境で 『Oracle WebLogic Server Webアプリケーション、サーブレット、JSP の開発』のデフォルト・サーブレットの設定に関する項を参照してください。 |
アプリケーションのセキュリティを検査します。 |
アプリケーションにセキュリティの脆弱性がもたらされるおそれのある典型的な事例があります。これらの事例の多くは、OWASP (Open Web Application Security Project)( Javaではネイティブ・コードがJavaセキュリティの範囲外に位置付けられているので、特に問題となるのはJava Native Interface (JNI)を使用するコードです。Javaネイティブ・コードが逸脱した動作をしても、それを制約できるのはオペレーティング・システムだけです。つまり、Javaネイティブ・コードはWebLogic Serverでできることを何でも行えます。この脆弱性は、バッファ・オーバーフロー・エラーがネイティブ・コードでよくある問題であり、任意のコードを実行するために使用できるという事実によってさらに複雑になります。 |
アプリケーションに信頼性のないコードが含まれる場合は、Javaセキュリティ・マネージャを有効にします。 |
Javaセキュリティ・マネージャは許可を定義しJVM内で実行するクラスに強制的に付与します。多くの場合、脅威モデルでは悪意のあるコードがJVMで実行されていないため、Javaセキュリティ・マネージャは必要ありません。ただし、サード・パーティがWebLogic Serverを使用し、信頼されていないクラスが実行されている場合、Javaセキュリティ・マネージャが役立つ場合があります。 サーバー・インスタンスでJavaセキュリティ・マネージャを有効にするには、サーバーを起動するときに次のJavaオプションを使用します。 -Djava.security.manager
-Djava.security.policy[=]=filename
『WebLogicセキュリティ・サービスによるアプリケーションの開発』のJavaセキュリティ・マネージャを使用してWebLogicリソースを保護する方法に関する項を参照してください。 ノート: ドメインが保護された本番モードで実行されている場合、WebLogic Serverは、セキュリティ・マネージャが有効でない場合に警告をログに記録します。ただし、この警告をログに記録するかどうかは、SecureModeMBean に含まれているWarnOnJavaSecurityManager 属性を使用して指定できます。
|
サーブレットまたはJSPがユーザーの供給によるデータを返した場合に、HTML特殊文字を置換します。 |
ユーザーが入力したデータを返す機能により、クロスサイト・スクリプティングと呼ばれるセキュリティの脆弱性がもたらされます。これは、ユーザーのセキュリティ認可を盗用するために利用される可能性があります。OWASP (Open Web Application Security Project) Webサイトで次のトピックを参照してください。
セキュリティの脆弱性をなくすには、ユーザーが供給したデータを返す前に、そのデータをスキャンしてHTML特殊文字を探します。該当する文字が見つかれば、それらをHTMLのエンティティまたは文字参照と置き換えます。文字を置換することで、ブラウザでユーザー入力によるデータがHTMLとして実行されることを回避します。 『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のJSPでのユーザー入力データの保護に関する項およびクライアント入力の保護に関する項を参照してください。 |
認証、認可、および検証済の生成元ポリシーを使用するようにWebSocketアプリケーションを構成します。 |
Webコンテナの標準の認証および認可機能(BASIC、FORM、CLIENT-CERT)を使用して、認可されていないクライアントがWebSocket接続を開かないようにします。 予期される接続元からのWebSocket接続のみを受け入れるようにWebSocketアプリケーションを構成することも可能です。 『Oracle WebLogic Serverアプリケーションの開発』のWebSocketアプリケーションの保護に関する項を参照してください。 |
|
WebSocketアプリケーションでは、 『Oracle WebLogic Serverアプリケーションの開発』のWebSocketアプリケーションの保護に関する項を参照してください。 |