Zscaler ZPA 監査ログを収集する
このドキュメントでは、Bindplane エージェントを設定して Zscaler ZPA 監査ログをエクスポートする方法と、ログフィールドが Google SecOps 統合データモデル(UDM)フィールドにマッピングされる方法について説明します。
詳細については、Google SecOps へのデータの取り込みの概要をご覧ください。
一般的なデプロイは、Zscaler ZPA Audit と、Google Security Operations にログを送信するように構成された Bindplane エージェントで構成されます。お客様のデプロイはそれぞれ異なり、より複雑になる場合もあります。
デプロイには次のコンポーネントが含まれます。
Zscaler ZPA Audit: ログを収集するプラットフォーム。
Bindplane エージェント: Bindplane エージェントは、Zscaler ZPA Audit からログを取得し、Google Security Operations にログを送信します。
Google SecOps: ログを保持して分析します。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。 このドキュメントの情報は、ZSCALER_ZPA_AUDIT
ラベルが付加されたパーサーに適用されます。
始める前に
- Zscaler ZPA Audit 2024 以降を使用していることを確認します。
- Zscaler Private Access コンソールにアクセスできることを確認します。詳細については、Secure Private Access(ZPA)のヘルプをご覧ください。
- デプロイ アーキテクチャ内のすべてのシステムが、UTC タイムゾーンで構成されていることを確認します。
Zscaler Private Access でログ レシーバを構成する
Zscaler Private Access でログ レシーバを構成して管理する手順は次のとおりです。
ログ受信者を追加する
- [構成と制御] > [プライベート インフラストラクチャ] > [ログ ストリーミング サービス] > [ログ レシーバ] を選択し、[ログ レシーバを追加] をクリックします。
- [ログ レシーバ] タブで、次の操作を行います。
- [名前] フィールドに、ログ受信者の名前を入力します。
- [説明] フィールドに説明を入力します。
- [ドメインまたは IP アドレス] フィールドに、ログ受信者の完全修飾ドメイン名(FQDN)または IP アドレスを入力します。
- [TCP ポート] フィールドに、ログ レシーバーで使用される TCP ポート番号を入力します。
- [TLS Encryption] で暗号化のタイプを選択して、App Connector とログ レシーバ間のトラフィックの暗号化を有効または無効にします。デフォルトでは、この設定は無効になっています。
- [App Connector グループ] リストで、ログを受信者に転送できる App Connector グループを選択し、[完了] をクリックします。
- [次へ] をクリックします。
[ログ ストリーム] タブで、次の操作を行います。
- メニューから [ログタイプ] を選択します。
- メニューから [ログ テンプレート] を選択します。
[ログ ストリーム コンテンツ] をコピーして貼り付け、新しいフィールドを追加します。キー名が実際のフィールド名と一致していることを確認します。
監査ログタイプのデフォルトのログ ストリーム コンテンツは次のとおりです。
{"ModifiedTime":%j{modifiedTime:iso8601},"CreationTime":%j{creationTime:iso8601},"ModifiedBy":%d{modifiedBy},"RequestID":%j{requestId},"SessionID":%j{sessionId},"AuditOldValue":%j{auditOldValue},"AuditNewValue":%j{auditNewValue},"AuditOperationType":%j{auditOperationType},"ObjectType":%j{objectType},"ObjectName":%j{objectName},"ObjectID":%d{objectId},"CustomerID":%d{customerId},"User":%j{modifiedByUser},"ClientAuditUpdate":%d{clientAuditUpdate}}\n
[SAML 属性] で [IdP を選択] をクリックし、ポリシーに含める IdP 構成を選択します。
[アプリケーション セグメント] メニューで、含めるアプリケーション セグメントを選択し、[完了] をクリックします。
[セグメント グループ] メニューで、含めるセグメント グループを選択し、[完了] をクリックします。
[クライアント タイプ] メニューで、含めるクライアント タイプを選択し、[完了] をクリックします。
[セッション ステータス] メニューで、除外するセッション ステータス コードを選択し、[完了] をクリックします。
[次へ] をクリックします。
[確認] タブで、ログレシーバの構成を確認し、[保存] をクリックします。
注: ZSCALER_ZPA_AUDIT
Gold パーサーは JSON ログ形式のみをサポートしています。そのため、ログストリームを構成する際に、メニューから [ログ テンプレート] として [JSON] を選択してください。
ログ レシーバーをコピーする
- [Control] > [Private Infrastructure] > [Log Streaming Service] > [Log Receivers] を選択します。
- テーブルで、変更するログ受信者を見つけて [コピー] をクリックします。
- [ログ受信者の追加] ウィンドウで、必要に応じてフィールドを変更します。各フィールドの詳細については、ログ レシーバを追加するの手順をご覧ください。
- [保存] をクリックします。
ログ レシーバを編集する
- [Control] > [Private Infrastructure] > [Log Streaming Service] > [Log Receivers] を選択します。
- 表で、変更するログ受信者を見つけて [編集] をクリックします。
- [ログ受信者の編集] ウィンドウで、必要に応じてフィールドを変更します。各フィールドの詳細については、ログ レシーバを追加するの手順をご覧ください。
- [保存] をクリックします。
ログ レシーバーを削除する
- [Control] > [Private Infrastructure] > [Log Streaming Service] > [Log Receivers] を選択します。
- 表で、変更するログ受信者を見つけて [削除] をクリックします。
- [確認] ウィンドウで、[削除] をクリックします。
Bindplane エージェントを使用してログを Google SecOps に転送する
- Linux 仮想マシンをインストールして設定します。
- ログを Google SecOps に転送するように、Linux に Bindplane エージェントをインストールして構成します。Bindplane エージェントのインストールと構成の方法の詳細については、Bindplane エージェントのインストールと構成の手順をご覧ください。
フィードの作成時に問題が発生した場合は、Google SecOps サポートにお問い合わせください。
サポートされている Zscaler ZPA 監査ログ形式
Zscaler ZPA 監査パーサーは、JSON 形式のログをサポートしています。
サポートされている Zscaler ZPA 監査ログのサンプル
JSON:
{ "ModifiedTime": "", "CreationTime": "2024-06-29T05:06:34.000Z", "ModifiedBy": 216193796315021769, "RequestID": "ed500dfb-c66d-4ec2-b97e-ec2018c811f4", "SessionID": "v2t27ixe6qs21cffpzy6jx1zv", "AuditOldValue": "", "AuditNewValue": "{\\"loginAttempt\\":\\"2024-06-29 05: 06: 34 UTC\\",\\"remoteIP\\":\\"198.51.100.0\\"}", "AuditOperationType": "Sign In", "ObjectType": "Authentication", "ObjectName": "", "ObjectID": 0, "CustomerID": dummy_customer_id, "User": "abc.xyz.com", "ClientAuditUpdate": 0 }
UDM マッピング テーブル
フィールド マッピング リファレンス: ZSCALER_ZPA_AUDIT
次の表に、ZSCALER_ZPA_AUDIT
ログタイプのログ フィールドと、対応する UDM フィールドを示します。
Log field | UDM mapping | Logic |
---|---|---|
|
metadata.product_name |
The metadata.product_name UDM field is set to ZPA Audit . |
|
metadata.vendor_name |
The metadata.vendor_name UDM field is set to Zscaler . |
CreationTime |
metadata.event_timestamp |
|
RequestID |
metadata.product_log_id |
|
SessionID |
network.session_id |
|
|
metadata.event_type |
If the AuditOperationType log field value is not empty, then if the AuditOperationType log field value is equal to Create , then the metadata.event_type UDM field is set to RESOURCE_CREATION .Else, if the AuditOperationType log field value is equal to Client Session Revoked , then the metadata.event_type UDM field is set to USER_LOGOUT .Else, if the AuditOperationType log field value is equal to Delete , then the metadata.event_type UDM field is set to RESOURCE_DELETION .Else, if the AuditOperationType log field value is equal to Download , then the metadata.event_type UDM field is set to USER_RESOURCE_ACCESS .Else, if the AuditOperationType log field value is equal to Sign In , then the metadata.event_type UDM field is set to USER_LOGIN .Else, if the AuditOperationType log field value is equal to Sign In Failure , then the metadata.event_type UDM field is set to USER_LOGIN .Else, if the AuditOperationType log field value is equal to Sign Out , then the metadata.event_type UDM field is set to USER_LOGOUT .Else, if the AuditOperationType log field value is equal to Update , then the metadata.event_type UDM field is set to USER_RESOURCE_UPDATE_CONTENT . |
|
metadata.product_event_type |
If the AuditOperationType log field value is not empty, then if the AuditOperationType log field value is equal to Create , then the metadata.product_event_type UDM field is set to create .Else, if the AuditOperationType log field value is equal to Client Session Revoked , then the metadata.product_event_type UDM field is set to client session revoked .Else, if the AuditOperationType log field value is equal to Delete , then the metadata.product_event_type UDM field is set to delete .Else, if the AuditOperationType log field value is equal to Download , then the metadata.product_event_type UDM field is set to download .Else, if the AuditOperationType log field value is equal to Sign In , then the metadata.product_event_type UDM field is set to user_login .Else, if the AuditOperationType log field value is equal to Sign In Failure , then the metadata.product_event_type UDM field is set to user_login_fail .Else, if the AuditOperationType log field value is equal to Sign Out , then the metadata.product_event_type UDM field is set to user_logout .Else, if the AuditOperationType log field value is equal to Update , then the metadata.product_event_type UDM field is set to update . |
|
security_result.action |
If the AuditOperationType log field value is not empty, then if the AuditOperationType log field value is equal to Client Session Revoked , then the security_result.action UDM field is set to BLOCK .Else, if the AuditOperationType log field value is equal to Sign In , then the security_result.action UDM field is set to ALLOW .Else, if the AuditOperationType log field value is equal to Sign In Failure , then the security_result.action UDM field is set to FAIL . |
ObjectType |
target.resource.resource_subtype |
|
ObjectID |
target.resource.product_object_id |
|
ObjectName |
target.resource.name |
|
ModifiedTime |
target.resource.attribute.labels[ModifiedTime] |
|
ModifiedBy |
principal.user.userid |
|
User |
principal.user.email_addresses |
|
AuditOldValue |
additional.fields[AuditOldValue] |
Iterate through AuditOldValue object: The AuditOldValue object key is mapped to the additional.fields.key UDM field and AuditOldValue object value is mapped to the additional.fields.value UDM field. |
AuditNewValue |
additional.fields[AuditNewValue] |
Iterate through AuditNewValue object: The AuditNewValue object key is set to the additional.fields.key UDM field and AuditNewValue object value is mapped to the additional.fields.value UDM field. |
CustomerID |
target.user.userid |
|
ClientAuditUpdate |
additional.fields[ClientAuditUpdate] |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。