Proofpoint On-Demand のログを収集する
このドキュメントでは、組み込みの API 統合を使用して Proofpoint On-Demand ログを Google Security Operations に取り込む方法について説明します。パーサーは JSON ログからフィールドを抽出し、Chronicle UDM 形式に変換します。メールのメタデータを含むログ形式と SMTP トランザクションの詳細を含むログ形式の 2 つの主要なログ形式を処理します。条件付きロジックを使用してフィールドを適切に解析し、利用可能なデータに基づいて統合データモデル(UDM)フィールドにデータを入力します。また、パーサーは、不要な文字の削除やタイムスタンプの変換などのデータ クリーニングも行います。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Proofpoint On-Demand Remote Syslog ライセンス
- Proofpoint への特権アクセス
Proofpoint On-Demand の API アクセスを構成する
- Proofpoint Admin ポータルにログインします。
- クラスタ ID をコピーします(管理インターフェースの右上隅にリリース番号の横に表示されます)。
- [設定] > [API キーの管理] に移動します。
- [Create New] をクリックして、[Create New API Key] ダイアログを開きます。
- 一意の名前を入力します(例:
Google SecOps Key
)。 - API キーを生成します。
- 新しい API キーの省略記号メニューから [View Details] を選択します。
- API キーをコピーします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
PoD Logs
)。 - [ソースタイプ] として [サードパーティ API] を選択します。
- [Proofpoint On-Demand] ログタイプを選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Authentication HTTP headers: Proofpoint API キーを
Authorization: Bearer {API_KEY}
形式で入力し、次の WebSocket-Key データSec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==
を含む新しい行を追加します。 - Cluster ID: 先ほどコピーした Proofpoint クラスタ ID を入力します。
- Authentication HTTP headers: Proofpoint API キーを
[次へ] をクリックします。
[Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Authentication HTTP headers: Proofpoint API キーを
Authorization: Bearer {API_KEY}
形式で入力し、次の WebSocket-Key データSec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==
を新しい行に追加します。 - Cluster ID: 先ほどコピーした Proofpoint クラスタ ID を入力します。
詳細オプション
- フィード名: フィードを識別する値が事前入力されています。
- ソースタイプ: ログを Google SecOps に収集するために使用される方法。
- アセット Namespace: フィードに関連付けられた Namespace。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
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 が存在する場合は、それと統合されます。 |
connection.protocol |
network.application_protocol |
connection.protocol のコロンの前のプロトコル部分が gsub を使用して抽出され、マッピングされます。たとえば、「smtp:smtp」は「SMTP」になります。 |
connection.tls.inbound.cipher |
network.tls.cipher |
この値は、未加工ログの connection.tls.inbound.cipher フィールドから直接取得されます(「NONE」の場合を除く)。 |
connection.tls.inbound.version |
network.tls.version |
この値は、暗号が「NONE」でない限り、未加工ログの connection.tls.inbound.version フィールドから直接取得されます。 |
envelope.from |
network.email.from |
この値は、未加工ログの envelope.from フィールドから直接取得されます。また、存在する場合は 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 が「inbound」の場合、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 |
複数の about オブジェクトが作成されます。msgParts のエントリごとに 1 つ作成されます。ファイル ハッシュ、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 の各エントリの Key-Value ペアが検出フィールドとして追加されます。 |
threatType |
security_result.detection_fields.threatType |
この値は、未加工ログの threatType フィールドから直接取得されます。 |
tls.cipher |
network.tls.cipher |
この値は、未加工ログの tls.cipher フィールドから直接取得されます(「NONE」の場合を除く)。 |
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 フィールドから解析されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。