Oracle® Fusion Middleware Oracle WebLogic Server 12.1.3セキュリティの管理 12c (12.1.3) E57576-07 |
|
![]() 前 |
![]() 次 |
この章では、WebLogic監査プロバイダの構成方法を説明します。これは、WebLogic Server 12.1.3でリクエストの操作とそれらのリクエストの結果に関する情報を、否認防止を目的として収集、格納および配布するオプションのセキュリティ・プロバイダです。
この章の内容は次のとおりです。
監査とは、リクエストの操作とそれらのリクエストの結果に関する情報を、否認防止を目的として収集、格納、および配布するプロセスのことです。言い換えれば、監査プロバイダはコンピュータのアクティビティの電子的な記録を生成します。
監査プロバイダの構成はオプションです。デフォルト・セキュリティ・レルム(myrealm
)には監査プロバイダは構成されていません。WebLogic Serverには、WebLogic監査プロバイダ(WebLogic Server管理コンソールではDefaultAuditor
)というプロバイダが用意されています。また、カスタム監査プロバイダを開発することもできます。詳細は、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』の監査プロバイダに関する項を参照してください。
WebLogic監査プロバイダは、表8-1で説明するイベントのログを記録できます。また、構成監査(「構成監査」を参照)を有効にした場合、WebLogic監査プロバイダは表 8-1で説明するイベントのログを記録できます。
表8-1 WebLogic監査プロバイダのイベント
監査イベント | 意味 |
---|---|
AUTHENTICATE |
単純認証(ユーザー名とパスワード)が発生しました。 |
ASSERTIDENTITY |
境界認証(トークン・ベース)が発生しました。 |
USERLOCKED |
無効なログイン試行によってユーザー・アカウントがロックされました。 |
USERUNLOCKED |
ユーザー・アカウントのロックがクリアされました。 |
USERLOCKOUTEXPIRED |
ユーザー・アカウントのロックの期限が切れました。 |
ISAUTHORIZED |
認可処理の試行が発生しました。 |
ROLEEVENT |
|
ROLEDEPLOY |
|
ROLEUNDEPLOY |
|
POLICYDEPLOY |
|
POLICYUNDEPLOY |
|
START_AUDIT |
監査プロバイダが起動しました。 |
STOP_AUDIT |
監査プロバイダが停止しました。 |
WebLogic監査プロバイダの構成オプションは大部分がデフォルトであらかじめ定義されています。また、WebLogic監査プロバイダはアクティブなセキュリティ・レルムに追加されると監査イベントの記録を開始します。ただし、次の設定については定義する必要があります。これらの設定は管理コンソールのプロバイダの「構成」→「プロバイダ固有」ページで行えます。WebLogic Scripting ToolまたはJava Management Extensions (JMX) APIを使用して監査プロバイダを構成することもできます。
ローテーション時間(分) - 新しいDefaultAuditRecorder.log
ファイルを作成するまでの分数を指定します。指定された時間が経過すると、監査ファイルが閉じられて新しい監査ファイルが作成されます。DefaultAuditRecorder.
YYYYMMDDHHMM
.log
(例: DefaultAuditRecorder.200405130110.log
)という名前のバックアップ・ファイルが同じディレクトリ内に作成されます。
重大度 - WebLogic Serverデプロイメントに適した重大度です。WebLogic監査プロバイダは、指定された重大度のセキュリティ・イベント、およびそれより高い重大度のすべてのイベントを監査します。たとえば、重大度ERRORに設定した場合、WebLogic監査プロバイダは重大度がERROR、SUCCESS、およびFAILUREのセキュリティ・イベントを監査します。重大度をCUSTOMに設定すると、監査の必要な特定の重大度レベル(ERRORイベント、FAILUREイベントのみなど)を対象にすることもできます。監査イベントには、重大度の名前と数値順位が含まれています。このため、カスタム監査プロバイダは、名前または数値順位のいずれかによってイベントをフィルタ処理できます。監査は、以下のレベルのセキュリティ・イベントが発生したときに実行されます。
イベントの重大度 | ランク |
---|---|
INFORMATION | 1 |
WARNING | 2 |
ERROR | 3 |
SUCCESS | 4 |
FAILURE | 5 |
WebLogic監査プロバイダによって記録されるすべての監査情報は、デフォルトではWL_HOME
\yourdomain\yourserver\logs\DefaultAuditRecorder.log
に保存されます。監査プロバイダはセキュリティ・レルム単位で構成されますが、各サーバーは監査データをサーバー・ディレクトリにある各自のログ・ファイルに書き込みます。次のJava起動オプションを使用すると、コマンド・ラインでDefaultAuditRecorder.log
用に新しいディレクトリを指定できます。
-Dweblogic.security.audit.auditLogDir=c:\foo
新しいファイルの場所は、c:\foo\yourserver\logs\DefaultAuditRecorder.log
になります。
詳細は、『Oracle WebLogic Serverコマンド・リファレンス』のセキュリティに関する項を参照してください。
注意: 監査プロバイダを使用すると、わずか数個のイベントのログが記録される際にもWebLogic Serverのパフォーマンスに影響が及びます。 |
詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの監査プロバイダの構成に関する項を参照してください。
監査イベントには、様々な情報やオブジェクトを保持できるContextHandler
が組み込まれています。WebLogic監査プロバイダのActive ContextHandler Entries
属性を設定すると、ContextHandler
内のどのContextElementエントリが監査プロバイダによって記録されるかを指定できます。デフォルトでは、どのContextElementsも監査されません。ContextHandler
内のオブジェクトは、ほとんどの場合toStringメソッドを使用してログに記録されます。表8-2に、利用できるContextHandler
エントリの一覧を示します。
表8-2 監査用のコンテキスト・ハンドラ・エントリ
コンテキスト要素名 | 説明とタイプ |
---|---|
com.bea.contextelement. servlet.HttpServletRequest |
HTTPによるサーブレット・アクセス・リクエストまたはSOAPメッセージ。 javax.http.servlet.HttpServletRequest |
com.bea.contextelement. servlet.HttpServletResponse |
HTTPによるサーブレット・アクセス・レスポンスまたはSOAPメッセージ。 javax.http.servlet.HttpServletResponse |
com.bea.contextelement. wli.Message |
Oracle WebLogic Integrationメッセージ。メッセージは監査ログに送られます。 java.io.InputStream |
com.bea.contextelement. channel.Port |
リクエストの受け付けまたは処理を行うネットワーク・チャネルの内部リスニング・ポート。 java.lang.Integer |
com.bea.contextelement. channel.PublicPort |
リクエストの受け付けまたは処理を行うネットワーク・チャネルの外部リスニング・ポート。 java.lang.Integer |
com.bea.contextelement. channel.RemotePort |
リクエストの受け付けまたは処理を行うネットワーク・チャネルのTCP/IP接続のリモート・エンドのポート。 java.lang.Integer |
com.bea.contextelement. channel.Protocol |
リクエストの受け付けまたは処理を行うネットワーク・チャネルのリクエストを行うためのプロトコル。 java.lang.String |
com.bea.contextelement. channel.Address |
リクエストの受け付けまたは処理を行うネットワーク・チャネルの内部リスニング・アドレス。 java.lang.String |
com.bea.contextelement. channel.PublicAddress |
リクエストの受け付けまたは処理を行うネットワーク・チャネルの外部リスニング・アドレス。 java.lang.String |
com.bea.contextelement. channel.RemoteAddress |
リクエストの受け付けまたは処理を行うネットワーク・チャネルのTCP/IP接続のリモート・アドレス。 java.lang.String |
com.bea.contextelement. channel.ChannelName |
リクエストの受け付けまたは処理を行うネットワーク・チャネルの名前。 java.lang.String |
com.bea.contextelement. channel.Secure |
SSLによるリクエストの受け付けまたは処理を行うネットワーク・チャネルかどうかを示します。 java.lang.Boolean |
com.bea.contextelement. ejb20.Parameter[1-N] |
パラメータに基づくオブジェクト。 |
com.bea.contextelement. wsee.SOAPMessage |
javax.xml.rpc.handler.MessageContext |
com.bea.contextelement. entitlement.EAuxiliaryID |
WebLogic Serverの内部プロセスで使用されます。 weblogic.entitlement.expression.EAuxiliary |
com.bea.contextelement. security.ChainPrevalidatedBySSL |
SSLフレームワークが証明書チェーンを検証しました。つまり、チェーン内の証明書が相互に適切に署名しており、チェーンが終了する証明書がサーバーの信頼性のあるCAの1つであり、チェーンが基本制約ルールに準拠していて、チェーン内の証明書が期限切れではありませんでした。 java.lang.Boolean |
com.bea.contextelement. xml.SecurityToken |
このリリースのWebLogic Serverでは使用されません。 weblogic.xml.crypto.wss.provider.SecurityToken |
com.bea.contextelement. xml.SecurityTokenAssertion |
このリリースのWebLogic Serverでは使用されません。 java.util.Map |
com.bea.contextelement. webservice.Integrity{id:XXXXX} |
javax.security.auth.Subject |
com.bea.contextelement. saml.SSLClientCertificateChain |
SSLクライアント証明書チェーンがSSL接続から取得され、sender-vouches SAMLアサーションが受信されました。 java.security.cert.X509Certificate[] |
com.bea.contextelement. saml.MessageSignerCertificate |
Webサービス・メッセージに署名するための証明書。 java.security.cert.X509Certificate |
com.bea.contextelement. saml.subject.ConfirmationMethod |
SAMLアサーションのタイプ(bearer、artifact、sender-vouches、holder-of-key)。 java.lang.String |
com.bea.contextelement. saml.subject.dom.KeyInfo |
holder-of-key SAMLアサーションでのサブジェクト確認のために使用される org.w3c.dom.Element |
管理サーバーを構成して、ユーザーがドメイン内のリソースの構成を変更したときやドメイン内のリソースの管理操作を呼び出したときに、ログ・メッセージの送信と監査イベントの生成を行うようにすることができます。たとえば、ユーザーがドメイン内の管理対象サーバーのSSLを無効にすると、管理サーバーからログ・メッセージが送信されます。WebLogic監査プロバイダを有効にしている場合は、さらにセキュリティ・ログに監査イベントが書き込まれます。こうしたログ・メッセージと監査イベントにより、ドメインの構成の変更を監査、追跡できます。この機能を、構成監査といいます。
構成監査メッセージは、管理サーバーのローカル・ログ・ファイルに書き込まれます。デフォルトではドメイン全体のメッセージ・ログには書き込まれません。
構成監査情報は、認可イベントに格納されます。そのため、認可イベントを消費して構成監査情報にアクセスする方法もあります。ただし、認可イベント内の情報は構成の変更の実行が許可されたかどうかを示すものであり、構成の変更が実際に成功したかどうかは示されません(たとえば、変更が無効だったため失敗してしまっている場合もあります)。
構成監査の有効化は、以下のいずれかの方法で行えます。
WebLogic Server管理コンソールを使用する。ドメインの「構成」→「全般」ページで、「構成監査のタイプ」を設定します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプの構成監査の有効化に関する項を参照してください。
管理サーバーの起動時に、weblogic.Server
コマンドに次のJavaオプションのいずれかを含めます。
-Dweblogic.domain.ConfigurationAuditType="audit"
ドメインによって監査イベントのみが送信されます。
-Dweblogic.domain.ConfigurationAuditType="log"
ドメインによって構成監査メッセージのみが管理サーバーのログ・ファイルに書き込まれます。
-Dweblogic.domain.ConfigurationAuditType="logaudit"
ドメインによって監査イベントが送信され、構成監査メッセージが管理サーバーのログ・ファイルに書き込まれます。
『Oracle WebLogic Serverコマンド・リファレンス』のweblogic.Serverコマンドライン・リファレンスに関する項を参照してください。
WebLogic Scripting Toolを使用して、DomainMBean
のConfigurationAuditType
属性の値を変更します。『WebLogic Scripting Toolの理解』を参照してください。
構成監査メッセージの重大度は次のとおりです。
表8-3 構成監査メッセージの重大度
Severity | 説明 |
---|---|
SUCCESS |
構成の変更が正常に行われました。 |
FAILURE |
ユーザーの資格証明が十分でなかったため構成が変更されませんでした。 |
ERROR |
内部エラーのため構成が変更されませんでした。 |
構成監査メッセージは、159900 - 159910
の範囲のメッセージIDで識別されます。
構成監査メッセージでは、MBeanオブジェクト名を使用してリソースを特定します。WebLogic Server MBeanのオブジェクト名は、階層データ・モデル内でのMBeanの場所を反映しています。この場所を反映させるために、オブジェクト名には親MBeanからの名前と値のペアが含まれています。たとえば、サーバーのLogMBean
のオブジェクト名は、mydomain:Name=myserverlog
,Type=Log,Server=myserver
です。『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』のWebLogic Server MBeanのデータ・モデルに関する項を参照してください。
表 8-4に、これらのメッセージをまとめます。
表8-4 構成監査メッセージの概要
このイベントが発生した場合... | WebLogic ServerはこのIDのメッセージを生成します... | そしてこのメッセージ・テキストは... |
---|---|---|
認可されたユーザーがリソースを作成します。 |
159900 |
USER username CREATED MBean-name ここで、 |
認可されていないユーザーがリソースを作成しようとします。 |
159901 |
USER username CREATED MBean-name FAILED weblogic.management. NoAccessRuntimeException: exception-text stack-trace ここで、 |
認可されたユーザーがリソースを削除します。 |
159902 |
USER username REMOVED MBean-name
where |
認可されていないユーザーがリソースを削除しようとします。 |
159903 |
USER username REMOVE MBean-name
FAILED weblogic.management.
NoAccessRuntimeException:
exception-text stack-trace
where |
認可されたユーザーがリソースの構成を変更します。 |
159904 |
USER username MODIFIED MBean-name ATTRIBUTE attribute-name FROM old-value TO new-value ここで、 |
認可されていないユーザーがリソースの構成を変更しようとします。 |
159905 |
USER username MODIFY MBean-name ATTRIBUTE attribute-name FROM old-value TO new-value FAILED weblogic.management. NoAccessRuntimeException: exception-text stack-trace ここで、 |
認可されたユーザーがリソース操作を呼び出します。 たとえば、ユーザーがアプリケーションをデプロイするか、サーバー・インスタンスを起動します。 |
159907 |
USER username INVOKED ON MBean-name METHOD operation-name PARAMS specified-parameters ここで、 |
認可されていないユーザーがリソース操作を呼び出そうとします。 |
159908 |
USER username INVOKED ON MBean-name METHOD operation-name PARAMS specified-parameters FAILED weblogic.management. NoAccessRuntimeException: exception-text stack-trace ここで、 |
認可されたユーザーが構成監査を有効にします。 |
159909 |
USER username, Configuration Auditing is enabled
ここで、 |
認可されたユーザーが構成監査を無効にします。 |
159910 |
USER username, Configuration Auditing is disabled
ここで、usernameは構成監査を無効にしたWebLogic Serverユーザーを示します。 |
注意: 構成監査が有効かどうかに関係なく、認可されたユーザーがリソースを追加、変更、または削除するたびに、管理サブシステムからも重大度InfoのメッセージがID 140009で生成されます。例:<Sep 15, 2005 11:54:47 AM EDT> <Info> <Management> <140009> <Configuration changes for domain saved to the repository.> このメッセージでは、ドメインの構成が変更されたことは分かりますが、構成監査メッセージのような詳細情報は提供されません。また、このメッセージは、リソース操作を呼び出したときには生成されません。 |
表8-5に、構成監査メッセージの他のメッセージ属性をまとめます。これらの属性は、すべての構成監査メッセージで共通です。
表8-5 共通のメッセージ属性と値
メッセージ属性 | 属性値 |
---|---|
Severity |
Info |
サブシステム |
Configuration Audit |
ユーザーID |
kernel identity この値は、どのユーザーがリソースの変更やリソース操作の呼出しを実行しても常に |
サーバー名 |
AdminServerName
ドメイン内のすべてのリソースの構成データが管理サーバーに保持されているため、この値は常に管理サーバーの名前になります。 |
マシン名 |
AdminServerHostName
ドメイン内のすべてのリソースの構成データが管理サーバーに保持されているため、この値は常に管理サーバーのホスト・マシンの名前になります。 |
スレッドID |
execute-thread
この値は、管理サーバーで現在実行されている実行スレッドの数によって異なります。 |
タイムスタンプ |
メッセージが生成されたときの |
監査イベントは、監査プロバイダによって読み込まれ、特定の方法で処理されるオブジェクトです。監査プロバイダは、リクエストの操作とそれらのリクエストの結果に関する情報を、否認防止を目的として収集、格納、および配布する場合にセキュリティ・レルムによって使用されるプラガブルなコンポーネントです。
ドメインで監査イベントの送信を有効にすると、イベントが送信されます(表8-6を参照)。ドメインに対して構成されているすべての監査プロバイダは、これらのイベントを処理できます。
イベントの重大度はすべてSUCCESS
になり、アクションを開始したセキュリティ・プリンシパル、権限が付与されていたかどうか、およびリクエストされたアクションのオブジェクト(MBeanまたはMBean属性)が示されます。
表8-6 構成監査の監査イベントのサマリー
このイベントが発生した場合... | WebLogic Serverはこの監査イベント・オブジェクトを生成します... |
---|---|
新しい構成アーティファクトを作成するリクエストが許可または回避されました。 |
weblogic.security.spi.AuditCreateConfigurationEvent |
既存の構成アーティファクトを削除するリクエストが許可または回避されました。 |
weblogic.security.spi.AuditDeleteConfigurationEvent |
既存の構成アーティファクトを変更するリクエストが許可または回避されました。 |
weblogic.security.spi.AuditInvokeConfigurationEvent |
既存の構成アーティファクトに対する操作の呼出しが許可または回避されました。 |
weblogic.security.spi.AuditSetAttributeConfigurationEvent |
デフォルトのWebLogic Server監査プロバイダを有効にすると、すべての監査イベントがログ・メッセージとしてその独自のログ・ファイルに書き込まれます。
作成または購入されたその他の監査プロバイダは、これらのイベントをフィルタ処理して、それらをLDAPサーバー、データベース、シンプル・ファイルなどの出力リポジトリに書き出すことができます。さらに、他のタイプのセキュリティ・プロバイダは、監査プロバイダからの監査サービスをリクエストできます。『Oracle WebLogic Serverセキュリティ・プロバイダの開発』の監査プロバイダに関する項を参照してください。