「WMI Query Check」コントロールの設定(Windows)

Windows ホストのコンプライアンスのチェックに WMI クエリを使用するには、「WMI Query Check」コントロールを設定します。評価される名前空間と使用する WMI クエリを指定すると、コンプライアンス状態がスキャン時にレポートされます。

 

コントロール文は、このコントロールがどのようなものであり、環境にどのように実装するのかを説明する、コントロールの名前のようなものです。またコントロールが属するカテゴリも指定する必要があります。コントロールはカテゴリによってフィルタされたり検索されたりする可能性があるため、カテゴリの指定は重要です。コントロールは、コントロール文に含まれるキーワードでも検索できます。

スキャンパラメータは、スキャン時にコンプライアンス評価に必要なデータを収集するために使用されます。

「Add Parameters」をクリックして、次の設定を行います。

「File/Directory path」 - 評価される Unix のファイルまたはディレクトリのパスです。

名前空間について名前空間について

WMI 名前空間を入力します。この値では大文字と小文字が区別され、1000 文字まで入力できます。入力する文字には、  a-z、A-Z、0-9、\(バックスラッシュ)、_(アンダースコア)を使用できます。名前空間には、ローカルまたはリモートコンピュータのホスト名は使用できません。

クエリについてクエリについて

データタイプについてデータタイプについて

このコントロールタイプでは、データタイプとして「string list」が選択されます。これは、スキャンから文字列値のリストが返されることを意味します。

説明について説明について

コントロールの説明は、コンプライアンスポリシーとレポートに表示されます。説明を後から変更した場合、同じパラメータのセットを使用するすべてのコントロールで説明が更新されます。

コントロールは、さまざまなテクノロジに適用することが可能です。適用する各テクノロジを選択し、論理的根拠文と期待値を入力します。

時間短縮のためのヒント: 各テクノロジに対して同じ設定を入力する場合は、1 回の入力で設定することが可能です。最初に「Default Values for Control Technologies」項で選択を行い、適用する各テクノロジのチェックボックスをオンにします。選択した各テクノロジに設定が自動的にコピーされます。

次の設定を行います。

「Rationale」 - テクノロジごとに、コントロールをどのように実装すべきかを説明する文を入力します。

「Cardinality」 - コントロールのカージナリティを選択します。カージナリティオプションについてカージナリティオプションについて

次の表に示すように、複数のカージナリティオプションが表示されます。X はスキャンエンジンによって返される値を、Y はコントロールに定義されている期待値を表します。

カージナリティ

準拠する条件

contains

X は、すべての Y を含む

does not contain

X は、Y を一切含まない

matches

X のすべての文字列が、Y のすべての文字列と一致する(順不同)

intersects

X のいずれかの文字列が、Y のいずれかの文字列と一致する

is contained in

X のすべての文字列が Y に含まれる

「Operator」 - (表示のみ)演算子“ regular expression list ”は、結果を正規表現で指定されたデフォルト値と比較するために使用します。

「Default Value」 - 各テクノロジの期待値を正規表現として入力します。選択したカージナリティを使用して、スキャン結果で返された文字列リストが正規表現と比較されます。

返されたパーミッション情報の形式を理解することで、合格/不合格条件に一致する正規表現を記述できます。詳細

コントロールに最大で 10 件の参照を追加します。参照先は内部ポリシーでも、文書でも、Web サイトでもかまいません。参照ごとに、説明や URL を入力します。URL を入力する際は、http://、https://、ftp:// のいずれかから始めます。  例えば、Qualys の Web サイトにリンクするには、「http://www.qualys.com」と入力します。追加すると、ユーザはポリシーレポートに参照を含めることができます。

クイックリンク

ユーザ定義コントロール | 正規表現(PCRE) | UDC に関する FAQ

エージェントを使用している場合、下記の項に移動

下記のヘルプは、Cloud Agent を使用する場合に適用されます。

共通名前空間と WQL クエリの組み合わせの例

Cloud Agent でサポートされている WQL クエリのデータタイプ

重要事項

ベストプラクティス

 

共通名前空間と WQL クエリの組み合わせの例

次の例を参照してください。

1)システムのリムーバブルディスクと固定ディスクの名前およびファイルシステムタイプを取得

名前空間: root\cimv2

クエリ: "SELECT Caption, FileSystem from Win32_LogicalDisk"

2)ネットワーク情報

名前空間: root\cimv2

クエリ: "SELECT * from Win32_NetworkAdapterConfiguration"

3)Windows QFE パッチ情報

名前空間: root\cimv2

