F5 BIG-IP ASM のログを収集する

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

このドキュメントでは、Bindplane を使用して F5 BIG-IP Application Security Manager(ASM)ログを Google Security Operations に取り込む方法について説明します。パーサーはさまざまなログ形式(syslog、CSV、CEF など)を処理し、UDM に正規化します。Grok パターンとキーバリュー抽出を使用してフィールドを解析し、違反の詳細に XML フィルタリングを使用し、イベントの分類と重大度のマッピングに条件付きロジックを使用し、抽出したフィールドを UDM スキーマに統合します。

始める前に

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

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 ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    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: F5_ASM
                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
    

F5 BIG-IP ASM でリモート ロギングを構成する

  1. ASM コンソールのウェブ UI にログインします。
  2. [セキュリティ] > [イベントログ] > [ロギング プロファイル] に移動します。
  3. [作成] をクリックします。
  4. 次の構成情報を提供してください。

    • プロファイル名: プロファイルの一意の名前を入力します。
    • [アプリケーション セキュリティ] を選択します。
    • [Application Security] タブで、[Advanced] を選択します(追加の構成が必要な場合)。
    • ストレージの宛先: [リモート ストレージ] を選択します。
    • ロギング形式: Common Event Format(CEF)を選択します。
    • ローカル ストレージをクリアします。
    • プロトコル: Bindplane エージェントの構成に応じて、[UDP] または [TCP] を選択します。
    • サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
    • ポート: デフォルトで 514 が選択されています。Bindplane エージェントの構成に応じてポート設定を更新します。
    • [追加] をクリックします。
    • [保証のロギング] を選択します。
    • [検出された異常を報告] を選択します。
    • ファシリティ: LOG_LOCAL6 を選択します(必要に応じて、ロギングされたトラフィックのファシリティ カテゴリを選択できます。使用可能な値は LOG_LOCAL0LOG_LOCAL7 です)。
  5. [Finished] をクリックします。

ロギング プロファイルをセキュリティ ポリシーに関連付ける

  1. [Local Traffic > Virtual Servers] をクリックします。
  2. セキュリティ ポリシーで使用されている仮想サーバーの名前をクリックします。
  3. [セキュリティ] メニューから [ポリシー] を選択します。
  4. [アプリケーション セキュリティ ポリシー] 設定が [有効] になっており、[ポリシー] が目的のセキュリティ ポリシーに設定されていることを確認します。
  5. [ログ プロファイル] の設定が [有効] に設定されていることを確認します。
  6. [使用可能] リストから、セキュリティ ポリシーに使用するプロファイルを選択し、[選択済み] リストに移動します。
  7. [更新] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
