Fortinet FortiMail のログを収集する

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

このドキュメントでは、Bindplane を使用して Fortinet FortiMail ログを収集する方法について説明します。パーサーは Key-Value ペアを抽出し、タイムスタンプや IP アドレスなどのさまざまなフィールドを正規化して、Google Security Operations の統合データモデル(UDM)にマッピングし、利用可能な情報に基づいてイベントタイプを分類します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
  • Fortinet Fortimail への特権アクセス権があることを確認します。

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

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

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

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

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

Windows へのインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

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
    

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

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

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリ、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    ```yaml
    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:5252"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: SYSLOG
                namespace: fortinet_fortimail
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    ```
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際のお客様 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Fortinet FortiMail syslog を構成する

  1. FortiMail デバイスのウェブ インターフェースにログインします。
  2. [ログとレポート> ログ設定> リモート] を選択します。
  3. [新規] をクリックして新しいエントリを作成します。
  4. 表示されたダイアログで [有効にする] を選択して、リモートホストへのロギングを許可します。
  5. 以下の詳細を入力します。
    • 名前: 一意でわかりやすい名前を入力します。
    • サーバー名/IP: Bindplane の IP アドレスを入力します。
    • サーバー ポート: Bindplane UDP ポート番号を入力します。
    • レベル: 重大度レベルとして [情報] を選択します。
    • 施設: 一意の施設 ID を入力し、他のネットワーク デバイスで同じ施設 ID が使用されていないことを確認します。
    • CSV 形式の選択を解除します。
    • ログ プロトコル: [Syslog] を選択します。
    • ロギング ポリシーの構成: すべてのタイプのイベントまたはログの転送を有効にします。
  6. [作成] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
authid read_only_udm.target.user.email_addresses authid フィールドに @ が含まれている場合は、このフィールドにマッピングします。
authid read_only_udm.target.user.userid authid フィールドをこのフィールドにマッピングする
暗号 read_only_udm.network.tls.cipher cipher フィールドをこのフィールドにマッピングする
client_ip read_only_udm.principal.ip client_ip フィールドをこのフィールドにマッピングする
client_name read_only_udm.principal.hostname client_name フィールドをこのフィールドにマッピングする
詳細 read_only_udm.security_result.summary detail フィールドをこのフィールドにマッピングする
device_id read_only_udm.principal.resource.id device_id フィールドをこのフィールドにマッピングする
devname read_only_udm.principal.resource.name devname フィールドをこのフィールドにマッピングする
direction read_only_udm.network.direction direction フィールドが out と等しい場合は値 OUTBOUND をマッピングし、direction フィールドが in と等しい場合は値 INBOUND をマッピングし、それ以外の場合は値 UNKNOWN_DIRECTION をマッピングします。
disposition read_only_udm.security_result.detection_fields.value キーフィールドが Disposition の場合、disposition フィールドをこのフィールドにマッピングします。
ドメイン read_only_udm.principal.administrative_domain domain フィールドをこのフィールドにマッピングする
dst_ip read_only_udm.target.ip dst_ip フィールドをこのフィールドにマッピングする
read_only_udm.network.email.from from フィールドに @ が含まれている場合は、このフィールドにマッピングします。
log_id read_only_udm.metadata.product_log_id log_id フィールドをこのフィールドにマッピングする
message_id read_only_udm.network.email.mail_id message_id フィールドをこのフィールドにマッピングする
message_length read_only_udm.additional.fields.value.number_value キーフィールドが message_length の場合、message_length フィールドをこのフィールドにマッピングします。
msg read_only_udm.security_result.description msg フィールドをこのフィールドにマッピングする
polid read_only_udm.security_result.detection_fields.value キーフィールドが Polid の場合、polid フィールドをこのフィールドにマッピングします。
リレー read_only_udm.intermediary.ip relay フィールドをこのフィールドにマッピングする
解決済み read_only_udm.security_result.detection_fields.value キーフィールドが Resolved の場合、resolved フィールドをこのフィールドにマッピングします。
session_id read_only_udm.network.session_id session_id フィールドをこのフィールドにマッピングする
src_type read_only_udm.additional.fields.value.string_value キーフィールドが src_type の場合、src_type フィールドをこのフィールドにマッピングします。
stat read_only_udm.metadata.description stat フィールドをこのフィールドにマッピングする
件名 read_only_udm.network.email.subject subject フィールドをこのフィールドにマッピングする
read_only_udm.network.email.to to フィールドに @ が含まれている場合は、このフィールドにマッピングします。
ユーザー read_only_udm.principal.user.userid user フィールドをこのフィールドにマッピングする
なし read_only_udm.extensions.auth.mechanism このフィールドの値は、authid フィールドが存在する場合、パーサーコードで USERNAME_PASSWORD としてハードコードされます。
なし read_only_udm.extensions.auth.type このフィールドの値は、authid フィールドが存在する場合、パーサーコードで AUTHTYPE_UNSPECIFIED としてハードコードされます。
なし read_only_udm.metadata.event_type このフィールドの値は、使用可能なフィールドの組み合わせに基づいてパーサー ロジックによって決定されます。from フィールドが存在する場合、値は EMAIL_TRANSACTION です。to フィールドが存在する場合、値は EMAIL_UNCATEGORIZED です。client_ip フィールドと dst_ip フィールドの両方が存在する場合、値は NETWORK_CONNECTION です。authid フィールドが存在する場合、値は USER_LOGIN です。user フィールドが存在する場合、値は USER_UNCATEGORIZED です。client_ip フィールドが存在する場合、値は STATUS_UPDATE です。それ以外の場合、値は GENERIC_EVENT です。
なし read_only_udm.metadata.log_type このフィールドの値は、パーサーコードで FORTINET_FORTIMAIL としてハードコードされています。
なし read_only_udm.metadata.product_name このフィールドの値は、パーサーコードで FORTINET_FORTIMAIL としてハードコードされています。
なし read_only_udm.metadata.vendor_name このフィールドの値は、パーサーコードで FORTINET としてハードコードされています。
なし read_only_udm.principal.resource.resource_type このフィールドの値は、パーサーコードで DEVICE としてハードコードされています。

変更点

2023-09-06

機能強化:

  • データを抽出し、失敗した KV ログを解析するための Grok パターンを追加しました。

2023-05-23

  • 新しく作成されたパーサー。

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