Microsoft System Center Endpoint Protection(SCEP)のログを収集する
このドキュメントでは、Microsoft Azure Blob Storage V2 を使用して Google Security Operations フィードを設定し、Microsoft System Center Endpoint Protection(SCEP)ログを収集する方法について説明します。
Microsoft System Center Endpoint Protection(SCEP)は、System Center Configuration Manager(SCCM)と統合されたエンタープライズ マルウェア対策およびウイルス対策ソリューションです。SCEP は、Windows ベースのエンドポイントに対してマルウェア、ウイルス、スパイウェア、その他の悪意のあるソフトウェアに対するリアルタイムの保護を提供します。SCEP はセキュリティ イベントを Microsoft-Windows-Windows Defender/Operational Windows イベントログ チャネルに書き込みます。このチャネルは Azure Monitor エージェントを使用して収集し、Azure Blob Storage にエクスポートできます。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Microsoft Azure ポータルへの特権アクセス(次の権限を持つ)。
- ストレージ アカウントを作成する
- Log Analytics ワークスペースを作成して管理する
- データ収集ルールを作成して管理する
- データ エクスポート ルールを構成する
- アクセスキーを管理する
- SCEP がインストールされている Windows Server 2012 R2 以降、または Windows Defender Antivirus がインストールされている Windows Server 2016 以降
- Windows サーバーにインストールされた Azure Monitor エージェント(オンプレミス サーバーの場合は Azure Arc が必要、Azure VM の場合はネイティブ サポートが必要)
SCEP がデプロイされている Windows サーバーに対する管理者アクセス権
Azure Storage アカウントを構成する
ストレージ アカウントを作成する
- Azure ポータルで、[ストレージ アカウント] を検索します。
- [+ 作成] をクリックします。
次の構成情報を提供してください。
設定 値 サブスクリプション Azure サブスクリプションを選択する リソース グループ 既存のものを選択するか、新しいものを作成する ストレージ アカウント名 一意の名前を入力します(例: sceplogssa)。リージョン リージョンを選択します(例: East US)。パフォーマンス 標準(推奨) 冗長性 GRS(Geo 冗長ストレージ)または LRS(ローカル冗長ストレージ) [Review + create] をクリックします。
アカウントの概要を確認して、[作成] をクリックします。
デプロイが完了するまで待ちます。
ストレージ アカウントの認証情報を取得する
- 作成した ストレージ アカウントに移動します。
- 左側のナビゲーションで、[セキュリティとネットワーキング] の [アクセスキー] を選択します。
- [キーを表示] をクリックします。
- 後で使用できるように、次の値をコピーして保存します。
- ストレージ アカウント名: 作成した名前(例:
sceplogssa) - キー 1 またはキー 2: 共有アクセスキー(base64 でエンコードされた 512 ビットのランダムな文字列)
- ストレージ アカウント名: 作成した名前(例:
Blob Service エンドポイントを取得する
- 同じストレージ アカウントで、左側のナビゲーションから [エンドポイント] を選択します。
- Blob サービスのエンドポイント URL をコピーして保存します。
- 例:
https://sceplogssa.blob.core.windows.net/
- 例:
Log Analytics ワークスペースを作成する
- Azure ポータルで、ログ分析ワークスペースを検索します。
- [+ 作成] をクリックします。
次の構成情報を提供してください。
設定 値 サブスクリプション Azure サブスクリプションを選択する リソース グループ ストレージ アカウントと同じリソース グループを選択します 名前 一意の名前を入力します(例: scep-logs-workspace)。リージョン ストレージ アカウントと同じリージョンを選択します。 [レビュー + 作成] をクリックします。
[作成] をクリックします。
デプロイが完了するまで待ちます。
Windows サーバーに Azure Monitor エージェントをインストールする
SCEP を実行するオンプレミス サーバーの場合は、まずサーバーを Azure Arc にオンボーディングしてから、Azure Monitor エージェントをインストールする必要があります。
Azure Arc にオンボーディングする(オンプレミス サーバーのみ)
- Azure portal で、Azure Arc を検索します。
- [インフラストラクチャ] で [サーバー] を選択します。
- [+ Add] をクリックします。
- [単一サーバーを追加] を選択し、[スクリプトを生成] をクリックします。
- 次の構成の詳細を入力します。
- Subscription: Azure サブスクリプションを選択します。
- リソース グループ: リソース グループを選択します
- リージョン: ストレージ アカウントと同じリージョンを選択します。
- オペレーティング システム: [Windows] を選択します。
- [スクリプトをダウンロードして実行] をクリックします。
- SCEP を実行している Windows サーバーで、管理者として PowerShell を開きます。
ダウンロードしたスクリプトを実行して、Azure Arc のオンボーディングを完了します。
Azure Monitor エージェントをインストールする
- Azure ポータルで、[Azure Arc] > [サーバー](Azure VM の場合は [仮想マシン])に移動します。
- SCEP を実行しているサーバーを選択します。
- 左側のナビゲーションで、[設定] の [拡張機能] を選択します。
- [+ Add] をクリックします。
- [Azure Monitor エージェント] を検索して選択します。
- [次へ]、[レビュー + 作成] の順にクリックします。
- [作成] をクリックします。
- 拡張機能のインストールが完了するまで待ちます。
SCEP イベントのデータ収集ルールを作成する
- Azure ポータルで、[モニタリング] を検索します。
- [設定] で [データ収集ルール] を選択します。
- [+ 作成] をクリックします。
- [基本] タブで、次の構成の詳細を指定します。
- ルール名: わかりやすい名前を入力します(例:
dcr-scep-events)。 - Subscription: Azure サブスクリプションを選択します。
- リソース グループ: リソース グループを選択します
- リージョン: ログ分析ワークスペースと同じリージョンを選択します。
- プラットフォーム タイプ: [Windows] を選択します。
- ルール名: わかりやすい名前を入力します(例:
- [次へ: リソース] をクリックします。
- [リソース] タブで、次の操作を行います。
- [+ リソースを追加] をクリックします。
- リソース グループを開き、SCEP を実行しているサーバー(Azure Arc サーバーまたは Azure VM)を選択します。
- [適用] をクリックします。
- [次へ: 集荷と配送] をクリックします。
[収集と配信] タブで、次の操作を行います。
- [+ データソースを追加] をクリックします。
- [データソースのタイプ] プルダウンで、[Windows イベントログ] を選択します。
- [カスタム] を選択して、XPath クエリを入力します。
[+ XPath クエリを追加] をクリックし、次の XPath クエリを入力して、すべての SCEP イベントと Windows Defender イベントを収集します。
Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]この XPath クエリは、Windows Defender 運用チャネルからすべてのイベント(重大、エラー、警告、情報、詳細)を収集します。特定のイベント ID(マルウェアの検出など)のみを収集するには、次のようなより的を絞ったクエリを使用します。
Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]][宛先] タブで、[+ 宛先を追加] をクリックします。
[宛先タイプ] として [Azure Monitor ログ] を選択します。
先ほど作成した Log Analytics ワークスペース(
scep-logs-workspaceなど)を選択します。
[データソースを追加] をクリックします。
[Review + create] をクリックします。
[作成] をクリックします。
収集されたキーイベント ID
データ収集ルールは Microsoft-Windows-Windows Defender/Operational チャネルからイベントを収集します。これには、次の主要な SCEP イベント ID が含まれます。
| イベント ID | 説明 |
|---|---|
| 1006 | マルウェア対策エンジンによって検出されたマルウェア |
| 1007 | 検出されたマルウェアに対して実行されたマルウェア対策アクション |
| 1116 | リアルタイム保護でマルウェアまたは望ましくないソフトウェアが検出されました |
| 1117 | リアルタイム保護がマルウェアに対処しました |
| 2000 | マルウェア対策シグネチャの更新を開始しました |
| 2001 | マルウェア対策シグネチャの更新が完了しました |
| 5007 | マルウェア対策プラットフォームの構成が変更されました |
Log Analytics ワークスペースから Azure Blob Storage へのデータ エクスポートを構成する
Microsoft.Insights リソース プロバイダを登録する
- Azure ポータルで、[サブスクリプション] に移動します。
- 定期購入を選択します。
- 左側のナビゲーションで、[設定] の [リソース プロバイダ] を選択します。
- Microsoft.Insights を検索します。
- ステータスが [登録済み] でない場合は、選択して [登録] をクリックします。
データ エクスポート ルールを作成する
- Azure ポータルで、Log Analytics ワークスペース(
scep-logs-workspaceなど)に移動します。 - 左側のナビゲーションで、[設定] の [データ エクスポート] を選択します。
- [+ 新しいエクスポート ルール] をクリックします。
- [基本] タブで、次の操作を行います。
- データ エクスポート ルール名: わかりやすい名前を入力します(例:
export-scep-to-blob)。
- データ エクスポート ルール名: わかりやすい名前を入力します(例:
- [次へ: ソース] をクリックします。
[ソース] タブで、[イベント] テーブルを選択します。
[次へ: 宛先] をクリックします。
[送信先] タブで次の操作を行います。
- 宛先の種類: [ストレージ アカウント] を選択します。
- Subscription: ストレージ アカウントを含むサブスクリプションを選択します。
- ストレージ アカウント: 先ほど作成したストレージ アカウント(例:
sceplogssa)を選択します。
[次へ: 確認と作成] をクリックします。
[作成] をクリックします。
構成後、イベントは Storage アカウントに自動的にエクスポートされます。ストレージ アカウントに
am-Eventという名前のコンテナが作成されます。Blob は、次のパス構造を使用して 5 分間のフォルダに保存されます。am-Event/ └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/ └── y={year}/m={month}/d={day}/h={hour}/m={minute}/ └── PT05M.json
データのエクスポートを確認する
- Azure ポータルで、ストレージ アカウント(
sceplogssaなど)に移動します。 - 左側のナビゲーションで、[データ ストレージ] の [コンテナ] を選択します。
- コンテナ
am-Eventが存在することを確認します。 - コンテナに移動し、イベントデータを含む JSON ファイルがフォルダ構造に作成されていることを確認します。
Microsoft System Center Endpoint Protection(SCEP)のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Microsoft SCEP Logs)。 - [ソースタイプ] で [Microsoft Azure Blob Storage V2] を選択します。
- [ログタイプ] として [Microsoft System Center Endpoint Protection(SCEP)] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Azure URI: コンテナパスを含む Blob Service エンドポイント URL を入力します。
https://sceplogssa.blob.core.windows.net/am-Event/次のように置き換えます。
sceplogssa: Azure ストレージ アカウント名。am-Event: エクスポートされたイベントが保存される Blob コンテナの名前。
- Source deletion option: 必要に応じて削除オプションを選択します。
- なし: 転送後にファイルを削除しません。
- 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
- 転送されたファイルと空のディレクトリを削除する: 転送が完了した後にファイルと空のディレクトリを削除します。
- ファイルの最大経過日数: 過去の日数内に変更されたファイルを含めます(デフォルトは 180 日)。
- 共有キー: ストレージ アカウントから取得した共有キーの値(アクセスキー)を入力します。
- アセットの名前空間: アセットの名前空間
- Ingestion labels: このフィードのイベントに適用されるラベル
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Azure Storage ファイアウォールを構成する(有効になっている場合)
Azure Storage アカウントでファイアウォールを使用している場合は、Google SecOps の IP 範囲を追加する必要があります。
- Azure ポータルで、ストレージ アカウントに移動します。
- [セキュリティとネットワーキング] で [ネットワーキング] を選択します。
- [ファイアウォールと仮想ネットワーク] で、[選択した仮想ネットワークと IP アドレスから有効] を選択します。
- [ファイアウォール] セクションの [アドレス範囲] で、[+ IP 範囲を追加] をクリックします。
各 Google SecOps IP 範囲を CIDR 表記で追加します。
現在の IP 範囲を取得するには:
- IP 許可リスト登録に関するドキュメントを参照してください。
- または、Feed Management API を使用してプログラムで取得します。
また、[信頼されたサービスのリストにある Azure サービスによるこのストレージ アカウントへのアクセスを許可する] チェックボックスをオンにして、Log Analytics ワークスペースのデータ エクスポートでストレージ アカウントへの書き込みを許可します。
[保存] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| about.hostname | about.hostname | 「%{_DB_HOST}」に設定します。 |
| _DB_PORT | about.port | 値が直接コピーされ、整数に変換されます。 |
| _DB_DRIVER | about.resource.name | 「%{_DB_DRIVER}」に設定します。 |
| _DB_URL | about.url | 「%{_DB_URL}」に設定 |
| signature_labels | event.idm.read_only_udm.additional.fields | signature が空でない場合は signature_labels から、PendingAction が空でない場合は pending_action から、ExecutionStatus が空でない場合は execution_status から、RecordID が空でない場合は record_id から、ErrorCode が空でない場合は error_code から、ActionSuccess が空でない場合は action_success からマージされます。 |
| pending_action | event.idm.read_only_udm.additional.fields | |
| execution_status | event.idm.read_only_udm.additional.fields | |
| record_id | event.idm.read_only_udm.additional.fields | |
| error_code | event.idm.read_only_udm.additional.fields | |
| action_success | event.idm.read_only_udm.additional.fields | |
| source_url | event.idm.read_only_udm.src.url | source_url が空でない場合はその値、空の場合は my_string1 が空でない場合はその値 |
| my_string1 | event.idm.read_only_udm.src.url | |
| has_principal | metadata.event_type | has_principal と has_target が true の場合は「NETWORK_CONNECTION」、has_principal が true の場合は「STATUS_UPDATE」、no_target_host が false で path_available が true の場合は「SCAN_FILE」、no_target_host が false の場合は「STATUS_UNCATEGORIZED」、has_user が true の場合は「USER_UNCATEGORIZED」、それ以外の場合は「GENERIC_EVENT」に設定します。 |
| has_user | metadata.event_type | |
| has_target | metadata.event_type | |
| no_target_host | metadata.event_type | |
| path_available | metadata.event_type | |
| 名前 | metadata.product_event_type | 値を直接コピーしました |
| DetectionID | metadata.product_log_id | 値を直接コピーしました |
| metadata.product_name | metadata.product_name | 「MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION」に設定します。 |
| metadata.vendor_name | metadata.vendor_name | 「MICROSOFT」に設定 |
| NTdomain | principal.administrative_domain | 値を直接コピーしました |
| hostname | principal.asset.hostname | 空でない場合はホスト名から、それ以外の場合は TargetHost からの値 |
| TargetHost | principal.asset.hostname | |
| action_type | principal.group.attribute.labels | action_type が空でない場合は action_type_label から統合されます |
| hostname | principal.hostname | 空でない場合はホスト名から、それ以外の場合は TargetHost からの値 |
| TargetHost | principal.hostname | |
| プロセス | principal.process.file.full_path | Process が空でない場合は値を直接コピー |
| ユーザー名 | principal.user.user_display_name | 値を直接コピーしました |
| ユーザー名 | principal.user.userid | UserName が空でない場合は UserName の値、空の場合は user の値 |
| ユーザー | principal.user.userid | |
| アクション | security_result.action | アクション値(成功/作成/開始/配信/許可の場合は ALLOW、失敗/ブロック/ティアダウン/延期/削除/拒否/ドロップ/エラー/ロックの場合は BLOCK、acl_modified/変更の場合は ALLOW_WITH_MODIFICATION、隔離の場合は QUARANTINE)または CleanAction(失敗の場合は FAIL、隔離の場合は QUARANTINE、許可の場合は ALLOW、ブロックの場合は BLOCK)に基づいて設定します。 |
| CleanAction | security_result.action | |
| CleanAction | security_result.action_details | CleanAction が空でない場合は値を直接コピー |
| category | security_result.category_details | 空でない場合はカテゴリからマージし、空の場合は Category からマージします |
| カテゴリ | security_result.category_details | |
| DetectionID | security_result.detection_fields | DetectionID が空でない場合は DetectionID_field、detectionid が空でない場合は detectionid_field、detection_source が空でない場合は detection_source_labels、pending_action が空でない場合は pending_action_labels、source_url と file_path と Path が空でない場合は detection_Path から統合されます。 |
| detectionid | security_result.detection_fields | |
| detection_source | security_result.detection_fields | |
| pending_action | security_result.detection_fields | |
| パス | security_result.detection_fields | |
| 重要度 | security_result.severity | 重大度(0/1/2/3/LOW は LOW、4/5/6/MEDIUM/SUBSTANTIAL/INFO は MEDIUM、7/8/HIGH/SEVERE は HIGH、9/10/VERY-HIGH/CRITICAL は CRITICAL)または SeverityID(1 は LOW、2 は MEDIUM、4 は HIGH、5 は CRITICAL、それ以外は UNKNOWN_SEVERITY)に基づいて設定されます。 |
| SeverityID | security_result.severity | |
| SeverityID | security_result.severity_details | 値を直接コピーしました |
| ThreatID | security_result.threat_id | 値を直接コピーしました |
| ThreatName | security_result.threat_name | 値を直接コピーしました |
| MaliciousFileCt | security_result.verdict_info | 値が直接コピーされ、整数に変換され、malicious_file_ct として統合されます |
| dest_nt_domain | target.administrative_domain | 値を直接コピーしました |
| dest_name | target.asset.hostname | dest_name が空でない場合、値が直接コピーされます |
| file_path | target.file.full_path | file_path が空でない場合は file_path の値、file_path が空の場合は Path の値、my_string が空でない場合は my_string の値 |
| パス | target.file.full_path | |
| my_string | target.file.full_path | |
| dest_name | target.hostname | dest_name が空でない場合、値が直接コピーされます |
| ResourceID | target.resource.name | ResourceID の値(空でない場合)、それ以外の場合は resourceid の値(空でない場合) |
| resourceid | target.resource.name | |
| ユーザー | target.user.userid | ユーザーが空でない場合、値が直接コピーされる |
| 時間 | metadata.event_timestamp | 時刻が空でない場合は「MMM dd HH:mm:ss」形式を使用して時刻から変換されます。それ以外の場合は、UNIX_MS を使用して DetectionTime または detectiontime から変換されます。 |
| DetectionTime | metadata.event_timestamp | |
| detectiontime | metadata.event_timestamp |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。