收集 Proofpoint On-Demand 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用內建 API 整合功能,將 Proofpoint On-Demand 記錄擷取至 Google Security Operations。剖析器會從 JSON 記錄檔中擷取欄位,並轉換為 Chronicle UDM 格式。這個外掛程式會處理兩種主要記錄格式:一種包含電子郵件中繼資料,另一種包含 SMTP 交易詳細資料,並使用條件邏輯適當剖析欄位,然後根據可用資料填入 Unified Data Model (UDM) 欄位。剖析器也會執行資料清理作業,例如移除多餘字元和轉換時間戳記。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Proofpoint On-Demand Remote Syslog 授權
- Proofpoint 的特殊存取權
設定 Proofpoint On-Demand API 存取權
- 登入 Proofpoint 管理入口網站。
- 複製叢集 ID (顯示在管理介面右上角,版本號碼旁邊)。
- 依序前往「設定」>「API 金鑰管理」。
- 按一下「Create New」(建立新項目),開啟「Create New API Key」(建立新的 API 金鑰) 對話方塊。
- 輸入專屬名稱 (例如
Google SecOps Key
)。 - 產生 API 金鑰。
- 在新的 API 金鑰上,從省略號選單中選取「查看詳細資料」。
- 複製 API 金鑰。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態饋給」,設定動態饋給
如要設定動態消息,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態消息」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
PoD Logs
)。 - 選取「第三方 API」做為「來源類型」。
- 選取「Proofpoint On-Demand」記錄類型。
- 點選「下一步」。
指定下列輸入參數的值:
- 驗證 HTTP 標頭:以
Authorization: Bearer {API_KEY}
格式輸入 Proofpoint API 金鑰,並新增一行包含下列 WebSocket 金鑰資料:Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==
。 - 叢集 ID:輸入您先前複製的 Proofpoint 叢集 ID。
- 驗證 HTTP 標頭:以
點選「下一步」。
在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」。
從內容中心設定動態饋給
為下列欄位指定值:
- 驗證 HTTP 標頭:以
Authorization: Bearer {API_KEY}
格式輸入 Proofpoint API 金鑰,並新增一行 WebSocket-Key 資料:Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==
。 - 叢集 ID:輸入您先前複製的 Proofpoint 叢集 ID。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
- 擷取標籤:套用至這個動態饋給所有事件的標籤。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
classification |
security_result.detection_fields.classification |
這個值直接來自原始記錄中的 classification 欄位。 |
cluster |
security_result.detection_fields.cluster |
這個值直接來自原始記錄中的 cluster 欄位。 |
completelyRewritten |
security_result.detection_fields.completelyRewritten |
這個值直接來自原始記錄中的 completelyRewritten 欄位。 |
connection.country |
principal.location.country_or_region |
除非是「**」,否則這個值會直接取自原始記錄中的 connection.country 欄位。 |
connection.host |
principal.hostname |
這個值直接來自原始記錄中的 connection.host 欄位。 |
connection.ip |
principal.ip |
如果原始記錄中的 connection.ip 欄位是有效的 IPv4 位址,系統會直接採用該值。如果存在,也會與 senderIP 合併。 |
connection.protocol |
network.application_protocol |
使用 gsub 擷取 connection.protocol 中冒號前的通訊協定部分,然後進行對應。例如,「smtp:smtp」會變成「SMTP」。 |
connection.tls.inbound.cipher |
network.tls.cipher |
除非值為「NONE」,否則這個值會直接取自原始記錄中的 connection.tls.inbound.cipher 欄位。 |
connection.tls.inbound.version |
network.tls.version |
除非密碼為「NONE」,否則這個值會直接來自原始記錄中的 connection.tls.inbound.version 欄位。 |
envelope.from |
network.email.from |
這個值直接取自原始記錄中的 envelope.from 欄位。如果存在,也會由 sm.from 或 fromAddress 取代。 |
envelope.rcpts |
network.email.to |
如果 envelope.rcpts 中的電子郵件地址有效,系統會將其合併至 network.email.to 欄位。如果存在,也會與 sm.to 或 toAddresses 合併。 |
envelope.rcptsHashed |
read_only_udm.additional.fields |
envelope.rcptsHashed 中的雜湊電子郵件地址會新增為其他欄位,並使用「toHashed_0」、「toHashed_1」等鍵。 |
eventTime |
@timestamp |
系統會使用 ISO8601 或 RFC 3339 格式,從 eventTime 欄位剖析值。 |
eventType |
security_result.summary |
這個值直接來自原始記錄中的 eventType 欄位。 |
filter.disposition |
security_result.action_details |
除非有 tls.verify ,否則這個值會直接來自原始記錄中的 filter.disposition 欄位。 |
filter.modules.av.virusNames.0 |
security_result.threat_name |
這個值直接來自原始記錄中的 filter.modules.av.virusNames.0 欄位。 |
filter.modules.dmarc.authResults |
read_only_udm.additional.fields |
filter.modules.dmarc.authResults 中每個項目的方法和結果都會新增為額外欄位,並以「authResultsMethod_0」、「authResults_result_0」、「authResultsMethod_1」等鍵表示。 |
filter.modules.spam.langs |
read_only_udm.additional.fields |
filter.modules.spam.langs 中的每種語言都會新增為額外欄位,並使用「lang_0」、「lang_1」等鍵。 |
filter.modules.spam.safeBlockedListMatches.0.listType |
security_result.detection_fields.safeBlockedListMatches_listType |
這個值直接來自原始記錄中的 filter.modules.spam.safeBlockedListMatches.0.listType 欄位。 |
filter.modules.spam.safeBlockedListMatches.0.rule |
security_result.detection_fields.safeBlockedListMatches_rule |
這個值直接來自原始記錄中的 filter.modules.spam.safeBlockedListMatches.0.rule 欄位。 |
filter.modules.spam.scores.classifiers.adult |
security_result.detection_fields.adult |
如果原始記錄中的 filter.modules.spam.scores.classifiers.adult 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.bulk |
security_result.detection_fields.bulk |
如果原始記錄中的 filter.modules.spam.scores.classifiers.bulk 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.impostor |
security_result.detection_fields.impostor |
如果原始記錄中的 filter.modules.spam.scores.classifiers.impostor 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.lowpriority |
security_result.detection_fields.lowpriority |
如果原始記錄中的 filter.modules.spam.scores.classifiers.lowpriority 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.malware |
security_result.detection_fields.malware |
如果原始記錄中的 filter.modules.spam.scores.classifiers.malware 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.mlx |
security_result.detection_fields.mlx |
如果原始記錄中的 filter.modules.spam.scores.classifiers.mlx 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.mlxlog |
security_result.detection_fields.mlxlog |
如果原始記錄中的 filter.modules.spam.scores.classifiers.mlxlog 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.phish |
security_result.detection_fields.phish |
如果原始記錄中的 filter.modules.spam.scores.classifiers.phish 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.spam |
security_result.detection_fields.spam |
如果原始記錄中的 filter.modules.spam.scores.classifiers.spam 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.classifiers.suspect |
security_result.detection_fields.suspect |
如果原始記錄中的 filter.modules.spam.scores.classifiers.suspect 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.engine |
security_result.detection_fields.engine |
如果原始記錄中的 filter.modules.spam.scores.engine 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.scores.overall |
security_result.detection_fields.overall |
如果原始記錄中的 filter.modules.spam.scores.overall 欄位不為空白或 0,則值會直接來自該欄位。 |
filter.modules.spam.version.definitions |
security_result.summary |
這個值直接來自原始記錄中的 filter.modules.spam.version.definitions 欄位。 |
filter.modules.spam.version.engine |
metadata.product_version |
這個值直接來自原始記錄中的 filter.modules.spam.version.engine 欄位。 |
filter.modules.urldefense.counts.rewritten |
read_only_udm.additional.fields.urldefenseCountsRewritten |
這個值直接來自原始記錄中的 filter.modules.urldefense.counts.rewritten 欄位。 |
filter.modules.urldefense.counts.total |
security_result.detection_fields.urldefense_total |
這個值直接來自原始記錄中的 filter.modules.urldefense.counts.total 欄位。 |
filter.modules.zerohour.score |
read_only_udm.additional.fields.zeroHourScore |
這個值直接來自原始記錄中的 filter.modules.zerohour.score 欄位。 |
filter.origGuid |
read_only_udm.additional.fields.origGuid |
這個值直接來自原始記錄中的 filter.origGuid 欄位。 |
filter.qid |
read_only_udm.additional.fields.filterQid |
這個值直接來自原始記錄中的 filter.qid 欄位。 |
filter.quarantine.folder |
security_result.detection_fields.filter_quarantine_folder |
這個值直接來自原始記錄中的 filter.quarantine.folder 欄位。 |
filter.quarantine.folderId |
security_result.detection_fields.filter_quarantine_folderId |
這個值直接來自原始記錄中的 filter.quarantine.quarantine.folderId 欄位。 |
filter.quarantine.module |
security_result.detection_fields.filter_quarantine_module |
這個值直接來自原始記錄中的 filter.quarantine.module 欄位。 |
filter.quarantine.rule |
security_result.detection_fields.filter_quarantine_rule |
這個值直接來自原始記錄中的 filter.quarantine.rule 欄位。 |
filter.quarantine.type |
security_result.detection_fields.filter_quarantine_type |
這個值直接來自原始記錄中的 filter.quarantine.type 欄位。 |
filter.routeDirection |
network.direction |
如果 filter.routeDirection 為「inbound」,network.direction 會設為「INBOUND」。如果 filter.routeDirection 為「outbound」,network.direction 會設為「OUTBOUND」。 |
filter.routes |
read_only_udm.additional.fields |
filter.routes 中的每個路徑都會新增為額外欄位,並使用「filterRoutes_0」、「filterRoutes_1」等鍵。 |
fromAddress |
network.email.from |
如果 fromAddress 中的電子郵件地址有效,系統會將其替換為 network.email.from 欄位中的電子郵件地址。 |
guid |
metadata.product_log_id |
這個值直接來自原始記錄中的 guid 欄位。 |
GUID |
metadata.product_log_id |
這個值直接來自原始記錄中的 GUID 欄位。 |
headerFrom |
network.email.from |
這個值直接來自原始記錄中的 headerFrom 欄位。 |
impostorScore |
security_result.detection_fields.impostorScore |
這個值直接來自原始記錄中的 impostorScore 欄位。 |
malwareScore |
security_result.detection_fields.malwareScore |
這個值直接來自原始記錄中的 malwareScore 欄位。 |
messageID |
network.email.mail_id |
這個值直接來自原始記錄中的 messageID 欄位。 |
messageSize |
security_result.detection_fields.messageSize |
這個值直接來自原始記錄中的 messageSize 欄位。 |
messageTime |
@timestamp |
系統會使用 ISO8601 或 RFC 3339 格式,從 messageTime 欄位剖析值。 |
metadata.customerId |
principal.labels.customerId |
這個值直接來自原始記錄中的 metadata.customerId 欄位。 |
metadata.origin.data.agent |
network.http.user_agent |
這個值直接來自原始記錄中的 metadata.origin.data.agent 欄位。 |
metadata.origin.data.cid |
principal.user.userid |
這個值直接來自原始記錄中的 metadata.origin.data.cid 欄位。 |
metadata.origin.data.version |
metadata.product_version |
這個值直接來自原始記錄中的 metadata.origin.data.version 欄位。 |
msg.header.from |
read_only_udm.additional.fields.msgHeaderFrom |
這個值直接來自原始記錄中的 msg.header.from.0 欄位。 |
msg.header.reply-to |
network.email.reply_to |
系統會擷取 msg.header.reply-to.0 中以 <> 括住的電子郵件地址,並進行對應。 |
msg.header.subject |
network.email.subject |
這個值直接來自原始記錄中的 msg.header.subject 欄位。 |
msg.header.to |
read_only_udm.additional.fields.msgHeaderTo |
這個值直接來自原始記錄中的 msg.header.to 欄位。 |
msg.normalizedHeader.subject |
network.email.subject |
這個值直接來自原始記錄中的 msg.normalizedHeader.subject 欄位。 |
msg.parsedAddresses.cc |
network.email.cc |
如果 msg.parsedAddresses.cc 中的電子郵件地址有效,系統會將其合併至 network.email.cc 欄位。 |
msg.parsedAddresses.ccHashed |
read_only_udm.additional.fields |
系統會將 msg.parsedAddresses.ccHashed 中的雜湊電子郵件地址新增為額外欄位,並使用「ccHashed_0」、「ccHashed_1」等鍵。 |
msg.parsedAddresses.from |
read_only_udm.additional.fields.msgParsedAddressesFrom |
這個值直接來自原始記錄中的 msg.parsedAddresses.from.0 欄位。 |
msg.parsedAddresses.from.0 |
principal.user.email_addresses |
這個值直接來自原始記錄中的 msg.parsedAddresses.from.0 欄位。 |
msg.parsedAddresses.fromHashed |
read_only_udm.additional.fields.fromHashed |
這個值直接來自原始記錄中的 msg.parsedAddresses.fromHashed.0 欄位。 |
msg.parsedAddresses.to |
target.user.email_addresses |
如果 msg.parsedAddresses.to 中的電子郵件地址有效,系統會將其合併至 target.user.email_addresses 欄位。 |
msgParts |
read_only_udm.about |
系統會建立多個 about 物件,msgParts 中的每個項目各對應一個。系統會擷取檔案雜湊、MIME 類型、大小和其他中繼資料。 |
QID |
security_result.detection_fields.QID |
這個值直接來自原始記錄中的 QID 欄位。 |
recipient |
target.user.email_addresses |
如果 recipient 中的電子郵件地址有效,系統會將其合併至 target.user.email_addresses 欄位。 |
replyToAddress |
network.email.reply_to |
如果 replyToAddress 中的電子郵件地址有效,系統會將其替換為 network.email.reply_to 欄位中的電子郵件地址。 |
sender |
principal.user.email_addresses |
如果 sender 欄位中的值是有效的電子郵件地址,系統會直接採用該值。 |
senderIP |
principal.ip |
這個值直接來自原始記錄中的 senderIP 欄位。 |
sm.from |
network.email.from |
這個值直接來自原始記錄中的 sm.from 欄位。 |
sm.msgid |
network.email.mail_id |
這個值直接取自原始記錄中的 sm.msgid 欄位,並移除「<」和「>」。 |
sm.proto |
network.application_protocol |
這個值直接來自原始記錄中的 sm.proto 欄位。 |
sm.qid |
security_result.detection_fields.QUID |
這個值直接來自原始記錄中的 sm.qid 欄位。 |
sm.relay |
intermediary.hostname 、intermediary.ip |
主機名稱和 IP 位址是使用 grok 從 sm.relay 中擷取。 |
sm.stat |
security_result.detection_fields.Stat |
使用 grok 擷取 sm.stat 的第一個字,然後對應。 |
sm.to |
network.email.to |
如果 sm.to 中的電子郵件地址有效,系統會將其合併至 network.email.to 欄位。 |
spamScore |
security_result.detection_fields.spamScore |
這個值直接來自原始記錄中的 spamScore 欄位。 |
subject |
network.email.subject |
這個值直接來自原始記錄中的 subject 欄位。 |
threat |
security_result.detection_fields.threat |
這個值直接來自原始記錄中的 threat 欄位。 |
threatsInfoMap |
security_result.detection_fields |
系統會將 threatsInfoMap 中每個項目的鍵/值組合新增為偵測欄位。 |
threatType |
security_result.detection_fields.threatType |
這個值直接來自原始記錄中的 threatType 欄位。 |
tls.cipher |
network.tls.cipher |
除非值為「NONE」,否則這個值會直接取自原始記錄中的 tls.cipher 欄位。 |
tls.verify |
security_result.action_details |
這個值直接來自原始記錄中的 tls.verify 欄位。 |
tls.version |
network.tls.version |
除非密碼為「NONE」,否則這個值會直接來自原始記錄中的 tls.version 欄位。 |
toAddresses |
network.email.to |
如果 toAddresses 中的電子郵件地址有效,系統會將其合併至 network.email.to 欄位。 |
ts |
@timestamp |
系統會先預先處理額外的秒數小數部分,再使用 ISO8601 或 RFC 3339 格式,從 ts 欄位剖析值。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。