Nutanix Prism のログを収集する

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

概要

このパーサーは、Nutanix Prism ログを処理し、JSON 形式と syslog 形式の両方を処理します。さまざまなログ構造からフィールドを抽出し、UDM に正規化して、ユーザー情報、ネットワークの詳細、セキュリティの重大度などの追加のコンテキストでデータを拡充します。また、パーサーは HTTP メソッドとログレベルに基づいて特定のアクションを実行し、イベントを USER_LOGINSTATUS_UPDATEGENERIC_EVENT などの UDM イベントタイプに分類します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Nutanix Prism Central への特権アクセス権があることを確認します。
  • Windows 2012 SP2 以降または systemd を搭載した Linux ホストがあることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。

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

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

BindPlane Agent をインストールする

  1. Windows へのインストールの場合は、次のスクリプト msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet を実行します。
  2. Linux へのインストールの場合は、sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh スクリプトを実行します。
  3. その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。

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

  1. BindPlane がインストールされているマシンにアクセスします。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: Namespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 次のコマンドを使用して BindPlane エージェントを再起動して、変更を適用します。sudo systemctl bindplane restart

Nutanix Prism から Syslog をエクスポートする

  1. 特権アカウントを使用して Prism Central にログインします。
  2. メニューから [Prism Central Settings] を選択します。
  3. [Syslog Server] に移動します。
  4. [+ Configure Syslog Server] をクリックします。
  5. [Syslog Servers] ダイアログで、入力パラメータの値を指定します。
    • サーバー名: サーバーの名称を入力します(例: Google SecOps BindPlane Server)。
    • IP アドレス: BindPlane Agent の IP を入力します。
    • ポート: BindPlane Agent がリッスンするポートを入力します。
    • Transport Protocol: [TCP] を選択します。
    • [構成] をクリックします。
  6. [データソース] オプションで [+ 編集] をクリックします。
  7. [データソースとそれぞれの重大度レベル] ダイアログで、入力パラメータの値を指定します。
    • [API Audit]、[Audit]、[Flow] を選択します。
    • 各項目の重大度レベルを [6 - 情報] に設定します。
    • [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
@timestamp metadata.event_timestamp イベント タイムスタンプは @timestamp フィールドから解析されます。形式 yyyy-MM-dd HH:mm:ss.SSSyyyy-MM-ddTHH:mm:ssZISO8601 がサポートされています。
agent.id observer.asset_id agent.type と組み合わせて、オブザーバー アセット ID を「agent.type:agent.id」の形式で作成します。
agent.type observer.application モニタリングに使用されるアプリケーション。
agent.version observer.platform_version オブザーバー アプリケーションのバージョン。
alertUid security_result.detection_fields.value アラート UID の値は、detection_fields 内の value フィールドにマッピングされます。key は「Alert Uid」に設定されています。
api_version metadata.product_version API バージョン
clientIp principal.ipprincipal.asset.ip クライアントの IP アドレス。
client_type principal.labels.value クライアント タイプの値。key は「client_type」に設定されています。
defaultMsg metadata.description デフォルトのメッセージ。
entity_uuid metadata.product_log_id エンティティの UUID。
http_method network.http.method HTTP メソッド。大文字に変換されます。
host.architecture principal.asset.hardware.cpu_platform ホストのアーキテクチャ。
host.id principal.asset_id 接頭辞「NUTANIX:」が付加され、プリンシパル アセット ID が作成されます。
host.ip principal.ipprincipal.asset.ip ホストの IP アドレス。
host.mac principal.mac ホストの MAC アドレス。
host.os.kernel principal.platform_patch_level ホスト オペレーティング システムのカーネル バージョン。
host.os.platform principal.platform ホスト オペレーティング システムのプラットフォーム。LINUXWINDOWSMACUNKNOWN_PLATFORM にマッピングされます。
host.os.version principal.platform_version ホスト オペレーティング システムのバージョン。
input.type network.ip_protocol ネットワーク プロトコル。「UDP」または「TCP」にマッピングされます。
log.source.address principal.ipprincipal.asset.ipprincipal.port 解析され、送信元 IP とポートが抽出されます。
logstash.collect.host observer.ip Logstash コレクタの IP アドレス。
logstash.collect.timestamp metadata.collected_timestamp ログが収集されたときのタイムスタンプ。
logstash.ingest.host intermediary.hostname Logstash 取り込みサーバーのホスト名。
logstash.ingest.timestamp metadata.ingested_timestamp ログが取り込まれたタイムスタンプ。
logstash.irm_environment principal.labels.value irm 環境の値。key は「irm_environment」に設定されます。
logstash.irm_region principal.labels.value irm リージョンの値。key は「irm_region」に設定されます。
logstash.irm_site principal.labels.value irm サイトの値。key は「irm_site」に設定されています。
logstash.process.host intermediary.hostname Logstash 処理サーバーのホスト名。
operationType metadata.product_event_type オペレーションのタイプ。
originatingClusterUuid additional.fields.value.string_value 送信元クラスタの UUID。key は「送信元クラスタ Uuid」に設定されています。
params.mac_address target.mac パラメータの MAC アドレス。
params.requested_ip_address target.iptarget.asset.ip パラメータからリクエストされた IP アドレス。
params.vm_name target.resource.name パラメータの VM 名。
program metadata.product_event_type プログラム名。
rest_endpoint target.url REST エンドポイント。
sessionId additional.fields.value.string_value セッション ID。key は「セッション ID」に設定されています。
syslog_host principal.hostnameprincipal.asset.hostname Syslog ホスト。
timestamp metadata.event_timestamp イベントのタイムスタンプ。
username principal.user.user_display_name または principal.user.userid ユーザー名。http_method が「POST」の場合、ユーザー ID として使用されます。
uuid metadata.product_log_id UUID。
なし metadata.vendor_name 「Nutanix_Prism」にハードコードされました。
なし metadata.product_name 「Nutanix_Prism」にハードコードされました。
なし metadata.event_type has_principalhas_targetaudit_lognetwork_sethttp_method の値に基づいてパーサー ロジックによって決定されます。GENERIC_EVENTUSER_LOGINSTATUS_UPDATEUSER_RESOURCE_ACCESSRESOURCE_CREATIONUSER_RESOURCE_UPDATE_CONTENTUSER_RESOURCE_DELETION のいずれかです。
なし metadata.log_type 「NUTANIX_PRISM」にハードコードされました。
なし extensions.auth.type metadata.event_typeUSER_LOGIN の場合は、「AUTHTYPE_UNSPECIFIED」に設定します。
なし security_result.severity log_levelsyslog_pri に基づくパーサー ロジックによって決定されます。CRITICALERRORHIGHMEDIUMINFORMATIONAL のいずれかです。

変更点

2024-02-21

  • 「inner_message」が空でない場合、かつ「not_json」が「true」の場合は、「audit_log」を「true」に設定して、破棄された JSON ログをサポートします。
  • 「principal.ip」と「principal.asset.ip」のマッピングを調整しました。
  • 「target.ip」と「target.asset.ip」のマッピングを調整しました。
  • 「principal.hostname」と「principal.asset.hostname」のマッピングを調整しました。
  • 「network_set」が「false」、「has_principal」が「true」、「has_target」が「false」、「audit_log」が「false」の場合、「metadata.event_type」を「STATUS_UPDATE」に設定します。
  • 「network_set」が「true」、「has_principal」が「true」、「has_target」が「false」、「audit_log」が「false」の場合、「metadata.event_type」を「GENERIC_EVENT」に設定します。

2024-01-12

  • 新しい形式の syslog ログのサポートを追加しました。
  • 「logstash.ingest.host」を「intermediary.hostname」にマッピングする前に null 条件チェックを追加しました。
  • 「logstash.process.host」を「intermediary.hostname」にマッピングする前に null 条件チェックを追加しました。
  • 「logstash.collect.host」を「observer.ip」にマッピングする前に null 条件チェックを追加しました。

2023-12-23

  • 新しいタイプの AUDIT ログのサポートを追加しました。
  • SYSLOG+JSON ログを解析するための新しい Grok パターンを追加しました。
  • 「affectedEntityList」と「alertUid」を「security_result.detection_fields」にマッピングしました。
  • 「clientIp」と「params.requested_ip_address」を「principal.ip」にマッピングしました。
  • 「defaultMsg」を「metadata.description」にマッピングしました。
  • 「operationType」を「metadata.product_event_type」にマッピングしました。
  • 「originatingClusterUuid」と「sessionId」を「additional.fields」にマッピングしました。
  • 「params.mac_address」を「principal.mac」にマッピングしました。
  • 「uuid」を「metadata.product_log_id」にマッピングしました。
  • 「userName」を「principal.user.user_display_name」にマッピングしました。
  • 「params.vm_name」を「target.resource.name」にマッピングしました。

2023-01-23

  • 「logstash.ingest.host」を「observer.hostname」ではなく「intermediary[0].hostname」にマッピングしました。
  • 「logstash.collect.host」を「observer.ip」にマッピングしました。
  • 「logstash.ingest.host」の null チェックを追加しました。