F5 ASM ログを収集する

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

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

始める前に

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

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
  • F5 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. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(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_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_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 エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

F5 ASM で Syslog を構成する

  1. 次のコマンドを入力して、tmsh インスタンスにログインします。

    tmsh
    
  2. 次のコマンドを使用して syslog 構成を編集します。

    edit /sys syslog all-properties
    
  3. Syslog 構成が vi テキスト エディタで開き、次の例のようになります。

    modify syslog {
              auth-priv-from notice
              auth-priv-to emerg
              cron-from warning
              cron-to emerg
              daemon-from notice
              daemon-to emerg
              description none
              include none
              iso-date disabled
              kern-from notice
              kern-to emerg
              mail-from notice
              mail-to emerg
              messages-from notice
              messages-to warning
              remote-servers none
              user-log-from notice
              user-log-to emerg
          }
    
  4. include none の行を次の syslog フィルタに置き換えます。

        include `
              filter f_audit{
                  match(AUDIT);
              };
              destination d_syslog_server {
                      udp(\`<bindplane-ip>\` port (<bindplane-port>));
              };
              log {
                      source(s_syslog_pipe);
                          filter(f_audit);
                          destination(d_syslog_server);
              };
              `
    
  5. <bindplane-ip><bindplane-port> は、Bindplane エージェント用に構成された実際の IP アドレスとポート番号に置き換えます。

  6. 次のキーシーケンスを入力して vi を終了します。

    :wq!
    
  7. 次のプロンプトで、y と入力して、ファイルへの変更を保存します。

    Save changes? (y/n/e)
    
  8. 次のコマンドを入力して、構成を保存します。

    save /sys config
    

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 のプロフェッショナルから回答を得ることができます。