クエリ: "SELECT HotFixID FROM Win32_QuickFixEngineering"

4)Windows プロセス情報

名前空間: root\cimv2

クエリ: "SELECT Name from Win32_Process"

Cloud Agent でサポートされている WQL クエリのデータタイプ

Cloud Agent でサポートされているデータタイプは、

sint8、sint16、sint32、real32、real64、uint8、uint16、uint32、uint64、real32、real64、uint8、uint16、uint32、char16、string、boolean、string array です。 

Qualys は、今後も定期的にサポート対象のデータタイプを追加していく予定です。

重要事項

次の点に留意してください。

1)パフォーマンスを最適化するには、レポートの制限を 5000 レコードに設定します。 

2)Cloud Agent を使用する場合、WMI クエリがドメインコントローラに大きな影響を与える可能性があります。Cloud Agent 3.0 以降では、次の WMI プロバイダへの呼び出しはスキップされます。

- Win32_NetworkLoginProfile(2008 Server R2 のみ)

- Win32_UserProfile(2008 Server R2 のみ)

- Win32_QuickFixEngineering – “ SELECT HotFixId FROM ”が存在しない限り、バージョン 3.1 以降でスキップされます。

- Win32_UserAccount - これは、Cloud Agent によって処理される Win32_UserAccount の唯一のクエリです。 

例: SELECT Description, Name from Win32_UserAccount WHERE LocalAccount='true'

3)reference、object、map、datetime、他のタイプの array などはサポートされていません。 

4)Qualys は、WMI プロバイダの作成もサポートも行いません。UDC 機能は単に、クエリを実行しデータを収集する便利な方法を提供するものです。

ベストプラクティス

次のベストプラクティスを参照してください。

1)WQL クエリは、有効なクエリである必要があります。次のガイダンスを参照してください。https://docs.microsoft.com/ja-jp/windows/win32/wmisdk/wql-sql-for-wmi

2)DOS/shell/VB スクリプトを UDC コントロールに追加してはいけません。 

‘select [valid item] from [existing namespace]’ がサポートされています。 

これは、具体的には、ファイル/レジストリ/wmi コレクションではなく、コマンドコントロールです。これは、すべてのエージェントのバージョンで有効です。

3)常に、最適化されたクエリを使用することを推奨します。リクエストされたデータセットの制限が多いほど、システムへの影響が小さくなります(具体的なオブジェクト/データを選択する、WHERE 句を使用するなど)。

4)データを収集するためにネットワークリソースにアクセスする必要のある WMI プロバイダを持つ WQL クエリを使用しないことを強く推奨します。多くのエンドポイントでこれを実行すると、情報を提供するシステムへのトラフィック、システムからのトラフィック、システム上のトラフィックが過剰になる可能性があります。当てはまるかどうかを判断するには、Wireshark などのツールを使用します(これは、Win32_UserAccount プロバイダの制限の理由です)。

5)WMI クエリは、通常 wmiprvse.exe プロセスで実行されます。クエリによっては、このプロセスでシステムリソースが大量に使用される場合があります。使用するクエリがこのプロセスで問題を発生させないよう注意してください。

6)UDC を作成する前に、WbemTest.exe を使用して WQL クエリをテストしてください。このツールは、Windows システムの %windir%\system32\wbem ディレクトリにあります。

7)カスタムプロバイダへのクエリを実行する場合、クエリがどのように動作するかは、そのプロバイダの作成元(多くの場合、Microsoft)によって異なります。特定のプロバイダに問題があると思われる場合は、WbemTest で WQL クエリをチェックしてください。WbemTest.exe では機能するが、エージェントでは機能しない場合は、Qualys に問い合わせてください。WbemTest で機能しない場合は、クエリの問題をトラブルシューティングする必要があります(必要に応じて、プロバイダの作成元に問い合わせてください)。

8)場合によっては、WMI 自体に問題があることがあります。WMI は Windows の一部です。Qualys は、これを利用してリクエストされた UDC WQL クエリを実行します。WMI リポジトリが破損している、WMI プロバイダが未登録であるなどの問題が発生する可能性があります。ここでも、WQL クエリで WbemTest.exe を実行してください。WbemTest.exe では機能するが、エージェントでは機能しない場合は、Qualys に問い合わせてください。WbemTest.exe で機能しない場合は、Qualys 以外のソースが原因です。

9)Windows で WMI のロギングをオンにできます。どうしても必要である場合を除いて、これをオンにすることは推奨しません。システムリソース(特にディスクスペースなど)を短時間で消費する可能性があるためです。