Fortinet FortiEDR のログを収集する
このドキュメントでは、Google Cloud Storage V2 または Bindplane エージェントを使用して Fortinet FortiEDR ログを Google Security Operations に取り込む方法について説明します。
Fortinet FortiEDR は、組織全体のエンドポイントに対してリアルタイムの保護、自動化されたインシデント対応、脅威インテリジェンスを提供するエンドポイント検出対応ソリューションです。
収集方法の違い
このガイドでは、次の 2 つの収集方法について説明します。
- オプション 1: Bindplane エージェント経由の Syslog: FortiEDR は syslog メッセージを Bindplane エージェントに送信し、Bindplane エージェントはログを Google SecOps に転送します。最小限のインフラストラクチャでリアルタイム ログの取り込みを行う場合に推奨されます。
- オプション 2: Cloud Functions 経由で Syslog から GCS へ: FortiEDR は syslog メッセージを Cloud Functions に送信し、Cloud Functions は Google SecOps の取り込み用にログを GCS に書き込みます。一元化されたログ ストレージとバッチ処理におすすめします。
インフラストラクチャと要件に最適な方法を選択します。
オプション 1: Bindplane エージェントを使用して Fortinet FortiEDR ログを収集する
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Windows Server 2016 以降、または systemd を使用する Linux ホスト
- Bindplane エージェントと Fortinet FortiEDR Central Manager 間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- Fortinet FortiEDR 管理コンソールへの特権アクセス
- FortiEDR バージョン 5.0 以降
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- [ダウンロード] をクリックして、取り込み認証ファイルをダウンロードします。
Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collector
サービスは RUNNING と表示されます。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collector
サービスが [アクティブ(実行中)] と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yaml
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yaml の内容全体を次の構成に置き換えます。
receivers:
tcplog:
listen_address: "0.0.0.0:514"
exporters:
chronicle/fortiedr:
compression: gzip
creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
customer_id: 'YOUR_CUSTOMER_ID'
endpoint: malachiteingestion-pa.googleapis.com
log_type: FORTINET_FORTIEDR
raw_log_field: body
ingestion_labels:
env: production
service:
pipelines:
logs/fortiedr_to_chronicle:
receivers:
- tcplog
exporters:
- chronicle/fortiedr
構成パラメータ
各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート。0.0.0.0:514を使用して、ポート 514 のすべてのインターフェースをリッスンします。
エクスポータの構成:
creds_file_path: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: 前の手順の顧客 ID。endpoint: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com
- 米国:
ingestion_labels: YAML 形式の省略可能なラベル。
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
Bindplane エージェントを再起動して変更を適用する
Linux
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows
次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を使用します。
net stop observiq-otel-collector && net start observiq-otel-collectorServices コンソールを使用する場合:
Win+Rキーを押し、「services.msc」と入力して Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Fortinet FortiEDR syslog 転送を構成する
syslog の宛先を構成する
- FortiEDR Central Manager コンソールにログインします。
- [Administration] > [Export Settings] > [Syslog] に移動します。
- [Define New Syslog] ボタンをクリックします。
- [Syslog Name] フィールドに、わかりやすい名前(例:
Chronicle-Integration)を入力します。 - [ホスト] フィールドに、Bindplane エージェント ホストの IP アドレスを入力します。
- [Port] フィールドに、「
514」と入力します。 - [プロトコル] プルダウンで、[TCP] を選択します。
- [形式] プルダウンで、[セミコロン](セミコロンで区切られたフィールドを含むデフォルトの形式)を選択します。
- [テスト] ボタンをクリックして、Bindplane エージェントへの接続をテストします。
- テストが成功したことを確認します。
- [保存] ボタンをクリックして、syslog の宛先を保存します。
イベント タイプごとに syslog 通知を有効にする
- [Syslog] ページで、作成した syslog 転送先の行を選択します。
- 右側の [通知] ペインで、スライダーを使用してイベントタイプごとに宛先を有効または無効にします。
- システム イベント: FortiEDR システムの健全性イベントを送信する場合は有効にします。
- セキュリティ イベント: セキュリティ イベントの集計を送信する場合は有効にします。
- 監査証跡: 監査ログイベントを送信する場合は有効にします。
- 有効になっている各イベントタイプの右側にあるボタンをクリックします。
- syslog メッセージに含めるフィールドのチェックボックスをオンにします。
- [保存] をクリックします。
ハンドブックの通知を構成する
Syslog メッセージは、[Syslog 通知を送信] オプションが有効になっている Playbook ポリシーが割り当てられているデバイスで発生したセキュリティ イベントに対してのみ送信されます。
- [セキュリティ設定>プレイブック] に移動します。
- モニタリングするデバイスに適用するハンドブック ポリシーを選択します(例: デフォルトのハンドブック)。
- [通知] セクションで、[Syslog] 行を見つけます。
- 送信するイベント分類のチェックボックスをオンにして、[Syslog 通知を送信する] オプションを有効にします。
- 悪意のある: 悪意のあると分類されたセキュリティ イベント。
- 不審: 不審と分類されたセキュリティ イベント。
- PUP: 望ましくない可能性のあるプログラム。
- Inconclusive: 分類が確定していないイベント。
- Likely Safe: 安全である可能性が高いと分類されたイベント(省略可)。
[保存] をクリックします。
オプション 2: GCS を使用して Fortinet FortiEDR ログを収集する
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Cloud Storage API が有効になっている GCP プロジェクト
- GCS バケットを作成および管理する権限
- GCS バケットの IAM ポリシーを管理する権限
- Cloud Run サービス、Pub/Sub トピック、Cloud Scheduler ジョブを作成する権限
- Fortinet FortiEDR 管理コンソールへの特権アクセス
- FortiEDR バージョン 5.0 以降
Google Cloud Storage バケットを作成する
- Google Cloud Console に移動します。
- プロジェクトを選択するか、新しいプロジェクトを作成します。
- ナビゲーション メニューで、[Cloud Storage > バケット] に移動します。
- [バケットを作成] をクリックします。
次の構成情報を提供してください。
設定 値 バケットに名前を付ける グローバルに一意の名前( fortiedr-logsなど)を入力します。ロケーション タイプ ニーズに基づいて選択します(リージョン、デュアルリージョン、マルチリージョン)。 ロケーション ロケーションを選択します(例: us-central1)。ストレージ クラス Standard(頻繁にアクセスされるログにおすすめ) アクセス制御 均一(推奨) 保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする [作成] をクリックします。
Cloud Run functions のサービス アカウントを作成する
Cloud Run 関数には、GCS バケットに書き込み、Pub/Sub によって呼び出される権限を持つサービス アカウントが必要です。
サービス アカウントの作成
- GCP Console で、[IAM と管理>サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成の詳細を指定します。
- サービス アカウント名: 「
fortiedr-syslog-collector-sa」と入力します。 - サービス アカウントの説明: 「
Service account for Cloud Run function to collect FortiEDR syslog logs」と入力します。
- サービス アカウント名: 「
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、次のロールを追加します。
- [ロールを選択] をクリックします。
- [ストレージ オブジェクト管理者] を検索して選択します。
- [+ 別のロールを追加] をクリックします。
- [Cloud Run 起動元] を検索して選択します。
- [+ 別のロールを追加] をクリックします。
- [Cloud Functions 起動元] を検索して選択します。
- [続行] をクリックします。
- [完了] をクリックします。
これらのロールは、次の目的で必要です。
- Storage オブジェクト管理者: ログを GCS バケットに書き込み、状態ファイルを管理する
- Cloud Run 起動元: Pub/Sub が関数を呼び出すことを許可する
- Cloud Functions 起動元: 関数の呼び出しを許可する
GCS バケットに対する IAM 権限を付与する
GCS バケットに対する書き込み権限をサービス アカウントに付与します。
- [Cloud Storage] > [バケット] に移動します。
- バケット名をクリックします。
- [権限] タブに移動します。
- [アクセス権を付与] をクリックします。
- 次の構成の詳細を指定します。
- プリンシパルを追加: サービス アカウントのメールアドレス(例:
fortiedr-syslog-collector-sa@PROJECT_ID.iam.gserviceaccount.com)を入力します。 - ロールを割り当てる: [Storage オブジェクト管理者] を選択します。
- プリンシパルを追加: サービス アカウントのメールアドレス(例:
- [保存] をクリックします。
Pub/Sub トピックの作成
Cloud Scheduler がパブリッシュし、Cloud Run functions がサブスクライブする Pub/Sub トピックを作成します。
- GCP Console で、[Pub/Sub> トピック] に移動します。
- [トピックを作成] をクリックします。
- 次の構成の詳細を指定します。
- トピック ID: 「
fortiedr-syslog-trigger」と入力します。 - その他の設定はデフォルトのままにします。
- トピック ID: 「
- [作成] をクリックします。
syslog を受信する Cloud Run 関数を作成する
Cloud Run 関数は、HTTP 経由で FortiEDR から syslog メッセージを受信し、GCS に書き込みます。
- GCP Console で、[Cloud Run] に移動します。
- [サービスを作成] をクリックします。
- [関数] を選択します(インライン エディタを使用して関数を作成します)。
[構成] セクションで、次の構成の詳細を指定します。
設定 値 サービス名 fortiedr-syslog-collectorリージョン GCS バケットと一致するリージョンを選択します(例: us-central1)。ランタイム [Python 3.12] 以降を選択します。 [トリガー(省略可)] セクションで、次の操作を行います。
- [+ トリガーを追加] をクリックします。
- [HTTPS] を選択します。
- [認証] で、[未認証の呼び出しを許可] を選択します。
- [保存] をクリックします。
[コンテナ、ネットワーキング、セキュリティ] までスクロールして開きます。
[セキュリティ] タブに移動します。
- サービス アカウント: サービス アカウントを選択します(
fortiedr-syslog-collector-sa)。
- サービス アカウント: サービス アカウントを選択します(
[コンテナ] タブに移動します。
- [変数とシークレット] をクリックします。
環境変数ごとに [+ 変数を追加] をクリックします。
変数名 値の例 説明 GCS_BUCKETfortiedr-logsGCS バケット名 GCS_PREFIXfortiedr-syslogログファイルの接頭辞
[変数とシークレット] セクションで、[リクエスト] までスクロールします。
- リクエスト タイムアウト:
60秒を入力します。
- リクエスト タイムアウト:
[設定] タブに移動します。
- [リソース] セクションで次の操作を行います。
- メモリ: 256 MiB 以上を選択します。
- CPU: [1] を選択します。
- [リソース] セクションで次の操作を行います。
[リビジョン スケーリング] セクションで、次の操作を行います。
- [インスタンスの最小数] に「
0」と入力します。 - インスタンスの最大数:
10と入力します(または、予想される負荷に基づいて調整します)。
- [インスタンスの最小数] に「
[作成] をクリックします。
サービスが作成されるまで待ちます(1 ~ 2 分)。
サービスが作成されると、インライン コードエディタが自動的に開きます。
関数コードを追加する
- [エントリ ポイント] フィールドに「main」と入力します。
インライン コードエディタで、次の 2 つのファイルを作成します。
- 最初のファイル: main.py:
import functions_framework from google.cloud import storage import json import os from datetime import datetime, timezone from flask import Request # Initialize Storage client storage_client = storage.Client() # Environment variables GCS_BUCKET = os.environ.get('GCS_BUCKET') GCS_PREFIX = os.environ.get('GCS_PREFIX', 'fortiedr-syslog') @functions_framework.http def main(request: Request): """ Cloud Run function to receive syslog messages from FortiEDR and write to GCS. Args: request: Flask Request object containing syslog message """ if not GCS_BUCKET: print('Error: Missing GCS_BUCKET environment variable') return ('Missing GCS_BUCKET environment variable', 500) try: # Get request body request_data = request.get_data(as_text=True) if not request_data: print('Warning: Empty request body') return ('Empty request body', 400) # Parse syslog messages (one per line) lines = request_data.strip().split('\n') if not lines: print('Warning: No syslog messages found') return ('No syslog messages found', 400) # Get GCS bucket bucket = storage_client.bucket(GCS_BUCKET) # Write to GCS as NDJSON now = datetime.now(timezone.utc) timestamp = now.strftime('%Y%m%d_%H%M%S_%f') object_key = f"{GCS_PREFIX}/logs_{timestamp}.ndjson" blob = bucket.blob(object_key) # Convert each line to JSON object with raw syslog message records = [] for line in lines: if line.strip(): records.append({'raw': line.strip(), 'timestamp': now.isoformat()}) ndjson = '\n'.join([json.dumps(record, ensure_ascii=False) for record in records]) + '\n' blob.upload_from_string(ndjson, content_type='application/x-ndjson') print(f"Wrote {len(records)} records to gs://{GCS_BUCKET}/{object_key}") return (f"Successfully processed {len(records)} records", 200) except Exception as e: print(f'Error processing syslog: {str(e)}') return (f'Error processing syslog: {str(e)}', 500)- 2 つ目のファイル: requirements.txt:
functions-framework==3.* google-cloud-storage==2.* flask==3.*[デプロイ] をクリックして、関数を保存してデプロイします。
デプロイが完了するまで待ちます(2 ~ 3 分)。
デプロイ後、[トリガー] タブに移動して、[トリガー URL](
https://fortiedr-syslog-collector-abc123-uc.a.run.appなど)をコピーします。
Cloud Functions への Fortinet FortiEDR syslog 転送を構成する
syslog の宛先を構成する
- FortiEDR Central Manager コンソールにログインします。
- [Administration] > [Export Settings] > [Syslog] に移動します。
- [Define New Syslog] ボタンをクリックします。
- [Syslog Name] フィールドに、わかりやすい名前(例:
Chronicle-GCS-Integration)を入力します。 - [ホスト] フィールドに、Cloud Functions のトリガー URL のホスト名(
fortiedr-syslog-collector-abc123-uc.a.run.appなど)を入力します。 - [Port] フィールドに、「
443」と入力します。 - [プロトコル] プルダウンで、[TCP] を選択します。
- [形式] プルダウンで、[セミコロン](セミコロンで区切られたフィールドを含むデフォルトの形式)を選択します。
- [テスト] ボタンをクリックして、Cloud Functions への接続をテストします。
- テストが成功したことを確認します。
[保存] ボタンをクリックして、syslog の宛先を保存します。
イベント タイプごとに syslog 通知を有効にする
- [Syslog] ページで、作成した syslog 転送先の行を選択します。
- 右側の [通知] ペインで、スライダーを使用してイベントタイプごとに宛先を有効または無効にします。
- システム イベント: FortiEDR システムの健全性イベントを送信する場合は有効にします。
- セキュリティ イベント: セキュリティ イベントの集計を送信する場合は有効にします。
- 監査証跡: 監査ログイベントを送信する場合は有効にします。
- 有効になっている各イベントタイプの右側にあるボタンをクリックします。
- syslog メッセージに含めるフィールドのチェックボックスをオンにします。
- [保存] をクリックします。
ハンドブックの通知を構成する
Syslog メッセージは、[Syslog 通知を送信] オプションが有効になっている Playbook ポリシーが割り当てられているデバイスで発生したセキュリティ イベントに対してのみ送信されます。
- [セキュリティ設定>プレイブック] に移動します。
- モニタリングするデバイスに適用するハンドブック ポリシーを選択します(例: デフォルトのハンドブック)。
- [通知] セクションで、[Syslog] 行を見つけます。
- 送信するイベント分類のチェックボックスをオンにして、[Syslog 通知を送信する] オプションを有効にします。
- 悪意のある: 悪意のあると分類されたセキュリティ イベント。
- 不審: 不審と分類されたセキュリティ イベント。
- PUP: 望ましくない可能性のあるプログラム。
- Inconclusive: 分類が確定していないイベント。
- Likely Safe: 安全である可能性が高いと分類されたイベント(省略可)。
[保存] をクリックします。
統合をテストする
- FortiEDR Central Manager コンソールで、[Administration] > [Export Settings] > [Syslog] に移動します。
- syslog の宛先の行を選択します。
- [テスト] ボタンをクリックして、テスト メッセージを送信します。
- GCP Console で、[Cloud Run> サービス] に移動します。
- 関数名(
fortiedr-syslog-collector)をクリックします。 - [Logs] タブをクリックします。
関数が正常に実行されたことを確認します。以下のものを探します。
Wrote X records to gs://fortiedr-logs/fortiedr-syslog/logs_YYYYMMDD_HHMMSS_MMMMMM.ndjson Successfully processed X records[Cloud Storage] > [バケット] に移動します。
バケット名をクリックします。
プレフィックス フォルダ(
fortiedr-syslog/)に移動します。現在のタイムスタンプで新しい
.ndjsonファイルが作成されたことを確認します。
ログにエラーが表示された場合:
- リクエストの本文が空: FortiEDR が Cloud Functions にデータを送信していない
- GCS_BUCKET 環境変数がありません: 環境変数が設定されていることを確認する
- 権限が拒否されました: サービス アカウントにバケットに対するストレージ オブジェクト管理者のロールがあることを確認する
Google SecOps サービス アカウントを取得する
Google SecOps は、一意のサービス アカウントを使用して GCS バケットからデータを読み取ります。このサービス アカウントにバケットへのアクセス権を付与する必要があります。
Fortinet FortiEDR のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
FortiEDR Syslog Logs)。 - [ソースタイプ] として [Google Cloud Storage V2] を選択します。
[ログタイプ] として [Fortinet FortiEDR] を選択します。
[サービス アカウントを取得する] をクリックします。
一意のサービス アカウント メールアドレスが表示されます(例:)。
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comこのメールアドレスをコピーします。次のステップでこれを使用します。
[次へ] をクリックします。
次の入力パラメータの値を指定します。
ストレージ バケットの URL: 接頭辞パスを含む GCS バケット URI を入力します。
gs://fortiedr-logs/fortiedr-syslog/次のように置き換えます。
fortiedr-logs: GCS バケット名。fortiedr-syslog: ログが保存されるオプションの接頭辞/フォルダパス(ルートの場合は空のままにします)。
Source deletion option: 必要に応じて削除オプションを選択します。
- なし: 転送後にファイルを削除しません(テストにおすすめ)。
- 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
- 転送されたファイルと空のディレクトリを削除する: 転送が完了した後にファイルと空のディレクトリを削除します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Google SecOps サービス アカウントに IAM 権限を付与する
Google SecOps サービス アカウントには、GCS バケットに対する Storage オブジェクト閲覧者ロールが必要です。
- [Cloud Storage] > [バケット] に移動します。
- バケット名をクリックします。
- [権限] タブに移動します。
- [アクセス権を付与] をクリックします。
- 次の構成の詳細を指定します。
- プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
- ロールを割り当てる: [ストレージ オブジェクト閲覧者] を選択します。
[保存] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| 国 | target.location.country_or_region | N/A または空でない場合、値が直接コピーされます |
| srccountry | principal.location.country_or_region | Reserved または空でない場合、値が直接コピーされます |
| dstcountry | target.location.country_or_region | 空でない場合、値が直接コピーされます |
| srcip | principal.ip | 値を直接コピー |
| dstip | target.ip | N/A でない場合は値を直接コピー |
| 目的地 | target.ip | 有効な場合は送信先から IP として抽出されます |
| dst | target.ip | 有効な場合は dst から IP として抽出 |
| srcmac | principal.mac | 値を直接コピー |
| dstosname | target.platform | LINUX と一致する場合は LINUX、WINDOWS と一致する場合は WINDOWS、MAC と一致する場合は MAC に設定します。 |
| srcport | principal.port | 整数に変換しました |
| dstport | target.port | 整数に変換しました |
| spt | principal.port | 整数に変換しました |
| dpt | target.port | 整数に変換しました |
| sessionid | network.session_id | 値を直接コピー |
| sentbyte | network.sent_bytes | 符号なし整数に変換 |
| rcvdbyte | network.received_bytes | 符号なし整数に変換 |
| duration | network.session_duration.seconds | 整数に変換しました |
| アクション | security_result.summary | 値を直接コピー |
| レベル | security_result.severity_details | 「level: %{level}」に設定 |
| policyid | security_result.rule_id | 値を直接コピー |
| policyname | security_result.rule_name | 値を直接コピー |
| policytype | security_result.rule_type | 値を直接コピー |
| サービス | target.application | 値を直接コピー |
| intermediary_ip | target.ip | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| intermediary | intermediary | 値を直接コピー |
| devname | target.hostname | 値を直接コピー |
| server_host | target.hostname | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| server_host | intermediary.hostname | Audit または loginStatus でない場合、値はラベルとして直接コピーされます |
| deviceInformation | target.resource.name, target.resource.resource_type | device_name を抽出し、resource_type を DEVICE に設定しました |
| component_name | additional.fields | キー「Component Name」のラベルとして設定 |
| process_name | principal.application | 値を直接コピー |
| プロセスのパス | target.file.full_path | 値を直接コピー |
| asset_os | target.platform | .Windows. と一致する場合は WINDOWS に設定します。一致する場合は LINUX。Linux. |
| os_version | target.platform_version | asset_os から抽出 |
| asset_os | principal.platform | .Windows. と一致する場合は WINDOWS に設定します。一致する場合は LINUX。Linux. |
| os_version | principal.platform_version | asset_os から抽出 |
| usr_name | userId | 値を直接コピー |
| ユーザー | userId | WG または ADDC でない場合、値が直接コピーされます |
| id | userId | 値を直接コピー |
| userId | target.user.userid | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| userId | principal.user.userid | Audit または loginStatus でない場合、値が直接コピーされます |
| userDisplayName | target.user.user_display_name | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| userDisplayName | principal.user.user_display_name | Audit または loginStatus でない場合、値が直接コピーされます |
| userPrincipalName | principal.user.userid | 値を直接コピー |
| 説明 | metadata.description | 空でない場合、値が直接コピーされます |
| 詳細 | metadata.description | 空でない場合、値が直接コピーされます |
| mfaResult | metadata.description | 空でない場合、値が直接コピーされます |
| data7 | metadata.description | 空でない場合、値が直接コピーされます |
| message_type | metadata.description | description_details が空の場合、値が直接コピーされる |
| src_ip、srcip | principal.ip | src_ip が空でない場合は src_ip の値、それ以外の場合は src、それ以外の場合は Source、それ以外の場合は ipAddress |
| src_ip | principal.ip | 有効な場合は src_ip から IP として抽出されます |
| mac_address | principal.mac | 配列として処理され、小文字に変換され、有効な MAC の場合は統合されます |
| event_id | target.process.pid | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| event_id | metadata.product_log_id | Audit または loginStatus でない場合、値が直接コピーされます |
| event_type | metadata.event_type | 値を直接コピー |
| 重大度 | security_result.severity | 低または空の場合は INFORMATIONAL、中の場合は MEDIUM、高の場合は HIGH、重大の場合は CRITICAL に設定します。 |
| アクション | security_result.action | (?i)Allow と一致する場合は ALLOW、(?i)Block と一致する場合は BLOCK、それ以外の場合は action_details に設定します。 |
| security_action | security_result.action | 値を直接コピー |
| ルール | ルール | 値を直接コピー |
| ルール | security_result.rule_name | 値を直接コピー |
| 分類 | security_result.summary | 値を直接コピー |
| 初回検知 | security_result.detection_fields | キー「First Seen」のラベルとして設定 |
| 最終検知 | security_result.detection_fields | キー「Last Seen」のラベルとして設定 |
| 組織 | target.administrative_domain | message_type が Audit または loginStatus が空でない場合は、値が直接コピーされます |
| 組織 | additional.fields | Audit または loginStatus でない場合は、キー「Organization」のラベルとして設定します。 |
| security_result | security_result | sec_result からマージ |
| metadata.vendor_name | 「FORTINET」に設定 | |
| metadata.product_name | 「FORTINET_FORTIEDR」に設定 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。