F5 AFM のログを収集する

パーサーのバージョン: 23.0

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

このドキュメントでは、Bindplane エージェントを使用して F5 Advanced Firewall Management(AFM)ログを Google Security Operations に取り込む方法について説明します。

F5 BIG-IP AFM は、ファイアウォール ルール アクション(許可、ドロップ、拒否)、IP インテリジェンス イベント、TCP エラーの syslog メッセージを生成するネットワーク ファイアウォール モジュールです。パーサーは、CSV 形式または syslog 形式のログからフィールドを抽出し、Unified Data Model(UDM)にマッピングします。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと F5 BIG-IP アプライアンス間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
  • F5 BIG-IP と F5 Advanced Firewall Management への特権アクセス

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。
  4. Bindplane エージェントがインストールされるシステムに、ファイルを安全に保存します。

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

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

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

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスは RUNNING と表示されます。

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
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    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:5145"
    
    exporters:
        chronicle/f5_afm:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: F5_AFM
            raw_log_field: body
    
    service:
        pipelines:
            logs/f5_afm_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/f5_afm
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • listen_address: リッスンする IP アドレスとポート:
      • すべてのインターフェースでリッスンする 0.0.0.0(推奨)
      • ポート 5145 は F5 AFM 高速ロギングに使用されます(F5 の構成に合わせて調整します)。
  • エクスポータの構成:

    • creds_file_path: 取り込み認証ファイルのフルパス:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Google SecOps コンソールからコピーしたお客様 ID
    • endpoint: リージョナル エンドポイント URL:
      • 米国: malachiteingestion-pa.googleapis.com
      • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
      • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 完全なリストについては、リージョン エンドポイントをご覧ください。

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Linux: Ctrl+OEnterCtrl+X の順に押します。
    • Windows: [ファイル> 保存] をクリックします。

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

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

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

F5 BIG-IP Advanced Firewall Manager を有効にする

  1. BIG-IP アプライアンスの管理コンソールにログインします。
  2. [システム > ライセンス] に移動します。
  3. Advanced Firewall Managerライセンス付与され、有効になっていることを確認します。
  4. 高度なファイアウォール マネージャーを有効にするには、[システム> リソース> プロビジョニング] に移動します。
  5. [プロビジョニング列] のチェックボックスをオンにして、リストから [名義] を選択します。
  6. [送信] をクリックします。

F5 AFM でロギング プールを構成する

  1. [Local Traffic> Pools] に移動します。
  2. [作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • 名前: ロギング プールの名前を入力します(例: logging_pool)。
    • ヘルスモニター: [使用可能] リストで [TCP] を選択し、[<<] をクリックします。
  4. [リソース] タブで、[ノード名] リストから、前に作成した ロギング プールを選択します。
  5. [アドレス] フィールドに、Bindplane エージェントの IP アドレスを入力します。
  6. [Service Port] フィールドに、Bindplane エージェントで定義した 5145 などのポートを入力します。
  7. [追加] をクリックします。
  8. [完了] をクリックします。

F5 AFM でフォーマットされたログの宛先を構成する

  1. [システム> ログ> 設定> ログの宛先] に移動します。
  2. [作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • 名前: ロギング形式の宛先の名前を入力します(例: Logging_Format_Destination)。
    • 説明: 説明を入力します。
    • タイプ: [リモート Syslog] を選択します。
    • Syslog 形式: [Syslog] を選択します。
    • 高速ログの宛先: 高速ロギングの宛先(Logging_HSL_Destination など)を選択します。
  4. [Finished] をクリックします。

F5 AFM でログ パブリッシャーを構成する

  1. [システム> ログ> 設定> ログ パブリッシャー] に移動します。
  2. [作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • 名前: パブリッシャーの名前を入力します(例: Log_Publisher)。
    • 説明: 説明を入力します。
    • 転送先: F5 AFM でロギング プールを構成するの手順で作成したログ転送先名を選択し、[<<] をクリックして、[選択済み] リストに項目を追加します。

F5 AFM でロギング プロファイルを構成する

  1. [セキュリティ> イベントログ> ロギング プロファイル] に移動します。
  2. [作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • 名前: ログ プロファイルの名前を入力します(例: Logging_Profile)。
    • ネットワーク ファイアウォール: [有効] チェックボックスをオンにします。
    • パブリッシャー: 以前に構成したログ パブリッシャーLog_Publisher など)を選択します。
    • ログルールの照合: [許可、ドロップ、拒否] チェックボックスをオンにします。
    • IP エラーをログに記録: [有効] チェックボックスをオンにします。
    • TCP エラーをログに記録する: [有効] チェックボックスをオンにします。
    • TCP イベントをログに記録する: [有効] チェックボックスをオンにします。
    • ストレージ形式: [フィールド リスト] を選択します。
    • 区切り文字: イベントの区切り文字として ,(カンマ)を入力します。
    • Storage Options: [Available Items] リストですべてのオプションを選択し、[<<] をクリックします。
    • [IP インテリジェンス] タブで、構成したログ パブリッシャーLog_Publisher など)を選択します。
  4. [Finished] をクリックします。

F5 AFM で仮想サーバー プロファイル関連付けを構成する

  1. [Local Traffic] > [Virtual Servers] に移動します。
  2. 変更する仮想サーバーを選択します。
  3. [セキュリティ] タブ > [ポリシー] に移動します。
  4. [ログ プロファイル] リストで、[有効] を選択します。
  5. [Profile] フィールドで [Logging_Profile] を選択し、[<<] をクリックします。
  6. [更新] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
acl_policy_name security_result.detection_fields.acl_policy_name ログ形式が SYSLOG の場合は column22 の値、それ以外の場合は column13 の値
acl_policy_type security_result.detection_fields.acl_policy_type ログ形式が SYSLOG の場合は column21 の値、それ以外の場合は column18 の値
acl_rule_name security_result.rule_name ログ形式が SYSLOG の場合は column23 の値、それ以外の場合は column11 の値
acl_rule_uuid security_result.rule_id Grok パターンの acl_rule_uuid フィールドの値
アクション security_result.action column25 の値が DropRejectBlock のいずれかの場合、BLOCK。それ以外の場合、column25 の値が AcceptAccept decisivelyEstablishedAllow のいずれかの場合、ALLOW
attackID security_result.detection_fields.attackID ログ形式が src_ip のない CSV の場合の column12 の値
bigip_hostname intermediary.hostname ログ形式が SYSLOG の場合は column2 の値、それ以外の場合は column3 の値
bigip_ip intermediary.ip ログ形式が SYSLOG の場合は column2 の値、それ以外の場合は column1 の値
context_name additional.fields.context_name.string_value ログ形式が SYSLOG の場合は column4 の値、src_ip がある場合は column10 の値、それ以外の場合は column5 の値
context_type additional.fields.context_type.string_value ログ形式が SYSLOG の場合は column3 の値、src_ip がある場合は column4 の値、それ以外の場合は column4 の値
dest_fqdn additional.fields.dest_fqdn.string_value ログ形式が SYSLOG の場合は column7 の値、それ以外の場合は column13 の値
dest_geo additional.fields.dest_geo.string_value column14 の値
dest_ip target.asset.ip、target.ip ログ形式が SYSLOG の場合は column8 の値、src_ip がある場合は column6 の値、それ以外の場合は column6 の値
dest_port target.port ログ形式が SYSLOG の場合は column10 の値、src_ip がある場合は column8 の値、それ以外の場合は column8 の値
drop_reason security_result.summary ログ形式が SYSLOG の場合は column26 の値、それ以外の場合は column19 の値
eventId additional.fields.eventId.string_value grok パターンでキャプチャされた値
flow_id additional.fields.flow_id.string_value ログ形式が SYSLOG の場合は column29 の値、それ以外の場合は column17 の値
loglevel security_result.severity grok パターンの loglevel フィールドの値が warningdebugnotice のいずれかの場合、MEDIUM。値が info または informational の場合、INFORMATIONAL。値が err または error の場合、HIGH。値が alertcritemer のいずれかの場合、CRITICAL
packetsReceived network.received_packets ログ形式が src_ip のない CSV の場合の column15 の値
プロセス target.application grok パターンのプロセス フィールドの値
protocol_number_src network.ip_protocol ログ形式が SYSLOG の場合は column12 の値。それ以外の場合は ip_protocol_out 変数から抽出された値
route_domain additional.fields.route_domain.string_value ログ形式が SYSLOG の場合は column13 の値、それ以外の場合は column9 の値
source_fqdn additional.fields.source_fqdn.string_value ログ形式が SYSLOG の場合は column5 の値、それ以外の場合は column7 の値
src_geo additional.fields.src_geo.string_value column8 の値
src_ip principal.asset.ip、principal.ip ログ形式が SYSLOG の場合は column6 の値、ログ形式が src_ip のない CSV の場合は column9 の値、それ以外の場合は column5 の値
src_port principal.port ログ形式が SYSLOG の場合は column9 の値、ログ形式が src_ip のない CSV の場合は column7 の値、それ以外の場合は column7 の値
ts metadata.event_timestamp Grok パターンの ts フィールドの値
vlan additional.fields.vlan.string_value ログ形式が SYSLOG の場合は column11 の値、それ以外の場合は column21 の値
metadata.event_type src_ip と dest_ip が存在する場合は NETWORK_CONNECTION、src_ip のみ存在する場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT
metadata.log_type F5_AFM
metadata.product_name 高度なファイアウォール管理
metadata.vendor_name F5
partition event.idm.read_only_udm.additional.fields 変更履歴からマッピング
level event.idm.read_only_udm.additional.fields 変更履歴からマッピング
tty event.idm.read_only_udm.additional.fields 変更履歴からマッピング
attempts event.idm.read_only_udm.additional.fields 変更履歴からマッピング
start event.idm.read_only_udm.additional.fields 変更履歴からマッピング
end event.idm.read_only_udm.additional.fields 変更履歴からマッピング
prin_ip event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.asset.ip 変更履歴からマッピング
internal_tag event.idm.read_only_udm.additional.fields 変更履歴からマッピング
src_zone event.idm.read_only_udm.additional.fields 変更履歴からマッピング
dest_zone event.idm.read_only_udm.additional.fields 変更履歴からマッピング
translated_dest_ip event.idm.read_only_udm.additional.fields 変更履歴からマッピング
translated_dest_port event.idm.read_only_udm.additional.fields 変更履歴からマッピング
translated_source_ip event.idm.read_only_udm.additional.fields 変更履歴からマッピング
translated_source_port event.idm.read_only_udm.additional.fields 変更履歴からマッピング
syslog_reporter_host event.idm.read_only_udm.additional.fields 変更履歴からマッピング
sa_translation_pool event.idm.read_only_udm.additional.fields 変更履歴からマッピング
sa_translation_type event.idm.read_only_udm.additional.fields 変更履歴からマッピング
translated_route_domain event.idm.read_only_udm.additional.fields 変更履歴からマッピング
send_to_vs event.idm.read_only_udm.additional.fields 変更履歴からマッピング
src_zone event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
dest_zone event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
acl_policy_name event.idm.read_only_udm.additional.fields 変更履歴からマッピング
acl_policy_type event.idm.read_only_udm.additional.fields 変更履歴からマッピング
chronicle_log_type event.idm.read_only_udm.additional.fields 変更履歴からマッピング
chronicle_namespace event.idm.read_only_udm.additional.fields 変更履歴からマッピング
flow_id event.idm.read_only_udm.additional.fields 変更履歴からマッピング
vlan event.idm.read_only_udm.additional.fields 変更履歴からマッピング
route_domain event.idm.read_only_udm.additional.fields 変更履歴からマッピング
partition_name event.idm.read_only_udm.additional.fields 変更履歴からマッピング
source_ipint_categories event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
src_geo event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
source_fqdn event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
dest_ipint_categories event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
dst_geo event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
dest_fqdn event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
acl_rule_name event.idm.read_only_udm.security_result.rule_name 変更履歴からマッピング
acl_rule_id event.idm.read_only_udm.security_result.rule_id 変更履歴からマッピング
action event.idm.read_only_udm.security_result.action 変更履歴からマッピング
bigip_mgmt_ip event.idm.read_only_udm.intermediary.ip 変更履歴からマッピング
context_name event.idm.read_only_udm.target.resource.name 変更履歴からマッピング
context_type event.idm.read_only_udm.target.resource.type 変更履歴からマッピング
date_time event.idm.read_only_udm.metadata.event_timestamp 変更履歴からマッピング
dest_ip event.idm.read_only_udm.target.ipevent.idm.read_only_udm.target.asset.ip 変更履歴からマッピング
net.peer.ip event.idm.read_only_udm.target.ipevent.idm.read_only_udm.target.asset.ip 変更履歴からマッピング
dest_port event.idm.read_only_udm.target.port 変更履歴からマッピング
net.peer.port event.idm.read_only_udm.target.port 変更履歴からマッピング
device_version event.idm.read_only_udm.metadata.product_version 変更履歴からマッピング
drop_reason event.idm.read_only_udm.security_result.summary 変更履歴からマッピング
hostname event.idm.read_only_udm.principal.hostnameevent.idm.read_only_udm.principal.asset.hostname 変更履歴からマッピング
ip_protocol event.idm.read_only_udm.network.ip_protocol 変更履歴からマッピング
source_ip event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.asset.ip 変更履歴からマッピング
net.host.ip event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.asset.ip 変更履歴からマッピング
source_port event.idm.read_only_udm.principal.port 変更履歴からマッピング
net.host.port event.idm.read_only_udm.principal.port 変更履歴からマッピング
errdefs_msg_name event.idm.read_only_udm.metadata.product_event_type 変更履歴からマッピング
errdefs_msgno event.idm.read_only_udm.metadata.product_log_id 変更履歴からマッピング
source_user event.idm.read_only_udm.principal.user.userid 変更履歴からマッピング
source_user_group event.idm.read_only_udm.principal.user.group_identifiers 変更履歴からマッピング
severity event.idm.read_only_udm.security_result.severity_details 変更履歴からマッピング
dvchost event.idm.read_only_udm.intermediary.hostnameevent.idm.read_only_udm.intermediary.asset.hostname 変更履歴からマッピング
dvc event.idm.read_only_udm.intermediary.ipevent.idm.read_only_udm.intermediary.asset.ip 変更履歴からマッピング
c6a2 event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
F5SrcZone event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
F5SrcFqdn event.idm.read_only_udm.principal.resource.attribute.labels 変更履歴からマッピング
F5SrcUser event.idm.read_only_udm.principal.user.attribute.labels 変更履歴からマッピング
c6a3 event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
F5DstZone event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
F5DstVlan event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
F5DstFqdn event.idm.read_only_udm.target.resource.attribute.labels 変更履歴からマッピング
F5SendToVs event.idm.read_only_udm.additional.fields 変更履歴からマッピング
F5SrcIpiCategories event.idm.read_only_udm.additional.fields 変更履歴からマッピング
F5DstIpiCategories event.idm.read_only_udm.additional.fields 変更履歴からマッピング
module event.idm.read_only_udm.additional.fields 変更履歴からマッピング
tid event.idm.read_only_udm.additional.fields 変更履歴からマッピング
cpu event.idm.read_only_udm.additional.fields 変更履歴からマッピング
cmd_line event.idm.read_only_udm.target.process.command_line 変更履歴からマッピング
msg_data event.idm.read_only_udm.security_result.summary 変更履歴からマッピング
pid event.idm.read_only_udm.principal.process.pid 変更履歴からマッピング
user event.idm.read_only_udm.principal.user.userid 変更履歴からマッピング
folder_path event.idm.read_only_udm.principal.file.full_path 変更履歴からマッピング
status event.idm.read_only_udm.additional.fields 変更履歴からマッピング
cmd_data event.idm.read_only_udm.additional.fields 変更履歴からマッピング
target_ip event.idm.read_only_udm.target.ipevent.idm.read_only_udm.target.asset.ip 変更履歴からマッピング
desc metadata.description 変更履歴からマッピング
prin_port principal.port 変更履歴からマッピング
target_port target.port 変更履歴からマッピング
ts2 metadata.event_timestamp 変更履歴からマッピング
tls_ver network.tls.version 変更履歴からマッピング
cipher network.tls.cipher 変更履歴からマッピング
prod_event_type metadata.product_event_type 変更履歴からマッピング
path target.url 変更履歴からマッピング
response_size network.sent_bytes 変更履歴からマッピング
received_size network.received_bytes 変更履歴からマッピング
usr principal.user.userid 変更履歴からマッピング
schema_version target.resource.attribute.labels 変更履歴からマッピング
severity_info security_result.severity_details 変更履歴からマッピング
target_pid target.process.pid 変更履歴からマッピング
additional1 additional.fields 変更履歴からマッピング
dvc intermediary.hostname 変更履歴からマッピング
metadata.event_type USER_UNCATEGORIZED 変更履歴からマッピング
prin_ip principal.ip 変更履歴からマッピング
F5FlowID additional.fields 変更履歴からマッピング
F5TranslatedVlan additional.fields 変更履歴からマッピング
F5SrcTranslationType additional.fields 変更履歴からマッピング
F5SrcTranslationPool additional.fields 変更履歴からマッピング
F5SrcGeo additional.fields 変更履歴からマッピング
F5DstGeo additional.fields 変更履歴からマッピング
F5RouteDomain additional.fields 変更履歴からマッピング
Column12 security_result.detection_fields 変更履歴からマッピング
Column14 security_result.action 変更履歴からマッピング

変更履歴

このパーサーの変更ログを表示する

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