uberAgent ログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して uberAgent ログを Google Security Operations に取り込む方法について説明します。

uberAgent は、Windows と macOS 向けのエンドポイント セキュリティ分析とユーザー エクスペリエンス モニタリングのプラットフォームです。監視対象のエンドポイントで、プロセス イベント、ログオン イベント、ネットワーク接続、アプリケーションの使用状況などのテレメトリー データを収集します。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと uberAgent エンドポイント間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • uberAgent 管理コンソールまたは uberAgent がインストールされているエンドポイントへの特権アクセス

Bindplane エージェントの Google SecOps 認証情報を取得する

Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。

  • 新規デプロイ: Chronicle API を使用します(オプション 1)。
  • 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
  1. Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  2. [IAM と管理] > [サービス アカウント] に移動します。
  3. [サービス アカウントを作成] をクリックします。
  4. 次の構成情報を指定します。
    • サービス アカウント名: アカウントの名前を入力します(例: bindplane-ingest)。
    • サービス アカウントの説明: 説明を入力します(例: Bindplane agent log ingestion)。
  5. [作成して続行] をクリックします。
  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
  7. [続行] をクリックして [完了] をクリックします。
  8. 作成したサービス アカウントをクリックし、[キー] タブに移動します。
  9. [鍵を追加] > [新しい鍵を作成] の順にクリックします。
  10. [JSON] を選択し、[作成] をクリックします。鍵ファイルがパソコンにダウンロードされます。
  11. 鍵ファイルを ingestion-auth.json として Bindplane コレクタ ディレクトリ(Linux の場合は /opt/observiq-otel-collector/ingestion-auth.json、Windows の場合は C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に保存するか、config.yaml の creds_file_path を更新して、保存先のパスと一致させます。
  12. [IAM と管理] > [設定] に移動し、プロジェクト番号をコピーします。これはエクスポータの構成に必要です。

オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)

  1. Google SecOps コンソールにログインします。
  2. [設定] > [データ管理] > [収集エージェント] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。
  4. Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。

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

  1. Google SecOps コンソールにログインします。
  2. [Settings] > [Administration] > [Profile] に移動します。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
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスが RUNNING と表示されます。

Linux へのインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

    サービスが active (running) と表示されます。

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

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

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

構成ファイルを探す

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

  • config.yaml の内容全体を次の構成に置き換えます。

    receivers:
      filelog:
        include:
          - 'C:\uberAgent\logs\*.log'
          - 'C:\uberAgent\logs\*.csv'
        start_at: beginning
        poll_interval: 5s
    
    exporters:
      chronicle/uberagent:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: UBERAGENT
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/uberagent_to_chronicle:
          receivers:
            - filelog
          exporters:
            - chronicle/uberagent
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • include: uberAgent ログファイルのパス。
      • Windows(ローカル): C:\uberAgent\logs\*.log、C:\uberAgent\logs\*.csv
      • Windows(ファイル共有): \\SERVER\Share\uberagent-logs\*.log
      • uberAgent ファイルの出力構成に基づいてパスを調整します。
    • start_at: 既存のログを読み取る場合は beginning に設定し、新しいエントリのみを読み取る場合は end に設定します。
    • poll_interval: 新しいログデータをチェックする頻度(デフォルト: 5s)
  • エクスポータの構成:

    • uberagent: エクスポータのわかりやすい名前
    • creds_file_path: サービス アカウントの JSON キーファイルのフルパス(オプション 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: 前のステップのお客様 ID
    • location: <LOCATION> は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1 など)に置き換えます。エクスポーターは、chronicle.googleapis.com の前にこの値を付加します。完全なリストについては、リージョン エンドポイントをご覧ください。
    • project: <PROJECT_NUMBER> を、[IAM と管理] > [設定] のプロジェクト番号に置き換えます。
    • endpoint: chronicle.googleapis.com に設定したままにします。
    • UBERAGENT: Chronicle に表示されるログタイプ
    • ingestion_labels: YAML 形式のオプションのラベル(例: env: production)
  • パイプライン構成:

    • uberagent_to_chronicle: パイプラインのわかりやすい名前

以前の Ingestion API エクスポータ

  • オプション 2 の取り込み認証ファイルを使用する場合は、exporters ブロックを次のように置き換えます。creds_file_path を取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.com をリージョン エンドポイント(例: europe-malachiteingestion-pa.googleapis.com)に置き換えます。

    exporters:
      chronicle/uberagent:
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: UBERAGENT
        raw_log_field: body
        ingestion_labels:
          env: production
    

構成ファイルを保存する

  • 編集が完了したら、ファイルを保存します。
    • Linux: Ctrl+O、Enter、Ctrl+X の順に押します。
    • Windows の場合: [ファイル] > [保存] をクリックします。

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

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を実行します。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R を押し、「services.msc」と入力して Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

uberAgent ファイル出力を構成する

