Proofpoint On-Demand-Logs erfassen
Dieser Parser extrahiert Felder aus Proofpoint On-Demand-JSON-Logs und wandelt sie in das UDM-Format um. Es werden zwei primäre Protokollformate verarbeitet: eines mit E-Mail-Metadaten und das andere mit SMTP-Transaktionsdetails. Dabei werden Felder mithilfe bedingter Logik entsprechend geparst und die UDM-Felder anhand der verfügbaren Daten ausgefüllt. Der Parser führt auch eine Datenbereinigung durch, z. B. das Entfernen von überflüssigen Zeichen und das Konvertieren von Zeitstempeln.
Hinweise
- Sie benötigen eine Google Security Operations-Instanz.
- Sie benötigen die Lizenz für Proofpoint On Demand Remote Syslog.
- Sie benötigen erhöhte Zugriffsrechte für Proofpoint.
Zugriff auf die Proofpoint on Demand API konfigurieren
- Melden Sie sich im Proofpoint Admin-Portal an.
- Kopieren Sie Ihre Cluster-ID, die in der Verwaltungsoberfläche neben der Release-Nummer angezeigt wird.
- Wählen Sie Einstellungen > API-Schlüsselverwaltung aus.
- Klicken Sie auf Neu erstellen, um das Dialogfeld Neuen API-Schlüssel erstellen aufzurufen.
- Geben Sie einen eindeutigen Namen ein, z. B. Google SecOps.
- Generieren Sie den API-Schlüssel.
- Wählen Sie im Menü des neuen API-Schlüssels die Option Details ansehen aus.
- Kopieren Sie den API-Schlüssel.
Feed in Google SecOps für die Aufnahme von PoD-Logs (Proofpoint On Demand) konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. PoD-Protokolle.
- Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie als Logtyp Proofpoint On Demand aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- HTTP-Authentifizierungsheader: Geben Sie den Proofpoint API-Schlüssel im
key:<value>
-Format ein. - Cluster-ID: Geben Sie die zuvor kopierte Proofpoint-Cluster-ID ein.
- Asset-Namespace: der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- HTTP-Authentifizierungsheader: Geben Sie den Proofpoint API-Schlüssel im
- Klicken Sie auf Weiter.
- Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
classification |
security_result.detection_fields.classification |
Der Wert stammt direkt aus dem Feld classification im Rohprotokoll. |
cluster |
security_result.detection_fields.cluster |
Der Wert stammt direkt aus dem Feld cluster im Rohprotokoll. |
completelyRewritten |
security_result.detection_fields.completelyRewritten |
Der Wert stammt direkt aus dem Feld completelyRewritten im Rohprotokoll. |
connection.country |
principal.location.country_or_region |
Der Wert stammt direkt aus dem Feld connection.country im Rohprotokoll, es sei denn, er lautet „**“. |
connection.host |
principal.hostname |
Der Wert stammt direkt aus dem Feld connection.host im Rohprotokoll. |
connection.ip |
principal.ip |
Der Wert stammt direkt aus dem Feld connection.ip im Rohprotokoll, sofern es sich um eine gültige IPv4-Adresse handelt. Außerdem wird es mit senderIP zusammengeführt, falls vorhanden. |
connection.protocol |
network.application_protocol |
Der Protokollteil vor dem Doppelpunkt in connection.protocol wird mit gsub extrahiert und zugeordnet. Beispiel: „smtp:smtp“ wird zu „SMTP“. |
connection.tls.inbound.cipher |
network.tls.cipher |
Der Wert stammt direkt aus dem Feld connection.tls.inbound.cipher im Rohprotokoll, es sei denn, er lautet „NONE“. |
connection.tls.inbound.version |
network.tls.version |
Der Wert stammt direkt aus dem Feld connection.tls.inbound.version im Rohprotokoll, es sei denn, die Chiffre lautet „NONE“. |
envelope.from |
network.email.from |
Der Wert stammt direkt aus dem Feld envelope.from im Rohprotokoll. Es wird auch durch sm.from oder fromAddress ersetzt, falls vorhanden. |
envelope.rcpts |
network.email.to |
Die E-Mail-Adressen in envelope.rcpts werden mit dem Feld network.email.to zusammengeführt, sofern sie gültig sind. Außerdem wird es mit sm.to oder toAddresses zusammengeführt, falls vorhanden. |
envelope.rcptsHashed |
read_only_udm.additional.fields |
Die gehashten E-Mail-Adressen in envelope.rcptsHashed werden als zusätzliche Felder mit Schlüsseln wie „toHashed_0“, „toHashed_1“ usw. hinzugefügt. |
eventTime |
@timestamp |
Der Wert wird aus dem Feld eventTime im ISO 8601- oder RFC 3339-Format geparst. |
eventType |
security_result.summary |
Der Wert stammt direkt aus dem Feld eventType im Rohprotokoll. |
filter.disposition |
security_result.action_details |
Der Wert stammt direkt aus dem Feld filter.disposition im Rohprotokoll, sofern tls.verify nicht vorhanden ist. |
filter.modules.av.virusNames.0 |
security_result.threat_name |
Der Wert stammt direkt aus dem Feld filter.modules.av.virusNames.0 im Rohprotokoll. |
filter.modules.dmarc.authResults |
read_only_udm.additional.fields |
Die Methode und das Ergebnis aus jedem Eintrag in filter.modules.dmarc.authResults werden als zusätzliche Felder mit Schlüsseln wie „authResultsMethod_0“, „authResults_result_0“ und „authResultsMethod_1“ hinzugefügt. |
filter.modules.spam.langs |
read_only_udm.additional.fields |
Jede Sprache in filter.modules.spam.langs wird als zusätzliches Feld mit Schlüsseln wie „lang_0“, „lang_1“ usw. hinzugefügt. |
filter.modules.spam.safeBlockedListMatches.0.listType |
security_result.detection_fields.safeBlockedListMatches_listType |
Der Wert stammt direkt aus dem Feld filter.modules.spam.safeBlockedListMatches.0.listType im Rohprotokoll. |
filter.modules.spam.safeBlockedListMatches.0.rule |
security_result.detection_fields.safeBlockedListMatches_rule |
Der Wert stammt direkt aus dem Feld filter.modules.spam.safeBlockedListMatches.0.rule im Rohprotokoll. |
filter.modules.spam.scores.classifiers.adult |
security_result.detection_fields.adult |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.adult im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.bulk |
security_result.detection_fields.bulk |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.bulk im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.impostor |
security_result.detection_fields.impostor |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.impostor im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.lowpriority |
security_result.detection_fields.lowpriority |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.lowpriority im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.malware |
security_result.detection_fields.malware |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.malware im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.mlx |
security_result.detection_fields.mlx |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.mlx im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.mlxlog |
security_result.detection_fields.mlxlog |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.mlxlog im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.phish |
security_result.detection_fields.phish |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.phish im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.spam |
security_result.detection_fields.spam |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.spam im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.classifiers.suspect |
security_result.detection_fields.suspect |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.classifiers.suspect im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.engine |
security_result.detection_fields.engine |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.engine im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.scores.overall |
security_result.detection_fields.overall |
Der Wert stammt direkt aus dem Feld filter.modules.spam.scores.overall im Rohprotokoll, sofern es nicht leer oder 0 ist. |
filter.modules.spam.version.definitions |
security_result.summary |
Der Wert stammt direkt aus dem Feld filter.modules.spam.version.definitions im Rohprotokoll. |
filter.modules.spam.version.engine |
metadata.product_version |
Der Wert stammt direkt aus dem Feld filter.modules.spam.version.engine im Rohprotokoll. |
filter.modules.urldefense.counts.rewritten |
read_only_udm.additional.fields.urldefenseCountsRewritten |
Der Wert stammt direkt aus dem Feld filter.modules.urldefense.counts.rewritten im Rohprotokoll. |
filter.modules.urldefense.counts.total |
security_result.detection_fields.urldefense_total |
Der Wert stammt direkt aus dem Feld filter.modules.urldefense.counts.total im Rohprotokoll. |
filter.modules.zerohour.score |
read_only_udm.additional.fields.zeroHourScore |
Der Wert stammt direkt aus dem Feld filter.modules.zerohour.score im Rohprotokoll. |
filter.origGuid |
read_only_udm.additional.fields.origGuid |
Der Wert stammt direkt aus dem Feld filter.origGuid im Rohprotokoll. |
filter.qid |
read_only_udm.additional.fields.filterQid |
Der Wert stammt direkt aus dem Feld filter.qid im Rohprotokoll. |
filter.quarantine.folder |
security_result.detection_fields.filter_quarantine_folder |
Der Wert stammt direkt aus dem Feld filter.quarantine.folder im Rohprotokoll. |
filter.quarantine.folderId |
security_result.detection_fields.filter_quarantine_folderId |
Der Wert stammt direkt aus dem Feld filter.quarantine.quarantine.folderId im Rohprotokoll. |
filter.quarantine.module |
security_result.detection_fields.filter_quarantine_module |
Der Wert stammt direkt aus dem Feld filter.quarantine.module im Rohprotokoll. |
filter.quarantine.rule |
security_result.detection_fields.filter_quarantine_rule |
Der Wert stammt direkt aus dem Feld filter.quarantine.rule im Rohprotokoll. |
filter.quarantine.type |
security_result.detection_fields.filter_quarantine_type |
Der Wert stammt direkt aus dem Feld filter.quarantine.type im Rohprotokoll. |
filter.routeDirection |
network.direction |
Wenn filter.routeDirection „eingehend“ ist, wird network.direction auf „INBOUND“ gesetzt. Wenn filter.routeDirection „outbound“ ist, wird network.direction auf „OUTBOUND“ gesetzt. |
filter.routes |
read_only_udm.additional.fields |
Jede Route in filter.routes wird als zusätzliches Feld mit Schlüsseln wie „filterRoutes_0“, „filterRoutes_1“ usw. hinzugefügt. |
fromAddress |
network.email.from |
Die E-Mail-Adressen in fromAddress werden im Feld network.email.from ersetzt, sofern sie gültig sind. |
guid |
metadata.product_log_id |
Der Wert stammt direkt aus dem Feld guid im Rohprotokoll. |
GUID |
metadata.product_log_id |
Der Wert stammt direkt aus dem Feld GUID im Rohprotokoll. |
headerFrom |
network.email.from |
Der Wert stammt direkt aus dem Feld headerFrom im Rohprotokoll. |
impostorScore |
security_result.detection_fields.impostorScore |
Der Wert stammt direkt aus dem Feld impostorScore im Rohprotokoll. |
malwareScore |
security_result.detection_fields.malwareScore |
Der Wert stammt direkt aus dem Feld malwareScore im Rohprotokoll. |
messageID |
network.email.mail_id |
Der Wert stammt direkt aus dem Feld messageID im Rohprotokoll. |
messageSize |
security_result.detection_fields.messageSize |
Der Wert stammt direkt aus dem Feld messageSize im Rohprotokoll. |
messageTime |
@timestamp |
Der Wert wird aus dem Feld messageTime im ISO 8601- oder RFC 3339-Format geparst. |
metadata.customerId |
principal.labels.customerId |
Der Wert stammt direkt aus dem Feld metadata.customerId im Rohprotokoll. |
metadata.origin.data.agent |
network.http.user_agent |
Der Wert stammt direkt aus dem Feld metadata.origin.data.agent im Rohprotokoll. |
metadata.origin.data.cid |
principal.user.userid |
Der Wert stammt direkt aus dem Feld metadata.origin.data.cid im Rohprotokoll. |
metadata.origin.data.version |
metadata.product_version |
Der Wert stammt direkt aus dem Feld metadata.origin.data.version im Rohprotokoll. |
msg.header.from |
read_only_udm.additional.fields.msgHeaderFrom |
Der Wert stammt direkt aus dem Feld msg.header.from.0 im Rohprotokoll. |
msg.header.reply-to |
network.email.reply_to |
Die in msg.header.reply-to.0 in <> eingeschlossene E-Mail-Adresse wird extrahiert und zugeordnet. |
msg.header.subject |
network.email.subject |
Der Wert stammt direkt aus dem Feld msg.header.subject im Rohprotokoll. |
msg.header.to |
read_only_udm.additional.fields.msgHeaderTo |
Der Wert stammt direkt aus dem Feld msg.header.to im Rohprotokoll. |
msg.normalizedHeader.subject |
network.email.subject |
Der Wert stammt direkt aus dem Feld msg.normalizedHeader.subject im Rohprotokoll. |
msg.parsedAddresses.cc |
network.email.cc |
Die E-Mail-Adressen in msg.parsedAddresses.cc werden mit dem Feld network.email.cc zusammengeführt, sofern sie gültig sind. |
msg.parsedAddresses.ccHashed |
read_only_udm.additional.fields |
Die gehashten E-Mail-Adressen in msg.parsedAddresses.ccHashed werden als zusätzliche Felder mit Schlüsseln wie „ccHashed_0“, „ccHashed_1“ usw. hinzugefügt. |
msg.parsedAddresses.from |
read_only_udm.additional.fields.msgParsedAddressesFrom |
Der Wert stammt direkt aus dem Feld msg.parsedAddresses.from.0 im Rohprotokoll. |
msg.parsedAddresses.from.0 |
principal.user.email_addresses |
Der Wert stammt direkt aus dem Feld msg.parsedAddresses.from.0 im Rohprotokoll. |
msg.parsedAddresses.fromHashed |
read_only_udm.additional.fields.fromHashed |
Der Wert stammt direkt aus dem Feld msg.parsedAddresses.fromHashed.0 im Rohprotokoll. |
msg.parsedAddresses.to |
target.user.email_addresses |
Die E-Mail-Adressen in msg.parsedAddresses.to werden mit dem Feld target.user.email_addresses zusammengeführt, sofern sie gültig sind. |
msgParts |
read_only_udm.about |
Es werden mehrere „about“-Objekte erstellt, eines für jeden Eintrag in msgParts . Es werden Datei-Hashes, MIME-Typ, Größe und andere Metadaten extrahiert. |
QID |
security_result.detection_fields.QID |
Der Wert stammt direkt aus dem Feld QID im Rohprotokoll. |
recipient |
target.user.email_addresses |
Die E-Mail-Adressen in recipient werden mit dem Feld target.user.email_addresses zusammengeführt, sofern sie gültig sind. |
replyToAddress |
network.email.reply_to |
Die E-Mail-Adressen in replyToAddress werden im Feld network.email.reply_to ersetzt, sofern sie gültig sind. |
sender |
principal.user.email_addresses |
Der Wert stammt direkt aus dem Feld sender im Roh-Log, sofern es sich um eine gültige E-Mail-Adresse handelt. |
senderIP |
principal.ip |
Der Wert stammt direkt aus dem Feld senderIP im Rohprotokoll. |
sm.from |
network.email.from |
Der Wert stammt direkt aus dem Feld sm.from im Rohprotokoll. |
sm.msgid |
network.email.mail_id |
Der Wert stammt direkt aus dem Feld sm.msgid im Rohprotokoll, nachdem „<“ und „>“ entfernt wurden. |
sm.proto |
network.application_protocol |
Der Wert stammt direkt aus dem Feld sm.proto im Rohprotokoll. |
sm.qid |
security_result.detection_fields.QUID |
Der Wert stammt direkt aus dem Feld sm.qid im Rohprotokoll. |
sm.relay |
intermediary.hostname , intermediary.ip |
Der Hostname und die IP-Adresse werden mithilfe von Grok aus sm.relay extrahiert. |
sm.stat |
security_result.detection_fields.Stat |
Das erste Wort von sm.stat wird mit grok extrahiert und zugeordnet. |
sm.to |
network.email.to |
Die E-Mail-Adressen in sm.to werden mit dem Feld network.email.to zusammengeführt, sofern sie gültig sind. |
spamScore |
security_result.detection_fields.spamScore |
Der Wert stammt direkt aus dem Feld spamScore im Rohprotokoll. |
subject |
network.email.subject |
Der Wert stammt direkt aus dem Feld subject im Rohprotokoll. |
threat |
security_result.detection_fields.threat |
Der Wert stammt direkt aus dem Feld threat im Rohprotokoll. |
threatsInfoMap |
security_result.detection_fields |
Schlüssel/Wert-Paare aus jedem Eintrag in threatsInfoMap werden als Erkennungsfelder hinzugefügt. |
threatType |
security_result.detection_fields.threatType |
Der Wert stammt direkt aus dem Feld threatType im Rohprotokoll. |
tls.cipher |
network.tls.cipher |
Der Wert stammt direkt aus dem Feld tls.cipher im Rohprotokoll, es sei denn, er lautet „NONE“. |
tls.verify |
security_result.action_details |
Der Wert stammt direkt aus dem Feld tls.verify im Rohprotokoll. |
tls.version |
network.tls.version |
Der Wert stammt direkt aus dem Feld tls.version im Rohprotokoll, es sei denn, die Chiffre lautet „NONE“. |
toAddresses |
network.email.to |
Die E-Mail-Adressen in toAddresses werden in das Feld network.email.to zusammengeführt, sofern sie gültig sind. |
ts |
@timestamp |
Der Wert wird aus dem Feld ts im ISO 8601- oder RFC 3339-Format geparst, nachdem einige Vorverarbeitungen zur Verarbeitung zusätzlicher Sekundenbruchteile durchgeführt wurden. |
Änderungen
2024-11-28
- Verbesserung:
- „msgParts.metadata.company“ und „msgParts.metadata.author“ wurden in „security_result.detection_fields“ umgewandelt.
- Doppelte Zuordnung von „email.subject“ entfernt.
- Die Zuordnung der Felder „filter.modules.dmarc.authResults.“ wurde von „additional.fields“ zu „security_result.detection_fields“ geändert.
2024-08-28
- Verbesserung:
- Der Schlüssel „security_result.detection_fields“ wurde von „filterQid“ zu „qid“ geändert.
2024-08-21
- Verbesserung:
- „metadata.origin.data.cid“ wurde in „additional.fields“ umgewandelt.
2024-07-22
- Verbesserung:
- Wenn „about.file.size“ eine gültige Ganzzahl ohne Vorzeichen ist, wird „msgPart.detectedSizeBytes“ auf „about.file.size“ zugeordnet.
- Unterstützung für ein neues Muster von SYSLOG-Protokollen hinzugefügt.
2024-07-09
- Verbesserung:
- „msg.header.x-mailer“ wurde in „additional.fields“ geändert.
2024-07-09
- Verbesserung:
- „msg.header.x-mailer“ wurde in „additional.fields“ geändert.
2023-11-13
- „subject“ wurde „network.email.subject“ zugeordnet.
- „messageID“ wurde zu „network.email.mail_id“ zugeordnet.
- „fromAddress“ wurde „network.email.from“ zugeordnet.
- „ccAddresses“ wurde zu „network.email.cc“ zugeordnet.
- „replyToAddress“ wurde mit „network.email.reply_to“ verknüpft.
- „toAddresses“ wurde zu „network.email.to“ zugeordnet.
- „sender“ wurde „principal.user.email_addresses“ zugeordnet.
- „senderIP“ wurde „principal.ip“ zugeordnet.
- „recipient“ wurde „target.user.email_addresses“ zugeordnet.
- „spamScore“, „phishScore“, „threatsInfoMap“, „impostorScore“, „malwareScore“ und „“ wurden in „security_result.detection_fields“ zugeordnet.
2023-10-26
- „msg.headeparsedAddressesr.from.0“ wurde in „principal.user.email_addresses“ geändert.
- Die Zuordnungen wurden von veralteten UDM-Feldern auf alternative Felder umgestellt.
- Zuordnung von „about.labels“ zu „about.resource.attribute.labels“ hinzugefügt.
- Zuordnung von „principal.labels“ zu „principal.resource.attribute.labels“ hinzugefügt.
2023-06-05
- Vor der Zuordnung zu UDM wurde eine Prüfung für „msg.header.reply-to.0“ hinzugefügt, um zu prüfen, ob es sich um ein Array von E-Mails handelt.
- Vor der Zuordnung zu UDM wurde „msgPart.detectedSizeBytes“ die Prüfung auf „nicht -1“ hinzugefügt.
2022-07-14
- Verbesserung bei der Zuordnung des folgenden Elements zum UDM-Element:
- Zugeordnete Sprachen zu „additional.fields“
- Zuordnung von Definitionen zu „security_result.summary“
- Engine wurde metadata.product_version zugeordnet.
2022-06-29
- Verbesserung: Es wurde die Funktion „gsub“ hinzugefügt, um „<>“ aus den Feldern „sm.msgid“ und „msg.header.message-id.0“ zu entfernen, die auf „network.email.mail_id“ zugeordnet sind.
2022-05-20
- Verbesserungen bei der Zuordnung der folgenden Elemente zu UDM-Elementen:
- „tls.verify“ und „filter.disposition“ wurden „security_result.action_details“ zugeordnet.
- „filter.modules.dmarc.authResults.result“ wurde „additional.fields“ zugeordnet.
- Die folgenden Felder wurden auf 'security_result.detection_fields' umgestellt: „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“.
2022-04-13
- Verbesserung bei der Zuordnung des folgenden Elements zum UDM-Element:
- „filter.modules.av.virusNames“ wurde in „security_result.threat_name“ ummapped.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten