Nutanix Prism のログを収集する
以下でサポートされています。
Google SecOpsSIEM
概要
このパーサーは、Nutanix Prism ログを処理し、JSON 形式と syslog 形式の両方を処理します。さまざまなログ構造からフィールドを抽出し、UDM に正規化して、ユーザー情報、ネットワークの詳細、セキュリティの重大度などの追加のコンテキストでデータを拡充します。また、パーサーは HTTP メソッドとログレベルに基づいて特定のアクションを実行し、イベントを USER_LOGIN、STATUS_UPDATE、GENERIC_EVENT などの UDM イベントタイプに分類します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Nutanix Prism Central への特権アクセス権があることを確認します。
- Windows 2012 SP2 以降または systemd を搭載した Linux ホストがあることを確認します。
- プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
Google SecOps 取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイルをダウンロードします。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細] セクションから [お客様 ID] をコピーして保存します。
BindPlane Agent をインストールする
- Windows へのインストールの場合は、次のスクリプト
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
を実行します。 - Linux へのインストールの場合は、
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
スクリプトを実行します。 - その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように BindPlane エージェントを構成する
- BindPlane がインストールされているマシンにアクセスします。
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
次のコマンドを使用して BindPlane エージェントを再起動して、変更を適用します。
sudo systemctl bindplane restart
Nutanix Prism から Syslog をエクスポートする
- 特権アカウントを使用して Prism Central にログインします。
- メニューから [Prism Central Settings] を選択します。
- [Syslog Server] に移動します。
- [+ Configure Syslog Server] をクリックします。
- [Syslog Servers] ダイアログで、入力パラメータの値を指定します。
- サーバー名: サーバーの名称を入力します(例: Google SecOps BindPlane Server)。
- IP アドレス: BindPlane Agent の IP を入力します。
- ポート: BindPlane Agent がリッスンするポートを入力します。
- Transport Protocol: [TCP] を選択します。
- [構成] をクリックします。
- [データソース] オプションで [+ 編集] をクリックします。
- [データソースとそれぞれの重大度レベル] ダイアログで、入力パラメータの値を指定します。
- [API Audit]、[Audit]、[Flow] を選択します。
- 各項目の重大度レベルを [6 - 情報] に設定します。
- [保存] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
@timestamp |
metadata.event_timestamp |
イベント タイムスタンプは @timestamp フィールドから解析されます。形式 yyyy-MM-dd HH:mm:ss.SSS 、yyyy-MM-ddTHH:mm:ssZ 、ISO8601 がサポートされています。 |
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.ip 、principal.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.ip 、principal.asset.ip |
ホストの IP アドレス。 |
host.mac |
principal.mac |
ホストの MAC アドレス。 |
host.os.kernel |
principal.platform_patch_level |
ホスト オペレーティング システムのカーネル バージョン。 |
host.os.platform |
principal.platform |
ホスト オペレーティング システムのプラットフォーム。LINUX 、WINDOWS 、MAC 、UNKNOWN_PLATFORM にマッピングされます。 |
host.os.version |
principal.platform_version |
ホスト オペレーティング システムのバージョン。 |
input.type |
network.ip_protocol |
ネットワーク プロトコル。「UDP」または「TCP」にマッピングされます。 |
log.source.address |
principal.ip 、principal.asset.ip 、principal.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.ip 、target.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.hostname 、principal.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_principal 、has_target 、audit_log 、network_set 、http_method の値に基づいてパーサー ロジックによって決定されます。GENERIC_EVENT 、USER_LOGIN 、STATUS_UPDATE 、USER_RESOURCE_ACCESS 、RESOURCE_CREATION 、USER_RESOURCE_UPDATE_CONTENT 、USER_RESOURCE_DELETION のいずれかです。 |
なし | metadata.log_type |
「NUTANIX_PRISM」にハードコードされました。 |
なし | extensions.auth.type |
metadata.event_type が USER_LOGIN の場合は、「AUTHTYPE_UNSPECIFIED」に設定します。 |
なし | security_result.severity |
log_level と syslog_pri に基づくパーサー ロジックによって決定されます。CRITICAL 、ERROR 、HIGH 、MEDIUM 、INFORMATIONAL のいずれかです。 |
変更点
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 チェックを追加しました。