收集 Proofpoint On Demand 日志

支持的平台:

此解析器会从 Proofpoint 按需 JSON 日志中提取字段,并将其转换为 UDM 格式。它处理两种主要日志格式:一种包含电子邮件元数据,另一种包含 SMTP 事务详情,使用条件逻辑来适当地解析字段,并根据可用数据填充 UDM 字段。解析器还会执行数据清理,例如移除多余字符和转换时间戳。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您拥有 Proofpoint 按需远程 Syslog 许可。
  • 确保您拥有对 Proofpoint 的特权访问权限。

配置 Proofpoint On Demand API 访问权限

  1. 登录 Proofpoint 管理控制台。
  2. 复制您的集群 ID,该 ID 显示在管理界面中版本号旁边。
  3. 依次选择设置 > API 密钥管理
  4. 点击新建以显示创建新的 API 密钥对话框。
  5. 输入具有唯一性的名称(例如 Google SecOps)。
  6. 生成 API 密钥
  7. 在新的 API 密钥的菜单中,选择查看详情
  8. 复制 API 密钥

在 Google SecOps 中配置 Feed 以提取 Proofpoint On Demand (PoD) 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 PoD 日志)。
  4. 选择第三方 API 作为来源类型
  5. 选择 Proofpoint On Demand 作为日志类型。
  6. 点击下一步
  7. 为以下输入参数指定值:
    • 身份验证 HTTP 标头:以 key:<value> 格式输入 Proofpoint API 密钥。
    • 集群 ID:输入您之前复制的 Proofpoint 集群 ID。
    • 资源命名空间资源命名空间
    • 提取标签:应用于此 Feed 中的事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看 Feed 配置,然后点击提交

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 此值直接来自原始日志中的 connection.tls.inbound.cipher 字段,除非该字段的值为“NONE”。
connection.tls.inbound.version network.tls.version 此值直接来自原始日志中的 connection.tls.inbound.version 字段,除非加密算法为“NONE”。
envelope.from network.email.from 该值直接来自原始日志中的 envelope.from 字段。它还会被 sm.fromfromAddress(如果存在)替换。
envelope.rcpts network.email.to 如果 envelope.rcpts 中的电子邮件地址有效,则会合并到 network.email.to 字段中。它还会与 sm.totoAddresses(如果存在)合并。
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 此值直接来自原始日志中的 filter.disposition 字段,除非存在 tls.verify
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 为“出站”,则 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.hostnameintermediary.ip 系统使用 grok 从 sm.relay 中提取主机名和 IP 地址。
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 此值直接来自原始日志中的 tls.cipher 字段,除非该字段的值为“NONE”。
tls.verify security_result.action_details 该值直接来自原始日志中的 tls.verify 字段。
tls.version network.tls.version 此值直接来自原始日志中的 tls.version 字段,除非加密算法为“NONE”。
toAddresses network.email.to 如果 toAddresses 中的电子邮件地址有效,则会合并到 network.email.to 字段中。
ts @timestamp 系统会先进行一些预处理来处理额外的秒数,然后再使用 ISO8601 或 RFC 3339 格式从 ts 字段解析该值。

变化

2024-11-28

  • 增强功能:
  • 将“msgParts.metadata.company”和“msgParts.metadata.author”映射到“security_result.detection_fields”。
  • 移除了“email.subject”的重复映射。
  • 将“filter.modules.dmarc.authResults.”字段的映射从“additional.fields”更改为“security_result.detection_fields”。

2024-08-28

  • 增强功能:
  • 将“security_result.detection_fields”键从“filterQid”更改为“qid”。

2024-08-21

  • 增强功能:
  • 将“metadata.origin.data.cid”映射到“additional.fields”。

2024-07-22

  • 增强功能:
  • 如果“about.file.size”是有效的无符号整数,则将“msgPart.detectedSizeBytes”映射到“about.file.size”。
  • 添加了对新 SYSLOG 日志模式的支持。

2024-07-09

  • 增强功能:
  • 将“msg.header.x-mailer”映射到“additional.fields”。

2024-07-09

  • 增强功能:
  • 将“msg.header.x-mailer”映射到“additional.fields”。

2023-11-13

  • 将“subject”映射到“network.email.subject”。
  • 将“messageID”映射到“network.email.mail_id”。
  • 将“fromAddress”映射到“network.email.from”。
  • 将“ccAddresses”映射到“network.email.cc”。
  • 将“replyToAddress”映射到“network.email.reply_to”。
  • 将“toAddresses”映射到“network.email.to”。
  • 将“sender”映射到“principal.user.email_addresses”。
  • 将“senderIP”映射到“principal.ip”。
  • 将“收件人”映射到“target.user.email_addresses”。
  • 将“spamScore”“phishScore”“threatsInfoMap”“impostorScore”“malwareScore”映射到“security_result.detection_fields”。

2023-10-26

  • 将“msg.headeparsedAddressesr.from.0”映射到“principal.user.email_addresses”。
  • 将映射从使用已废弃的 UDM 字段更改为使用替代字段。
  • 添加了“about.labels”到“about.resource.attribute.labels”的映射。
  • 添加了“principal.labels”到“principal.resource.attribute.labels”的映射。

2023-06-05

  • 在将“msg.header.reply-to.0”映射到 UDM 之前,添加了对其进行检查的功能,以检查其是否为电子邮件数组。
  • 在映射到 UDM 之前,向“msgPart.detectedSizeBytes”添加了非“-1”检查。

2022-07-14

  • 改进了将跟随元素映射到 UDM 元素的功能:
  • 将 langs 映射到 additional.fields。
  • 将定义映射到 security_result.summary。
  • 将引擎映射到 metadata.product_version。

2022-06-29

  • 增强功能 - 添加了 gsub,用于从映射到“network.email.mail_id”的字段“sm.msgid”和“msg.header.message-id.0”中移除“<>”。

2022-05-20

  • 改进了将以下元素映射到 UDM 元素的功能:
  • 将“tls.verify”“filter.disposition”映射到“security_result.action_details”。
  • 将“filter.modules.dmarc.authResults.result”映射到“additional.fields”。
  • 将“filter.quarantine.module”“filter.quarantine.folder”“filter.quarantine.type”“filter.quarantine.folderId”“filter.modules.spam.scores.overall”“filter.modules.spam.scores.engine”“filter.modules.spam.scores.classifiers.spam”“filter.modules.spam.scores.classifiers.mlxlog”“filter.modules.spam.scores.classifiers.phish”“filter.modules.spam.scores.classifiers.impostor”“filter.modules.spam.scores.classifiers.lowpriority”“filter.modules.spam.scores.classifiers.mlx”“filter.modules.spam.scores.classifiers.bulk”“filter.modules.spam.scores.classifiers.suspect”“filter.modules.spam.scores.classifiers.malware”“filter.modules.spam.scores.classifiers.adult”映射到“security_result.detection_fields”。

2022-04-13

  • 改进了将跟随元素映射到 UDM 元素的功能:
  • 将 filter.modules.av.virusNames 映射到“security_result.threat_name”。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。