F5 AFM のログを収集する

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

このドキュメントでは、Bindplane を使用して F5 Advanced Firewall Management ログを Google Security Operations に取り込む方法について説明します。パーサーは、SYSLOG と CSV のいずれかまたは CSV 形式のログを Unified Data Model(UDM)に変換します。まず、SYSLOG 形式に固有の grok パターンを使用してログメッセージの解析を試み、失敗した場合は CSV ファイルとして処理し、フィールドを抽出して UDM 構造にマッピングします。

始める前に

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

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
  • F5 BIG-IP と F5 Advanced Firewall Management への特権アクセス

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。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
    

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

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

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:5145"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/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: 'F5_AFM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <customer_id> は、実際のお客様 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

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. [サービスポート] フィールドに、Bindplane エージェントで定義した 5145 またはその他のポートを入力します。
  7. [追加] をクリックします。
  8. [完了] をクリックします。

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

  1. [システム> ログ> 設定> ログの宛先] に移動します。
  2. [作成] をクリックします。
  3. 次の構成の詳細を指定します。
    • 名前: ロギング形式の宛先の名前を入力します(例: Logging_Format_Destination)。
    • 説明: 説明を入力します。
    • Type: [Remote 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

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