Collecter les journaux Proofpoint On-Demand

Compatible avec :

Ce document explique comment ingérer des journaux Proofpoint à la demande dans Google Security Operations à l'aide de l'intégration d'API intégrée. L'analyseur extrait les champs des journaux JSON et les transforme au format UDM Chronicle. Il gère deux formats de journaux principaux : l'un contenant des métadonnées d'e-mail et l'autre contenant des détails de transaction SMTP. Il utilise une logique conditionnelle pour analyser les champs de manière appropriée et renseigner les champs du modèle de données unifié (UDM) en fonction des données disponibles. L'analyseur effectue également un nettoyage des données, par exemple en supprimant les caractères superflus et en convertissant les codes temporels.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Licence Proofpoint On-Demand Remote Syslog
  • Accès privilégié à Proofpoint

Configurer l'accès à l'API Proofpoint On-Demand

  1. Connectez-vous au portail Proofpoint Admin.
  2. Copiez votre ID de cluster (affiché dans l'angle supérieur droit de votre interface de gestion, à côté du numéro de version).
  3. Accédez à Paramètres > Gestion des clés API.
  4. Cliquez sur Créer pour ouvrir la boîte de dialogue Créer une clé API.
  5. Saisissez un nom unique (par exemple, Google SecOps Key).
  6. Générez la clé API.
  7. Sélectionnez Afficher les détails dans le menu à trois points de la nouvelle clé API.
  8. Copiez la clé API.

Configurer des flux

Pour configurer un flux, procédez comme suit :

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur Ajouter un flux d'actualités.
  3. Cliquez sur le pack de flux Proofpoint.
  4. Sélectionnez le type de journal Proofpoint On-Demand.
  5. Cliquez sur Suivant.
  6. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Type de source : API tierce
    • En-têtes HTTP d'authentification : saisissez la clé API Proofpoint au format Authorization: Bearer {API_KEY}, puis ajoutez une nouvelle ligne avec les données WebSocket-Key suivantes : Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==.
    • ID du cluster : saisissez l'ID du cluster Proofpoint que vous avez copié précédemment.

    Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
  1. Cliquez sur Créer un flux.

Table de mappage UDM

Les tableaux suivants listent les mappages des champs de journal Proofpoint à la demande avec les champs UDM.

Mappages de types d'événements

Le tableau suivant liste les mappages de types d'événements Proofpoint à la demande. Pour en savoir plus, consultez Metadata.EventType et Metadata.

Type d'événement Mappage Remarques
EMAIL_TRANSACTION metadata.event_type Si (([has_sender_email] == "true" or [has_recipient_email] == "true") and (([has_principal] == "true" or [has_principal_user] == "true"))).
GENERIC_EVENT metadata.event_type Valeur de remplacement par défaut pour event_type.
NETWORK_CONNECTION metadata.event_type Si [has_principal] == "true" and [has_target] == "true".
STATUS_UPDATE metadata.event_type Si [has_principal] == "true".

Champs de journal généraux

Champ du journal mappage UDM Remarques
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 Si [tls][verify] == "OK" ou [filter][disposition] in ["continue", "accept", "CLEAR", "OK", "redirect"].
app_protocol_output network.application_protocol Extrait d'un champ data.
audit.action security_result.about.resource.attribute.labels
audit.level security_result.severity_details Extrait d'une paire clé-valeur dans un champ data.
audit.resourceType target.resource.name Extrait d'une paire clé-valeur dans un champ data.
audit.tags.value security_result.detection_fields
audit.user.email principal.user.email_addresses Si [audit][user][email] =~ "^.+@.+$".
audit.user.id principal.user.userid Extrait d'une paire clé-valeur dans un champ data.
audit.user.ipAddress principal.asset.ip,
principal.ip
autheresults.method security_result.detection_fields
autheresults.result additional.fields
BLOCK security_result.action Si [tls][verify] == "FAIL" ou [filter][disposition] in ["discard", "reject"].
campaignID security_result.detection_fields
cc network.email.cc Si [cc] =~ "^.+@.+$".
CHALLENGE security_result.action Si [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 Extrait d'un champ data.
completelyRewritten security_result.detection_fields
connection.country principal.location.country_or_region Extrait d'une paire clé-valeur dans un champ data.
connection.helo network.smtp.helo Extrait d'une paire clé-valeur dans un champ data.
connection.host principal.asset.hostname,
principal.hostname
Extrait d'une paire clé-valeur dans un champ 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 Extrait d'une paire clé-valeur dans un champ data. Si [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 Extrait d'une paire clé-valeur dans un champ data. Si [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
Si [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 Si [audit][level] =~ "(?i)(error)".
eventTime metadata.event_timestamp
event_type security_result.summary
extracted_bytes network.sent_bytes Extrait d'un champ data.
extracted_internal_id additional.fields
extracted_msgid additional.fields
extracted_queue_status additional.fields
extracted_target_host target.asset.hostname,
target.hostname
Extrait d'un champ data.
extracted_throughput additional.fields
extracted_transfer_time additional.fields
FAIL security_result.action Si [filter][disposition] in ["FAIL", "TEMP"].
field_ additional.fields Si NOT = "agent".
FILTER metadata.product_event_type Si [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 Extrait d'une paire clé-valeur dans un champ data. Si [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 Extrait d'une paire clé-valeur dans un champ 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 Extrait d'une paire clé-valeur dans un champ data.
filter.modules.spam.version.engine metadata.product_version Extrait d'une paire clé-valeur dans un champ 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 Extrait d'une paire clé-valeur dans un champ 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 Extrait d'une paire clé-valeur dans un champ data. Si [fromadd] =~ "^.+@.+$".
GUID metadata.product_log_id Extrait d'un champ data.
guid metadata.product_log_id Extrait d'un champ data.
headerfromHashedvalue additional.fields
headertoHashedvalue additional.fields
hostname principal.asset.hostname,
principal.hostname
Extrait d'un champ message.
id additional.fields
impostorScore security_result.detection_fields
INBOUND network.direction Si [rule] == "outbound", [filter][routeDirection] == "inbound" ou [quarantineRule] =~ "outbound".
INFORMATIONAL security_result.severity Si [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
Extrait d'un champ 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 Si [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 Si [audit][level] =~ "(?i)(warn)".
messageID network.email.mail_id Extrait d'un champ 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
Extrait d'une paire clé-valeur dans un champ 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 est extrait d'une paire clé-valeur dans un champ data.
metadata.origin.data.version metadata.product_version Extrait d'une paire clé-valeur dans un champ 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 est mappé à ce champ à l'aide d'une boucle, avec des éléments de tableau JSON fusionnés ici ou des chaînes non JSON mappées ici.
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 est mappé ici en tant que chaîne non JSON à l'aide d'une boucle.
msg.header.x-mailer additional.fields
msg.lang additional.fields
msg.normalizedHeader.from principal.user.email_addresses Mappé à ce champ à l'aide d'une boucle. Les éléments de tableau JSON sont fusionnés ici. Les chaînes non JSON sont mappées ici.
msg.normalizedHeader.subject network.email.subject Si msg.normalizedHeader.subject n'est pas égal à la valeur du champ de journal brut subject.
msg.normalizedHeader.to target.user.email_addresses Mappé à ce champ à l'aide d'une boucle. Les chaînes non JSON sont mappées ici.
msg.normalizedHeader.x-mailer additional.fields
msg.parsedAddresses.from.0 additional.fields,
network.email.from
msg.parsedAddresses.to target.user.email_addresses Mappé à ce champ à l'aide d'une boucle. Les chaînes non JSON sont mappées ici.
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 Si [rule] == "outbound", [filter][routeDirection] == "outbound" ou [quarantineRule] =~ "outbound".
parsed.useragent network.http.parsed_user_agent
parsed_stat_value security_result.detection_fields
parsedAddress network.email.cc Si [parsedAddress] =~ "^.+@.+$".
parsedAddressesfromHashedvalue additional.fields
parsedaddressesreplytohashed additional.fields
parsedAddrestoHashedvalue additional.fields
phishScore security_result.detection_fields
pid principal.process.pid Extrait d'un champ message.
PoD metadata.product_name Attribution statique.
policy_route.* additional.fields [list_values] / utilisation de la fonction map.
policyRoutes additional.fields
pps.agent observer.hostname
prod_event_name metadata.product_event_type Extrait d'un champ message.
Proofpoint metadata.vendor_name Attribution statique.
QID security_result.detection_fields
QUARANTINE security_result.action Si [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 Extrait d'une paire clé-valeur dans un champ data. Si [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 Extrait d'un champ 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 Si [sender] =~ "^.+@.+$".
senderIP principal.asset.ip,
principal.ip
SENDMAIL metadata.product_event_type Si [message] =~ "sendmail".
sendmail_hostname principal.asset.hostname,
principal.hostname
Extrait d'un champ data.
sendmail_process_name principal.process.file.full_path Extrait d'un champ data.
sendmail_qid additional.fields
sendmail_ts metadata.collected_timestamp Extrait d'un champ 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 Extrait d'une paire clé-valeur dans un champ data. Si [email_src] =~ "^.+@.+$".
sm.guid metadata.product_log_id Extrait d'une paire clé-valeur dans un champ data. Si [message] =~ "sendmail".
sm.mailer additional.fields
sm.messageTs additional.fields
sm.msgid network.email.mail_id Extrait d'une paire clé-valeur dans un champ data.
sm.nrcpts additional.fields
sm.pri additional.fields
sm.qid security_result.detection_fields
sm.stat security_result.description Extrait d'une paire clé-valeur dans un champ data.
sm.xdelay additional.fields
smtoemail network.email.to Si [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 Extrait d'une paire clé-valeur dans un champ data. Si [tls_verify] not in ["", "null", "None", "none", "NONE"].
to network.email.to Si [to] =~ "^.+@.+$".
ts metadata.event_timestamp
uinteger network.received_bytes,
network.sent_bytes
UNKNOWN_ACTION security_result.action Si [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

Référence des deltas de mappage UDM

Le 13 octobre 2026, Google SecOps a publié une nouvelle version de l'analyseur Proofpoint à la demande, qui inclut des modifications importantes du mappage des champs de journaux Proofpoint à la demande vers les champs UDM et des mises à jour des classifications des types d'événements (mappages).

Delta de mappage des champs de journal

Le tableau suivant présente les modifications apportées au mappage des champs de journaux Proofpoint à la demande avec les champs UDM. La colonne Ancien mappage liste les champs exposés avant le 13 octobre 2026, et la colonne Mappage actuel liste les nouveaux champs.

Champ du journal Ancienne correspondance Mappage actuel
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

Journal des modifications

Afficher le journal des modifications de cet analyseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.