Pharos ログを収集する

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

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

Pharos は、エンタープライズ環境全体で印刷アクティビティを追跡、制御、監査するためのオンプレミス印刷管理プラットフォームです。Pharos Blueprint Enterprise は、印刷ジョブ データ、ユーザー アクティビティ、デバイス イベントを SQL Server データベースに保存します。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降
  • Bindplane エージェントと Pharos ブループリント サーバー間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • Pharos Blueprint サーバーに対する管理者権限
  • Pharos SQL Server データベースまたは Blueprint Administrator レポート コンソールへのアクセス

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

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

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

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

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

次の手順に沿って、Windows オペレーティング システムに 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 と表示されます。

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

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

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

  • 構成ファイルを見つける

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

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

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

    receivers:
        filelog:
            include:
                - 'C:\Pharos\Exports\*.csv'
            start_at: beginning
            poll_interval: 5s
    
    exporters:
        chronicle/pharos:
            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: PHAROS
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/pharos_to_chronicle:
                receivers:
                    - filelog
                exporters:
                    - chronicle/pharos
    

構成パラメータ

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

  • レシーバーの構成:

    • include: Pharos エクスポート ファイルのパス:
      • Windows: C:\Pharos\Exports\*.csv
      • Pharos の印刷アクティビティ レポートをエクスポートする場所に基づいてパスを調整します
    • start_at: 既存のログを読み取る場合は beginning、新しいエントリのみを読み取る場合は end に設定します。
    • poll_interval: 新しいログデータのチェック頻度(デフォルト: 5s
  • エクスポータの構成:

    • pharos: エクスポータのわかりやすい名前
    • creds_file_path: 取り込み認証ファイルのフルパス:
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: 前の手順の顧客 ID
    • endpoint: リージョナル エンドポイント URL:
      • 米国: malachiteingestion-pa.googleapis.com
      • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
      • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 完全なリストについては、リージョン エンドポイントをご覧ください。
    • PHAROS: Chronicle に表示されるログタイプ
    • ingestion_labels: YAML 形式の省略可能なラベル(例: env: production
  • パイプラインの構成:

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

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Windows: [ファイル>保存] をクリックします。

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

Windows で Bindplane エージェントを再起動するには:

  1. 次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • サービス コンソール:
      1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
  2. サービスが実行されていることを確認します。

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

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

Pharos の印刷アクティビティ ログをエクスポートする

Pharos Blueprint Enterprise は、印刷ジョブのデータを SQL Server データベースに保存します。Bindplane エージェントが読み取れる CSV ファイルにデータをエクスポートする必要があります。

Pharos SQL データベースから印刷アクティビティ データをエクスポートする

  1. Pharos Blueprint サーバーで、SQL Server Management Studio またはコマンドライン ツールを使用して Pharos SQL データベースに接続します。
  2. SQL クエリを使用して印刷アクティビティ レコードをエクスポートします。

    sqlcmd -S <sql_server> -d Pharos -Q "SELECT * FROM PrintJobLog WHERE JobDate >= DATEADD(day, -1, GETDATE())" -o "C:\Pharos\Exports\pharos_print_jobs.csv" -s "," -W
    
  3. Windows タスク スケジューラを使用して、このコマンドを定期的に(たとえば 1 時間ごと)実行するようにスケジュール設定し、Bindplane エージェントが新しいエクスポート ファイルを継続的に取得できるようにします。

代替方法: Blueprint 管理コンソールからレポートをエクスポートする

  1. Pharos Blueprint Administrator コンソールを開きます。
  2. [分析情報] > [レポート] に移動します。
  3. 目的のレポートの種類(印刷アクティビティ、ユーザー アクティビティ、デバイス アクティビティなど)を選択します。
  4. 期間とフィルタを構成します。
  5. レポートを CSV ファイルとしてエクスポート ディレクトリ(例: `C:\Pharos\Exports`)にエクスポートします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
msg.Building、msg.DataSource、msg.FactSubType、msg.FactType、msg.JobId、msg.JobName、msg.JobTimeutc、msg.PostalCode、msg.VpnConnected、mtd.customer、mtd.slt.node、mtd.slt.pipeline、mtd.source.database、mtd.timestamp.producer_process additional.fields msg.Building が空でない場合は Building_label、msg.DataSource が空でない場合は datasource_label、msg.FactSubType が空でない場合は factsubtype_label、msg.FactType が空でない場合は facttype_label、msg.JobId が空でない場合は jobid_label、msg.JobName が空でない場合は jobname_label、msg.JobTimeutc が空でない場合は jobtimeutc_label、msg.PostalCode が ["", "Unknown"] に含まれない場合は postalcode_label、msg.VpnConnected が空でない場合は vpnconnected_label、mtd.customer が空でない場合は customer_label、mtd.slt.node が空でない場合は node_label、mtd.slt.pipeline が空でない場合は pipeline_label、mtd.source.database が空でない場合は database_label、mtd.timestamp.producer_process が空でない場合は producer_process_label と統合されます。
metadata.event_type has_principal が true の場合は「STATUS_UPDATE」、それ以外の場合は「GENERIC_EVENT」に設定します。
msg.Application principal.application 空でない場合、値が直接コピーされます
msg.HostName principal.asset.hostname 空でない場合、値が直接コピーされます
msg.IPAddress principal.asset.ip 値が ["", "Unknown"] に含まれていない場合、値は直接コピーされます。
msg.City principal.location.city 値が ["", "Unknown"] に含まれていない場合、値は直接コピーされます。
msg.Country principal.location.country_or_region 値が ["", "Unknown"] に含まれていない場合、値は直接コピーされます。
msg.State principal.location.state 値が ["", "Unknown"] に含まれていない場合、値は直接コピーされます。
msg.HostName principal.hostname 空でない場合、値が直接コピーされます
msg.IPAddress principal.ip 値が ["", "Unknown"] に含まれていない場合、値は直接コピーされます。
msg.UserDisplayName principal.user.user_display_name 空でない場合、値が直接コピーされます
mtd.source.host src.hostname 空でない場合、値が直接コピーされます
mtd.source.port src.port 値が ["", "n/a"] に含まれていない場合は、値が直接コピーされます。
mtd.source.type src.resource.attribute.labels 空でない場合は sourcetype_label と統合されます
metadata.product_name 「PHAROS」に設定
metadata.vendor_name 「PHAROS」に設定

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