Microsoft Defender for Cloud のアラートログを収集する
概要
このパーサーは、Microsoft Defender for Cloud の JSON 形式のログからセキュリティ アラート データを抽出します。未加工のログフィールドを変換して Google SecOps UDM にマッピングし、さまざまなデータ型とネストされた構造を処理します。また、分析を改善するために、追加のコンテキストとラベルでデータを拡充します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Microsoft Defender for Cloud への特権アクセス権があることを確認します。
Microsoft Defender Cloud のアラートログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Microsoft Defender for Cloud アラートログ)。
- [ソースタイプ] として [Webhook] を選択します。
- [ログタイプ] として [Microsoft Defender for Cloud] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
\n
など)。 - アセットの名前空間: アセットの名前空間。
- 取り込みラベル: このフィードのイベントに適用されるラベル。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- シークレット キーをコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、この操作により以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL は、クライアント アプリケーションで指定する必要があります。
- [完了] をクリックします。
Webhook フィードの API キーを作成する
Google Cloud コンソール > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Google Security Operations API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーションで、Webhook フィードで指定された HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーとシークレット キーを指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
推奨事項: API キーは URL ではなくヘッダーとして指定してください。Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーとシークレット キーを指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
次のように置き換えます。
ENDPOINT_URL
: フィードのエンドポイント URL。API_KEY
: Google Security Operations の認証に使用する API キー。SECRET
: フィードの認証用に生成したシークレット キー。
Azure Logic App を作成する
- Azure Portal(https://portal.azure.com)にログインします。
- [リソースを作成] をクリックし、[Logic App] を検索します。
- [作成] をクリックして、デプロイ プロセスを開始します。
- Logic App を構成します。
- 名前: Logic App のわかりやすい名前を入力します(例: GoogleSecOpsWebhook)。
- サブスクリプション: 該当するサブスクリプションを選択します。
- リソース グループ: 既存のリソース グループを選択するか、新しいリソース グループを作成します。
- ロケーション: 環境に最も近いロケーションを選択します。
- ログ分析: Logic App の診断データをロギングする場合は、このオプションを有効にします。
- [確認 + 作成] をクリックして、Logic App を作成します。
- [作成] をクリックして、Logic App をデプロイします。
Azure Logic Apps Webhook 接続を構成する
- 前の手順で作成した Logic App に移動します。
- [開発ツール] > [Logic App Designer] をクリックします。
- [トリガーを追加] をクリックします。
トリガーとして [Microsoft Defender for Cloud] > [Microsoft Defender for Cloud アラートが作成またはトリガーされたとき] を検索します。
[新規作成] をクリックし、画面の指示に沿って認証します。
[新しいステップを挿入] をクリックして、ワークフローに新しいステップを追加します。
[アクションを追加] をクリックします。
[HTT] を検索します。
アクションとして [HTTP] を選択します。
HTTP アクションを構成します。
- URI: Google SecOps API エンドポイントの URL を入力します。
- メソッド:
POST
- Content-Type ヘッダーを追加する:
Content-Type
をヘッダーキーとして、application/json
をヘッダー値として設定します。これにより、送信されるデータの形式が Google SecOps に通知されます。 - クエリに API キーを追加する:
key
を最初のクエリキーとして、<API_KEY>
をクエリ値として設定します。API_KEY
は、Google SecOps フィード構成中に生成された API キー値です。 - クエリに Secret Key を追加する:
secret
を 2 番目のクエリキーとして、<SECRET_KEY>
をクエリ値として設定します。SECRET_KEY
は、Google SecOps フィード構成時に生成されたシークレット キーです。 - 前のステップの本文を設定する: [リクエスト コンテンツを入力] > [前のステップのデータの入力](入力フィールドの左側にある稲妻アイコンのボタン)をクリックします。
[保存] をクリックします。
Microsoft Defender Cloud アラート Webhook を構成する
- Microsoft Defender for Cloud に移動します。
- [管理] > [ワークフローの自動化] をクリックします。
- [ワークフローの自動化を追加] をクリックします。
- 名前: 自動化ルールにわかりやすい名前を付けます(例: ForwardAlertsToGoogleSecOps)。
- リソース グループ: 既存のリソース グループを選択します。
- Defender for Cloud のデータタイプ: [セキュリティ アラート] を選択します。
- アラートの重大度: [すべて選択] を選択します。
- 次のサブスクリプションの Logic App インスタンスを表示: Logic App が作成されたサブスクリプションを選択します。
- Logic App を選択: 前の手順で作成した Logic App を選択します。
- [作成] をクリックして、ワークフローの自動化を保存します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
AlertLink |
principal.resource.attribute.labels.AlertLink.value |
直接マッピング。 |
AlertName |
security_result.rule_name |
直接マッピング。 |
AlertSeverity |
security_result.severity |
値が HIGH、MEDIUM、LOW、CRITICAL、UNKNOWN_SEVERITY のいずれかの場合、直接マッピングされます。それ以外の場合は security_result.severity_details にマッピングされます。値は比較前に大文字に変換されます。 |
AlertType |
security_result.threat_name |
直接マッピング。 |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity.value |
直接マッピング。 |
Description |
security_result.description |
直接マッピング。 |
DisplayName |
security_result.summary |
直接マッピング。 |
EndTime |
about.resource.attribute.labels.EndTime.value |
直接マッピング。 |
Entities[].Location.City |
principal.location.city |
直接マッピング。 |
Entities[].Location.CountryName |
principal.location.country_or_region |
直接マッピング。 |
ExtendedLinks[].Category |
about.resource.attribute.labels.extendedLink_Category.value |
直接マッピング。 |
ExtendedLinks[].Href |
about.resource.attribute.labels.extendedLink_Href.value |
直接マッピング。 |
ExtendedLinks[].Label |
about.resource.attribute.labels.extendedLink_Label.value |
直接マッピング。 |
ExtendedLinks[].Type |
about.resource.attribute.labels.extendedLink_Type.value |
直接マッピング。 |
ExtendedProperties.Account Session Id |
network.session_id |
accountSessionId に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Alert Id |
metadata.product_log_id |
alertId に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Authentication type |
extensions.auth.auth_details |
authenticationType に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client Application |
principal.application |
clientApplication に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client Hostname |
principal.asset.hostname 、principal.hostname |
clientHostName に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client IP address |
principal.asset.ip 、principal.ip |
clientIpAddress に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client IP location |
principal.location.country_or_region |
clientIpLocation に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client Location |
principal.location.country_or_region |
clientLocation に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Client Principal Name |
principal.user.userid |
clientPrincipalName に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Compromised Host |
principal.asset.hostname 、principal.hostname |
compromisedHost に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Suspicious Command Line |
target.process.command_line |
suspiciousCommandLine に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Suspicious Process |
target.process.file.full_path |
suspiciousProcess に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.Suspicious Process Id |
target.process.pid |
suspiciousProcessId に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.User agent |
network.http.user_agent |
userAgent に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.User Name |
principal.user.user_display_name |
userName に名前を変更した後に直接マッピングされます。 |
ExtendedProperties.resourceType |
principal.resource.name |
直接マッピング。 |
IsIncident |
security_result.detection_fields.IsIncident.value |
直接マッピング。文字列に変換されます。 |
ProcessingEndTime |
about.resource.attribute.labels.ProcessingEndTime.value |
直接マッピング。 |
ProductName |
metadata.product_name |
直接マッピング。 |
ResourceId |
principal.resource.product_object_id |
直接マッピング。 |
SourceSystem |
security_result.detection_fields.SourceSystem.value |
直接マッピング。 |
StartTime |
about.resource.attribute.labels.StartTime.value |
直接マッピング。 |
Status |
security_result.detection_fields.Status.value |
直接マッピング。 |
SystemAlertId |
metadata.product_log_id |
直接マッピング。 |
Tactics |
security_result.attack_details.tactics.name |
直接マッピング。 |
TenantId |
additional.fields.TenantId.string_value |
直接マッピング。 |
TimeGenerated |
about.resource.attribute.labels.TimeGenerated.value |
直接マッピング。 |
VendorName |
metadata.vendor_name |
直接マッピング。 |
WorkspaceResourceGroup |
target.resource.attribute.labels.WorkspaceResourceGroup.value |
直接マッピング。 |
WorkspaceSubscriptionId |
target.resource.attribute.labels.WorkspaceSubscriptionId.value |
直接マッピング。 |
_Internal_WorkspaceResourceId |
target.resource.product_object_id |
直接マッピング。 |
properties.alertDisplayName |
security_result.rule_name |
直接マッピング。 |
properties.alertType |
security_result.threat_name |
直接マッピング。 |
properties.alertUri |
principal.resource.attribute.labels.AlertUri.value |
直接マッピング。 |
properties.correlationKey |
principal.resource.attribute.labels.correlationKey.value |
直接マッピング。 |
properties.description |
security_result.description |
直接マッピング。 |
properties.endTimeUtc |
additional.fields.EndTime.string_value |
直接マッピング。 |
properties.entities[].location.city |
principal.location.city |
直接マッピング。 |
properties.entities[].location.countryName |
principal.location.country_or_region |
直接マッピング。 |
properties.entities[].location.latitude |
principal.location.region_coordinates.latitude |
直接マッピング。浮動小数点数に変換されました。 |
properties.entities[].location.longitude |
principal.location.region_coordinates.longitude |
直接マッピング。浮動小数点数に変換されました。 |
properties.extendedProperties.alert_Id |
metadata.product_log_id |
直接マッピング。 |
properties.extendedProperties.clientApplication |
principal.application |
直接マッピング。 |
properties.extendedProperties.clientIpAddress |
principal.asset.ip 、principal.ip |
直接マッピング。IP アドレスとして解析されます。 |
properties.extendedProperties.clientLocation |
principal.location.country_or_region |
直接マッピング。 |
properties.extendedProperties.clientPrincipalName |
principal.user.userid |
直接マッピング。 |
properties.extendedProperties.compromisedEntity |
principal.resource.attribute.labels.CompromisedEntity.value |
直接マッピング。 |
properties.extendedProperties.resourceType |
principal.resource.name |
直接マッピング。 |
properties.IsIncident |
security_result.detection_fields.isIncident.value |
直接マッピング。文字列に変換されます。 |
properties.productName |
metadata.product_name |
直接マッピング。 |
properties.resourceIdentifiers[].<key> |
additional.fields.<key>_<index>.string_value |
直接マッピング。キー $id と type には、配列内の要素のインデックスが追加されます。 |
properties.severity |
security_result.severity |
値が HIGH、MEDIUM、LOW、CRITICAL、UNKNOWN_SEVERITY のいずれかの場合、直接マッピングされます。それ以外の場合は security_result.severity_details にマッピングされます。値は比較前に大文字に変換されます。 |
properties.startTimeUtc |
additional.fields.StartTime.string_value |
直接マッピング。 |
properties.status |
security_result.detection_fields.Status.value |
直接マッピング。 |
properties.timeGeneratedUtc |
additional.fields.TimeGenerated.string_value |
直接マッピング。ログに指定されていない場合は、「MICROSOFT_DEFENDER_CLOUD_ALERTS」に設定します。「MICROSOFT_DEFENDER_CLOUD_ALERTS」に設定します。principal または target が存在する場合は「USER_RESOURCE_ACCESS」に設定し、それ以外の場合は「GENERIC_EVENT」に設定します。 |
変更点
2024-07-05
- 「isInteractive」を「security_result.detection_fields」にマッピングしました。
2024-04-02
- 「properties.createdDateTime」を「metadata.event_timestamp」にマッピングしました。
- 「properties.resourceServicePrincipalId」と「resourceServicePrincipalId」を「target.resource.attribute.labels」にマッピングしました。
- 「properties.authenticationProcessingDetails」、「authenticationProcessingDetails」、「properties.networkLocationDetails」を「additional.fields」にマッピングしました。
- 「properties.userAgent」を「network.http.user_agent」と「network.http.parsed_user_agent」にマッピングしました。
- 「properties.authenticationRequirement」を「additional.fields」にマッピングしました。