uberAgent は複数の出力バックエンドをサポートしています。Bindplane エージェントが収集するファイルとしてデータをエクスポートするには:

  1. エンドポイントまたはグループ ポリシーを使用して、uberAgent 構成ファイル(uberAgent.conf)を開きます。
  2. ファイルベースの出力レシーバーを構成します。

    [Receiver]
    Name = FileOutput
    Type = File
    Path = C:\uberAgent\logs\
    
  3. エクスポートする指標とソースタイプを構成します。

    • プロセス: プロセスの開始 / 停止イベント、リソース使用量。
    • ログオン: ユーザーのログオン / ログオフ イベント。
    • ネットワーク: ネットワーク接続イベント。
    • アプリケーション: アプリケーションの使用状況とエラー。
  4. 構成を保存し、uberAgent サービスを再起動します。

  5. 構成された出力ディレクトリにログファイルが作成されていることを確認します。

  6. Bindplane エージェントに、ログ ディレクトリとファイルの読み取り権限があることを確認します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
SessionRpLatencyMs2, SessionHRes, SessionVRes, SessionColorDepth, SessionClientPlatform, SessionClientVersion, SessionClientOsLanguage, SessionPublishedName, SessionPublishedAppsCtx, SessionAppStateCtx, SessionEncryptionCtx, SessionClientTypeCtx, SessionBrokerDnsVmw, SessionBrokerUrlVmw, SessionBrokerTunneledVmw, SessionBrokerTunnelUrlVmw, SessionBrokerRemoteIpVmw, SessionBrokerUserVmw, SessionBrokerDomainVmw, SessionClientTimezoneVmw, SessionClientIdVmw, SessionTypeVmw, SessionBrokerType, SessionFgAppId, SessionFgAppVersion, SessionFgProcessName, SessionFgProcessId, SessionFgBrowserType, SessionFgBrowserActiveTabHost, SessionFgWindowTitle, SessionClientHwIdCtx2, SessionRoundTripTimeMs, SessionFps, SessionTransportProtocols, SessionProcessCount, SessionIOMB, SessionCPUTimeMs, SessionConnectionState, SessionUser, SessionIOCount, SessionNetKBPS, SessionWorkingSetMB, SessionCPUUsagePercent, SessionIOPS, SessionClientName, SessionIOLatencyMs, PowerSupportsS3, IsBatteryPresent, PowerSupportsS1, PowerSupportsS2, PowerSupportsS5, CPUMaxMhz, BaseboardSerial, CtxMachineCatalogName, AdDomainDns, HwHypervisorVendor, OsBuild, HwBiosVersion, PowerSupportsS4, HwIsVirtualMachine, IsUpsPresent, PowerSupportsConnectedStandby, OsInstallDate, Sourcetype, uberagent_index_name, data_stream.namespace, data_stream.dataset, data_stream.type, data_stream.subset, CPUCoresLogical, AdOu, AdDomainNetBios, logstash_pipeline, AdSite, CtxFarmName, CPUSockets, OsSpName, OsName, OsType, OsUpdateBuildRevision, ComputerNameCanonical, ComputerNameDn, CtxDeliveryGroupName, tags, user_agent.original additional.fields リストされたフィールドから Key-Value ペアとして統合
metadata.event_type has_principal が true で has_target が false の場合は STATUS_UPDATE に設定し、両方が true の場合は NETWORK_CONNECTION に設定し、それ以外の場合は GENERIC_EVENT に設定します。
SessionGUID metadata.product_log_id 値が直接コピーされる
user_agent.original network.http.parsed_user_agent 解析されたユーザー エージェントに変換
user_agent.original network.http.user_agent 値が直接コピーされる
SessionTransportProtocols network.ip_protocol (?i)udp に一致する場合は UDP、(?i)tcp に一致する場合は TCP に設定
SessionID network.session_id 値が直接コピーされる
SessionClientUserDomain principal.administrative_domain 値が直接コピーされる
CPUCoresPhysical、RAMSizeGB、CPUName、HwManufacturer、OsArchitecture、BIOSSerial、HwModel principal.asset.hardware ハードウェア オブジェクトに統合
SessionClientDomain、ホスト principal.asset.hostname 空でない場合は SessionClientDomain の値、それ以外の場合はホスト
prin_ip、SessionClientIp、system_ip principal.asset.ip prin_ip の値(空でない場合)。空の場合は SessionClientIp。それ以外の場合は system_ip
SessionClientDomain、ホスト principal.hostname 空でない場合は SessionClientDomain の値、それ以外の場合はホスト
prin_ip、SessionClientIp、system_ip principal.ip prin_ip の値(空でない場合)。空の場合は SessionClientIp。それ以外の場合は system_ip
SessionClientMac principal.mac SessionClientMac の値。- は : に置き換えられ、小文字に変換されます。
SessionClientPlatform principal.platform (?i)windows に一致する場合は WINDOWS に設定
SessionClientVersion principal.platform_version (?i)windows に一致する場合は値に設定
SessionUser、SessionClientUser principal.user.user_display_name 空でない場合は SessionUser の値、それ以外の場合は SessionClientUser
SessionBrokerRemoteIpVmw target.ip 値が直接コピーされる
SessionBrokerUserVmw target.user.user_display_name 値が直接コピーされる
SessionClientIdVmw target.user.userid 値が直接コピーされる
metadata.product_name 「UBERAGENT」に設定
metadata.vendor_name 「UBERAGENT」に設定

変更ログ

このパーサーの変更ログを表示する

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