Mengumpulkan log Proofpoint On-Demand
Parser ini mengekstrak kolom dari log JSON Proofpoint On-Demand dan mengubahnya menjadi format UDM. Fungsi ini menangani dua format log utama: satu berisi metadata email dan satu lagi berisi detail transaksi SMTP, menggunakan logika kondisional untuk mengurai kolom dengan tepat dan mengisi kolom UDM berdasarkan data yang tersedia. Parser juga melakukan pembersihan data, seperti menghapus karakter yang tidak relevan dan mengonversi stempel waktu.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda memiliki lisensi Proofpoint On Demand Remote Syslog.
- Pastikan Anda memiliki akses istimewa ke Proofpoint.
Mengonfigurasi akses Proofpoint on Demand API
- Login ke portal Admin Proofpoint.
- Salin ID Cluster, yang ditampilkan di antarmuka pengelolaan di samping nomor rilis.
- Pilih Settings > API Key Management.
- Klik Create New untuk menampilkan dialog Create New API Key.
- Masukkan Nama unik (misalnya, Google SecOps).
- Buat Kunci API.
- Pilih Lihat Detail dari menu di Kunci API baru.
- Salin Kunci API.
Mengonfigurasi feed di Google SecOps untuk menyerap log Proofpoint On Demand (PoD)
- Buka SIEM Settings > Feeds.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, Log PoD).
- Pilih Third Party API sebagai Source type.
- Pilih Proofpoint On Demand sebagai jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Header HTTP autentikasi: masukkan Kunci API Proofpoint dalam format
key:<value>
. - Cluster ID: masukkan Cluster ID Proofpoint yang Anda salin sebelumnya.
- Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Header HTTP autentikasi: masukkan Kunci API Proofpoint dalam format
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
classification |
security_result.detection_fields.classification |
Nilai berasal langsung dari kolom classification dalam log mentah. |
cluster |
security_result.detection_fields.cluster |
Nilai berasal langsung dari kolom cluster dalam log mentah. |
completelyRewritten |
security_result.detection_fields.completelyRewritten |
Nilai berasal langsung dari kolom completelyRewritten dalam log mentah. |
connection.country |
principal.location.country_or_region |
Nilai ini berasal langsung dari kolom connection.country dalam log mentah, kecuali jika nilainya adalah "**". |
connection.host |
principal.hostname |
Nilai berasal langsung dari kolom connection.host dalam log mentah. |
connection.ip |
principal.ip |
Nilai berasal langsung dari kolom connection.ip dalam log mentah, jika merupakan alamat IPv4 yang valid. Nilai ini juga digabungkan dengan senderIP jika ada. |
connection.protocol |
network.application_protocol |
Bagian protokol sebelum titik dua di connection.protocol diekstrak menggunakan gsub dan dipetakan. Misalnya, "smtp:smtp" menjadi "SMTP". |
connection.tls.inbound.cipher |
network.tls.cipher |
Nilai berasal langsung dari kolom connection.tls.inbound.cipher dalam log mentah, kecuali jika "NONE". |
connection.tls.inbound.version |
network.tls.version |
Nilai berasal langsung dari kolom connection.tls.inbound.version dalam log mentah, kecuali jika cipher-nya adalah "NONE". |
envelope.from |
network.email.from |
Nilai berasal langsung dari kolom envelope.from dalam log mentah. Nilai ini juga diganti dengan sm.from atau fromAddress jika ada. |
envelope.rcpts |
network.email.to |
Alamat email di envelope.rcpts digabungkan ke kolom network.email.to jika alamat email tersebut valid. Nilai ini juga digabungkan dengan sm.to atau toAddresses jika ada. |
envelope.rcptsHashed |
read_only_udm.additional.fields |
Alamat email yang di-hash di envelope.rcptsHashed ditambahkan sebagai kolom tambahan dengan kunci seperti "toHashed_0", "toHashed_1", dll. |
eventTime |
@timestamp |
Nilai diuraikan dari kolom eventTime menggunakan format ISO8601 atau RFC 3339. |
eventType |
security_result.summary |
Nilai berasal langsung dari kolom eventType dalam log mentah. |
filter.disposition |
security_result.action_details |
Nilai berasal langsung dari kolom filter.disposition dalam log mentah, kecuali jika tls.verify ada. |
filter.modules.av.virusNames.0 |
security_result.threat_name |
Nilai berasal langsung dari kolom filter.modules.av.virusNames.0 dalam log mentah. |
filter.modules.dmarc.authResults |
read_only_udm.additional.fields |
Metode dan hasil dari setiap entri di filter.modules.dmarc.authResults ditambahkan sebagai kolom tambahan dengan kunci seperti "authResultsMethod_0", "authResults_result_0", "authResultsMethod_1", dll. |
filter.modules.spam.langs |
read_only_udm.additional.fields |
Setiap bahasa di filter.modules.spam.langs ditambahkan sebagai kolom tambahan dengan kunci seperti "lang_0", "lang_1", dll. |
filter.modules.spam.safeBlockedListMatches.0.listType |
security_result.detection_fields.safeBlockedListMatches_listType |
Nilai berasal langsung dari kolom filter.modules.spam.safeBlockedListMatches.0.listType dalam log mentah. |
filter.modules.spam.safeBlockedListMatches.0.rule |
security_result.detection_fields.safeBlockedListMatches_rule |
Nilai berasal langsung dari kolom filter.modules.spam.safeBlockedListMatches.0.rule dalam log mentah. |
filter.modules.spam.scores.classifiers.adult |
security_result.detection_fields.adult |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.adult dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.bulk |
security_result.detection_fields.bulk |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.bulk dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.impostor |
security_result.detection_fields.impostor |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.impostor dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.lowpriority |
security_result.detection_fields.lowpriority |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.lowpriority dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.malware |
security_result.detection_fields.malware |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.malware dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.mlx |
security_result.detection_fields.mlx |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.mlx dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.mlxlog |
security_result.detection_fields.mlxlog |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.mlxlog dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.phish |
security_result.detection_fields.phish |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.phish dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.spam |
security_result.detection_fields.spam |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.spam dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.classifiers.suspect |
security_result.detection_fields.suspect |
Nilai berasal langsung dari kolom filter.modules.spam.scores.classifiers.suspect dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.engine |
security_result.detection_fields.engine |
Nilai berasal langsung dari kolom filter.modules.spam.scores.engine dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.scores.overall |
security_result.detection_fields.overall |
Nilai berasal langsung dari kolom filter.modules.spam.scores.overall dalam log mentah, jika tidak kosong atau 0. |
filter.modules.spam.version.definitions |
security_result.summary |
Nilai berasal langsung dari kolom filter.modules.spam.version.definitions dalam log mentah. |
filter.modules.spam.version.engine |
metadata.product_version |
Nilai berasal langsung dari kolom filter.modules.spam.version.engine dalam log mentah. |
filter.modules.urldefense.counts.rewritten |
read_only_udm.additional.fields.urldefenseCountsRewritten |
Nilai berasal langsung dari kolom filter.modules.urldefense.counts.rewritten dalam log mentah. |
filter.modules.urldefense.counts.total |
security_result.detection_fields.urldefense_total |
Nilai berasal langsung dari kolom filter.modules.urldefense.counts.total dalam log mentah. |
filter.modules.zerohour.score |
read_only_udm.additional.fields.zeroHourScore |
Nilai berasal langsung dari kolom filter.modules.zerohour.score dalam log mentah. |
filter.origGuid |
read_only_udm.additional.fields.origGuid |
Nilai berasal langsung dari kolom filter.origGuid dalam log mentah. |
filter.qid |
read_only_udm.additional.fields.filterQid |
Nilai berasal langsung dari kolom filter.qid dalam log mentah. |
filter.quarantine.folder |
security_result.detection_fields.filter_quarantine_folder |
Nilai berasal langsung dari kolom filter.quarantine.folder dalam log mentah. |
filter.quarantine.folderId |
security_result.detection_fields.filter_quarantine_folderId |
Nilai berasal langsung dari kolom filter.quarantine.quarantine.folderId dalam log mentah. |
filter.quarantine.module |
security_result.detection_fields.filter_quarantine_module |
Nilai berasal langsung dari kolom filter.quarantine.module dalam log mentah. |
filter.quarantine.rule |
security_result.detection_fields.filter_quarantine_rule |
Nilai berasal langsung dari kolom filter.quarantine.rule dalam log mentah. |
filter.quarantine.type |
security_result.detection_fields.filter_quarantine_type |
Nilai berasal langsung dari kolom filter.quarantine.type dalam log mentah. |
filter.routeDirection |
network.direction |
Jika filter.routeDirection adalah "inbound", network.direction ditetapkan ke "INBOUND". Jika filter.routeDirection adalah "outbound", network.direction ditetapkan ke "OUTBOUND". |
filter.routes |
read_only_udm.additional.fields |
Setiap rute di filter.routes ditambahkan sebagai kolom tambahan dengan kunci seperti "filterRoutes_0", "filterRoutes_1", dll. |
fromAddress |
network.email.from |
Alamat email di fromAddress akan diganti ke kolom network.email.from jika alamat email tersebut valid. |
guid |
metadata.product_log_id |
Nilai berasal langsung dari kolom guid dalam log mentah. |
GUID |
metadata.product_log_id |
Nilai berasal langsung dari kolom GUID dalam log mentah. |
headerFrom |
network.email.from |
Nilai berasal langsung dari kolom headerFrom dalam log mentah. |
impostorScore |
security_result.detection_fields.impostorScore |
Nilai berasal langsung dari kolom impostorScore dalam log mentah. |
malwareScore |
security_result.detection_fields.malwareScore |
Nilai berasal langsung dari kolom malwareScore dalam log mentah. |
messageID |
network.email.mail_id |
Nilai berasal langsung dari kolom messageID dalam log mentah. |
messageSize |
security_result.detection_fields.messageSize |
Nilai berasal langsung dari kolom messageSize dalam log mentah. |
messageTime |
@timestamp |
Nilai diuraikan dari kolom messageTime menggunakan format ISO8601 atau RFC 3339. |
metadata.customerId |
principal.labels.customerId |
Nilai berasal langsung dari kolom metadata.customerId dalam log mentah. |
metadata.origin.data.agent |
network.http.user_agent |
Nilai berasal langsung dari kolom metadata.origin.data.agent dalam log mentah. |
metadata.origin.data.cid |
principal.user.userid |
Nilai berasal langsung dari kolom metadata.origin.data.cid dalam log mentah. |
metadata.origin.data.version |
metadata.product_version |
Nilai berasal langsung dari kolom metadata.origin.data.version dalam log mentah. |
msg.header.from |
read_only_udm.additional.fields.msgHeaderFrom |
Nilai berasal langsung dari kolom msg.header.from.0 dalam log mentah. |
msg.header.reply-to |
network.email.reply_to |
Alamat email yang diapit <> di msg.header.reply-to.0 diekstrak dan dipetakan. |
msg.header.subject |
network.email.subject |
Nilai berasal langsung dari kolom msg.header.subject dalam log mentah. |
msg.header.to |
read_only_udm.additional.fields.msgHeaderTo |
Nilai berasal langsung dari kolom msg.header.to dalam log mentah. |
msg.normalizedHeader.subject |
network.email.subject |
Nilai berasal langsung dari kolom msg.normalizedHeader.subject dalam log mentah. |
msg.parsedAddresses.cc |
network.email.cc |
Alamat email di msg.parsedAddresses.cc digabungkan ke kolom network.email.cc jika alamat email tersebut valid. |
msg.parsedAddresses.ccHashed |
read_only_udm.additional.fields |
Alamat email yang di-hash di msg.parsedAddresses.ccHashed ditambahkan sebagai kolom tambahan dengan kunci seperti "ccHashed_0", "ccHashed_1", dll. |
msg.parsedAddresses.from |
read_only_udm.additional.fields.msgParsedAddressesFrom |
Nilai berasal langsung dari kolom msg.parsedAddresses.from.0 dalam log mentah. |
msg.parsedAddresses.from.0 |
principal.user.email_addresses |
Nilai berasal langsung dari kolom msg.parsedAddresses.from.0 dalam log mentah. |
msg.parsedAddresses.fromHashed |
read_only_udm.additional.fields.fromHashed |
Nilai berasal langsung dari kolom msg.parsedAddresses.fromHashed.0 dalam log mentah. |
msg.parsedAddresses.to |
target.user.email_addresses |
Alamat email di msg.parsedAddresses.to digabungkan ke kolom target.user.email_addresses jika alamat email tersebut valid. |
msgParts |
read_only_udm.about |
Beberapa objek tentang dibuat, satu untuk setiap entri di msgParts . Hash file, jenis MIME, ukuran, dan metadata lainnya diekstrak. |
QID |
security_result.detection_fields.QID |
Nilai berasal langsung dari kolom QID dalam log mentah. |
recipient |
target.user.email_addresses |
Alamat email di recipient digabungkan ke kolom target.user.email_addresses jika alamat email tersebut valid. |
replyToAddress |
network.email.reply_to |
Alamat email di replyToAddress akan diganti ke kolom network.email.reply_to jika alamat email tersebut valid. |
sender |
principal.user.email_addresses |
Nilai berasal langsung dari kolom sender dalam log mentah, jika merupakan alamat email yang valid. |
senderIP |
principal.ip |
Nilai berasal langsung dari kolom senderIP dalam log mentah. |
sm.from |
network.email.from |
Nilai berasal langsung dari kolom sm.from dalam log mentah. |
sm.msgid |
network.email.mail_id |
Nilai berasal langsung dari kolom sm.msgid dalam log mentah, setelah menghapus "<" dan ">". |
sm.proto |
network.application_protocol |
Nilai berasal langsung dari kolom sm.proto dalam log mentah. |
sm.qid |
security_result.detection_fields.QUID |
Nilai berasal langsung dari kolom sm.qid dalam log mentah. |
sm.relay |
intermediary.hostname , intermediary.ip |
Nama host dan alamat IP diekstrak dari sm.relay menggunakan grok. |
sm.stat |
security_result.detection_fields.Stat |
Kata pertama sm.stat diekstrak menggunakan grok dan dipetakan. |
sm.to |
network.email.to |
Alamat email di sm.to digabungkan ke kolom network.email.to jika alamat email tersebut valid. |
spamScore |
security_result.detection_fields.spamScore |
Nilai berasal langsung dari kolom spamScore dalam log mentah. |
subject |
network.email.subject |
Nilai berasal langsung dari kolom subject dalam log mentah. |
threat |
security_result.detection_fields.threat |
Nilai berasal langsung dari kolom threat dalam log mentah. |
threatsInfoMap |
security_result.detection_fields |
Pasangan nilai kunci dari setiap entri di threatsInfoMap ditambahkan sebagai kolom deteksi. |
threatType |
security_result.detection_fields.threatType |
Nilai berasal langsung dari kolom threatType dalam log mentah. |
tls.cipher |
network.tls.cipher |
Nilai berasal langsung dari kolom tls.cipher dalam log mentah, kecuali jika "NONE". |
tls.verify |
security_result.action_details |
Nilai berasal langsung dari kolom tls.verify dalam log mentah. |
tls.version |
network.tls.version |
Nilai berasal langsung dari kolom tls.version dalam log mentah, kecuali jika cipher-nya adalah "NONE". |
toAddresses |
network.email.to |
Alamat email di toAddresses digabungkan ke kolom network.email.to jika alamat email tersebut valid. |
ts |
@timestamp |
Nilai diuraikan dari kolom ts menggunakan format ISO8601 atau RFC 3339, setelah beberapa pra-pemrosesan untuk menangani detik pecahan tambahan. |
Perubahan
2024-11-28
- Peningkatan:
- Memetakan "msgParts.metadata.company" dan "msgParts.metadata.author" ke "security_result.detection_fields".
- Menghapus pemetaan duplikat "email.subject".
- Mengubah pemetaan kolom "filter.modules.dmarc.authResults" dari "additional.fields" menjadi "security_result.detection_fields".
2024-08-28
- Peningkatan:
- Mengubah kunci "security_result.detection_fields" dari "filterQid" menjadi "qid".
2024-08-21
- Peningkatan:
- Memetakan "metadata.origin.data.cid" ke "additional.fields".
2024-07-22
- Peningkatan:
- Jika "about.file.size" adalah Bilangan Bulat Tanpa Tanda yang valid, maka pemeta "msgPart.detectedSizeBytes" ke "about.file.size".
- Menambahkan dukungan untuk pola log SYSLOG baru.
2024-07-09
- Peningkatan:
- Memetakan "msg.header.x-mailer" ke "additional.fields".
2024-07-09
- Peningkatan:
- Memetakan "msg.header.x-mailer" ke "additional.fields".
2023-11-13
- Memetakan "subject" ke "network.email.subject".
- Memetakan "messageID" ke "network.email.mail_id".
- Memetakan "fromAddress" ke "network.email.from".
- Memetakan "ccAddresses" ke "network.email.cc".
- Memetakan "replyToAddress" ke "network.email.reply_to".
- Memetakan "toAddresses" ke "network.email.to".
- Memetakan "sender" ke "principal.user.email_addresses".
- Memetakan "senderIP" ke "principal.ip".
- Memetakan "recipient" ke "target.user.email_addresses".
- Memetakan "spamScore", "phishScore", "threatsInfoMap", "impostorScore", "malwareScore", "" ke "security_result.detection_fields".
2023-10-26
- Memetakan "msg.headeparsedAddressesr.from.0" ke "principal.user.email_addresses".
- Pemetaan yang diubah dari menggunakan kolom UDM yang tidak digunakan lagi ke kolom alternatif.
- Menambahkan pemetaan dari "about.labels" ke "about.resource.attribute.labels".
- Menambahkan pemetaan dari "principal.labels" ke "principal.resource.attribute.labels".
2023-06-05
- Menambahkan pemeriksaan ke "msg.header.reply-to.0" sebelum pemetaan ke UDM untuk memeriksa apakah itu adalah array email.
- Menambahkan pemeriksaan bukan "-1" ke "msgPart.detectedSizeBytes" sebelum pemetaan ke UDM.
2022-07-14
- Peningkatan untuk memetakan elemen berikut ke elemen UDM:
- Mapped langs to additional.fields.
- Menempatkan definisi ke security_result.summary.
- Mesin yang dipetakan ke metadata.product_version.
2022-06-29
- Peningkatan - Menambahkan gsub untuk menghapus '<>' dari kolom 'sm.msgid' dan 'msg.header.message-id.0' yang dipetakan ke 'network.email.mail_id'.
2022-05-20
- Peningkatan untuk memetakan elemen berikut ke elemen UDM:
- Memetakan 'tls.verify', 'filter.disposition' ke 'security_result.action_details'.
- Memetakan 'filter.modules.dmarc.authResults.result' ke 'additional.fields'.
- Memetakan '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' ke 'security_result.detection_fields'.
2022-04-13
- Peningkatan untuk memetakan elemen berikut ke elemen UDM:
- Memetakan filter.modules.av.virusNames ke 'security_result.threat_name'.