Raccogli i log di Proofpoint On-Demand

Supportata in:

Questo documento spiega come importare i log di Proofpoint On-Demand in Google Security Operations utilizzando l'integrazione API integrata. Il parser estrae i campi dai log JSON, trasformandoli nel formato UDM di Chronicle. Gestisce due formati di log principali: uno contenente i metadati delle email e l'altro contenente i dettagli della transazione SMTP, utilizzando la logica condizionale per analizzare i campi in modo appropriato e compilare i campi del modello UDM (Unified Data Model) in base ai dati disponibili. Il parser esegue anche la pulizia dei dati, ad esempio rimuovendo i caratteri estranei e convertendo i timestamp.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Licenza Proofpoint On-Demand Remote Syslog
  • Accesso privilegiato a Proofpoint

Configura l'accesso all'API Proofpoint On-Demand

  1. Accedi al portale Proofpoint Admin.
  2. Copia l'ID cluster (visualizzato nell'angolo in alto a destra dell'interfaccia di gestione, accanto al numero di release).
  3. Vai a Impostazioni > Gestione delle chiavi API.
  4. Fai clic su Crea nuova per aprire la finestra di dialogo Crea nuova chiave API.
  5. Inserisci un Nome univoco (ad esempio Google SecOps Key).
  6. Genera la chiave API.
  7. Seleziona Visualizza dettagli dal menu con tre puntini della nuova chiave API.
  8. Copia la chiave API.

Configura i feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed di notizie.
  3. Fai clic sul pacchetto di feed Proofpoint.
  4. Seleziona il tipo di log Proofpoint On-Demand.
  5. Fai clic su Avanti.
  6. Specifica i valori per i seguenti parametri di input:
    • Tipo di origine: API di terze parti
    • Intestazioni HTTP di autenticazione: inserisci la chiave API Proofpoint in un formato Authorization: Bearer {API_KEY} e aggiungi una nuova riga con i seguenti dati WebSocket-Key: Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==.
    • ID cluster: inserisci l'ID cluster Proofpoint che hai copiato in precedenza.

    Opzioni avanzate

  • Nome del feed: un valore precompilato che identifica il feed.
  • Spazio dei nomi degli asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
  1. Fai clic su Crea feed.

Tabella di mappatura UDM

Le tabelle seguenti elencano le mappature dei campi dei log di Proofpoint On-Demand ai campi UDM.

Mappature dei tipi di evento

La tabella seguente elenca le mappature dei tipi di eventi di Proofpoint On-Demand. Per saperne di più, consulta Metadata.EventType e Metadata.

Tipo di evento Mappatura Note
EMAIL_TRANSACTION metadata.event_type Se (([has_sender_email] == "true" or [has_recipient_email] == "true") and (([has_principal] == "true" or [has_principal_user] == "true"))).
GENERIC_EVENT metadata.event_type Fallback predefinito per event_type.
NETWORK_CONNECTION metadata.event_type Se [has_principal] == "true" and [has_target] == "true".
STATUS_UPDATE metadata.event_type Se [has_principal] == "true".

Campi di log generali

