Abnormal Security のログを収集する
以下でサポートされています。
Google SecOps
SIEM
このドキュメントでは、Abnormal Security ログを Google Security Operations に取り込む方法について説明します。パーサーは、JSON 形式と Syslog 形式の両方のメールログを処理します。まず、入力を JSON として処理しようとします。失敗した場合は、Grok パターンを使用して Syslog 形式からデータを抽出します。抽出されたフィールドは統合データモデル(UDM)にマッピングされ、関連するセキュリティ コンテキストでデータが拡充され、分析用の形式が標準化されます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス。
- Abnormal Security への特権アクセス。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
Google SecOps にログを送信するように Abnormal Security を構成する
- Abnormal Security ウェブ UI にログインします。
- [Settings] > [Integrations] をクリックします。
- [Google Chronicle] アイコンを見つけて、[接続] をクリックします。
- Google SecOps のお客様 ID を入力します。
- Google SecOps インスタンスのエンドポイント アドレスを入力します。
- カナダ: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam: https://me-central2-malachiteingestion-pa.googleapis.com
- ヨーロッパ(マルチリージョン): https://europe-malachiteingestion-pa.googleapis.com
- フランクフルト: https://europe-west3-malachiteingestion-pa.googleapis.com
- ロンドン: https://europe-west2-malachiteingestion-pa.googleapis.com
- ムンバイ: https://asia-south1-malachiteingestion-pa.googleapis.com
- シンガポール: https://asia-southeast1-malachiteingestion-pa.googleapis.com
- シドニー: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- テルアビブ: https://me-west1-malachiteingestion-pa.googleapis.com
- 東京: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- 米国マルチリージョン: https://malachiteingestion-pa.googleapis.com
- チューリッヒ: https://europe-west6-malachiteingestion-pa.googleapis.com
- 前にダウンロードした Ingestion Authentication File を Google サービス アカウントとしてアップロードします。
- [保存] > [確認] をクリックします。
サポートされている Abnormal Security のログ形式
Abnormal Security パーサーは、SYSLOG 形式と JSON 形式のログをサポートしています。
サポートされている Abnormal Security のサンプルログ
- JSON
{
"threatId": "3fd4ed1a-9237-7e6f-d434-eacdcc41f47b",
"messages": [
{
"abxMessageId": 3405268390454580698,
"abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/3405268390454580698",
"attachmentCount": 0,
"attachmentNames": [],
"attackStrategy": "Unknown Sender",
"attackType": "Spam",
"attackVector": "Link",
"attackedParty": "VIP",
"autoRemediated": true,
"fromAddress": "masked.from@example.com",
"fromName": "Masked User Name",
"impersonatedParty": "None / Others",
"internetMessageId": "<20eb9e7c1c3046fda97f6564c81ced64@530566577>",
"isRead": false,
"postRemediated": false,
"receivedTime": "2023-08-28T14:09:31Z",
"recipientAddress": "masked.recipient@example.com",
"remediationStatus": "Auto-Remediated",
"remediationTimestamp": "2023-08-28T14:09:35.618Z",
"sentTime": "2023-08-28T14:08:44Z",
"subject": "Banking Insights | A deep dive into the global M&A landscape",
"threatId": "3fd4ed1a-9237-7e6f-d434-eacdcc41f47b",
"toAddresses": [
"masked.to@example.com"
],
"ccEmails": [],
"replyToEmails": [
"masked.reply@example.com"
],
"returnPath": "masked.returnPath@example.com",
"senderDomain": "masked.sender.domain",
"senderIpAddress": null,
"summaryInsights": [
"Suspicious Link",
"Unusual Sender",
"Abnormal Email Body HTML",
"Invisible characters found in Email",
"Unusual Sender Domain",
"Suspicious Financial Request",
"Unusual Reply To"
],
"urlCount": 19,
"urls": [
"https://masked.comm.link/e/es?s=530566577&e=2595782&elqTrackId=MASKEDID&elq=MASKEDID&elqaid=119820&elqat=1",
"https://www.masked.group/en/simplifying-the-brand?utm_source=Eloqua&utm_medium=email&utm_campaign=MASKED_CAMPAIGN&elqCampaignId=20995&elq=MASKEDID",
"https://masked.group.link/e/er?utm_source=Eloqua&utm_medium=email&utm_campaign=MASKED_CAMPAIGN&elqCampaignId=20995&s=530566577&lid=192730&elqTrackId=MASKEDID&elq=MASKEDID&elqaid=119820&elqat=1"
// ... (16 additional masked URLs omitted for brevity)
]
}
]
}
- SYSLOG + JSON
<14> {
"threatId": "83da593b-3778-9d2f-da8c-e305dc1425e1",
"messages": [
{
"abxMessageId": 8274341447487143770,
"abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/8274341447487143770",
"attackType": "Spam",
"fromAddress": "masked.from.1@example.com",
"fromName": "Masked User Name",
"internetMessageId": "<PUZPR06MB45764FCED76739D0BC8A1B69E3DFA@masked.server.prod.outlook.com>",
"recipientAddress": "masked.recipient.1@example.com",
"remediationStatus": "Auto-Remediated",
"subject": "Freightview, FreightPOP Users List",
"toAddresses": [
"masked.to.1@example.com"
],
"returnPath": "masked.returnPath.1@example.com",
"senderDomain": "outlook.com",
"senderIpAddress": null,
"urlCount": 0,
"urls": []
},
{
"abxMessageId": -4495524442058864563,
"abxPortalUrl": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/-4495524442058864563",
"attackType": "Spam",
"fromAddress": "masked.user.2@outlook.com",
"fromName": "Masked User Name",
"internetMessageId": "<PUZPR06MB4576BF221988D780C8412731E3DFA@masked.server.prod.outlook.com>",
"recipientAddress": "masked.recipient.2@example.com",
"remediationStatus": "Auto-Remediated",
"subject": "Freightview, FreightPOP Users List",
"toAddresses": [
"masked.to.2@example.com"
],
"returnPath": "masked.user.2@outlook.com",
"senderDomain": "outlook.com",
"senderIpAddress": null,
"urlCount": 0,
"urls": []
}
]
}
- JSON(threat_log)スキーマ
{
"event": {
"abx_message_id": -3325933065721657641,
"abx_portal_url": "https://portal.abnormalsecurity.com/home/threat-center/remediation-history/-3325933065721657641",
"threat_id": "1c3736ab-9e3a-883f-62b5-6fe36ac9672c",
"subject": "[EXTERNAL] RE: Masked Name PUP094439581",
"from_address": "masked.sender@maskeddomain.xyz",
"from_name": "masked.sender@maskeddomain.xyz",
"to_addresses": "masked.recipient@maskedcorp.com",
"recipient_address": "masked.recipient@maskedcorp.com",
"internet_message_id": "<MASKEDID@masked-insurance-group.com>",
"attack_type": "Phishing: Credential",
"return_path": "masked.sender@maskeddomain.xyz",
"sender_ip_address": "",
"urls": [
"www.masked-insurance-group.com",
"http://www.masked-insurance-group.com/"
],
"sender_domain": "masked-insurance-group.com",
"tenant": "Auto Club Group"
},
"sourcetype": "threat_log"
}
- JSON(abuse_mailbox)スキーマ
{
"event": {
"abx_metadata": {
"event_type": "ABUSE_MAILBOX",
"timestamp": "2024-04-27T15:25:53.374227319Z",
"trace_id": "00bc67b5-eb26-41c2-9f95-021eb435fc49"
},
"abx_body": {
"campaign_id": "28b9c99f-f4a4-3032-bd99-3b7bac532471",
"subject": "[EXTERNAL] News you might have missed",
"recipient_name": "Masked PII Name",
"recipient_address": "masked.abuse.recipient@secops.com",
"internet_message_id": "<AutoNewsDigest-MASKED@odspnotify>",
"email_label_or_location": "inbox"
}
},
"sourcetype": "abuse_mailbox"
}
- JSON(audit_log)スキーマ
{
"event": {
"abx_metadata": {
"event_type": "AUDIT_LOG",
"timestamp": "2024-04-01T17:50:55.194231924Z",
"trace_id": "6f95188c-cba2-4e86-a3ae-3eaf22c869e4"
},
"abx_body": {
"category": "login",
"details": {
"request_url": "/api-token-auth/"
},
"source_ip": "0.0.0.0",
"status": "SUCCESS",
"tenant_name": "masked_secops_tenant",
"timestamp": "2024-04-01T17:50:54.632Z",
"user": {
"email": "masked.audit.user@secops.net"
}
}
},
"sourcetype": "audit_log"
}
- JSON(ケース)スキーマ
{
"event": {
"abx_metadata": {
"event_type": "CASE",
"timestamp": "2024-08-08T12:42:45.104485389Z",
"trace_id": "e4ad638f-439a-4c5f-839d-b650ecab9156"
},
"abx_body": {
"schema_version": "1.0.0",
"case_id": 11188520,
"tenant": "masked name",
"entity": {
"entity_type": "USER_ACCOUNT",
"identifier": "masked.case.user@secops.com"
},
"description": "Account Compromised",
"event_timeline": [
{
"timestamp": "2024-09-07T20:17:25+00:00",
"event_type": "SIGN_IN",
"platform": "AZURE_AD",
"insights": [
{
"signal": "Risky Browser",
"description": "The browser associated with this sign-in, None, is considered risky and has been blocklisted by Abnormal or your organization."
}
],
"ip_address": "0.0.0.0 ",
"operating_system": "ios 17.6",
"isp": "verizon wireless",
"location": {
"city": "Huntley",
"state": "Illinois",
"country": "United States"
}
},
{
"timestamp": "2024-09-07T20:17:25+00:00",
"event_type": "SIGN_IN",
"platform": "AZURE_AD",
"ip_address": "0.0.0.0 ",
"operating_system": "ios 15.6"
}
],
"event_type": "CASE"
}
},
"sourcetype": "case"
}
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| attachmentCount | additional.fields.attachmentCount.value.number_value | 直接マッピングされます |
| attachmentNames | additional.fields.attachmentNames.value | カンマ区切りの文字列に連結されます |
| attackStrategy | security_result.detection_fields.attackStrategy.value | 直接マッピングされます |
| attackType | security_result.threat_name | 直接マッピングされます |
| attackVector | security_result.detection_fields.attackVector.value | 直接マッピングされます |
| attackedParty | security_result.detection_fields.attackedParty.value | 直接マッピングされます |
| autoRemediated | IDM オブジェクトにマッピングされない | |
| ccEmails | network.email.cc | 各メールアドレスが抽出され、配列に追加されます。 |
| fromAddress | network.email.from | メールアドレスが抽出され、直接マッピングされます |
| fromName | principal.user.user_display_name | 直接マッピングされます |
| impersonatedParty | security_result.detection_fields.impersonatedParty.value | 直接マッピングされます |
| internetMessageId | additional.fields.internetMessageId.value.string_value | 直接マッピングされます |
| isRead | additional.fields.isRead.value.bool_value | 直接マッピングされます |
| postRemediated | additional.fields.postRemediated.value.bool_value | 直接マッピングされます |
| receivedTime | additional.fields.mailReceivedTime.value.string_value | 直接マッピングされます |
| remediationStatus | additional.fields.remediationStatus.value.string_value | 直接マッピングされます |
| remediationTimestamp | additional.fields.mailRemediationTimestamp.value.string_value | 直接マッピングされます |
| replyToEmails | network.email.reply_to | 最初のメールアドレスが抽出され、直接マッピングされます。 |
| returnPath | additional.fields.returnPath.value.string_value | 直接マッピングされます |
| senderDomain | principal.administrative_domain | 直接マッピングされます |
| senderIpAddress | principal.ip、principal.asset.ip | IP アドレスが抽出され、両方のフィールドにマッピングされる |
| sentTime | additional.fields.mailSentTime.value.string_value | 直接マッピングされます |
| 件名 | network.email.subject | 直接マッピングされます |
| summaryInsights | security_result.summary | カンマ区切りの文字列に連結されます |
| threatId | security_result.threat_id | 直接マッピングされます |
| toAddresses | network.email.to | 各メールアドレスが抽出され、配列に追加されます。 |
| urlCount | additional.fields.urlCount.value.number_value | 直接マッピングされます |
| URL | additional.fields.detectedUrls.value | カンマ区切りの文字列に連結されます |
| additional.fields.campaign_id.value.string_value | 存在する場合は event_data.abx_body.campaign_id からマッピングされます | |
| additional.fields.trace_id.value.string_value | 存在する場合は event_data.abx_metadata.trace_id からマッピングされます | |
| additional.fields.messageReportedTime.value.string_value | 存在する場合は event_data.abx_body.message_reported_time からマッピングされます | |
| metadata.event_type | メッセージ配列が存在する場合は EMAIL_TRANSACTION に設定します。それ以外の場合は、他のフィールドに基づいて決定され、USER_LOGIN、STATUS_UPDATE、GENERIC_EVENT のいずれかになります。 |
|
| metadata.product_name | 常に ABNORMAL_SECURITY に設定 |
|
| metadata.vendor_name | 常に ABNORMAL_SECURITY に設定 |
|
| metadata.product_event_type | 存在する場合は event_data.abx_metadata.event_type からマッピングされます | |
| extensions.auth.type | event_type が USER_LOGIN の場合、AUTHTYPE_UNSPECIFIED に設定します。 |
|
| security_result.category | メッセージ配列が存在する場合は MAIL_SPAM と MAIL_PHISHING に設定し、それ以外の場合は他のフィールドに基づいて MAIL_PHISHING または MAIL_SPAM に設定します。 |
|
| security_result.category_details | abx_metadata.event_type が ABUSE_MAILBOX の場合は ABUSE_MAILBOX に設定し、それ以外の場合は abx_body.category が login の場合は login に設定します。 |
|
| security_result.detection_fields.reported.value | 存在する場合は event_data.abx_body.reported からマッピングされます | |
| security_result.detection_fields.judgement.value | 存在する場合は event_data.abx_body.judgement からマッピングされます | |
| target.url | 存在する場合は event_data.abx_body.details.request_url からマッピングされます | |
| target.user.userid | 存在する場合は event_data.abx_body.user.email からマッピングされます | |
| target.user.email_addresses | 存在する場合は event_data.abx_body.user.email からマッピングされます |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。