Proofpoint On Demand 로그 수집

다음에서 지원:

이 파서는 Proofpoint 주문형 JSON 로그에서 필드를 추출하여 UDM 형식으로 변환합니다. 이 파서는 이메일 메타데이터가 포함된 로그 형식과 SMTP 트랜잭션 세부정보가 포함된 로그 형식, 두 가지 기본 로그 형식을 처리하며, 조건부 로직을 사용하여 필드를 적절하게 파싱하고 사용 가능한 데이터를 기반으로 UDM 필드를 채웁니다. 또한 파서는 불필요한 문자 삭제, 타임스탬프 변환과 같은 데이터 정리를 실행합니다.

시작하기 전에

  • Google Security Operations 인스턴스가 있는지 확인합니다.
  • Proofpoint On Demand Remote Syslog 라이선스가 있는지 확인합니다.
  • Proofpoint에 대한 권한이 있는지 확인합니다.

Proofpoint On Demand API 액세스 구성

  1. Proofpoint 관리 포털에 로그인합니다.
  2. 관리 인터페이스의 출시 번호 옆에 표시되는 클러스터 ID를 복사합니다.
  3. 설정 > API 키 관리를 선택합니다.
  4. 새로 만들기를 클릭하여 새 API 키 만들기 대화상자를 표시합니다.
  5. 고유한 이름을 입력합니다 (예: Google SecOps).
  6. API 키를 생성합니다.
  7. 새 API 키의 메뉴에서 세부정보 보기를 선택합니다.
  8. API 키를 복사합니다.

Proofpoint On Demand (PoD) 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: PoD 로그).
  4. 소스 유형으로 서드 파티 API를 선택합니다.
  5. 로그 유형으로 Proofpoint On Demand를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.
    • 인증 HTTP 헤더: Proofpoint API 키를 key:<value> 형식으로 입력합니다.
    • 클러스터 ID: 앞에서 복사한 Proofpoint 클러스터 ID를 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

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 값은 유효한 IPv4 주소인 경우 원시 로그의 connection.ip 필드에서 직접 가져옵니다. senderIP가 있는 경우 senderIP와 병합됩니다.
connection.protocol network.application_protocol connection.protocol의 콜론 앞에 있는 프로토콜 부분은 gsub을 사용하여 추출되고 매핑됩니다. 예를 들어 'smtp:smtp'는 'SMTP'가 됩니다.
connection.tls.inbound.cipher network.tls.cipher 값은 '없음'이 아닌 한 원시 로그의 connection.tls.inbound.cipher 필드에서 직접 가져옵니다.
connection.tls.inbound.version network.tls.version 값은 암호화 방식이 'NONE'이 아닌 한 원시 로그의 connection.tls.inbound.version 필드에서 직접 가져옵니다.
envelope.from network.email.from 이 값은 원시 로그의 envelope.from 필드에서 직접 가져옵니다. sm.from 또는 fromAddress가 있는 경우 sm.from 또는 fromAddress로 대체됩니다.
envelope.rcpts network.email.to envelope.rcpts의 이메일 주소가 유효한 이메일 주소인 경우 network.email.to 필드에 병합됩니다. sm.to 또는 toAddresses(있는 경우)와도 병합됩니다.
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 값은 tls.verify가 없는 한 원시 로그의 filter.disposition 필드에서 직접 가져옵니다.
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가 '인바운드'인 경우 network.direction은 'INBOUND'로 설정됩니다. filter.routeDirection가 'outbound'인 경우 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 msgParts의 항목마다 하나씩 여러 개의 about 객체가 생성됩니다. 파일 해시, 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.hostname, intermediary.ip 호스트 이름과 IP 주소는 grok를 사용하여 sm.relay에서 추출됩니다.
sm.stat security_result.detection_fields.Stat sm.stat의 첫 번째 단어는 grok를 사용하여 추출되고 매핑됩니다.
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 필드에서 직접 가져옵니다.
tls.verify security_result.action_details 이 값은 원시 로그의 tls.verify 필드에서 직접 가져옵니다.
tls.version network.tls.version 값은 암호화 방식이 'NONE'이 아닌 한 원시 로그의 tls.version 필드에서 직접 가져옵니다.
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'에 매핑되었습니다.
  • 'recipient'가 '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

  • UDM에 매핑하기 전에 'msg.header.reply-to.0'이 이메일 배열인지 확인하는 검사를 추가했습니다.
  • UDM에 매핑하기 전에 'msgPart.detectedSizeBytes'에 '-1'이 아닌지 확인을 추가했습니다.

2022-07-14

  • 다음 요소를 UDM 요소에 매핑하도록 개선되었습니다.
  • langs가 additional.fields에 매핑되었습니다.
  • 정의가 security_result.summary에 매핑되었습니다.
  • 엔진을 metadata.product_version에 매핑했습니다.

2022-06-29

  • 개선사항: 'network.email.mail_id'에 매핑된 'sm.msgid' 및 'msg.header.message-id.0' 필드에서 '<>'를 삭제하는 gsub가 추가되었습니다.

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 전문가의 답변을 받으세요.