act security_result.action actblocked の場合、BLOCK にマッピングされます。actpassed または legal の場合、ALLOW にマッピングされます。actalerted が含まれている場合は、QUARANTINE にマッピングされます。それ以外の場合、Splunk 形式ではデフォルトで ALLOW になります。
app network.application_protocol 未加工ログに存在する場合は、HTTPS に直接マッピングされます。
attack_type security_result.category_detailsmetadata.description 他のフィールドと組み合わせて security_result.category を決定するために使用されます。他の説明がない場合は、イベントの説明になります。Splunk 形式のログの場合、violations が空の場合にカテゴリと概要を特定するために使用されます。
client_ip principal.ipprincipal.asset.ip プリンシパル IP に直接マッピングされます。
cn1 network.http.response_code HTTP レスポンス コードに直接マッピングされます。
cn2 security_result.severity_details セキュリティ結果の重大度の詳細に直接マッピングされます。response_code とともに使用して、イベントがアラートかどうかを判断します。
column1 principal.ipprincipal.asset.ip 特定の CSV 形式のログのプリンシパル IP にマッピングされます。
column2 target.port 特定の CSV 形式のログのターゲット ポートにマッピングします。
column3 target.iptarget.asset.ip 特定の CSV 形式のログのターゲット IP にマッピングします。
column4 security_result.severity 特定の CSV 形式のログのセキュリティ結果の重大度にマッピングします。値 InformationInformational04 は INFORMATIONAL にマッピングされます。Warning13 は MEDIUM にマッピングされます。Error2 は ERROR にマッピングされます。CriticalCRITICALcritical は CRITICAL にマッピングされます。
column7 security_result.detection_fieldsnetwork.http.response_code XML データが含まれます。request-violations 内の viol_name が抽出され、キー Request Violation Name_index を持つ検出フィールドとして追加されます。response_violations 内の viol_name が抽出され、キー Response Violation Name_index を持つ検出フィールドとして追加されます。response_violations 内の response_codenetwork.http.response_code にマッピングされます。
column8 security_result.rule_name 特定の CSV 形式のログのセキュリティ結果ルール名にマッピングします。
cs1 security_result.rule_name セキュリティ結果のルール名に直接マッピングされます。
cs2 security_result.summary セキュリティ結果の概要に直接マッピングされます。
cs5 principal.ipprincipal.asset.ipadditional.fields cs5 に JNDI LDAP URL が含まれている場合は、キー JNDI_LDAP_URL を持つ追加フィールドとして追加されます。それ以外の場合、カンマ区切りの IP が含まれていると、principal_ip と異なる IP が追加のプリンシパル IP として追加されます。
cs6 principal.location.country_or_region 主たる事業所の国または地域に直接マッピングされます。
data network.session_idnetwork.sent_bytesnetwork.tls.version 存在する場合は、JSON として解析して sessionidbitssent_bytes にマッピング)、version を抽出します。
date_time metadata.event_timestamp 解析して適切な形式に変換した後、イベントのタイムスタンプに直接マッピングされます。
dest_ip target.iptarget.asset.ip ターゲット IP に直接マッピングされます。
dest_port target.port ターゲット ポートに直接マッピングされます。
dhost target.hostname ターゲット ホスト名に直接マッピングされます。
dpt target.port ターゲット ポートに直接マッピングされます。
dst target.ip ターゲット IP に直接マッピングされます。
dvc intermediary.ip 仲介 IP に直接マッピングされます。
dvchost target.hostnameintermediary.hostname ターゲット ホスト名と仲介ホスト名に直接マッピングされます。
errdefs_msgno additional.fields キー errdefs_msgno の追加フィールドとして追加されます。
externalId additional.fields キー Support_Id の追加フィールドとして追加されます。
f5_host target.hostnameintermediary.hostname ターゲット ホスト名と仲介ホスト名に直接マッピングされます。
geo_info principal.location.country_or_regionsecurity_result.detection_fields 主なロケーションの国または地域にマッピングされます。また、キー geo_info を持つ検出フィールドとしても追加されました。
host target.hostname ターゲット ホスト名に直接マッピングされます。
ids additional.fields サポート ID のカンマ区切りのリストとして解析されます。各 ID は、キー supportid を持つリスト値の追加フィールドに追加されます。
ip_addr_intelli security_result.detection_fields キー ip_addr_intelli を持つ検出フィールドとして追加されます。
ip_client principal.ip プリンシパル IP に直接マッピングされます。
ip_route_domain principal.ipprincipal.asset.ip IP 部分が抽出され、プリンシパル IP にマッピングされます。
irule security_result.rule_name セキュリティ結果のルール名に直接マッピングされます。
irule-version security_result.rule_version セキュリティ結果ルール バージョンに直接マッピングされます。
level security_result.severitysecurity_result.severity_details セキュリティ結果の重大度を判断するために使用されます。error または warning は HIGH にマッピングされます。notice は MEDIUM にマッピングされます。information または info は LOW にマッピングされます。未加工の値も severity_details にマッピングされます。
logtime metadata.event_timestamp 解析後にイベント タイムスタンプに直接マッピングされます。
management_ip_addressmanagement_ip_address_2 intermediary.ip 仲介 IP に直接マッピングされます。
method network.http.method HTTP メソッドに直接マッピングされます。
msg security_result.summarymetadata.description 一部のログ形式のセキュリティ結果の概要に直接マッピングされます。他の説明がない場合は、イベントの説明になります。
policy_name security_result.about.resource.namesecurity_result.rule_name セキュリティ結果のリソース名またはルール名に直接マッピングされます。
process target.application ターゲット アプリケーションに直接マッピングされます。
process_id principal.process.pid プリンシパル プロセス ID に直接マッピングされます。
protocol network.application_protocolnetwork.ip_protocolapp_protocol ログ形式に応じて、アプリケーション プロトコルまたは IP プロトコルに直接マッピングされます。
proxy_id security_result.rule_id セキュリティ結果のルール ID に直接マッピングされます。
query_string additional.fields キー query_string の追加フィールドとして追加されます。
referrer network.http.referral_url HTTP 参照 URL に直接マッピングされます。
req_method network.http.method HTTP メソッドに直接マッピングされます。
req_status security_result.actionsecurity_result.action_detailssecurity_result.detection_fields blocked の場合は、security_result.action を BLOCK にマッピングします。passed または legal の場合、ALLOW にマッピングされます。alerted が含まれている場合は、QUARANTINE にマッピングされます。未加工の値も action_details にマッピングされ、キー req_status を持つ検出フィールドとして追加されます。
request target.url ターゲット URL に直接マッピングされます。
requestMethod network.http.method HTTP メソッドに直接マッピングされます。
resp security_result.detection_fields キー resp を持つ検出フィールドとして追加されます。
resp_code network.http.response_code HTTP レスポンス コードに直接マッピングされます。
response security_result.summary セキュリティ結果の概要に直接マッピングされます。
response_code network.http.response_code HTTP レスポンス コードに直接マッピングされます。
route_domain additional.fields キー route_domain の追加フィールドとして追加されます。
rt metadata.event_timestamp 解析後にイベント タイムスタンプに直接マッピングされます。
sev security_result.severitysecurity_result.severity_details セキュリティ結果の重大度を判断するために使用されます。ERROR は ERROR にマッピングされます。未加工の値も severity_details にマッピングされます。
severity security_result.severitysecurity_result.severity_details セキュリティ結果の重大度を判断するために使用されます。Informational は LOW に、Error または warning は HIGH に、critical は CRITICAL に、notice は MEDIUM に、information または info は LOW にマッピングされます。未加工の値も severity_details にマッピングされます。
sig_ids security_result.rule_id セキュリティ結果のルール ID に直接マッピングされます。
sig_names security_result.rule_name セキュリティ結果のルール名に直接マッピングされます。
snat_ip principal.nat_ip プリンシパル NAT IP に直接マッピングされます。
snat_port principal.nat_port プリンシパル NAT ポートに直接マッピングされます。
src principal.ipprincipal.asset.ip プリンシパル IP に直接マッピングされます。
spt principal.port プリンシパル ポートに直接マッピングされます。
sub_violates security_result.about.resource.attribute.labels キー Sub Violations のラベルとしてセキュリティ結果リソース属性に追加されます。
sub_violations security_result.about.resource.attribute.labels キー Sub Violations のラベルとしてセキュリティ結果リソース属性に追加されます。
summary security_result.summary セキュリティ結果の概要に直接マッピングされます。
support_id metadata.product_log_id support_id - が接頭辞として付加され、プロダクトログ ID にマッピングされます。
suid network.session_id ネットワーク セッション ID に直接マッピングされます。
suser principal.user.userid プリンシパル ユーザー ID に直接マッピングされます。
timestamp metadata.event_timestamp 解析して適切な形式に変換した後、イベントのタイムスタンプに直接マッピングされます。
unit_host principal.hostnameprincipal.asset.hostname プリンシパル ホスト名に直接マッピングされます。
uri principal.url プリンシパル URL に直接マッピングされます。
user_id principal.user.userid プリンシパル ユーザー ID に直接マッピングされます。
user_name principal.user.user_display_name プリンシパル ユーザーの表示名に直接マッピングされます。
username principal.user.userid プリンシパル ユーザー ID に直接マッピングされます。
useragent network.http.user_agentnetwork.http.parsed_user_agent HTTP ユーザー エージェントに直接マッピングされます。解析され、解析されたユーザー エージェントにマッピングされます。
virtualserver network.tls.client.server_name TLS クライアント サーバー名に直接マッピングされます。
violate_details security_result.detection_fieldsnetwork.http.response_code XML データが含まれます。request-violations 内の viol_name が抽出され、キー Request Violation Name_index を持つ検出フィールドとして追加されます。response_violations 内の viol_name が抽出され、キー Response Violation Name_index を持つ検出フィールドとして追加されます。response_violations 内の response_codenetwork.http.response_code にマッピングされます。
violate_rate security_result.detection_fields キー violate_rate を持つ検出フィールドとして追加されます。
violation_rating security_result.about.resource.attribute.labels キー Violations Rating のラベルとしてセキュリティ結果リソース属性に追加されます。
violations security_result.description セキュリティ結果の説明に直接マッピングされます。Splunk 形式のログの場合、概要が存在するかどうかを判断するために使用されます。
virus_name security_result.threat_name セキュリティ結果の脅威名に直接マッピングされます。
vs_name network.tls.client.server_name TLS クライアント サーバー名に直接マッピングされます。
websocket_direction network.direction clientToServer の場合は、INBOUND にマッピングされます。ServerToclient の場合は、OUTBOUND にマッピングされます。
websocket_message_type security_result.detection_fields キー WebsocketMessageType を持つ検出フィールドとして追加されます。
x_fwd_hdr_val principal.ipprincipal.asset.ip プリンシパル IP に直接マッピングされます。

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