Oracle Enterprise Manager Compliance Managementソリューションは、コンプライアンス・フレームワークおよびコンプライアンス標準を定義、カスタマイズおよび管理する機能を提供します。
コンプライアンス管理フレームワークの視覚的デモンストレーションを表示するには、次のURLにアクセスして「ビデオの再生」をクリックします。
https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:5773,1
この章の内容は次のとおりです。
プラグイン開発者は、コンプライアンス標準を追加する際に、次の手順に従う必要があります。
コンプライアンス標準ルールを定義します。
コンプライアンス標準ルールは次のいずれかにすることができます。
リポジトリ・チェックベースのルール
リアルタイム監視ルール
コンプライアンス標準ルールの定義の詳細は、第13.2項「コンプライアンス標準ルールについて」を参照してください。
コンプライアンス標準を定義します。
詳細は、第13.3項「コンプライアンス標準の定義」を参照してください。
コンプライアンス・フレームワークを定義します。
詳細は、第13.4項「コンプライアンス・フレームワークの定義」を参照してください。
コンプライアンス標準ルール、標準およびフレームワークをメタデータXMLとしてパッケージ化します。
詳細は、第13.8項「コンプライアンスXMLのパッケージ」を参照してください。
コンプライアンス・コンテンツを設定およびテストします。
詳細は、第13.9項「コンプライアンス標準およびルールの設定とテスト」を参照してください。
プラグインをデプロイします。
プラグインのデプロイの詳細は、第14章「プラグインの検証、パッケージ化およびデプロイ」を参照してください。
この章では、次の内容を十分に理解していると想定します。
プラグインとそのXMLファイルのパッケージ化の方法を含む、プラグイン開発の概要。
コンプライアンス・データをemctl register oms metadata -service gccompliance
コマンドでインストールする場合は、EM_COMPLIANCE_UTIL.trigger_rule_dependency_job
コールバックが必要です。SYSMAN
ユーザーとして、SQL*Plusを通じて次のコマンドを入力する必要があります。
begin EM_COMPLIANCE_UTIL.trigger_rule_dependency_job; end; /
注意: これは、emctl register oms metadata -service gccompliance コマンドを使用してコンプライアンス・コンテンツをインストールする場合にのみ必要です。
プラグインをインストールする場合は、前のSQLを入力する必要はありません。 |
emctl register oms metadata
コマンドの詳細は、第14.7項「メタデータ登録サービス(MRS)を使用してデプロイされたメタデータ・ファイルの更新」を参照してください。
ここでは、次のことについて説明します。
リポジトリ・チェックベースのルールでは、1つ以上のターゲットの構成状態をチェックします。テストが違反を特定するのに失敗した場合、ルールはコンプライアンスです。つまり、テストでは、構成アイテムが必要な状態にあるか、規定した値を持っていると判断されます。違反を発見するルールは、非コンプライアンスです。
ルールのテスト条件によって評価されるデータ・ソースは、リポジトリの問合せに基づきます。ルールのテスト条件は、基本的なメトリックまたは問合せの列の値またはSQL式、またはPL/SQL関数に基づくしきい値の条件を使用して実装できます。(ポリシーは、Oracle Enterprise Manager 10gリリース5と同様です)。
この領域の主要な点は次のとおりです。
コンプライアンス標準ルール、コンプライアンス標準およびコンプライアンス・フレームワークの定義
即時利用可能なポリシー・グループ(10.2.x/11.10)から、コンプライアンス標準ルールを参照するように作成するコンプライアンス標準への置換え
適切なコンプライアンス・フレームワークへのコンプライアンス標準のマッピング
コンプライアンスのOracle Business Intelligence Publisher (BI Publisher)レポートの定義
例13-1ではリポジトリ・ルールを定義する構文を示し、例13-2ではリポジトリ・ルール定義の例を示します。
注意: 完全なコンプライアンスXMLスキーマ定義(XSD)については、次のJARファイルを参照してください。$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar |
例13-1 リポジトリ・ルール定義の構文
<xsd:complexType name="RuleT"> <xsd:sequence> <xsd:element name="DisplayName" type="std:DisplayString256Def" minOccurs="0"/> <xsd:element name="TargetType" type="std:Name256Def"/> <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0" default="false"/> <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0" default="false"/> <xsd:element name="evaluateAlways" type="std:BooleanDef" default="false" minOccurs="0"/> <!-- E.g. target version, platform based filter --> <xsd:element ref="std:TargetPropertyFilter" minOccurs="0"/> <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Impact" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Recommendation" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="FixLinkList" type="std:FixLinkListT" minOccurs="0"/> <xsd:element name="ViolationContextList" type="std:ViolationContextListT"/> <xsd:element name="CheckSource" type="std:CheckSourceT" minOccurs="1" maxOccurs="1"/> <xsd:element name="Severity" default="MinorWarning" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="MinorWarning"/> <xsd:enumeration value="Warning"/> <xsd:enumeration value="Critical"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="LifeCycleStatus" default="Development" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Development"/> <xsd:enumeration value="Production"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/> <xsd:element name="UrlLink" type="std:String4000Def" minOccurs="0"/> <xsd:element name="ViolationMessage" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="ClearViolationMessage" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Author" type="std:Name256Def" minOccurs="0"/> <xsd:element name="LastUpdatedBy" type="std:Name256Def" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="name" type="std:Name256Def" use="required"/> <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/> </xsd:complexType>
例13-2は、データベース・プラグインの一部であるoracle_database target_typeに対して定義されています。
Enterprise Managerに登録されている任意のターゲット・タイプのルールを定義できます。
例13-2 サンプル・ルール
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule1"> <DisplayName nlsid="SAMPLE_RULE_1_NAME">Sample Rule 1</DisplayName> <TargetType>oracle_database</TargetType> <IsSystem>true</IsSystem> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_operating_system</PropertyName> <ValueList> <Value>Windows</Value> </ValueList> </PropertyItem> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Description nlsid="SAMPLE_RULE_1_DESC">Checks for use of a single control file</Description> <Impact nlsid="SAMPLE_RULE_1_IMPACT">The control file is one of the most important files in an Oracle database. It maintains many physical characteristics and important recovery information about the database. If you lose the only copy of the control file due to a media error, there will be unnecessary down time and other risks.</Impact> <Recommendation nlsid="SAMPLE_RULE_1_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation> <ViolationContextList> <Column type="String" name="FILE_LIST"> <DisplayLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> <Column type="Number" name="CONTROL_FILE_COUNT"> <DisplayLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>oracle_database</TargetType> <MetricName>sample_rule1</MetricName> <SourceType>SQL</SourceType> <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>FILE_LIST</ColumnName> <ColumnType>String</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</ColumnLabel> </MetricColumnInfo> <MetricColumnInfo> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <ColumnType>Number</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName>CONTROL_FILE_COUNT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>CONTROL_FILE_COUNT</ParamName> <MinorWarnThreshold>1</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <ThresholdCriteria> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <TestOperator>EQ</TestOperator> <ThresholdValue>1</ThresholdValue> <ThresholdType>Number</ThresholdType> </ThresholdCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>MinorWarning</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_1_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_1_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage> <Author>SYSMAN</Author> </Rule>
表13-1で、リポジトリ・ルールの定義に使用するタグについて説明します。
表13-1 リポジトリ・ルールの定義用の主要なタグ
リアルタイム監視ルールを使用して、ファイル、データベース・オブジェクトまたはMicrosoft Windowsレジストリ・キーに対して実行できるアクションを監視できます。プロセスの開始と停止、ログイン、ログアウトおよびユーザーのユーザー(su
)アクティビティの切替えも監視できます。監視のリアルタイムの側面は、アクションが実行された正確な時刻と、アクションを実行したユーザーの取得を意味します。
リアルタイム監視からの結果は、BMC Remedyなどの変更管理システムと調整できます。この調整では、アクションが発生する(認可)と想定されたか、または発生しない(未認可)と想定されたかを自動的に判別できます。顧客が変更管理サーバーを持っていない場合、この監査ステータス注釈はUIを通じて自動で行うことができます。
ITコンプライアンス構想の主要な部分は、IT運用スタッフが企業ポリシーに従って環境を変更および管理することです。環境で顧客の変更管理プロセスに何が起きるかを調整するため、リアルタイム監視は、高リスク環境につながるポリシー外のアクションまたは監査を失敗させるコンプライアンス制御の識別に役立ちます。
リアルタイム監視ルールの作成には、次の手順が必要です。これらについて後で詳細に説明します。
監視されるターゲット・タイプとエンティティ・タイプを選択します。ルールは、特定のターゲット・タイプ・プロパティ(OS、ターゲット・バージョン、ハードウェア・プラットフォームおよびターゲット・ライフサイクル)に基づいて制限することもできます。
監視する1つ以上のターゲット・タイプ・ファセットを選択します。
監視する1つ以上の監視を選択します。
監視される結果をフィルタするゼロ以上のファセットを選択します。
変更管理調整オプションを選択します。
この領域の統合点は次のとおりです。
新規または既存のコンプライアンス標準に対する新しいコンプライアンス標準ルールの定義
コンプライアンス標準ルールとコンプライアンス標準から、業界標準フレームワークに関連する即時利用可能なコンプライアンス・フレームワークへのマッピング。
新しいチケッティング・システムをサポートするためのコネクタの作成(カスタム・リージョンの定義を含む)。これを使用して、即時利用可能な変更調整サポートを拡張することもできます(現在はRemedy 7.xに制限されています)。新規コネクタの作成プロセスの詳細は、Oracle Enterprise Managerコネクタ統合ガイドを参照してください。
リアルタイム監視ルールを定義する場合、最初に、ホスト上の監視するエンティティ・タイプを決定する必要があります。Oracle Enterprise Manager Cloud Control 12cでは、次のエンティティ・タイプをリアルタイム監視ルールで監視できます。
OSファイル
OSプロセス
OSユーザー
Microsoft Windowsレジストリ
Microsoft Active Directoryユーザー
Microsoft Active Directoryコンピュータ
Microsoft Active Directoryグループ
Oracleデータベース表
Oracleデータベース・ビュー
Oracleデータベース・プロシージャ
Oracleデータベース・ユーザー
Oracleデータベース索引
Oracleデータベース順序
Oracleデータベース関数
Oracleデータベース・パッケージ
Oracleデータベース・ライブラリ
Oracleデータベース・トリガー
Oracleデータベース表領域
Oracleデータベースのマテリアライズド・ビュー
Oracleデータベース・クラスタ
Oracleデータベース・リンク
Oracleデータベースのディメンション
Oracleデータベース・プロファイル
Oracleデータベース・パブリックDBリンク
Oracleデータベースのシノニム
Oracleデータベースのパブリック・シノニム
Oracleデータベース・セグメント
Oracleデータベース・タイプ
Oracleデータベース・ロール
OracleデータベースのSQL問合せ文
これらのエンティティ・タイプは現在のリリースの機能によって固定されており、拡張はできません。ただし、ファセットおよびリアルタイム監視ルールの作成時にこれらを使用できます。
何を監視できるかを定義するファセットに加えて、フィルタ処理に使用できるエンティティのセットもあります。次のリストは、最もよく使用されるフィルタリング・エンティティ・タイプを示しています。
OSプロセス
OSユーザー
Oracleデータベース・ユーザー
時間ウィンドウ
ホスト
リアルタイム監視ルールの作成時に、監視の対象(つまり、ファイル)を選択します。次に、特定のユーザーによって実行されたアクション、または特定の期間のみ監視されるようにフィルタリングを使用するかどうかを選択します。
ターゲット・タイプ・ファセットを使用して、監視するエンティティのリストを指定します。これらのファセットは、後で任意の数のルールで再び使用できます。これらは独自に作成するか、リアルタイム監視ルールに従ってインラインで作成できます。
OSのファイルの監視の場合、ファセットは、個別の単一ファイルのリスト、多数のファイルを含むワイルドカードを使用したパターン、または単にディレクトリ全体になります。
これらのパターンにパラメータをデフォルとともに含めることもできますが、各ターゲットの必要に応じて上書きできます。
次に、HOSTターゲット・タイプとOS FILEエンティティ・タイプに対して定義できるファセットの例を示します。
ユーザー資格証明ファイル
/etc/passwd
/etc/shadow
/etc/mail/trusted-users
ネットワーク構成ファイル
/etc/hosts
/etc/resolv.conf
/etc/hosts.*
/etc/defaultrouter
/etc/nsswitch.conf
/etc/netmasks
{app_install_directory}/network/config
次に、HOSTターゲット・タイプとOS PROCESSンティティ・タイプに対して定義できるファセットの例を示します。本番サーバーで開始されたこれらのプロセスはいずれも重大なセキュリティ・リスクを引き起こす可能性があるため、これらをリアルタイムで監視できます。
ネットワーク構成ツール
ifconfig
xhost
次の表に、特定のターゲット・タイプに対して作成できる仮説ファセットのリストを示します。ファセット名には任意の名前を使用できます。一部のプラグイン開発者は、これらの限定された例よりも多くのファセットを使用している場合があります。各ファセットについて、含まれるパターンの説明があります。
ターゲット・タイプ・ファセット | 説明 |
---|---|
ログ・ファイル | ターゲット・タイプが持つ各ログ・ファイルをリストします。
顧客は(システム・ユーザーではなく)通常のユーザーがいつログ・ファイルを変更するかの監視を望みます。 |
バイナリ・ファイル | ターゲット・タイプが持つ各バイナリ・ファイルをリストします。
バイナリが改ざんされたかどうか、またはバイナリにパッチがいつ適用されたかを監視するためのルールを作成できます。個々のバイナリをリストするかわりに、頻繁に変更されるファイルを除外してディレクトリ全体をリストすることもできます。 |
ライブラリ・ファイル | ターゲット・タイプが持つ各ライブラリをリストします。
ライブラリが改ざんされたかどうか、またはライブラリにパッチがいつ適用されたかを監視するためのルールを作成できます。個々のライブラリをリストするかわりに、頻繁に変更されるファイルを除外してディレクトリ全体をリストすることもできます。 |
一般構成ファイル | 通常はユーザーが変更できるがユーザーが変更を取得することが必要な場合がある構成ファイルをリストします。 |
セキュリティ・キー・ファイル | 証明書やキーなどを格納するファイルをリストします。
これをディレクトリ全体にして、定期的に変更されるファイルを除外することもできます。ユーザーが証明書の内容の取得の試行でファイルを読み取るかどうかを監視します。 |
セキュリティ構成ファイル | 暗号化構成など、ターゲット・タイプでのセグメントの動作を構成するファイルをリストします。 |
アプリケーション・ユーザー | 通常のアプリケーション・ユーザー(Oracle、root)などをリストします。
ユーザーは、このファセットを使用して、アプリケーション・ユーザーが変更を行うかどうかを考慮しない場合にその変更の監視をフィルタできます。 |
ユーティリティ・プロセス | 通常はメンテナンス期間中に実行され、本番中は実行する必要のないユーティリティ・プロセス。 |
レジストリ・キー | ターゲットの構成に影響するMicrosoft Windowsレジストリ・キー |
構成表 | 構成データを格納するデータベース表。 |
ここでは、リアルタイム監視ファセットの作成で使用されるXMLタグの概要と、ファセット作成を示すXMLフラグメントの例を示します。ファセットは、この例で示すように自身で作成するか、リアルタイム監視ルールに従ってインラインで作成できます。
表13-2では、リアルタイム監視ファセットの定義に使用するタグについて説明します。
表13-2 リアルタイム監視ファセットの定義に使用する主要なタグ
タグ | サブタグ | 説明 |
---|---|---|
|
ファセットの内部名。これは、存在するすべてのファセット間で一意である必要があり、UIには表示されません。 |
|
|
ファセットの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
このルールを関連付けることのできるターゲットのタイプ。 |
|
|
ファセットを作成するエンティティ・タイプ( |
|
|
即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。 |
|
|
ファセットの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
ファセットの作成者であるEnterprise Managerユーザー。 |
|
|
ファセットを最後に更新したEnterprise Managerユーザー。これは、最初に作成されたデータの作成者と同じである必要があります。 |
|
|
ファセットを構成するパターン定義を保持するコンテナ |
|
|
ファセットを定義するパターンのコレクション。単一のファセットは含めるおよび除外パターンで構成できます。
|
|
|
パターンに導入された各パターンのパターン・デフォルト値のコレクション。パラメータは、ファセット間で共有されません。2つのファセットで同じパラメータ名を使用する場合、各ファセットでは固有のデフォルト値を定義する必要があります。
|
<Facet xmlns="http://www.oracle.com/DataCenter/ConfigStd" is_time_window="0"> <Name>network_configuration_files</Name> <DisplayName nlsid=”SAMPLE_FACET_DNAME”>Networking configuration files</DisplayName> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsSystem>1</IsSystem> <Description nlsid=”SAMPLE_FACET_DESC”>Files on a standard UNIX operating system that contain configuration relevant to the networking operations.</Description> <Author>SYSMAN</Author> <LastUpdatedBy>SYSMAN</LastUpdatedBy> <SourcePattern> <GeneralPattern> <Patterns> <Pattern> <Value>{ETCDIR}/hosts</Value> <Description nlsid=”SAMPLE_FACET_PATTERN_1_DESC”>Contains IP to hostname mappings</Description> <IsIncluded>1</IsIncluded> </Pattern> <Pattern> <Value>{ETCDIR}/resolv.conf</Value> <Description nlsid=”SAMPLE_FACET_PATTERN_2_DESC”>Contains local name resolution mappings.</Description> <IsIncluded>1</IsIncluded> </Pattern> <Pattern> <Value>{ETCDIR}/appsecurity/*</Value> <Description nlsid=”SAMPLE_FACET_PATTERN_3_DESC”>All files in a directory used for my custom application.</Description> <IsIncluded>1</IsIncluded> </Pattern> <Pattern> <Value>{ETCDIR}/appsecurity/sample.conf</Value> <Description nlsid=”SAMPLE_FACET_PATTERN_4_DESC”>Excluding one file that is not a production configuration file that does not need to be monitored.</Description> <IsIncluded>0</IsIncluded> </Pattern> <Parameters> <Parameter> <Name>ETCDIR</Name> <Description nlsid=”SAMPLE_FACET_PARAMETER_1_DESC”>Location where all base Unix configuration files sit.</Description> <Value>/etc</Value> <IsActive>1</IsActive> </Parameter> </Parameters> </GeneralPattern> </SourcePattern> </Facet>
時間ウィンドウは、リアルタイム監視のフィルタに使用される特殊なタイプのファセットです。通常、Enterprise Managerエンド・ユーザーは独自の操作スケジュールに固有であるため時間ウィンドウ・ファセットを作成しますが、このドキュメントには参照目的のコンテンツが含まれます。
表13-3で、時間ウィンドウ・ファセットのタグについて説明します。
表13-3 時間ウィンドウ・ファセットの定義に使用する主要なタグ
タグ | サブタグ | 説明 |
---|---|---|
|
ファセットの内部名。これは、存在するすべてのファセット間で一意である必要があり、UIには表示されません。 |
|
|
ファセットの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
このルールが関連付けられるターゲットのタイプ |
|
|
ファセットを作成するエンティティ・タイプ。この例ではtimewindowです。 |
|
|
即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。 |
|
|
ファセットの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
ファセットの作成者であるEnterprise Managerユーザー。 |
|
|
ファセットを最後に更新したEnterprise Managerユーザー。これは、最初に作成されたデータの作成者と同じである必要があります。 |
|
|
||
|
英語のタイム・ゾーンの表示名。たとえば、グリニッジ標準時(UTC+0)です。 |
|
|
|
|
|
|
<Facet is_time_window="1> <Name>general_working_hours</Name> <DisplayName>General Working Hours</DisplayName> <TargetType>host</TargetType> <EntityType>timewindow</EntityType> <IsSystem>0</IsSystem> <Description>Define the work hour from 9:00 am to 5:00 pm</Description> <Author>SYSMAN</Author> <LastUpdatedBy>SYSMAN</LastUpdatedBy> <SourcePattern> <SchedulePattern> <TZDisplayName/> <Duration> <DurStartMinute>540</DurStartMinute> <DurEndMinute>1020</DurEndMinute> <DurMinute>480</DurMinute> </Duration> <Recurrence> <RecStartDate>2010-07-26</RecStartDate> <RecurrencePattern> <RecPattern>WEEKLY</RecPattern> <RecPatternDays>1,2,5</RecPatternDays> <RecPatternFrequency>1</RecPatternFrequency> </RecurrencePattern> </Recurrence> </SchedulePattern> </SourcePattern> </Facet>
ここでは、リアルタイム監視ルールの作成で使用されるXMLタグの概要と、ルール作成を示すXMLフラグメントの例を示します。このXMLフラグメントでは、ファセットがすでに作成され、このルールで参照されていることを想定します。
表13-4で、リアルタイム・ルールの定義に使用するタグについて説明します。
タグ | サブタグ | 説明 |
---|---|---|
|
ルールの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
このルールが関連付けられるターゲットのタイプ |
|
|
即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。 |
|
|
ルールの説明。メッセージの翻訳をサポートするための |
|
|
ルールに違反した場合(ルールが非コンプライアンスの場合)の影響。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
違反コンテキストは、ルールの違反を一意に定義します。違反コンテキストは、違反の一部として表示される<Source>問合せの列をリストします。各列は、キーまたは非キーとしてマークする必要があります。 <Source>問合せの必須のtarget_guid列は、違反コンテキストに暗黙的に追加されるため、違反コンテキストに明示的に含める必要はありません。 |
|
|
メトリック列名。属性名とタイプを使用します。
|
|
|
ルール評価のデータ・ソースを定義します。 |
|
|
リアルタイム監視ルールのデータ・ソースを定義します。 |
|
|
実行される監視のタイプ( |
|
|
このルールで参照するファセットのコレクション。ファセットには、監視ファセットとフィルタリング・ファセットがあります。
|
|
|
リアルタイムで監視する監視のタイプ。
|
|
|
|
|
|
拡張ルール設定
|
|
|
エンティティ・タイプに基づいて構成できる追加オプション。一部のエンティティ・タイプにはオプションがありません。
|
|
|
ルールの重大度(Critical、WarningまたはMinorWarning) |
|
|
ルールのライフサイクル・ステータス(「開発」または「本番」) |
|
|
ルールに関する詳細を含む、ルールの詳細URL |
|
|
違反で記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
違反のクリアで記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
ルールに関連付けられているキーワードのリスト |
|
|
コンプライアンス標準に適用できるキーワード |
|
|
ルールの作成者 |
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" Name="monitor_critical_os_config_files"> <DisplayName nlsid=”SAMPLE_RULE_NAME”>Monitor critical OS configuration files</DisplayName> <TargetType>host</TargetType> <IsSystem>True</IsSystem> <Description nlsid=”SAMPLE_RULE_DESC”>Monitor several critical configuration areas of a Linux host to ensure no configuration changes are happening out of bounds. Monitoring is only done during production hours.</Description> <Impact nlsid=”SAMPLE_RULE_IMPACT”>Capturing real-time changes to these files may indicate a serious security issue.</Impact> <Recommendation nlsid=”SAMPLE_RULE_RECO”>Ensure that change management policy documents how and when changes should be made in production. Create compensating controls to address these out of bound issues.</Recommendation> <ViolationContextList/> <CheckSource> <RealTimeMonitoringLogicDefinition> <EntityType>osfile</EntityType> <Facets> <FacetReference> <Name>network_configuration_files</Name> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsFilteredFacet>0</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> <FacetReference> <Name>maild_configuration_files</Name> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsFilteredFacet>0</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> <FacetReference> <Name>sshd_configuration_files</Name> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsFilteredFacet>0</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> <FacetReference> <Name>crontab_configuration_files</Name> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsFilteredFacet>0</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> <FacetReference> <Name>kernel_configuration_files</Name> <TargetType>host</TargetType> <EntityType>osfile</EntityType> <IsFilteredFacet>0</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> <FacetReference> <Name>production_hours</Name> <TargetType>host</TargetType> <EntityType>timewindow</EntityType> <IsFilteredFacet>1</IsFilteredFacet> <InvertFilteredFacet>0</InvertFilteredFacet> </FacetReference> </Facets> <ObservationTypes> <ObservationType> <Name>osfile_create_suc</Name> </ObservationType> <ObservationType> <Name>osfile_content_modified_suc</Name> </ObservationType> <ObservationType> <Name>osfile_delete_suc</Name> </ObservationType> <ObservationType> <Name>osfile_content_mod_archive_suc</Name> </ObservationType> </ObservationTypes> <Settings> <CMSetting auto_authorized="0"> <CMConnector></CMConnector> <AnnotateAuthObservation></AnnotateAuthObservation> </CMSetting> <AdvancedSetting> <GroupSetting> <ObsGroupIdleTimeout>15</ObsGroupIdleTimeout> <ObsGroupMaxAge>30</ObsGroupMaxAge> <ObsGroupMaxObservations>1000</ObsGroupMaxObservations> </GroupSetting> <GenerateEventByManualAuth>0</GenerateEventByManualAuth> </AdvancedSetting> </Settings> <Options> <Option value="10" name="osfile_archivenumber"/> <Option value="50000" name="osfile_polling_maxfilealert"/> <Option value="100" name="osfile_archive_maxsrcfilealert"/> </Options> </RealTimeMonitoringLogicDefinition> </CheckSource> <Severity>MinorWarning</Severity> <LifeCycleStatus>Development</LifeCycleStatus> <KeywordList> <Keyword nlsid=”CONFIGURATION”>Configuration</keyword> <Keyword nlsid=”SECURITY”>Security</keyword> </KeywordList> <ViolationMessage nlsid=”SAMPLE_RULE_VIOL_MSG”>Violation due to change in critical OS configuration files during production hours.</ViolationMessage> <ClearViolationMessage nlsid=”SAMPLE_RULE_VIOL_CLRMSG”>Cleared violation due to change in critical OS configuration files during production hours.</ClearViolationMessage> <Author>SYSMAN</Author> </Rule>
コンプライアンス標準は、階層形式のコンプライアンス標準ルール(リポジトリ・ルールまたはリアルタイム監視ルール)にマップされます。
例13-6ではコンプライアンス標準を定義する構文を示し、例13-7ではコンプライアンス標準定義の例を示します。
注意: 完全なコンプライアンスXSDについては、次のJARファイルを参照してください。$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar |
例13-6 コンプライアンス標準定義の構文
<xsd:complexType name="StandardT"> <xsd:sequence> <xsd:element name="DisplayName" type="std:DisplayString128Def" minOccurs="0"/> <xsd:element name="TargetType" type="std:Name128Def" minOccurs="1" maxOccurs="1"/> <xsd:element ref="std:TargetPropertyFilter" minOccurs="0"/> <xsd:element name="Author" type="std:Name256Def" default="ORACLE" minOccurs="0"/> <xsd:element name="Version" type="xsd:nonNegativeInteger" default="1" minOccurs="0"/> <xsd:element name="LifeCycleStatus" default="Development" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Development"/> <xsd:enumeration value="Production"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0" default="false"/> <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0" default="false"/> <xsd:element name="IsAutoEnable" type="std:BooleanDef" minOccurs="0" default="false"/> <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/> <xsd:element name="ReferenceURL" type="std:String4000Def" minOccurs="0"/> <xsd:element name="FrontMatter" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="RearMatter" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Notice" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Body" type="std:BodyT" minOccurs="0"/> <xsd:element name="ExtraInfo" type="xsd:string" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="name" type="std:NameDef" use="required"/> <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/> </xsd:complexType>
表13-5で、コンプライアンス標準の定義に使用するタグについて説明します。
タグ | サブタグ | 説明 |
---|---|---|
|
コンプライアンス標準の表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。 注意: nlsid属性は、メタデータ・プラグインには適用されません。 |
|
|
このコンプライアンス標準を関連付けることのできるターゲットのタイプ |
|
|
コンプライアンス標準の作成者 |
|
|
コンプライアンス標準のバージョン |
|
|
コンプライアンス標準のライフサイクル・ステータス(「開発」または「本番」) |
|
|
コンプライアンス標準が即時利用可能として提供されている場合はTrue。それ以外の場合はFalseです。 |
|
|
コンプライアンス標準の説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
Trueに設定されている場合、コンプライアンス標準は定義されたターゲット・タイプのすべての既存のターゲットに関連付けられます。(TargetTypeを使用して定義) |
|
|
コンプライアンス標準に適用できるキーワードのリスト |
|
|
コンプライアンス標準に適用できるキーワード |
|
|
コンプライアンス標準の参照URL |
|
|
前付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
後付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
通知メッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
コンプライアンス標準の本文。次にリストする要素の1つ以上を使用できます。 |
|
|
ルール・フォルダを定義します。RuleFolderは次のものを持つことができます。
|
|
|
含めるコンプライアンス標準に別のコンプライアンス標準参照を含めます。 |
|
|
コンプライアンス標準にルール参照を含めます。 |
<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs1"> <DisplayName nlsid="SAMPLE_CS_1_NAME">Sample Compliance Standard 1</DisplayName> <TargetType>oracle_database</TargetType> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_CS_1_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Body> <RuleFolder name="sample_RF_1"> <DisplayName nlsid="SAMPLE_RF_1_NAME">Sample Rulefolder</DisplayName> <Description nlsid="SAMPLE_RF_1_DESC">This includes rules that checks for use of a single control file</Description> <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL> <Importance>Normal</Importance> <RuleReference> <Name>sample_rule1</Name> <TargetType>oracle_database</TargetType> <Importance>Normal</Importance> </RuleReference> </RuleFolder> </Body> </Standard>
注意: コンプライアンス・フレームワークという用語はこのドキュメント全体で使用されていますが、XML APIではGroup またはSubGroup という用語が使用されます。これは、Enterprise Manager UIでは公開されないXML構造に使用される内部的な名前です。 |
例13-8ではコンプライアンス・フレームワークを定義する構文を示し、例13-9ではコンプライアンス・フレームワーク定義の例を示します。
注意: 完全なコンプライアンスXSDについては、次のJARファイルを参照してください。$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar |
例13-8 コンプライアンス・フレームワーク定義の構文
<xsd:complexType name="StandardGroupT"> <xsd:sequence> <xsd:element name="DisplayName" type="std:DisplayString128Def" minOccurs="0"/> <xsd:element name="Author" type="std:Name256Def" default="ORACLE" minOccurs="0"/> <xsd:element name="Version" type="xsd:nonNegativeInteger" default="1" minOccurs="0"/> <xsd:element name="LifeCycleStatus" default="Development"minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Development"/> <xsd:enumeration value="Production"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/> <xsd:element name="ReferenceURL" type="std:String4000Def" minOccurs="0"/> <xsd:element name="FrontMatter" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="RearMatter" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="Notice" type="std:DisplayString800Def" minOccurs="0"/> <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0"default="false"/> <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0"default="false"/> <xsd:element name="GroupBody" type="std:GroupBodyT" minOccurs="0"/> <xsd:element name="ExtraInfo" type="xsd:string" minOccurs="0"maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="name" type="std:NameDef" use="required"/> <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/> </xsd:complexType>
表13-6では、コンプライアンス・フレームワークの定義に使用するタグについて説明します。
表13-6 コンプライアンス・フレームワークの定義に使用する主要なタグ
タグ | サブタグ | 説明 |
---|---|---|
|
コンプライアンス・フレームワークの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
コンプライアンス・フレームワークの作成者 |
|
|
コンプライアンス・フレームワークのバージョン |
|
|
コンプライアンス・フレームワークのライフサイクル・ステータス(「開発」または「本番」) |
|
|
コンプライアンス・フレームワークが即時利用可能として提供されている場合はTrue。それ以外の場合はFalseです。 |
|
|
コンプライアンス・フレームワークの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。 注意: |
|
|
コンプライアンス・フレームワークに適用できるキーワードのリスト |
|
|
コンプライアンス標準に適用できるキーワード |
|
|
コンプライアンス・フレームワークの参照URL |
|
|
前付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
後付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
通知メッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。 |
|
|
コンプライアンス・フレームワークに関する追加情報。 |
|
|
コンプライアンス・フレームワークの本体を定義します。次の要素の1つ以上を使用できます。 |
|
|
子フレームワーク要素を定義します。子フレームワーク要素には次のものを含めることができます。 子フレームワーク 標準参照を含みます。
|
|
|
コンプライアンス・フレームワークにコンプライアンス標準参照を含めます。 |
<StandardGroup xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="sample_csg" oms_version="12.1.0.1.0"> <DisplayName nlsid="SAMPLE_CSG_NAME">Sample Compliance Framework</DisplayName> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <Description nlsid="SAMPLE_CSG_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <IsHidden>false</IsHidden> <IsSystem>true</IsSystem> <GroupBody> <SubGroup name="SampleSubgroup"> <DisplayName nlsid="SAMPLE_CSG_SUBGROUP_NAME">Sample Child Framework</DisplayName> <Description nlsid="SAMPLE_CSG_SUBGROUP_DESC">Sample Child framework Description</Description> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Importance>Normal</Importance> <StandardReference> <Name>sample_cs3</Name> <Author>SYSTEM</Author> <Version>1</Version> <Importance>Normal</Importance> </StandardReference> </SubGroup> </GroupBody> </StandardGroup>
例13-10ではコンプライアンス・コンテンツを定義する構文を示し、例13-11ではXMLコンプライアンス・メタデータの例を示します。
例13-10 コンプライアンス・コンテンツ定義の構文
<xsd:complexType name="ComplianceContentT"> <xsd:sequence> <!-- Cummulative change since the first release.--> <xsd:element ref="std:ChangeList" minOccurs="0" maxOccurs="1"/> <!-- End Cummulative change since the first release --> <!-- Current state of entities --> <xsd:element ref="std:Facet" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="std:Rule" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="std:Standard" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="std:StandardGroup" minOccurs="0" maxOccurs="unbounded"/> <!-- Current state of entities --> </xsd:sequence> <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/> <xsd:attribute name="name" type="std:Name64Def" use="required"/> <!-- content_version of compliance content should be equal to version of last change tag if any. --> <xsd:attribute name="content_version" type="std:Name64Def" use="optional" default = "12.1.0.0.0"/> <xsd:attribute name="IsCompareEnabled" type="std:BooleanDef" use="optional" default = "true"/> </xsd:complexType> <xsd:element name="ComplianceContent" type="std:ComplianceContentT"/>
表13-7で、コンプライアンス・コンテンツの定義に使用する属性の一部について説明します。
表13-7 コンプライアンス・コンテンツ属性
属性 | 説明 |
---|---|
|
Oracle Management Service (OMS)のバージョン |
|
コンプライアンス・コンテンツの名前 |
|
コンプライアンス・コンテンツのバージョン |
|
ルールまたはコンプライアンス標準が増分的に更新されるか、ルールまたはコンプライアンス標準全体が再生成されるかを指定します。 使用可能な値:
注意:
|
例13-11 サンプルXMLコンプライアンス・メタデータ
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE ComplianceContent [ <!ENTITY rule SYSTEM "SampleRuleThresholdCondition.xml"> <!ENTITY standard SYSTEM "SampleComplianceStandard.xml"> <!ENTITY standardgroup SYSTEM "SampleComplianceStandardGroup.xml"> ]> <ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="Sample Compliance Framework" oms_version="11.2.0.1.0"> <ChangeList> <Change version="12.2.0.0.0"> <UpdateRule> <RuleName>sample_rule</RuleName> <TargetType>oracle_database</TargetType> </UpdateRule> <UpdateStandardGroup> <StandardGroupName>sample_csg</StandardGroupName> <StandardGroupAuthor>SYSTEM</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> </UpdateStandardGroup> </Change> </ChangeList> &rule; &standard; &standardgroup; </ComplianceContent>
コンプライアンス・コンテンツを削除するには、次のコマンドを入力します。
emctl deregister oms metadata -sysman_pwd sysman -core -service gccompliance -file DeleteComplianceContent.xml
前のコマンドで、DeleteComplianceContent.xmlはコンプライアンス・コンテンツの削除XMLファイルの名前を表します。
例13-12ではコンプライアンス・コンテンツを定義する構文を示し、例13-13ではコンプライアンス・コンテンツの削除XMLファイルの例を示します。
例13-12 コンプライアンス・コンテンツの削除の構文
<!-- delete compliance metadata corresponding to the compliance content name provided. --> <xsd:complexType name="DeleteComplianceContentT"> <xsd:attribute name="name" type="std:Name64Def" use="required"/> </xsd:complexType> <xsd:element name="DeleteComplianceContent" type="std:DeleteComplianceContentT"/>
XMLサンプルの各nlsid
属性について、データ・ロード形式(DLF)マップ・エントリを指定する必要があります。DLFファイルには、定義された各nlsid
属性の英語の文字列が含まれます。これらの文字列は翻訳に使用できます。
例13-14 サンプルDLFファイル
<?xml version="1.0" encoding="UTF-8"?> <table xml:lang="en" name="MGMT_MESSAGES"> <!-- lookup-key indicates which columns are used by TransX to recognize a row as a duplicate --> <lookup-key> <column name="MESSAGE_ID"/> <column name="SUBSYSTEM"/> <column name="LANGUAGE_CODE"/> <column name="COUNTRY_CODE"/> </lookup-key> <!-- columns field indicates which columns will be loaded as part of processing the dataset and which should be translated by the Translation Group --> <columns> <column name="MESSAGE_ID" type="string" maxsize="64"/> <column name="SUBSYSTEM" type="string" maxsize="64"/> <column name="LANGUAGE_CODE" type="string" language="%l"/> <column name="COUNTRY_CODE" type="string" language="%Cs"/> <column name="MESSAGE" type="string" maxsize="1000" translate="yes"/> </columns> <!-- dataset specifies the data to be loaded into the repository --> <dataset> <row> <col name="MESSAGE_ID">SAMPLE_RULE_NAME</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Rule</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_DESC</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Checks for use of a single control file</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_IMPACT</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">The control file is one of the most important files in an Oracle database. It maintains many physical characteristics and important recovery information about the database. If you lose the only copy of the control file due to a media error, there will be unnecessary down time and other risks.</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_RECO</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Use at least two control files that are multiplexed on different disks.</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_COL_1</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">FILE_LIST</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_COL_2</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">CONTROL_FILE_COUNT</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_VIOL_MSG</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">The database has an insufficient number of control files.</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RULE_VIOL_CLEAR_MSG</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">The database has sufficient number of control files.</col> </row> <!-- Standard NLSID Mappings --> <row> <col name="MESSAGE_ID">SAMPLE_CS_NAME</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Compliance Standard</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_CS_DESC</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Description</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RF_NAME</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Rulefolder</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_RF_DESC</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">This includes rules that checks for use of a single control file.</col> </row> <!-- Standard Group NLSID Mappings --> <row> <col name="MESSAGE_ID">SAMPLE_CSG_NAME</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Compliance Framework</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_CSG_DESC</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Description</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_CSG_SUBGROUP_NAME</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Child Framework</col> </row> <row> <col name="MESSAGE_ID">SAMPLE_CSG_SUBGROUP_DESC</col> <col name="SUBSYSTEM">POLICY</col> <col name="MESSAGE">Sample Child Framework Description</col> </row> </dataset> </table>
注意: DLFエントリがリアルタイム監視ファセットまたはパターンに対するものである場合、サブシステムはGCCOMPLIANCE_CCCです。他のすべてのルールでは、サブシステムはPOLICYです。 |
ここでは、XMLおよびDLFファイルの場所を示します。
XMLファイル
すべてのXMLファイルを次のディレクトリに格納します。
plugin_stage
/oms/metadata/gccompliance/
前のディレクトリ・パスで、plugin_stageはプラグイン・ステージング・ディレクトリです。
プラグイン・ステージング・ディレクトリの詳細は、第14.2項「プラグインのステージング」を参照してください。
DLFファイル
plugin_stage
/oms/rsc/area
/gccompliance
前のディレクトリ・パスで、plugin_stageはプラグイン・ステージング・ディレクトリであり、areaは、データベースを表すdb
や構成管理を表すecm
など、サブコンポーネントを表します。
コンプライアンス標準またはルールをテストするには、次のことを行います。
コンプライアンス・コンテンツのインストールの手順:
次のコマンドを使用して、コンプライアンス・コンテンツをインストールします。
emctl register oms metadata -sysman_pwd password -core -service gccompliance -file ComplianceContent.xml
バックエンド処理に対して次のジョブを送信します。
begin em_compliance_util.trigger_rule_dependency_job;end;
コンプライアンス標準のテストの手順:
Cloud Controlコンソールにログインします。
「エンタープライズ」メニューから「コンプライアンス」を選択し、「ライブラリ」を選択します。
「コンプライアンス・ライブラリ」ページが表示されます。
「コンプライアンス標準」をクリックします。
必要なコンプライアンス標準を選択し、「ターゲットの関連付け」をクリックします。
「コンプライアンス標準へのターゲット・アソシエーション: Compliance Standard Name」ページが表示されます(Compliance Standard Nameは選択したコンプライアンス標準の名前です)。
「追加」をクリックします。
「検索と選択: ターゲット」ウィンドウが表示されます。
評価するターゲットを選択し、「選択」をクリックします。
「コンプライアンス標準へのターゲット・アソシエーション: Compliance Standard Name」ページで、「OK」をクリックします。
「アソシエーションの保存」メッセージに対して「はい」をクリックします。
「コンプライアンス標準」ページが表示されます。
前の手順で、バックグラウンド・ジョブとして行われる評価がトリガーされます。
数分後に、「エンタープライズ」メニューから「コンプライアンス」を選択し、「結果」を選択します。
「コンプライアンス基準評価結果」ページが表示されます。
コンプライアンス標準を選択し、「詳細を表示」をクリックします。
「コンプライアンス標準結果詳細」ページが表示されます。
ページの左側から、「コンプライアンス標準名」を展開してノードを表示し、ノードをクリックしてそのノードの結果を表示します。
コンプライアンス標準またはルールをテストする際には、次の制約に注意してください。
MGMT_VIEWユーザーには、問合せで使用したビューに対するSELECT権限が必要です。
target_guidは、問合せのSELECT属性の1つである必要があります。
別名またはselect句は64文字未満である必要があります。
コンプライアンス標準からの標準参照を最初にインポートします。コンプライアンス・コンテンツ・リストでは標準参照を最初に配置します。
SQLソースのSELECT句の少なくとも1つの列が、違反コンテキスト定義およびメトリック定義で非キー列としてマークされている必要があります。
target_guid列は、違反コンテキスト列またはメトリック定義に対して指定しないでください。
問合せが包含プラグインの外部のビューを参照する場合、ビューはEDKによってプラグインに(プラグインEDKレベルで)公開する必要があります。
リポジトリ・ルールのSQLソース問合せがPLSQL関数を参照する場合、グローバルPLSQL関数のみ参照し、パッケージ関数を参照しないこと(つまり、これらのPLSQL関数が、更新するとルール評価がトリガーされる表に依存するかどうか)を確認します。これは、ルール評価の結果が依存する表のリストを正しく生成するために必要です。mgmt_viewユーザーに、この関数に対する実行権限を付与する必要があります。
コンプライアンス標準に含まれるルールのターゲット・タイプは、直接の親標準のターゲット・タイプと同じである必要があります。
STRING型のキー列には、64文字未満が含まれている必要があります。
ここでは、コンプライアンス・コンテンツ、ルール、コンプライアンス標準およびコンプライアンス・フレームワークのその他の例を示します。
例13-15ではコンプライアンス・コンテンツ・バージョン1の例を示し、例13-26ではコンプライアンス・コンテンツ・バージョン2の例を示します。バージョン1はコンプライアンス・コンテンツの初期バージョンです。例13-26のコンテンツ・バージョンは12.1.0.2.0ですが、コンテンツ・バージョン番号は12.1.0.1.0であることに注意してください。
コンプライアンス・コンテンツにはChangeList
要素が含まれます。ChangeList
要素は、更新されたルール、標準など、コンプライアンス・コンテンツの最初のバージョン以降に発生した変更を記述します。
例13-15 コンプライアンス・コンテンツ・バージョン1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE ComplianceContent [ <!ENTITY rule1 SYSTEM "SampleRule1.xml"> <!ENTITY rule2 SYSTEM "SampleRule2.xml"> <!ENTITY rule3 SYSTEM "SampleRule3.xml"> <!ENTITY rule4 SYSTEM "SampleRule4.xml"> <!ENTITY rule5 SYSTEM "SampleRule5.xml"> <!ENTITY rule6 SYSTEM "SampleRule6.xml"> <!ENTITY standard1 SYSTEM "SampleComplianceStandard1.xml"> <!ENTITY standard2 SYSTEM "SampleComplianceStandard2.xml"> <!ENTITY standard3 SYSTEM "SampleComplianceStandard3.xml"> <!ENTITY standardgroup SYSTEM "SampleComplianceFramework.xml">] ]> <ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="SampleComplianceContent" oms_version="12.1.0.1.0" content_version="12.1.0.1.0"> <ChangeList> <!-- ChangeList tag process each of the Change Tag with respect to the version of the ComplianceContent installed in repository. --> <Change version="12.1.0.1.0"> <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing compliance framework/standard group in repository. --> <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing compliance framework/standard group in repository. --> <AddSubGroupWithinStandardGroup order="2"> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroup name="sampleSubgroup1"> <DisplayName>sub1</DisplayName> <ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL> <Importance>High</Importance> </SubGroup> </AddSubGroupWithinStandardGroup> <AddStandardReferenceToStandardGroup> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroupListInfo> <SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem> </SubGroupListInfo> <StandardReference> <Name>sample_cs1</Name> <Author>SYSTEM</Author> <Version>1</Version> </StandardReference> </AddStandardReferenceToStandardGroup> </Change> </ChangeList> <!--List of compliance standard rules --> &rule1; &rule2; &rule3; &rule4; &rule5; &rule6; <!--List of compliance standards --> &standard1; &standard2; &standard3; <!--List of compliance standard groups/frameworks--> &standardgroup; </ComplianceContent>
例13-16では、単一のコントロール・ファイルの使用をチェックするコンプライアンス・ルールの例を示します。
例13-16 サンプル・ルール1
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule1"> <DisplayName nlsid="SAMPLE_RULE_1_NAME">Sample Rule 1</DisplayName> <TargetType>oracle_database</TargetType> <IsSystem>true</IsSystem> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_operating_system</PropertyName> <ValueList> <Value>Windows</Value> </ValueList> </PropertyItem> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Description nlsid="SAMPLE_RULE_1_DESC">Checks for use of a single control file</Description> <Impact nlsid="SAMPLE_RULE_1_IMPACT">The control file is one of the most important files in an Oracle database. It maintains many physical characteristics and important recovery information about the database. If you lose the only copy of the control file due to a media error, there will be unnecessary down time and other risks.</Impact> <Recommendation nlsid="SAMPLE_RULE_1_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation> <ViolationContextList> <Column type="String" name="FILE_LIST"> <DisplayLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> <Column type="Number" name="CONTROL_FILE_COUNT"> <DisplayLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>oracle_database</TargetType> <MetricName>sample_rule1</MetricName> <SourceType>SQL</SourceType> <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>FILE_LIST</ColumnName> <ColumnType>String</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</ColumnLabel> </MetricColumnInfo> <MetricColumnInfo> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <ColumnType>Number</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName>CONTROL_FILE_COUNT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>CONTROL_FILE_COUNT</ParamName> <MinorWarnThreshold>1</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <ThresholdCriteria> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <TestOperator>EQ</TestOperator> <ThresholdValue>1</ThresholdValue> <ThresholdType>Number</ThresholdType> </ThresholdCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>MinorWarning</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_1_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_1_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage> <Author>SYSMAN</Author> </Rule>
例13-17では、単一のコントロール・ファイルの使用をチェックするサンプル・コンプライアンス・ルールの例を示します。
例13-17 サンプル・ルール2
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule2"> <DisplayName nlsid="SAMPLE_RULE_2_NAME">Sample Rule 2</DisplayName> <TargetType>oracle_database</TargetType> <IsSystem>true</IsSystem> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_operating_system</PropertyName> <ValueList> <Value>Windows</Value> </ValueList> </PropertyItem> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Description nlsid="SAMPLE_RULE_2_DESC">Checks for use of a single control file</Description> <Impact nlsid="SAMPLE_RULE_2_IMPACT">The control file is one of the most important files in an Oracle database. It maintains many physical characteristics and important recovery information about the database. If you lose the only copy of the control file due to a media error, there will be unnecessary down time and other risks.</Impact> <Recommendation nlsid="SAMPLE_RULE_2_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation> <ViolationContextList> <Column type="String" name="FILE_LIST"> <DisplayLabel nlsid="SAMPLE_RULE_2_COL_1">FILE_LIST</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> <Column type="Number" name="CONTROL_FILE_COUNT"> <DisplayLabel nlsid="SAMPLE_RULE_2_COL_2">CONTROL_FILE_COUNT</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>oracle_database</TargetType> <MetricName>sample_rule2</MetricName> <SourceType>SQL</SourceType> <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>FILE_LIST</ColumnName> <ColumnType>String</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_2_COL_1">FILE_LIST</ColumnLabel> </MetricColumnInfo> <MetricColumnInfo> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <ColumnType>Number</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_2_COL_2">CONTROL_FILE_COUNT</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName>CONTROL_FILE_COUNT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>CONTROL_FILE_COUNT</ParamName> <MinorWarnThreshold>1</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <ThresholdCriteria> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <TestOperator>EQ</TestOperator> <ThresholdValue>1</ThresholdValue> <ThresholdType>Number</ThresholdType> </ThresholdCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>MinorWarning</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_2_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_2_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage> <Author>SYSMAN</Author> </Rule>
例13-18では、単一のコントロール・ファイルの使用をチェックするコンプライアンス・ルールの例を示します。
例13-18 サンプル・ルール3
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule3"> <DisplayName nlsid="SAMPLE_RULE_3_NAME">Sample Rule 3</DisplayName> <TargetType>oracle_database</TargetType> <IsSystem>true</IsSystem> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_operating_system</PropertyName> <ValueList> <Value>Windows</Value> </ValueList> </PropertyItem> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Description nlsid="SAMPLE_RULE_3_DESC">Checks for use of a single control file</Description> <Impact nlsid="SAMPLE_RULE_3_IMPACT">The control file is one of the most important files in an Oracle database. It maintains many physical characteristics and important recovery information about the database. If you lose the only copy of the control file due to a media error, there will be unnecessary down time and other risks.</Impact> <Recommendation nlsid="SAMPLE_RULE_3_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation> <ViolationContextList> <Column type="String" name="FILE_LIST"> <DisplayLabel nlsid="SAMPLE_RULE_3_COL_1">FILE_LIST</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> <Column type="Number" name="CONTROL_FILE_COUNT"> <DisplayLabel nlsid="SAMPLE_RULE_3_COL_2">CONTROL_FILE_COUNT</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>false</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>oracle_database</TargetType> <MetricName>sample_rule3</MetricName> <SourceType>SQL</SourceType> <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>FILE_LIST</ColumnName> <ColumnType>String</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_3_COL_1">FILE_LIST</ColumnLabel> </MetricColumnInfo> <MetricColumnInfo> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <ColumnType>Number</ColumnType> <isKey>false</isKey> <ColumnLabel nlsid="SAMPLE_RULE_3_COL_2">CONTROL_FILE_COUNT</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName>CONTROL_FILE_COUNT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>CONTROL_FILE_COUNT</ParamName> <MinorWarnThreshold>1</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <ThresholdCriteria> <ColumnName>CONTROL_FILE_COUNT</ColumnName> <TestOperator>EQ</TestOperator> <ThresholdValue>1</ThresholdValue> <ThresholdType>Number</ThresholdType> </ThresholdCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>MinorWarning</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_3_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_3_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage> <Author>SYSMAN</Author> </Rule>
例13-19では、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。
例13-19 サンプル・ルール4
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule4"> <DisplayName nlsid="SAMPLE_RULE_4_NAME">Sample Rule 4</DisplayName> <TargetType>host</TargetType> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_RULE_4_DESC">Ensure that no unintended ports are left open</Description> <Impact nlsid="SAMPLE_RULE_4_IMPACT">Open ports may allow a malicious user to take over the host.</Impact> <Recommendation nlsid="SAMPLE_RULE_4_RECOMM">Do not open insecure ports.</Recommendation> <ViolationContextList> <Column type="Number" name="port"> <DisplayLabel nlsid="SAMPLE_RULE_4_PORT_COL">Port Number</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>true</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>host</TargetType> <MetricName>sample_rule4</MetricName> <SourceType>SQL</SourceType> <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>port</ColumnName> <ColumnType>Number</ColumnType> <isKey>true</isKey> <ColumnLabel nlsid="SAMPLE_RULE_4_LABEL">Port Number</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName nlsid="SAMPLE_RULE_4_DFLT_PORT_PNAME">DFLT_PORT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>DFLT_PORT</ParamName> <MinorWarnThreshold>655</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <SqlWhereClauseCriteria> <WhereClause>:port < :DFLT_PORT</WhereClause> </SqlWhereClauseCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>Critical</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_4_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_4_CLR_MESG">Port %port% is not open.</ClearViolationMessage> <Author>ORACLE</Author> <LastUpdatedBy><SYSTEM></LastUpdatedBy> </Rule>
例13-20では、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。
例13-20 サンプル・ルール5
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule5"> <DisplayName nlsid="SAMPLE_RULE_5_NAME">Sample Rule 5</DisplayName> <TargetType>host</TargetType> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_RULE_5_DESC">Ensure that no unintended ports are left open</Description> <Impact nlsid="SAMPLE_RULE_5_IMPACT">Open ports may allow a malicious user to take over the host.</Impact> <Recommendation nlsid="SAMPLE_RULE_5_RECOMM">Do not open insecure ports.</Recommendation> <ViolationContextList> <Column type="Number" name="port"> <DisplayLabel nlsid="SAMPLE_RULE_5_PORT_COL">Port Number</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>true</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>host</TargetType> <MetricName>sample_rule5</MetricName> <SourceType>SQL</SourceType> <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>port</ColumnName> <ColumnType>Number</ColumnType> <isKey>true</isKey> <ColumnLabel nlsid="SAMPLE_RULE_5_LABEL">Port Number</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName nlsid="SAMPLE_RULE_5_DFLT_PORT_PNAME">DFLT_PORT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>DFLT_PORT</ParamName> <MinorWarnThreshold>655</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <SqlWhereClauseCriteria> <WhereClause>:port < :DFLT_PORT</WhereClause> </SqlWhereClauseCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>Critical</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_5_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_5_CLR_MESG">Port %port% is not open.</ClearViolationMessage> <Author>ORACLE</Author> <LastUpdatedBy><SYSTEM></LastUpdatedBy> </Rule>
例13-21では、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。
例13-21 サンプル・ルール6
<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule6"> <DisplayName nlsid="SAMPLE_RULE_6_NAME">Sample Rule 6</DisplayName> <TargetType>host</TargetType> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_RULE_6_DESC">Ensure that no unintended ports are left open</Description> <Impact nlsid="SAMPLE_RULE_6_IMPACT">Open ports may allow a malicious user to take over the host.</Impact> <Recommendation nlsid="SAMPLE_RULE_6_RECOMM">Do not open insecure ports.</Recommendation> <ViolationContextList> <Column type="Number" name="port"> <DisplayLabel nlsid="SAMPLE_RULE_6_PORT_COL">Port Number</DisplayLabel> <IsHidden>false</IsHidden> <IsKey>true</IsKey> </Column> </ViolationContextList> <CheckSource> <RepositoryCheckDefinition> <Metric> <TargetType>host</TargetType> <MetricName>sample_rule6</MetricName> <SourceType>SQL</SourceType> <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source> <MetricColumnList> <MetricColumnInfo> <ColumnName>port</ColumnName> <ColumnType>Number</ColumnType> <isKey>true</isKey> <ColumnLabel nlsid="SAMPLE_RULE_6_LABEL">Port Number</ColumnLabel> </MetricColumnInfo> </MetricColumnList> </Metric> <ParameterList> <RuleParameter> <ParamName nlsid="SAMPLE_RULE_6_DFLT_PORT_PNAME">DFLT_PORT</ParamName> <ParamType>Number</ParamType> </RuleParameter> </ParameterList> <ParameterDefaultSettings> <ParamValue> <ParamName>DFLT_PORT</ParamName> <MinorWarnThreshold>655</MinorWarnThreshold> </ParamValue> </ParameterDefaultSettings> <TestCondition> <SqlWhereClauseCriteria> <WhereClause>:port < :DFLT_PORT</WhereClause> </SqlWhereClauseCriteria> </TestCondition> </RepositoryCheckDefinition> </CheckSource> <Severity>Critical</Severity> <LifeCycleStatus>Production</LifeCycleStatus> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ViolationMessage nlsid="SAMPLE_RULE_6_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage> <ClearViolationMessage nlsid="SAMPLE_RULE_6_CLR_MESG">Port %port% is not open.</ClearViolationMessage> <Author>ORACLE</Author> <LastUpdatedBy><SYSTEM></LastUpdatedBy> </Rule>
例13-22では、単一のコントロール・ファイルの使用をチェックするルールを含むコンプライアンス標準の例を示します。
例13-22 サンプル・コンプライアンス標準1
<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs1"> <DisplayName nlsid="SAMPLE_CS_1_NAME">Sample Compliance Standard 1</DisplayName> <TargetType>oracle_database</TargetType> <TargetPropertyFilter> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>Windows</Value> </ValueList> </PropertyItem> <PropertyItem> <PropertyName>orcl_gtp_target_version</PropertyName> <ValueList> <Value>8.1.6+</Value> </ValueList> </PropertyItem> </TargetPropertyFilter> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_CS_1_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="CONFIGURATION">Configuration</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Body> <RuleFolder name="sample_RF_1"> <DisplayName nlsid="SAMPLE_RF_1_NAME">Sample Rulefolder</DisplayName> <Description nlsid="SAMPLE_RF_1_DESC">This includes rules that checks for use of a single control file</Description> <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL> <Importance>Normal</Importance> <RuleReference> <Name>sample_rule1</Name> <TargetType>oracle_database</TargetType> <Importance>Normal</Importance> </RuleReference> </RuleFolder> </Body> </Standard>
例13-23では、開いたセキュアでないポートをチェックするルールを含むコンプライアンス標準の例を示します。
例13-23 サンプル・コンプライアンス標準2
<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs2"> <DisplayName nlsid="SAMPLE_CS_2_NAME">Sample Compliance Standard 2</DisplayName> <TargetType>host</TargetType> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_CS_2_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Body> <RuleFolder name="sample_RF_2"> <DisplayName nlsid="SAMPLE_RF_2_NAME">Sample Rulefolder</DisplayName> <Description nlsid="SAMPLE_RF_2_DESC">This includes rules that checks for open insecure ports.</Description> <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL> <Importance>Normal</Importance> <RuleReference> <Name>sample_rule4</Name> <TargetType>host</TargetType> <Importance>Normal</Importance> </RuleReference> </RuleFolder> </Body> </Standard>
例13-24では、開いたセキュアでないポートをチェックするルールを含むコンプライアンス標準の例を示します。
例13-24 サンプル・コンプライアンス標準3
<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs3"> <DisplayName nlsid="SAMPLE_CS_3_NAME">Sample Compliance Standard 3</DisplayName> <TargetType>host</TargetType> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <IsSystem>true</IsSystem> <Description nlsid="SAMPLE_CS_3_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Body> <RuleFolder name="sample_RF_3"> <DisplayName nlsid="SAMPLE_RF_3_NAME">Sample Rulefolder</DisplayName> <Description nlsid="SAMPLE_RF_3_DESC">This includes rules that checks for open insecure ports.</Description> <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL> <Importance>Normal</Importance> <RuleReference> <Name>sample_rule5</Name> <TargetType>host</TargetType> <Importance>Normal</Importance> </RuleReference> </RuleFolder> </Body> </Standard> ]]
例13-25では、コンプライアンス・フレームワークの例を示します。
例13-25 サンプル・コンプライアンス・フレームワーク
<StandardGroup xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="sample_csg" oms_version="12.1.0.1.0"> <DisplayName nlsid="SAMPLE_CSG_NAME">Sample Compliance Framework</DisplayName> <Author>SYSTEM</Author> <Version>1</Version> <LifeCycleStatus>Production</LifeCycleStatus> <Description nlsid="SAMPLE_CSG_DESC">Sample Description</Description> <KeywordList> <Keyword nlsid="SECURITY">Security</Keyword> </KeywordList> <ReferenceURL>http://sampleurl.com</ReferenceURL> <IsHidden>false</IsHidden> <IsSystem>true</IsSystem> <GroupBody> <SubGroup name="SampleSubgroup"> <DisplayName nlsid="SAMPLE_CSG_SUBGROUP_NAME">Sample Child Framework</DisplayName> <Description nlsid="SAMPLE_CSG_SUBGROUP_DESC">Sample Child framework Description</Description> <ReferenceURL>http://sampleurl.com</ReferenceURL> <Importance>Normal</Importance> <StandardReference> <Name>sample_cs3</Name> <Author>SYSTEM</Author> <Version>1</Version> <Importance>Normal</Importance> </StandardReference> </SubGroup> </GroupBody> </StandardGroup>
例13-26では、コンプライアンス・コンテンツの例を示します。
例13-26 コンプライアンス・コンテンツ・バージョン2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE ComplianceContent [ <!ENTITY rule1 SYSTEM "SampleRule1.xml"> <!ENTITY rule2 SYSTEM "SampleRule2.xml"> <!ENTITY rule3 SYSTEM "SampleRule3.xml"> <!ENTITY rule5 SYSTEM "SampleRule5.xml"> <!ENTITY rule6 SYSTEM "SampleRule6.xml"> <!ENTITY standard1 SYSTEM "SampleComplianceStandard1.xml"> <!ENTITY standard3 SYSTEM "SampleComplianceStandard3.xml"> <!ENTITY standardgroup SYSTEM "SampleComplianceFramework.xml"> ]> <ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="SampleComplianceContent" oms_version="12.1.0.1.0" content_version="12.1.0.2.0"> <ChangeList> <!-- ChangeList tag process each of the Change Tag with respect to the version of the ComplianceContent installed in repository. --> <Change version="12.1.0.1.0"> <!-- AddSubGroupWithinStandardGroup/AddStandardReferenceToStandardGroup tags will modify StandardGroup definition. --> <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing compliance framework/standard group in repository. --> <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing compliance framework/standard group in repository. --> <AddSubGroupWithinStandardGroup order="2"> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroup name="sampleSubgroup1"> <DisplayName>sub1</DisplayName> <ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL> <Importance>High</Importance> </SubGroup> </AddSubGroupWithinStandardGroup> <AddStandardReferenceToStandardGroup> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroupListInfo> <SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem> </SubGroupListInfo> <StandardReference> <Name>sample_cs1</Name> <Author>SYSTEM</Author> <Version>1</Version> </StandardReference> </AddStandardReferenceToStandardGroup> </Change> <Change version="12.1.0.2.0"> <!-- Delete will be remove rule/standard from repository if present, else it will be noop. --> <DeleteStandard> <StandardName>sample_cs2</StandardName> <StandardAuthor>SYSTEM</StandardAuthor> <StandardVersion>1</StandardVersion> </DeleteStandard> <DeleteRule> <RuleName>sample_rule4</RuleName> <TargetType>host</TargetType> </DeleteRule> <!-- Entities with Update tag will override definitions if they exist in the repository. --> <!-- Please note that if standard/rule is updated then old results are replaced by new results based on standard/rule definition after update. --> <UpdateRule> <RuleName>sample_rule5</RuleName> <TargetType>host</TargetType> </UpdateRule> <UpdateStandard> <StandardName>sample_cs3</StandardName> <StandardAuthor>SYSTEM</StandardAuthor> <StandardVersion>1</StandardVersion> </UpdateStandard> <UpdateStandardGroup> <StandardGroupName>sample_csg</StandardGroupName> <StandardGroupAuthor>SYSTEM</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> </UpdateStandardGroup> <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing compliance framework/standard group in repository. --> <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing compliance framework/standard group in repository. --> <AddSubGroupWithinStandardGroup order="2"> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroup name="sampleSubgroup2"> <DisplayName>sub2</DisplayName> <ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL> <Importance>High</Importance> </SubGroup> </AddSubGroupWithinStandardGroup> <AddStandardReferenceToStandardGroup> <StandardGroupName>oracle_pci</StandardGroupName> <StandardGroupAuthor>ORACLE</StandardGroupAuthor> <StandardGroupVersion>1</StandardGroupVersion> <SubGroupListInfo> <SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem> </SubGroupListInfo> <StandardReference> <Name>sample_cs3</Name> <Author>SYSTEM</Author> <Version>1</Version> </StandardReference> </AddStandardReferenceToStandardGroup> </Change> </ChangeList> <!--List of compliance standard rules --> &rule1; &rule2; &rule3; &rule5; &rule6; <!--List of compliance standards --> &standard1; &standard3; <!--List of compliance standard groups/frameworks --> &standardgroup; </ComplianceContent>
プラグインをデプロイせずにコンプライアンス・コンテンツを公開するには、自己更新コンソールを使用します。
自己更新コンソールからコンプライアンス・コンテンツを公開および適用する手順:
次のコマンドを使用して、XMLコンテンツからコンプライアンス・コンテンツJARファイルを作成します。
-jar cvfM compliancecontent.jar compliance_content_files
注意: 同様に、複数のDLFファイルをJARファイルで結合できます。 |
マニフェスト・ファイルを作成して、コンプライアンス・コンテンツの名前、ラベルおよび公開するコンプライアンス・コンテンツのバージョンを指定します。このマニフェスト・ファイルでは、compliancecontent.jarとcompliancedlf.jarをそれぞれ順番に指定します。
例13-27 サンプル・マニフェスト・ファイル
<?xml version="1.0" encoding="utf-8"?> <tns:EntityInstance xmlns:tns="http://www.oracle.com/EnterpriseGridControl/SelfUpdateManifest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EntityType="param
" EntityTypeVersion="12.1.0.1.0" Vendor="Oracle" Maturity="TEST"> <tns:Description><![CDATA[<param
>]]></tns:Description> <tns:AttributeList> <tns:Version>12.1.0.1.0</tns:Version> <tns:Attribute Name="name" Value="<param
>" Label="display_name"/> </tns:AttributeList> <tns:Readme><![CDATA[ <param
>]]> </tns:Readme> <tns:CustomParamList/> <tns:DependsOn/> <tns:ArchiveList> <tns:Archive Filename="param
"/> <tns:Archive Filename="param
"/> </tns:ArchiveList> <tns:CustomData/> </tns:EntityInstance>
次のコマンドを使用して、マニフェスト・ファイル、compliancecontent.jarおよびcompliancedlf.jarからSAR (自己更新アーカイブ)ファイルを作成します。
edkutil prepare_update -manifestmanifest_file_name
-archivedirdirectory_containing_compliancecontent.jar_and_compliancedlf.jar
-outsar_file_name
注意: SARファイルをEnterprise Managerにインポートする前に、ソフトウェア・ライブラリが構成されていることを確認します。詳細は、第14.5.1.1項「ソフトウェア・ライブラリの設定」を参照してください。 |
次のコマンドを使用して、SARファイルをEnterprise Managerにインポートします。
emcli import_update -omslocal -file=complete_path_to_sar_file
注意: -omslocal フラグの使用は、ファイルをOracle Management Server (OMS)ファイル・システムに置く必要があることを意味します。 |
Enterprise Managerにログインします。「設定」メニューで、「拡張性」、「自己更新」の順に選択します。
「自己更新」ページが表示されます。
「ステータス」領域で、「コンプライアンス・コンテンツ」の「ダウンロードされた更新」が1に設定されていることを確認します。
「タイプ」列で、「コンプライアンス・コンテンツ」をクリックします。
「自己更新: コンプライアンス・コンテンツ」ページが表示されます。
「ステータス」列が「ダウンロード」の行を選択し、「適用」をクリックします。表示されるウィザードのステップに従います。
「アクション」リストで、「適用」」を選択し、「ステータス」列が「成功」であることを確認します。
「コンプライアンス・ライブラリ」から、インポートされたコンプライアンス・コンテンツを確認します。「コンプライアンス・ライブラリ」を表示するには、「エンタープライズ」メニューで、「コンプライアンス」、「ライブラリ」の順に選択します。