Citrix StoreFront のログを収集する

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

このドキュメントでは、Bindplane を使用して Citrix StoreFront ログを Google Security Operations に取り込む方法について説明します。このパーサーは、Citrix StoreFront Windows イベントログ形式のログからフィールドを抽出します。Windows イベントログの収集を使用してログ メッセージを解析し、これらの値を統合データモデル(UDM)にマッピングします。また、イベントのソースとタイプのデフォルトのメタデータ値も設定します。パーサーは、一連の grok パターンを使用して、メッセージ フィールドを SessionUserAppInstanceAppConnectionMachine などの個々のエンティティに分割することで、Citrix StoreFront JSON ログからデータを抽出します。次に、抽出されたフィールドを統合データモデル(UDM)構造にマッピングし、条件付きロジックとデータ変換に基づいてネットワーク、プリンシパル、仲介者、ターゲット情報を追加します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス。
  • Bindplane がインストールされる systemd を備えた Windows 2016 以降のホスト
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
  • Citrix StoreFront サーバーと管理コンソールへの特権アクセス
  • StoreFront をホストする Windows サーバーへの管理者アクセス権

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

その他のインストール リソース

Windows イベントログを取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      windowseventlog/storefront:
        channel: Application
        operators:
          - type: filter
            expr: 'record["source_name"] matches "^Citrix"'
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: 'C:/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: CUSTOMER_ID_PLACEHOLDER
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'CITRIX_STOREFRONT'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/storefront:
          receivers:
            - windowseventlog/storefront
          exporters:
            - chronicle/chronicle_w_labels
    

Bindplane エージェントを再起動して変更を適用する

  1. Windows で BindPlane エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

StoreFront イベント ロギングを構成する

  1. 管理者権限で StoreFront Server にログインします。
  2. 管理者として PowerShell を開きます。
  3. StoreFront PowerShell モジュールを読み込みます。

    Add-PSSnapin Citrix.DeliveryServices.Framework.Commands
    
  4. トラブルシューティング用に詳細ログを有効にします(省略可)。

    Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
    
  5. Windows イベント ロギングが有効になっていることを確認します。

    • StoreFront サーバーでイベント ビューアーを開きます。
    • [アプリケーションとサービス ログ> Citrix Delivery Services] に移動します。
    • 認証サービス、ストア、Receiver for Web サイトのイベントがログに記録されていることを確認します。

省略可: イベントログのスロットリングを構成する

  1. StoreFront 構成ディレクトリに移動します。
    • 認証サービス: C:/inetpub/wwwroot/Citrix/Authentication
    • 店舗: C:/inetpub/wwwroot/Citrixstorename
    • ウェブサイトのレシーバ: C:/inetpub/wwwroot/Citrixstorename/Web
  2. テキスト エディタを使用して、各ディレクトリの web.config ファイルを開きます。
  3. ロガー要素を見つけて、必要に応じて構成します。

    <logger duplicateInterval="00:01:00" duplicateLimit="10">
    
  4. duplicateInterval: 重複するログエントリがモニタリングされる期間を時間、分、秒単位で設定します。

  5. duplicateLimit: ログ スロットリングをトリガーするために、指定された時間間隔内にロギングする必要がある重複エントリの数を設定します。

  6. 構成ファイルを保存します。

ログ収集を確認する

  1. StoreFront サーバーで Windows イベント ビューアーを開きます。
  2. [Windows ログ] > [アプリケーション] または [アプリケーションとサービス ログ] > [Citrix Delivery Services] に移動します。
  3. StoreFront イベントが生成されていることを確認します。
  4. Bindplane エージェントのログを調べて、ログが Google SecOps に転送されていることを確認します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