Campo log mappatura UDM Note
aliasedRcptsvalue.alias additional.fields
aliasedRcptsvalue.primary additional.fields
alignment.fromDomain additional.fields
alignmentresult.identity security_result.detection_fields
alignmentresult.identityOrg security_result.detection_fields
alignmentresult.result security_result.detection_fields
ALLOW security_result.action Se [tls][verify] == "OK" o [filter][disposition] in ["continue", "accept", "CLEAR", "OK", "redirect"].
app_protocol_output network.application_protocol Estratto da un campo data.
audit.action security_result.about.resource.attribute.labels
audit.level security_result.severity_details Estratto da una coppia chiave-valore in un campo data.
audit.resourceType target.resource.name Estratto da una coppia chiave-valore in un campo data.
audit.tags.value security_result.detection_fields
audit.user.email principal.user.email_addresses Se [audit][user][email] =~ "^.+@.+$".
audit.user.id principal.user.userid Estratto da una coppia chiave-valore in un campo data.
audit.user.ipAddress principal.asset.ip,
principal.ip
autheresults.method security_result.detection_fields
autheresults.result additional.fields
BLOCK security_result.action Se [tls][verify] == "FAIL" o [filter][disposition] in ["discard", "reject"].
campaignID security_result.detection_fields
cc network.email.cc Se [cc] =~ "^.+@.+$".
CHALLENGE security_result.action Se [filter][disposition] in ["hold", "retry"].
charsets security_result.detection_fields
classification security_result.detection_fields
cluster security_result.detection_fields
cmd principal.process.command_line Estratto da un campo data.
completelyRewritten security_result.detection_fields
connection.country principal.location.country_or_region Estratto da una coppia chiave-valore in un campo data.
connection.helo network.smtp.helo Estratto da una coppia chiave-valore in un campo data.
connection.host principal.asset.hostname,
principal.hostname
Estratto da una coppia chiave-valore in un campo data.
connection.ip principal.asset.ip,
principal.ip
connection.resolveStatus additional.fields
connection.sid security_result.detection_fields
connection.tls.inbound.cipher network.tls.cipher Estratto da una coppia chiave-valore in un campo data. Se [tls_cipher] not in ["", "null", "None", "none", "NONE"] AND [tls_version] not in ["", "null", "None", "none", "NONE"].
connection.tls.inbound.cipherBits additional.fields
connection.tls.inbound.version network.tls.version Estratto da una coppia chiave-valore in un campo data. Se [tls_cipher] not in ["", "null", "None", "none", "NONE"] AND [tls_version] not in ["", "null", "None", "none", "NONE"].
data network.email.to,
target.user.email_addresses
Se [email] =~ "^.+@.+$".
detectedExt additional.fields
detectedName additional.fields
disposition additional.fields
duration security_result.detection_fields
emailaddr target.user.email_addresses
emailaddrnorm target.user.email_addresses
emailaddrparsed target.user.email_addresses
envelope.from network.email.from
ERROR security_result.severity Se [audit][level] =~ "(?i)(error)".
eventTime metadata.event_timestamp
event_type security_result.summary
extracted_bytes network.sent_bytes Estratto da un campo data.
extracted_internal_id additional.fields
extracted_msgid additional.fields
extracted_queue_status additional.fields
extracted_target_host target.asset.hostname,
target.hostname
Estratto da un campo data.
extracted_throughput additional.fields
extracted_transfer_time additional.fields
FAIL security_result.action Se [filter][disposition] in ["FAIL", "TEMP"].
field_ additional.fields Se NOT = "agent".
FILTER metadata.product_event_type Se [is_filter] == "true".
filter.actions.action additional.fields
filter.actions.isFinal security_result.detection_fields
filter.actions.module additional.fields,
security_result.detection_fields
filter.actions.rule additional.fields,
security_result.detection_fields
filter.disposition security_result.action_details Estratto da una coppia chiave-valore in un campo data. Se [filter_disposition] not in ["", "null", "None", "none", "NONE"].
filter.durationSecs additional.fields
filter.isMsgEncrypted additional.fields
filter.isMsgInDigest additional.fields
filter.isMsgOnHold additional.fields
filter.isMsgReinjected additional.fields
filter.isMsgSplit additional.fields
filter.langs additional.fields
filter.modules.av.virusNames.0 security_result.threat_name Estratto da una coppia chiave-valore in un campo data.
filter.modules.banner.insertedBanner security_result.detection_fields
filter.modules.dkimv.domain security_result.detection_fields
filter.modules.dkimv.result security_result.detection_fields
filter.modules.dkimv.selector security_result.detection_fields
filter.modules.dmarc.filterdResult security_result.detection_fields
filter.modules.dmarc.isVerified additional.fields
filter.modules.dmarc.srvid additional.fields
filter.modules.pdr.v2.response security_result.detection_fields
filter.modules.pdr.v2.rscore additional.fields
filter.modules.spam.authority.analysis additional.fields
filter.modules.spam.authority.cartVersion additional.fields
filter.modules.spam.authority.isComplete additional.fields
filter.modules.spam.authority.isTruncated additional.fields
filter.modules.spam.authority.score additional.fields
filter.modules.spam.classifiers.profile additional.fields
filter.modules.spam.classifiers.status.clx additional.fields
filter.modules.spam.classifiers.status.nostradamus additional.fields
filter.modules.spam.classifiers.status.supernova additional.fields
filter.modules.spam.classifiers.status.uribl additional.fields
filter.modules.spam.scores.classifiers.adult security_result.detection_fields
filter.modules.spam.scores.classifiers.bulk security_result.detection_fields
filter.modules.spam.scores.classifiers.cot additional.fields
filter.modules.spam.scores.classifiers.impostor security_result.detection_fields
filter.modules.spam.scores.classifiers.lowpriority security_result.detection_fields
filter.modules.spam.scores.classifiers.malware security_result.detection_fields
filter.modules.spam.scores.classifiers.mlx security_result.detection_fields
filter.modules.spam.scores.classifiers.mlxlog security_result.detection_fields
filter.modules.spam.scores.classifiers.phish security_result.detection_fields
filter.modules.spam.scores.classifiers.spam security_result.detection_fields
filter.modules.spam.scores.classifiers.suspect security_result.detection_fields
filter.modules.spam.scores.classifiers.unknownsender additional.fields
filter.modules.spam.scores.classifiers.unsafe additional.fields
filter.modules.spam.scores.engine security_result.detection_fields
filter.modules.spam.scores.overall security_result.detection_fields
filter.modules.spam.triggeredClassifier security_result.category_details
filter.modules.spam.version.definitions security_result.summary Estratto da una coppia chiave-valore in un campo data.
filter.modules.spam.version.engine metadata.product_version Estratto da una coppia chiave-valore in un campo data.
filter.modules.spf.domain additional.fields
filter.modules.urldefense.counts.noRewriteIsEmail additional.fields
filter.modules.urldefense.counts.noRewriteIsExcludedDomain additional.fields
filter.modules.urldefense.counts.noRewriteIsSchemeless additional.fields
filter.modules.urldefense.counts.noRewriteIsUnsupportedScheme additional.fields
filter.modules.urldefense.counts.rewritten additional.fields
filter.modules.urldefense.counts.total security_result.detection_fields
filter.modules.urldefense.counts.unique additional.fields
filter.modules.urldefense.counts.unrewritten additional.fields
filter.modules.urldefense.version.engine additional.fields
filter.modules.zerohour.score additional.fields
filter.msgSizeBytes network.received_bytes Estratto da una coppia chiave-valore in un campo data.
filter.origGuid additional.fields
filter.qid additional.fields
filter.quarantine.expirationTs security_result.detection_fields
filter.quarantine.folder security_result.detection_fields
filter.quarantine.folderId security_result.detection_fields
filter.quarantine.module security_result.detection_fields
filter.quarantine.rule security_result.detection_fields
filter.quarantine.type security_result.detection_fields
filter.reinjectedType additional.fields
filter.routes additional.fields
filter.splitType additional.fields
filter.startTime metadata.event_timestamp
filter.suborgs.sender additional.fields
from_hashed additional.fields
fromadd network.email.from Estratto da una coppia chiave-valore in un campo data. Se [fromadd] =~ "^.+@.+$".
GUID metadata.product_log_id Estratto da un campo data.
guid metadata.product_log_id Estratto da un campo data.
headerfromHashedvalue additional.fields
headertoHashedvalue additional.fields
hostname principal.asset.hostname,
principal.hostname
Estratto da un campo message.
id additional.fields
impostorScore security_result.detection_fields
INBOUND network.direction Se [rule] == "outbound", [filter][routeDirection] == "inbound" o [quarantineRule] =~ "outbound".
INFORMATIONAL security_result.severity Se [audit][level] =~ "(?i)(notice)".
intermediary.ip intermediary.asset.ip,
intermediary.ip
intermediary.ip1 intermediary.asset.ip,
intermediary.ip
intermediary_hostname intermediary.asset.hostname,
intermediary.hostname
Estratto da un campo data.
isArchive additional.fields
isCorrupted additional.fields
isDeleted additional.fields
isProtected additional.fields
isTimedOut additional.fields
isVirtual additional.fields
item.cluster security_result.detection_fields
item.GUID security_result.detection_fields
item.headerFrom security_result.detection_fields
item.id security_result.detection_fields
item.impostorScore security_result.detection_fields
item.malwareScore security_result.detection_fields
item.messageID security_result.detection_fields
item.messageSize security_result.detection_fields
item.modulesRun additional.fields
item.phishScore security_result.detection_fields
item.policyRoutes additional.fields
item.QID security_result.detection_fields
item.quarantineFolder security_result.detection_fields
item.quarantineRule security_result.detection_fields
item.sender principal.user.email_addresses Se [item_sender] =~ "^.+@.+$".
item.senderIP principal.asset.ip,
principal.ip
item.spamScore security_result.detection_fields
item.subject network.email.subject
item.threats.classification security_result.detection_fields
item.threats.threat security_result.detection_fields
item.threats.threatID security_result.detection_fields
item.threats.threatStatus security_result.detection_fields
item.threats.threatTime security_result.detection_fields
item.threats.threatType security_result.detection_fields
item.threats.threatUrl security_result.detection_fields
key.data security_result.detection_fields
labeledCharset additional.fields
labeledExt additional.fields
labeledMime about.file.mime_type
labeledName about.file.full_path
malwareScore security_result.detection_fields
matches.offset additional.fields
matches.part additional.fields
MEDIUM security_result.severity Se [audit][level] =~ "(?i)(warn)".
messageID network.email.mail_id Estratto da un campo data.
messageSize security_result.detection_fields
messageTime metadata.event_timestamp
metadata.customerId principal.resource.attribute.labels
metadata.origin.data.agent network.http.parsed_user_agent,
network.http.user_agent
Estratto da una coppia chiave-valore in un campo data.
metadata.origin.data.cid additional.fields
metadata.origin.data.mode additional.fields
metadata.origin.data.theater additional.fields,
principal.location.country_or_region
principal.location.country_or_region viene estratto da una coppia chiave-valore in un campo data.
metadata.origin.data.version metadata.product_version Estratto da una coppia chiave-valore in un campo data.
metadata.origin.schemaVersion additional.fields
mod security_result.detection_fields
modulesRun additional.fields
msg.header.cc additional.fields
msg.header.from additional.fields,
principal.user.email_addresses
principal.user.email_addresses viene mappato a questo campo utilizzando un loop, con gli elementi dell'array JSON uniti qui o le stringhe non JSON mappate qui.
msg.header.message-id.0 additional.fields,
network.email.mail_id
msg.header.reply-to.0 additional.fields,
network.email.reply_to
msg.header.to additional.fields,
target.user.email_addresses
target.user.email_addresses è mappato qui come stringa non JSON utilizzando un loop.
msg.header.x-mailer additional.fields
msg.lang additional.fields
msg.normalizedHeader.from principal.user.email_addresses Mappato a questo campo utilizzando un loop. Gli elementi dell'array JSON vengono uniti qui; le stringhe non JSON vengono mappate qui.
msg.normalizedHeader.subject network.email.subject Se msg.normalizedHeader.subject non è uguale al valore del campo del log non elaborato subject.
msg.normalizedHeader.to target.user.email_addresses Mappato a questo campo utilizzando un loop. Le stringhe non JSON vengono mappate qui.
msg.normalizedHeader.x-mailer additional.fields
msg.parsedAddresses.from.0 additional.fields,
network.email.from
msg.parsedAddresses.to target.user.email_addresses Mappato a questo campo utilizzando un loop. Le stringhe non JSON sono mappate qui.
msg.sizeBytes additional.fields
msgBlocked.filename about.file.full_path
msgBlocked.labeledMime about.file.mime_type
msgBlocked.msgPart.detectedSizeBytes about.file.size
msgBlocked.msgPart.md5 about.file.md5
msgheadersubject additional.fields
msgheaderxmailervalue additional.fields
msgPart.dataBase64 additional.fields
msgPart.detectedCharset additional.fields
msgPart.detectedMime additional.fields
msgPart.detectedSizeBytes about.file.size
msgPart.filename about.file.full_path
msgPart.md5 about.file.md5
msgPart.metadata.appversion additional.fields
msgPart.metadata.codepage additional.fields
msgPart.metadata.color-scheme additional.fields
msgPart.metadata.content-language additional.fields
msgPart.metadata.format-detection additional.fields
msgPart.metadata.history[1]/stevt:action additional.fields
msgPart.metadata.history[1]/stevt:softwareagent additional.fields
msgPart.metadata.history[1]/stevt:when additional.fields
msgPart.oContentType additional.fields
msgPart.sha256 about.file.sha256
msgs.metadata._PROOFPOINT_CONTENT_LENGTH_ additional.fields
msgs.metadata.application additional.fields
msgs.metadata.appname additional.fields
msgs.metadata.author security_result.detection_fields
msgs.metadata.company security_result.detection_fields
msgs.metadata.createdate additional.fields
msgs.metadata.documentid additional.fields
msgs.metadata.instanceid additional.fields
msgs.metadata.modifydate additional.fields
msgs.metadata.pagecount additional.fields
msgs.metadata.subject additional.fields
msgs.metadata.title additional.fields
msgs.textExtracted additional.fields
msgUrls.url additional.fields,
security_result.detection_fields
normalizedHeader.x_originating_ip principal.asset.ip,
principal.ip
normalizedHeaderfromHashed additional.fields
normalizedHeaderHashedvalue additional.fields
normalizedHeaderMessageidvalue additional.fields
normalizedheaderreplytohashed additional.fields
normalizedheaderreturnpath additional.fields
oContentType additional.fields
OUTBOUND network.direction Se [rule] == "outbound", [filter][routeDirection] == "outbound" o [quarantineRule] =~ "outbound".
parsed.useragent network.http.parsed_user_agent
parsed_stat_value security_result.detection_fields
parsedAddress network.email.cc Se [parsedAddress] =~ "^.+@.+$".
parsedAddressesfromHashedvalue additional.fields
parsedaddressesreplytohashed additional.fields
parsedAddrestoHashedvalue additional.fields
phishScore security_result.detection_fields
pid principal.process.pid Estratto da un campo message.
PoD metadata.product_name Assegnazione statica.
policy_route.* additional.fields [list_values] / funzione MAP utilizzata.
policyRoutes additional.fields
pps.agent observer.hostname
prod_event_name metadata.product_event_type Estratto da un campo message.
Proofpoint metadata.vendor_name Assegnazione statica.
QID security_result.detection_fields
QUARANTINE security_result.action Se [filter][disposition] == "quarantine".
quarantineFolder security_result.detection_fields
quarantineRule security_result.detection_fields
queryEndTime metadata.collected_timestamp
rcd.error additional.fields
rcd.record additional.fields
rcpt additional.fields,
security_result.detection_fields
rcpt_hashed additional.fields
reply network.email.reply_to Estratto da una coppia chiave-valore in un campo data. Se [reply] =~ "^.+@.+$".
replytohashed additional.fields
res.emailIdentities.header.from additional.fields
res.emailIdentities.smtp.mailfrom additional.fields
res.emailIdentities.smtp.mailfromHashed additional.fields
res.method additional.fields
res.propspec.header.d additional.fields
res.propspec.header.s additional.fields
rules.name additional.fields
rules.severity additional.fields
s network.session_id Estratto da un campo data.
safeBlockedListMatches_listType security_result.detection_fields
safeBlockedListMatchesvalue.listType security_result.detection_fields
safeBlockedListMatchesvalue.rule security_result.detection_fields
sandbox.status additional.fields
sec_result_action security_result.action
sec_result_category security_result.category
sender principal.user.email_addresses Se [sender] =~ "^.+@.+$".
senderIP principal.asset.ip,
principal.ip
SENDMAIL metadata.product_event_type Se [message] =~ "sendmail".
sendmail_hostname principal.asset.hostname,
principal.hostname
Estratto da un campo data.
sendmail_process_name principal.process.file.full_path Estratto da un campo data.
sendmail_qid additional.fields
sendmail_ts metadata.collected_timestamp Estratto da un campo data.
sig.engine security_result.detection_fields
sig.isPresent security_result.detection_fields
sig.signature security_result.detection_fields
sizeDecodedBytes additional.fields
sm.daemon additional.fields
sm.delay additional.fields
sm.dsn additional.fields
sm.from network.email.from Estratto da una coppia chiave-valore in un campo data. Se [email_src] =~ "^.+@.+$".
sm.guid metadata.product_log_id Estratto da una coppia chiave-valore in un campo data. Se [message] =~ "sendmail".
sm.mailer additional.fields
sm.messageTs additional.fields
sm.msgid network.email.mail_id Estratto da una coppia chiave-valore in un campo data.
sm.nrcpts additional.fields
sm.pri additional.fields
sm.qid security_result.detection_fields
sm.stat security_result.description Estratto da una coppia chiave-valore in un campo data.
sm.xdelay additional.fields
smtoemail network.email.to Se [sm_to_email] =~ "^.+@.+$".
spamScore security_result.detection_fields
SpamType security_result.detection_fields
subject network.email.subject
suborgs additional.fields
threat security_result.detection_fields
threatType security_result.detection_fields
tls.verify security_result.action_details Estratto da una coppia chiave-valore in un campo data. Se [tls_verify] not in ["", "null", "None", "none", "NONE"].
to network.email.to Se [to] =~ "^.+@.+$".
ts metadata.event_timestamp
uinteger network.received_bytes,
network.sent_bytes
UNKNOWN_ACTION security_result.action Se [filter][disposition] in ["hold", "retry"].
UNKNOWN_SEVERITY security_result.severity
urlsource security_result.detection_fields
value additional.fields
x_originating_ip principal.asset.ip,
principal.ip

Riferimento per le differenze tra le mappature UDM

Il 13 ottobre 2026, Google SecOps ha rilasciato una nuova versione del parser Proofpoint On-Demand, che include modifiche significative alla mappatura dei campi di log di Proofpoint On-Demand ai campi UDM e aggiornamenti alle classificazioni dei tipi di eventi (mappature).

Differenze tra le mappature dei campi dei log

La tabella seguente mostra le modifiche al modo in cui i campi dei log di Proofpoint On-Demand vengono mappati ai campi UDM. La colonna Old mapping (Mappatura precedente) elenca i campi esposti prima del 13 ottobre 2026, mentre la colonna Current mapping (Mappatura attuale) elenca i nuovi campi.

Campo log Vecchia mappatura Mappatura attuale
connection.sid additional.fields security_result.detection_fields
filter.modules.pdr.v2.response additional.fields security_result.detection_fields
filter.modules.urldefense.counts.total additional.fields security_result.detection_fields
filter.quarantine.expirationTs additional.fields security_result.detection_fields
filter.quarantine.folder additional.fields security_result.detection_fields
filter.quarantine.folderId additional.fields security_result.detection_fields
filter.quarantine.module additional.fields security_result.detection_fields
filter.quarantine.rule additional.fields security_result.detection_fields
filter.quarantine.type additional.fields security_result.detection_fields
messageTime additional.fields metadata.event_timestamp
messagesBlocked.spamScore additional.fields security_result.detection_fields
metadata.customerId additional.fields principal.resource.attribute.labelsmod
msgParts.detectedSizeBytes additional.fields about.file.size
msg_header_from_json_array.value additional.fields principal.user.email_addresses
principal.resource.attribute.labelsmod additional.fields security_result.detection_fields

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.