Oracle WebLogic Server環境用のセキュリティの構成は、WebLogic Serverのセキュア・インストールの作成から始めます。これには、証明書の取得および格納、ユーザー・アカウントの保護、ドメインが実行されるネットワークの保護など、ドメインが実行される環境に適したセキュリティ構成オプションの選択も含まれます。
この章には次のトピックが含まれます:
「秘密キー、デジタル証明書、信頼性のある認証局からの証明書の取得」を参照してください。
「秘密キー、デジタル証明書、信頼性のある認証局からの証明書の格納」を参照してください。
本番環境で保護する必要があるWebLogic Serverのすべてのコンポーネントと、WebLogic Serverホスト、WebLogicセキュリティ・サービス、WebLogic Serverで使用されるファイルとデータベースを保護するために推奨される特定のタスクを含む完全なチェックリストは、『Oracle WebLogic Server本番環境の保護』の本番環境のセキュリティの確保を参照してください。
セキュア・インストールの実行のステップでは、WebLogic Serverがインストールされているホスト・マシンの保護、そのホストへのアクセスを認可されたユーザーのみに制限すること、インストールの完了直後のクリティカル・パッチ・アップデートのインストールを行います。
WebLogic Serverを本番環境にインストールする場合、次の項で説明するガイドラインを強くお薦めします。
WebLogic Serverのインストール・プログラムを開始する前に、次のタスクを実行します。
My Oracle Supportアカウントを作成し、WebLogic Serverインストールをオラクル社に登録して、セキュリティの更新を自動的に受け取れるようにします。http://www.oracle.com/support/index.html
にアクセスしてください。
認可されたユーザーのみにアクセス権を制限して、ホスト・マシン、オペレーティング・システムおよびファイル・システムを保護します。たとえば:
認可されていないオペレーティング・システム・ユーザーが、マシンおよびネットワーク接続を使用できないように、ハードウェアを安全な場所に設置します。
最新のオペレーティング・システム・パッチとセキュリティ更新をホスト・マシンに必ず適用します。
ノート:
新しいパッチが入手できるようになったら、すぐにダウンロードしてインストールする必要があります。
オペレーティング・システムで提供されるネットワーク・サービスとファイル・システムを保護して、認可されないアクセスを防ぎます。たとえば、すべてのファイル・システム共有を保護するようにします。
オペレーティング・システムのファイル・アクセス権限を設定して、WebLogic Serverによって使用または管理されるディスクに格納されているデータ(セキュリティLDAPデータベースや、キーストアが作成されて管理されるディレクトリなど)へのアクセスを制限します。
ホスト・マシンのユーザー・アカウント数を制限します。グループを作成しして、次のユーザー・アカウントのみを含めます。
WebLogic Serverをインストールするユーザーのみ
WebLogicドメインを作成し、ノード・マネージャを使用して、管理サーバーと各管理対象サーバー・インスタンスをドメインで起動するユーザー
これらのユーザー・アカウントの権限を次のディレクトリのみに制限します。
Oracleホーム — ホスト・コンピュータ上のすべてのOracle Fusion Middleware製品に対して作成されるルート・ディレクトリ
WebLogicホーム — WebLogic Serverインストールのルート・ディレクトリ
ドメイン・ホーム — WebLogicドメインのルート・ディレクトリ
ノート:
一部のプロセスは、デフォルトではUnixプラットフォームの/tmp
のような一時ディレクトリへのアクセス権が必要です。ユーザー・アカウントの権限がOracleホーム、WebLogicホームおよびWebLogicドメイン・ディレクトリのみに制限される場合、ユーザーは自らがアクセス権を持つディレクトリを指すように環境変数(TEMP
またはTMP
など)を変更する必要があります。
ホスト・マシンのすべてのWebサーバーが、権限のないユーザーとしてのみ実行するようにします。決してroot
として実行してはなりません。CERT Coordination Center (http://www.cert.org/
)の「Security Practices & Evaluations」の情報も参照してください。
ソフトウェア開発ツールまたはサンプル・ソフトウェアがインストールされていないことを確認します。
評価の高い侵入検知システム(IDS)など、オペレーティング・システムを保護する追加ソフトウェアの使用を検討します。
『Oracle WebLogic Server本番環境の保護』のWebLogic Serverホストの保護に関する項を参照してください。
インストール中には次に注意してください。
サンプル・アプリケーション・コンポーネントをインストールしないでください。
セキュリティ更新の指定インストーラ画面で、「セキュリティ・アップデートをMy Oracle Support経由で受け取る」を選択します。
『Oracle WebLogic Server本番環境の保護』のセキュリティ関連の公開資料の参照に関する項とセキュアな方法でのWebLogic Serverのインストールに関する項を参照してください。
Derby DBMSデータベースを削除します。WebLogic Serverにバンドルされているこのデータベースは、サンプル・アプリケーションやサンプル・コードでデモンストレーション・データベースとして使用されます。Derby DBMSはWL_HOME
/common/derby
ディレクトリにあります。
次のサイトの「重要なパッチ更新およびセキュリティ・アラート」ページにアクセスして、WebLogic Serverのセキュリティの注意事項を確認します。
http://www.oracle.com/technetwork/topics/security/alerts-086861.html
未使用の内部アプリケーションの無効化および管理ポートの有効化によって、内部アプリケーションへのアクセスを制限します。内部アプリケーションへのアクセスを制限する方法の詳細は、『Oracle WebLogic Server本番環境の保護』のセキュアな方法でのWebLogic Serverのインストールおよび構成に関する項を参照してください。
本番で使用するWebLogicドメインを作成するには、他のWebLogicドメインと相互運用するかどうかや、ドメインへのアクセス権を持つユーザーのアカウントを保護するのに最適かどうかなど、ドメインが実行される環境を検討します。
本番環境で使用するためにWebLogicドメインを構成する際に、構成ウィザードなどのツール、pack
/unpack
コマンド、WLSTまたはWebLogic Server管理コンソールを使用するときには、次のことを考慮します。
ドメインが本番モードまたは保護された本番モードのいずれかで実行されるように構成します。セキュリティおよびロギングに関するデフォルトの設定は、ドメイン・モードにより決定されます。
本番モードでは、アプリケーションのデプロイおよび管理サーバーの起動にはユーザー名とパスワードが必要になるなど、セキュリティ構成が比較的厳しくなっています。完全なWebLogicドメインまたはリモート・マシン上の管理対象サーバー・ドメイン・ディレクトリで使用されるドメインのサブセットを、unpack
コマンドを使用して作成している場合は、-server_start_mode=prod
パラメータを使用して本番モードを構成します。
管理コンソールを使用した保護された本番モードおよび関連のセキュリティ設定の有効化の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの本番ドメインの保護に関する項を参照してください。
ドメインの作成時にsetOption
WLSTオフライン・コマンドを使用し、ServerStartMode
引数をsecure
設定して保護された本番モードでドメインを作成します。『WebLogic Server WLSTコマンド・リファレンス』のsetOptionに関する項を参照してください。
ドメイン環境を本番モードから保護された本番モードに変更する方法を学ぶには、『WebLogic Scripting Toolの理解』のWLSTオンラインを使用した既存のWebLogicドメインの更新に関する項を参照してください。
Fusion Middleware Controlを使用して保護された本番モードおよび関連のセキュリティ設定を有効にするには、『Fusion Middleware ControlによるOracle WebLogic Serverの管理』のドメイン・セキュリティの構成に関する項を参照してください。
ノート:
ドメインのモードは、開発から本番、本番から開発、本番から保護された本番モードに変更できます。しかし、保護された本番モードを有効にするには、ドメインが本番モードである必要があることに留意してください。 セキュリティ要件が厳しい本番環境では、(開発モードのドメインを本番モードに変更するのではなく)ドメインの作成時に本番ドメイン・モードを設定することをお薦めします。ドメイン・モードの変更方法の詳細は、『Oracle WebLogic Serverドメイン構成の理解』の開発モードと本番モードに関する項を参照してください。ドメインが他のWebLogicドメインと相互運用する場合、または将来にその予定がある場合は、注意してリソース名を選択します。多くのリソース名はドメインの作成時に確定されます。クロス・ドメイン・セキュリティ、トランザクションおよびメッセージングを使用するときは、リソース名に厳しい要件を適用する必要があります。
『Oracle WebLogic Server JTAアプリケーションの開発』のトランザクション通信の要件に関する項を参照してください。
WLSTを使用してドメインを作成するとき、次のようなパスワードが必要なエンティティを構成するために、暗号化されていないパスワードをコマンドに入力しないでください。
ドメイン管理者
ノード・マネージャ・ユーザー
データベース・ユーザー
JKSキーストア(キーストアの作成時とWebLogic Serverでのキーストアの構成時)
ウォレット
WLSTコマンドで暗号化されていないパスワードを指定するのはセキュリティ・リスクです。その他のユーザーがモニター画面から簡単に見ることができます。また、それらのコマンドの実行をログするプロセスのリストにそのパスワードが表示されます。したがって、コマンドにはパスワードを指定しないでください。コマンドが実行されるとき、ドメインの構成を完了するために必要なパスワードがあれば、WLSTによって自動的にプロンプトが表示されます。
本番環境の場合、EntrustやSymantec Corporationなどの信頼できる認証局からのみ秘密キーやデジタル証明書を取得することを強くお薦めします。「本番環境のための証明書の取得と格納」を参照してください。
WebLogic Serverで提供されるデジタル証明書、秘密キー、信頼性のあるCA証明書を使用できるのは開発環境のみです。keytoolまたはCertGenユーティリティを使用して、自己署名証明書を生成することもできます。「開発環境でのキーストアと証明書の使用」を参照してください。
項目 | 参照先 |
---|---|
キーストアの作成 |
|
WebLogic Serverで使用されるキーストアの構成 |
|
キーストアを作成してキーと証明書をその中に保存するためのkeytoolユーティリティの使用ステップの例 |
|
キーストアに含まれる証明書の表示 |
|
まもなく期限切れになる証明書の更新 |
システム管理者は、すべての構成オプションを無効にしたり、ユーザー・アカウントがロックされるまでのログイン試行回数を増やしたり、ユーザー・アカウントがロックされるまでの無効なログイン試行期間を延ばしたり、ユーザー・アカウントのロック時間を変更したりできます。これらの構成オプションを変更すると、セキュリティ・レベルが低下して攻撃を受けやすくなることに注意してください。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのユーザー・ロックアウト属性の設定に関する項を参照してください。
ノート:
「ユーザーのロックアウト」オプションは、デフォルト・セキュリティ・レルムとそのすべてのセキュリティ・プロバイダに適用されます。「ユーザーのロックアウト」は、すべてのセキュリティ・レルムで作動します。構成されているすべてのプロバイダ(カスタム・プロバイダも含む)に対応し、デフォルトで有効になっています。
独自のメカニズムでユーザー・アカウントを保護する認証プロバイダを使用する場合、セキュリティ・レルムでの「ユーザーのロックアウト」を無効にしても問題ないかどうかを検討してください。他の認証プロバイダがセキュリティ・レルムで構成される可能性があるためです。
ユーザー・アカウントがロックされたためそのユーザー・アカウントを削除して、同じ名前とパスワードを持つ別のユーザー・アカウントを追加しても、「ユーザーのロック・アウト」構成オプションはリセットされません。
ロックされたユーザー・アカウントの解除については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのユーザー・アカウントのロック解除に関する項を参照してください。ロックされたユーザー・アカウントに対するロックの解除は、WebLogic Server管理コンソールや、UserLockoutManagerRuntimeMBean
のclearLockout
属性を介して行うことができます。
接続フィルタは、管理ポートを使用する場合に特に便利です。ネットワーク・ファイアウォール構成によっては、接続フィルタを使用して管理アクセスをさらに制限できる場合もあります。一般的には、管理ポートへのアクセスをWebLogicドメイン内のサーバーやマシンのみに制限するために使用されることが考えられます。攻撃者がファイアウォールの内側にあるマシンにアクセスできても、それが許可されたマシンでない限り、管理操作を実行することはできません。
WebLogic Serverでは、weblogic.security.net.ConnectionFilterImpl
というデフォルトの接続フィルタが用意されています。この接続フィルタは、すべての着信接続を受け入れます。また、サーバーは、このクラスが提供する静的ファクトリ・メソッドを使うことで、現在の接続フィルタを取得できます。アクセスを拒否するようにこの接続フィルタを構成するには、WebLogic Server管理コンソールで接続フィルタ・ルールを入力してください。
また、weblogic.security.net
パッケージのクラスを実装することで、カスタム接続フィルタを使用することもできます。接続フィルタの作成の詳細は、『WebLogicセキュリティ・サービスによるアプリケーションの開発』のネットワーク接続フィルタの使用に関する項を参照してください。デフォルト接続フィルタと同じように、カスタム接続フィルタもWebLogic Server管理コンソールで構成できます。
接続フィルタを構成するには:
次のトピックを参照してください。
Oracle WebLogic Server管理コンソール・オンライン・ヘルプの接続フィルタの構成に関する項を参照してください。
接続フィルタのルール、およびカスタム接続フィルタの作成については、『WebLogicセキュリティ・サービスによるアプリケーションの開発』のネットワーク接続フィルタの使用に関する項およびカスタム接続フィルタの開発に関する項を参照してください。
WebLogic Scripting ToolまたはJava Management Extensions (JMX) APIを使用して新しいセキュリティ構成を作成することもできます。
セキュリティを高めるために、WebLogic Serverは、JDK JEP 290メカニズムを使用して受信したシリアライズJavaオブジェクトをフィルタして、デシリアライズできるクラスを制限します。フィルタにより、サービス拒否(DOS)攻撃やリモート・コード実行(RCE)攻撃を引き起こす可能性のある、特別に作成された悪意のあるシリアライズ・オブジェクトによる攻撃から保護できます。
WebLogic Serverでは、次のようにJEP 290を使用します。
WebLogic Server固有のオブジェクト入力フィルタを実装して、WebLogic Serverによって使用される入力ストリームに対して禁止されたクラスおよびパッケージのブロックリストを適用します。フィルタでは、デシリアライズ・オブジェクト・ツリーの最大の深さのデフォルト値も適用されます。
デフォルト・フィルタのクラスとパッケージをブロックまたは許可リストの特定のクラスに追加または削除するために使用できるシステム・プロパティを提供します。システム・プロパティを使用して、デシリアライズ・オブジェクトのネストの深さ、デシリアライズ・オブジェクト内の内部参照の数、配列のサイズ、デシリアライズ・オブジェクトの最大サイズ(バイト単位)に基づいてデシリアライズ・クラスをフィルタすることもできます。
JEP 290の詳細は、http://openjdk.java.net/jeps/290
を参照してください。
このリリースのJEP 290サポートに必要な最小のJDKレベルについては、『Oracle WebLogic Server本番環境の保護』のネットワーク接続の保護に関する項を参照してください。
WebLogic Serverには、必要に応じてJEP 290デフォルト・フィルタをカスタマイズ、置換または無効にするために使用できるシステム・プロパティが含まれます。
次の表は、システム・プロパティについて説明しており、使用例が含まれています。
表4-2 WebLogic Server JEP 290のシステム・プロパティ
プロパティ | 説明 |
---|---|
|
このプロパティは、JEP 290の標準フィルタ構文を使用してWebLogic ServerのカスタムJEP 290フィルタを設定する場合に使用します。JEP 290のフィルタ構文については、 デフォルトでは、このカスタム・フィルタはデフォルトのWebLogic Serverフィルタと結合され、いずれかのフィルタ要素が競合した場合にはカスタム・フィルタがデフォルト・フィルタより優先されます。 たとえば、 -Dweblogic.oif.serialFilter=”!foo.bar.Mumble” この設定により、デフォルト・フィルタで許可されている場合でもクラス |
|
このプロパティは、デフォルトのWebLogic Serverフィルタを結合、置換または無効化する機能を提供する、カスタム・フィルタのフィルタ・モードを指定する場合に使用します。有効な値は次のとおりです。
たとえば、デフォルトのWebLogic Serverフィルタをカスタム・フィルタに置き換えるには、次の設定を使用します。 -Dweblogic.oif.serialFilterMode=replace |
|
このプロパティは、(Java SE たとえば、JVM全体ではなく、内部WebLogic ServerのデシリアライゼーションにのみWebLogic Serverのデフォルトまたはカスタム・フィルタを適用するには、次の設定を使用します。 -Dweblogic.oif.serialFilterScope=weblogic |