App.PublishedName _principal.application 値は App.PublishedName フィールドから取得されます。
Connection.ClientAddress _principal.asset.ip 値は Connection.ClientAddress フィールドから取得されます。
Connection.ClientName _principal.asset.hostname 値は Connection.ClientName フィールドから取得されます。
Connection.ClientPlatform _principal.asset.platform_software.platform 値は Connection.ClientPlatform フィールドから取得され、大文字に変換されます。値が「WINDOWS」、「MAC」、「LINUX」の場合、そのまま使用されます。それ以外の場合、値は「UNKNOWN_PLATFORM」に設定されます。
Connection.ConnectedViaHostName src.hostname 値は Connection.ConnectedViaHostName フィールドから取得されます。
Connection.LaunchedViaHostName _intermediary.hostname 値は Connection.LaunchedViaHostName フィールドから取得されます。名前空間は「StoreFront server」に設定されます。
Connection.LaunchedViaIPAddress _intermediary.ip 値は Connection.LaunchedViaIPAddress フィールドから取得されます。
Connection.Protocol network.application_protocol 値は Connection.Protocol フィールドから取得されます。値が「HDX」の場合、「UNKNOWN_APPLICATION_PROTOCOL」に設定されます。
Machine.AgentVersion metadata.product_version 値は Machine.AgentVersion フィールドから取得されます。
Machine.AssociatedUserNames _intermediary.user.userid 値は Machine.AssociatedUserNames フィールドから取得されます。各名前が抽出され、中間ユーザー オブジェクトのユーザー ID として使用されます。
Machine.AssociatedUserUPNs _target.group.email_addresses 値は Machine.AssociatedUserUPNs フィールドから取得されます。各メールアドレスが抽出され、ターゲット グループの email_addresses フィールドに追加されます。
Machine.ControllerDnsName _intermediary.hostname 値は Machine.ControllerDnsName フィールドから取得されます。名前空間は「Controller」に設定されています。
Machine.CreatedDate _target.asset.attribute.creation_time 値は Machine.CreatedDate フィールドから取得され、タイムスタンプに変換されます。
Machine.DesktopGroupId _target.group.product_object_id 値は Machine.DesktopGroupId フィールドから取得されます。
Machine.DnsName _target.asset.network_domain 値は Machine.DnsName フィールドから取得されます。
Machine.HostedMachineName _target.asset.hostname 値は Machine.HostedMachineName フィールドから取得されます。
Machine.HostingServerName _intermediary.hostname 値は Machine.HostingServerName フィールドから取得されます。名前空間は「Hypervisor」に設定されています。
Machine.IPAddress _target.asset.ip 値は Machine.IPAddress フィールドから取得されます。
Machine.LastDeregisteredDate _target.asset.last_discover_time 値は Machine.LastDeregisteredDate フィールドから取得され、タイムスタンプに変換されます。
Machine.ModifiedDate _target.asset.system_last_update_time 値は Machine.ModifiedDate フィールドから取得され、タイムスタンプに変換されます。
Machine.Name _target.asset.asset_id, _target.administrative_domain 値は Machine.Name フィールドから取得され、ドメインとアセットの部分に分割されます。ドメイン部分はターゲットの管理ドメインとして使用され、アセット部分は「machine:」形式のターゲット アセット ID の作成に使用されます。
Machine.OSType _target.asset.platform_software.platform_version 値は Machine.OSType フィールドから取得されます。
Machine.PoweredOnDate _target.asset.last_boot_time 値は Machine.PoweredOnDate フィールドから取得され、タイムスタンプに変換されます。
Machine.RegistrationStateChangeDate _target.asset.first_discover_time 値は Machine.RegistrationStateChangeDate フィールドから取得され、タイムスタンプに変換されます。
Session.EndDate _vulns.last_found 値は Session.EndDate フィールドから取得され、タイムスタンプに変換されます。
Session.LifecycleState extensions.auth.auth_details 値は Session.LifecycleState フィールドから取得されます。値が 0 の場合、「ACTIVE」に設定されます。値が 1 の場合、「DELETED」に設定されます。値が 2 または 3 の場合、「UNKNOWN_AUTHENTICATION_STATUS」に設定されます。
Session.LogOnDuration network.session_duration.seconds 値は Session.LogOnDuration フィールドから取得され、整数に変換されます。
Session.SessionKey network.session_id 値は Session.SessionKey フィールドから取得されます。
Session.StartDate _vulns.first_found 値は Session.StartDate フィールドから取得され、タイムスタンプに変換されます。
User.Domain _principal.user.company_name, _principal.administrative_domain この値は User.Domain フィールドから取得され、プリンシパル ユーザーの会社名とプリンシパル管理ドメインの両方として使用されます。
User.FullName _principal.user.user_display_name 値は User.FullName フィールドから取得されます。
User.Sid _principal.user.windows_sid 値は User.Sid フィールドから取得されます。
User.Upn _principal.user.email_addresses この値は User.Upn フィールドから取得され、プリンシパル ユーザーの email_addresses フィールドに追加されます。
User.UserName _principal.user.userid 値は User.UserName フィールドから取得されます。
metadata.event_type 値は「USER_LOGIN」に設定されます。
metadata.vendor_name 値は「Citrix」に設定されます。
metadata.product_name 値は「Monitor Service OData」に設定されます。
extensions.auth.type 値は「MACHINE」に設定されます。
_intermediary.namespace 値は、仲介オブジェクトに応じて「StoreFront server」、「Controller」、「Hypervisor」に設定されます。
_target.asset.type 値は「WORKSTATION」に設定されます。

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