Zscaler DLP のログを収集する

以下でサポートされています。

このドキュメントでは、Google Security Operations フィードを設定して Zscaler DLP のログをエクスポートする方法と、ログフィールドが Google SecOps 統合データモデル(UDM)フィールドにマッピングする方法について説明します。

詳細については、Google SecOps へのデータの取り込みの概要をご覧ください。

一般的なデプロイは、Zscaler DLP と、Google SecOps にログを送信するように構成された Google SecOps Webhook フィードで構成されます。お客様のデプロイはそれぞれ異なり、より複雑になる場合もあります。

デプロイには次のコンポーネントが含まれます。

  • Zscaler DLP: ログを収集するプラットフォーム。

  • Google SecOps フィード: Zscaler DLP からログを取得し、Google SecOps にログを書き込む Google SecOps フィード。

  • Google Security Operations: ログを保持して分析します。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。 このドキュメントの情報は、ZSCALER_DLP ラベルが付加されたパーサーに適用されます。

始める前に

  • Zscaler Internet Access コンソールにアクセスできることを確認します。詳細については、インターネットと SaaS への安全なアクセス ZIA のヘルプをご覧ください。
  • Zscaler DLP 2024 以降を使用していることを確認します。
  • デプロイ アーキテクチャ内のすべてのシステムが、UTC タイムゾーンで構成されていることを確認します。
  • Google Security Operations でフィードの設定を完了するために必要な API キーがあることを確認します。詳細については、API キーの設定をご覧ください。

