OPNsense ファイアウォール ログを収集する

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

このパーサーは、OPNsense ファイアウォール ログ(Syslog 形式と CSV 形式)からフィールドを抽出し、UDM にマッピングします。「filterlog」アプリケーション ログに grok と CSV の解析を使用し、さまざまなログ形式とネットワーク プロトコル(TCP、UDP、ICMP など)を処理して、プリンシパル、ターゲット、ネットワーク、security_result などの UDM フィールドに入力します。また、ベンダーやプロダクト名などのメタデータを追加し、プリンシパルとターゲットの情報が存在するかどうかに基づいてイベントタイプを特定します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • OPNsense ウェブ インターフェースへの特権アクセス権があることを確認します。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM Settings] > [Collection Agents] に移動します。
  3. Ingestion Authentication File をダウンロードします。

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

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

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

  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 Agent を構成する

  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: testNamespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 次のコマンドを使用して Bindplane Agent を再起動して、変更を適用します。 sudo systemctl bindplane restart

OPNsense に Syslog サーバーの構成を追加する

  1. OPNsense ウェブ インターフェースにログインします。
  2. [System] > [Settings] > [Logging] に移動します。
  3. [リモート ロギング] セクションで、[ログをリモート syslog サーバーに送信する] のチェックボックスをオンにして、この機能を有効にします。
  4. [Remote Syslog Servers] フィールドに、syslog サーバーの IP アドレスポートを含む。例: 10.10.10.10:54525)を入力します。
  5. syslog 機能として Local0 を選択します。
  6. Syslog レベルを [アラート] に設定します。

  7. [保存] をクリックして変更を適用します。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
column1 security_result.rule_id column1 から直接マッピングされます。
column10 additional.fields[].key: "tos"
additional.fields[].value.string_value: column10 の値
column10 から直接マッピングされ、additional.fields の下に「tos」キーでネストされます。
column12 additional.fields[].key: 「ttl」
additional.fields[].value.string_value: column12 の値
column12 から直接マッピングされ、additional.fields の下に「ttl」キーでネストされます。
column13 additional.fields[].key: 「Id」
additional.fields[].value.string_value: column13 の値
column13 から直接マッピングされ、additional.fields の下にネストされ、キーは「Id」です。
column14 additional.fields[].key: 「offset」
additional.fields[].value.string_value: column14 の値
column14 から直接マッピングされ、additional.fields の下に「offset」キーでネストされます。
column15 additional.fields[].key: 「flags」
additional.fields[].value.string_value: column15 の値
column15 から直接マッピングされ、additional.fields の下に「flags」キーでネストされます。
column17 network.ip_protocol 大文字に変換された後、column17 から直接マッピングされます。
column18 network.received_bytes column18 から直接マッピングされ、符号なし整数に変換されます。
column19 principal.ip column19 から直接マッピングされます。
column20 target.ip column20 から直接マッピングされます。
column21 principal.portcolumn17 が TCP または UDP の場合)
additional.fields[].key: 「data_length」
additional.fields[].value.string_value: 抽出された値(column17 が ICMP、GRE、ESP、IGMP の場合)
column17 が TCP/UDP の場合、column21 から直接マッピングされ、整数に変換されます。それ以外の場合、「datalength」の値は grok を使用して抽出され、キー「data_length」とともに additional.fields に配置されます。
column22 target.port column17 が TCP または UDP の場合、column22 から直接マッピングされ、整数に変換されます。
column24 additional.fields[].key:「tcp_flags」
additional.fields[].value.string_value: column24 の値
column17 が TCP の場合、column24 から直接マッピングされ、additional.fields の下に「tcp_flags」キーでネストされます。
column29 additional.fields[].key:「tcp_options」
additional.fields[].value.string_value: column29 の値
column17 が TCP の場合、column29 から直接マッピングされ、キー「tcp_options」で additional.fields の下にネストされます。
column4 additional.fields[].key: 「tracker」
additional.fields[].value.string_value: column4 の値
column4 から直接マッピングされ、additional.fields の下に「tracker」キーでネストされます。
column5 additional.fields[].key: 「interface」
additional.fields[].value.string_value: column5 の値
column5 から直接マッピングされ、additional.fields の下に「interface」キーでネストされます。
column6 security_result.rule_type column6 から直接マッピングされます。
column7 security_result.action column7 からマッピングされます。「block」の場合、大文字の「BLOCK」に変換されます。「pass」の場合は、「ALLOW」に設定します。
column8 network.direction column8 からマッピングされます。「in」の場合は、「INBOUND」に設定します。「out」の場合は、「OUTBOUND」に設定します。
domain principal.administrative_domain grok で抽出された domain から直接マッピングされます。プリンシパルとターゲットの両方の IP アドレスが存在する場合は「NETWORK_CONNECTION」に設定され、それ以外の場合は「GENERIC_EVENT」に設定されます。「OPNSENSE」にハードコードされています。「OPNSENSE」にハードコードされています。
message 各種フィールド grok フィルタと csv フィルタを使用して解析し、さまざまなフィールドを抽出します。特定のマッピングについては、他の行をご覧ください。
ts metadata.event_timestamp.secondstimestamp.seconds Grok を使用してメッセージ フィールドから解析され、タイムスタンプに変換されます。秒の値は、metadata.event_timestamp.secondstimestamp.seconds の両方を入力するために使用されます。
application principal.application grok で抽出された application から直接マッピングされます。

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