收集 Abnormal Security 記錄

剖析器版本:6.0

支援的服務:

本文說明如何將 Abnormal Security 記錄檔擷取至 Google Security Operations。剖析器會處理 JSON 和 Syslog 格式的電子郵件記錄。首先,外掛程式會嘗試將輸入內容當做 JSON 處理,如果失敗,則會使用 Grok 模式從 Syslog 格式擷取資料。接著,系統會將擷取的欄位對應至 Unified Data Model (UDM),並加入相關安全性背景資訊來充實資料,以及標準化格式,以便進一步分析。

事前準備

請確認您符合下列必要條件:

  • Google SecOps 執行個體。
  • Abnormal Security 的特殊存取權。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「設定」>「管理」>「設定檔」。如果使用的是僅限 SIEM 的平台,請依序前往「設定」>「設定檔」。
  3. 複製並儲存「機構詳細資料」部分的客戶 ID。

取得 Google SecOps 憑證

如要驗證 Abnormal Security 與 Google SecOps 的連線,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往「IAM & Admin」>「Service Accounts」。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 「服務帳戶名稱」:輸入帳戶名稱 (例如 abnormal-security-ingest)。
    • 「Service account description」(服務帳戶說明):輸入說明 (例如 Abnormal Security log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後點選「建立」。金鑰檔案會下載到您的電腦。
  11. 妥善保存金鑰檔案,以便在 Abnormal Security 設定中使用。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「設定」>「資料管理」>「收集代理程式」。如果使用的是僅限 SIEM 的平台,請依序前往「Settings」>「Collection Agents」。
  3. 下載擷取驗證檔案。
  4. 請妥善儲存檔案,以便在 Abnormal Security 設定中使用。

設定 Abnormal Security,將記錄傳送至 Google SecOps

  1. 登入 Abnormal Security 網頁 UI。
  2. 依序點選「設定」>「整合」。
  3. 找到 Google Chronicle 圖示,然後點選「連結」。
  4. 輸入 Google SecOps 客戶 ID。
  5. 輸入 Google SecOps 執行個體端點位址。下列端點會顯示新版 Ingestion API。如果您使用舊版方法,則需要使用舊版 API。
  6. 如果採用選項 1,請上傳先前下載的服務帳戶 JSON 金鑰檔案,做為 Google 服務帳戶。
  7. 如果採用選項 2,請上傳先前下載的擷取驗證檔案做為 Google 服務帳戶。
  8. 依序點選「儲存」>「確認」。

支援的 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 直接對應
網址 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 對應 (如有)
event.abx_body.abnormal_message_id event.idm.read_only_udm.metadata.product_log_id 從變更記錄對應
event.abx_body.email_label_or_location event.idm.read_only_udm.additional.fields 從變更記錄對應
event.abx_body.not_analyzed event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
event_data.message_sources", "event_data.sender_auth_results.spf", "event_data.sender_auth_results.dkim", "event_data.sender_auth_results.dmarc", "event_data.tenant", and "event_data.attack_score additional.fields 從變更記錄對應
event_data.abx_body.severity security_result.severity 從變更記錄對應
event_data.abx_body.trigger_event" and "event_data.abx_body.entity.entity_type additional.fields 從變更記錄對應
event_data.abx_body.entity.identifier principal.user.email_addresses 從變更記錄對應
event_data.abx_body.case_id metadata.product_log_id 從變更記錄對應
sourcetype", "event.folder_locations additional.fields 從變更記錄對應
event.abx_message_id metadata.product_log_id 從變更記錄對應

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。