Zscaler DLP ログを取り込むように Google SecOps でフィードを設定する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Zscaler DLP Logs)。
  4. [ソースタイプ] として [Webhook] を選択します。
  5. [ログタイプ] として [Zscaler DLP] を選択します。
  6. [次へ] をクリックします。
  7. 省略可: 次の入力パラメータの値を指定します。
    1. 分割区切り文字: ログ行を区切るために使用される区切り文字(区切り文字を使用しない場合は空白のままにします)。
    2. Asset namespace: アセットの名前空間。
    3. Ingestion labels: このフィードのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
  10. [シークレット キーを生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。

Zscaler DLP を設定する

  1. Zscaler Internet Access コンソールで、[管理] > [Nanolog ストリーミング サービス] > [クラウド NSS フィード] に移動します。
  2. [クラウド NSS フィードを追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します。
  4. [NSS タイプ] で [NSS for Web] を選択します。
  5. [ステータス] リストからステータスを選択して、NSS フィードを有効または無効にします。
  6. [SIEM レート] メニューの値は [無制限] のままにします。ライセンスなどの制約により出力ストリームを抑制するには、値を変更します。
  7. [SIEM タイプ] リストで [その他] を選択します。
  8. [OAuth 2.0 認証] リストで [無効] を選択します。
  9. [最大バッチサイズ] に、SIEM のベスト プラクティスに従って個々の HTTP リクエスト ペイロードのサイズ上限を入力します(例: 512 KB)。
  10. API URL に、次の形式で Chronicle API エンドポイントの HTTPS URL を入力します。

    https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogs
    
    • CHRONICLE_REGION: Google SecOps インスタンスがホストされているリージョン(US など)。
    • GOOGLE_PROJECT_NUMBER: BYOP プロジェクト番号(C4 から取得)。
    • LOCATION: Google SecOps のリージョン(US など)。
    • CUSTOMER_ID: Google SecOps のお客様 ID(C4 から取得)。
    • FEED_ID: 作成した新しい Webhook のフィード UI に表示されるフィード ID。

    API URL の例:

    https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogs
    
  11. [HTTP ヘッダーを追加] をクリックして、キーと値を含む HTTP ヘッダーを追加します。

    次に例を示します。

    • キー: X-goog-api-key
    • Value: Google Cloud BYOP の API 認証情報で生成された API キー

  12. [ログタイプ] リストから [Endpoint DLP] を選択します。

  13. [フィード出力タイプ] リストで [JSON] を選択します。

  14. [フィード エスケープ文字] を , \ " に設定します。

  15. [フィード出力形式] に新しいフィールドを追加するには、[フィード出力タイプ] リストで [カスタム] を選択します。

  16. [フィード出力形式] をコピーして貼り付け、新しいフィールドを追加します。キー名が実際のフィールド名と一致していることを確認します。

    デフォルトの [フィード出力形式] は次のとおりです。

    \{ "sourcetype" : "zscalernss-edlp", "event" :\{"time":"%s{time}","recordid":"%d{recordid}","login":"%s{user}","dept":"%s{department}","filetypename":"%s{filetypename}","filemd5":"%s{filemd5}","dlpdictnames":"%s{dlpdictnames}","dlpdictcount":"%s{dlpcounts}","dlpenginenames":"%s{dlpengnames}","channel":"%s{channel}","actiontaken":"%s{actiontaken}","severity":"%s{severity}","rulename":"%s{triggeredrulelabel}","itemdstname":"%s{itemdstname}"\}\}
    
  17. [タイムゾーン] リストで、出力ファイルの [時間] フィールドのタイムゾーンを選択します。デフォルトでは、タイムゾーンは組織のタイムゾーンに設定されます。

  18. 構成された設定を確認します。

  19. [保存] をクリックして接続をテストします。接続に成功すると、緑色のチェックマークと [Test Connectivity Successful: OK (200)] というメッセージが表示されます。

Google SecOps フィードの詳細については、Google SecOps フィードのドキュメントをご覧ください。各フィードタイプの要件については、タイプ別のフィード構成をご覧ください。

フィードの作成時に問題が発生した場合は、Google SecOps サポートにお問い合わせください。

UDM マッピング テーブル

次の表に、ZSCALER_DLP ログタイプのログ フィールドと、対応する UDM フィールドを示します。

Log field UDM mapping Logic
mon additional.fields[mon]
day additional.fields[day]
scantime additional.fields[scantime]
numdlpengids additional.fields[numdlpengids]
numdlpdictids additional.fields[numdlpdictids]
recordid metadata.product_log_id
scanned_bytes additional.fields[scanned_bytes]
dlpidentifier security_result.detection_fields[dlpidentifier]
login principal.user.user_display_name
b64user principal.user.user_display_name
euser principal.user.user_display_name
ouser security_result.detection_fields[ouser]
dept principal.user.department
b64department principal.user.department
edepartment principal.user.department
odepartment security_result.detection_fields[odepartment]
odevicename security_result.detection_fields[odevicename]
devicetype principal.asset.attribute.labels[devicetype]
principal.asset.platform_software.platform If the deviceostype log field value matches the regular expression pattern (?i)Windows, then the principal.asset.platform_software.platform UDM field is set to WINDOWS.
principal.asset.asset_id If the devicename log field value is not empty, then the asset_id:devicename log field is mapped to the principal.asset.asset_id UDM field.

If the b64devicename log field value is not empty, then the asset_id:b64devicename log field is mapped to the principal.asset.asset_id UDM field.

If the edevicename log field value is not empty, then the asset_id:edevicename log field is mapped to the principal.asset.asset_id UDM field.
deviceplatform principal.asset.attribute.labels[deviceplatform]
deviceosversion principal.asset.platform_software.platform_version
devicemodel principal.asset.hardware.model
deviceappversion additional.fields[deviceappversion]
deviceowner principal.user.userid
b64deviceowner principal.user.userid
edeviceowner principal.user.userid
odeviceowner security_result.detection_fields[odeviceowner]
devicehostname principal.hostname
b64devicehostname principal.hostname
edevicehostname principal.hostname
odevicehostname security_result.detection_fields[odevicehostname]
datacenter target.location.name
datacentercity target.location.city
datacentercountry target.location.country_or_region
dsttype target.resource.resource_subtype
filedoctype additional.fields[filedoctype]
filedstpath target.file.full_path
b64filedstpath target.file.full_path
efiledstpath target.file.full_path
filemd5 target.file.md5 If the filemd5 log field value matches the regular expression pattern ^[0-9a-f]+$, then the filemd5 log field is mapped to the target.file.md5 UDM field.
filesha target.file.sha256 If the filesha log field value matches the regular expression pattern ^[0-9a-f]+$, then the filesha log field is mapped to the target.file.sha256 UDM field.
filesrcpath src.file.full_path
b64filesrcpath src.file.full_path
efilesrcpath src.file.full_path
filetypecategory additional.fields[filetypecategory]
filetypename target.file.mime_type
itemdstname target.resource.name
b64itemdstname target.resource.name
eitemdstname target.resource.name
itemname target.resource.attribute.labels[itemname]
b64itemname target.resource.attribute.labels[itemname]
eitemname target.resource.attribute.labels[itemname]
itemsrcname src.resource.name
b64itemsrcname src.resource.name
eitemsrcname src.resource.name
itemtype target.resource.attribute.labels[itemtype]
ofiledstpath security_result.detection_fields[ofiledstpath]
ofilesrcpath security_result.detection_fields[ofilesrcpath]
oitemdstname security_result.detection_fields[oitemdstname]
oitemname security_result.detection_fields[oitemname]
odlpengnames security_result.detection_fields[odlpengnames]
oitemsrcname security_result.detection_fields[oitemsrcname]
srctype src.resource.resource_subtype
actiontaken security_result.action_details
security_result.action If the actiontaken log field value matches the regular expression pattern (?i)allow, then the security_result.action UDM field is set to ALLOW.

Else, if the actiontaken log field value matches the regular expression pattern (?i)block, then the security_result.action UDM field is set to BLOCK.
activitytype metadata.product_event_type
addinfo additional.fields[addinfo]
channel security_result.detection_fields[channel]
confirmaction security_result.detection_fields[confirmaction]
confirmjust security_result.description
dlpdictcount security_result.detection_fields[dlpdictcount]
dlpdictnames security_result.detection_fields[dlpdictnames]
b64dlpdictnames security_result.detection_fields[dlpdictnames]
edlpdictnames security_result.detection_fields[dlpdictnames]
dlpenginenames security_result.detection_fields[dlpenginenames]
b64dlpengnames security_result.detection_fields[dlpenginenames]
edlpengnames security_result.detection_fields[dlpenginenames]
expectedaction security_result.detection_fields[expectedaction]
logtype security_result.category_details
odlpdictnames security_result.detection_fields[odlpdictnames]
ootherrulelabels security_result.detection_fields[ootherrulelabels]
otherrulelabels security_result.rule_labels[otherrulelabels]
b64otherrulelabels security_result.rule_labels[otherrulelabels]
eotherrulelabels security_result.rule_labels[otherrulelabels]
otriggeredrulelabel security_result.rule_labels[otriggeredrulelabel]
severity security_result.severity_details
security_result.severity If the severity log field value matches the regular expression pattern (?i)High, then the security_result.severity UDM field is set to HIGH.

Else, if the severity log field value matches the regular expression pattern (?i)Medium, then the security_result.severity UDM field is set to MEDIUM.

Else, if the severity log field value matches the regular expression pattern (?i)Low, then the security_result.severity UDM field is set to LOW.

Else, if the severity log field value matches the regular expression pattern (?i)Info, then the security_result.severity UDM field is set to INFORMATIONAL.
rulename security_result.rule_name
b64triggeredrulelabel security_result.rule_name
etriggeredrulelabel security_result.rule_name
zdpmode security_result.detection_fields[zdpmode]
tz additional.fields[tz]
ss additional.fields[ss]
mm additional.fields[mm]
hh additional.fields[hh]
dd additional.fields[dd]
mth additional.fields[mth]
yyyy additional.fields[yyyy]
sourcetype additional.fields[sourcetype]
eventtime metadata.event_timestamp
time metadata.collected_timestamp
rtime additional.fields[rtime]
metadata.vendor_name The metadata.vendor_name UDM field is set to Zscaler.
metadata.product_name The metadata.product_name UDM field is set to DLP.
metadata.event_type If the activitytype log field value contain one of the following values, then the metadata.event_type UDM field is set to FILE_UNCATEGORIZED.
  • Upload
  • Download
Else, if the activitytype log field value is equal to File Copy, then the metadata.event_type UDM field is set to FILE_COPY.

Else, if the activitytype log field value is equal to File Read, then the metadata.event_type UDM field is set to FILE_READ.

Else, if the activitytype log field value is equal to File Write, then the metadata.event_type UDM field is set to FILE_MODIFICATION.

Else, if the activitytype log field value is equal to Email Sent, then the metadata.event_type UDM field is set to EMAIL_UNCATEGORIZED.

Else, if the activitytype log field value is equal to Print, then the metadata.event_type UDM field is set to STATUS_UPDATE.

Else, the metadata.event_type UDM field is set to GENERIC_EVENT.

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。