Cisco VPN ログを収集する
このドキュメントでは、Bindplane を使用して Cisco ASA VPN ログを Google Security Operations に取り込む方法について説明します。パーサーは、grok パターンを使用して syslog メッセージからフィールドを抽出し、標準の syslog 形式と代替メッセージ構造の両方を処理します。次に、抽出されたフィールドを統合データモデル(UDM)にマッピングし、ID と抽出された情報に基づいてイベントを分類し、ベンダー、プロダクト、イベントタイプなどのメタデータでデータを拡充します。パーサーは特定のイベント ID も処理し、追加の grok パターンとロジックを適用して関連する詳細を抽出し、適切な UDM フィールドにマッピングします。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または systemdを使用する Linux ホスト
- プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- Cisco ASA への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
- 次のコマンドを実行します。 - msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
- 次のコマンドを実行します。 - sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
その他のインストール オプションについては、インストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
- 構成ファイルにアクセスします。
- config.yamlファイルを見つけます。通常、Linux では- /etc/bindplane-agent/ディレクトリに、Windows ではインストール ディレクトリにあります。
- テキスト エディタ(nano、vi、メモ帳など)を使用してファイルを開きます。
 
- 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 log_type: 'CISCO_VPN' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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
Cisco ASA VPN の Syslog を構成する
- Cisco ASDM を開きます。
- [構成> 機能 > プロパティ > ロギング > ロギング設定] に移動します。
- [ロギングを有効にする] チェックボックスをオンにして、syslog を有効にします。
- [Logging] で [Syslog Servers] を選択し、[Add] をクリックします。
- [Syslog サーバーの追加] ウィンドウで、次の構成の詳細を入力します。
- インターフェース: アウトバウンド通信のインターフェースを選択します。
- IP アドレス: Bindplane エージェントの IP アドレスを入力します。
- Protocol: [UDP] を選択します。
- ポート: Bindplane エージェントのポート番号を入力します。
- [OK] をクリックします。
 
- [ロギング] セクションで [ロギング フィルタ] を選択します。
- [Syslog Servers] を選択し、[Edit] をクリックします。
- リストから [重大度でフィルタ] として [情報] を選択します。
- [OK] をクリックします。
- [適用] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック | 
|---|---|---|
| accesslist | target.resource.name | eventtypeが「ASA-4-106103」の場合にmessage_infoから抽出されます。アクセスリストの名前を表します。 | 
| action | security_result.action | ログメッセージ内のキーワード(「error」など)に基づいてパーサーによって取得されます。「拒否」、「拒否」、「許可」、「承認」)。ALLOW または BLOCK にマッピングされます。 | 
| action | security_result.action_details | 実行されたアクションの未加工の文字列値(例: (「permitted」、「denied」、「disconnected」)。 | 
| app_name | principal.application | プリンシパルが使用するアプリケーションの名前(「CLI」)。イベント ID 111008、111009、111010 の message_detailsから抽出されます。 | 
| assigned_ipv4 | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| assigned_ipv6 | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| bytes_rcv | network.received_bytes | セッションで受信したバイト数。イベント ID 113019 の log_mssgから抽出されました。 | 
| bytes_sent | network.sent_bytes | セッションで送信されたバイト数。イベント ID 113019 の log_mssgから抽出されました。 | 
| cipher | network.tls.cipher | SSL セッションで使用される暗号。eventtype 725012 の message_infoから抽出されます。 | 
| cisco_message_number | security_result.rule_name | eventtypeフィールドから抽出された Cisco メッセージ番号。 | 
| cisco_severity | security_result.severity_details | eventtypeフィールドから抽出された Cisco の未加工の重大度レベル。 | 
| command | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| cumulative_total_count.key | security_result.outcomes.key | キー「cumulative_total_count」が security_result.outcomes配列に追加されます。 | 
| cumulative_total_count.value | security_result.outcomes.value | message_infoから抽出された累積合計数の値。 | 
| current_average_rate.key | security_result.outcomes.key | キー「current_average_rate」が security_result.outcomes配列に追加されます。 | 
| current_average_rate.value | security_result.outcomes.value | message_infoから抽出された現在の平均レートの値。 | 
| current_burst_rate.key | security_result.outcomes.key | キー「current_burst_rate」が security_result.outcomes配列に追加されます。 | 
| current_burst_rate.value | security_result.outcomes.value | message_infoから抽出された現在のバースト率の値。 | 
| desc | metadata.description | ログメッセージから抽出されたイベントの説明。より具体的な説明がない場合に使用されます。 | 
| description | metadata.description | イベントの詳細な説明。ログメッセージから抽出されます(利用可能な場合)。 | 
| destination_ip | target.ip、target.asset.ip | さまざまなログメッセージ形式から抽出された宛先 IP アドレス。 | 
| destination_ip_port | target.portまたはnetwork.application_protocol | さまざまなログメッセージ形式から抽出された宛先ポート。抽出された値が数値でない場合は、アプリケーション プロトコルとして扱われます。 | 
| dst_email | target.user.email_addressesまたはtarget.user.userid | message_infoから抽出された宛先メールアドレスまたはユーザー ID。値がメール形式と一致する場合はemail_addressesに追加され、一致しない場合はuseridとして使用されます。 | 
| dst_host | target.hostname | message_infoから抽出された宛先ホスト名。 | 
| dst_ip | target.ip、target.asset.ip | メインの grok パターンまたは他の特定のパターンから抽出された宛先 IP アドレス。 | 
| dst_port | target.port | 宛先ポート。メインの grok パターンまたはその他の特定のパターンから抽出されます。 | 
| duration | network.session_duration | セッションの期間。 message_detailsから抽出され、秒に変換されます。 | 
| event_date | @timestamp | イベントの日付と時刻。未加工ログのさまざまなタイムスタンプ フィールドから作成され、 dateフィルタを使用して解析されます。 | 
| event_id | metadata.product_event_type(一部) | event_severityと組み合わせてmetadata.product_event_typeフィールドを形成します。 | 
| event_name | metadata.product_event_type(一部) | event_severityおよびevent_typeと組み合わせて使用され、使用可能な場合はmetadata.product_event_typeフィールドを形成します。 | 
| event_severity | metadata.product_event_type(一部)、security_result.severity、is_alert、is_significant | event_idまたはevent_nameとevent_typeを組み合わせてmetadata.product_event_typeフィールドを形成します。security_result.severity、is_alert、is_significantの各フィールドの取得にも使用されます。 | 
| event_type | metadata.product_event_type(一部) | event_nameおよびevent_severityと組み合わせて使用され、使用可能な場合はmetadata.product_event_typeフィールドを形成します。 | 
| eventtype | metadata.product_event_type、security_result.rule_name、security_result.severity_details、security_result.severity | metadata.product_event_type、security_result.rule_name、security_result.severity_details、security_result.severityフィールドの導出に使用されるイベント型文字列。 | 
| fragment_id | security_result.about.resource.id | イベント ID 209005 の message_detailsから抽出された IP フラグメントの ID。 | 
| group | principal.group.group_display_name、principal.user.group_identifiers、target.user.group_identifiers | さまざまなログメッセージ形式から抽出されたグループ名。 | 
| group_name | principal.group.group_display_name | ホスト名の場合に groupフィールドから抽出されたグループ名。 | 
| has_principal_ip | なし | ロジックに使用される内部変数。UDM にマッピングされません。 | 
| has_target_ip | なし | ロジックに使用される内部変数。UDM にマッピングされません。 | 
| hostname | principal.hostname、principal.asset.hostname | さまざまなログメッセージ形式から抽出されたプリンシパルのホスト名。 | 
| hostname2 | principal.hostname、principal.asset.hostname | hostnameが使用できない場合にフォールバックとして抽出されるプリンシパルのホスト名。 | 
| icmp_code | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| icmp_dst_ip | target.ip、target.asset.ip | ICMP エラー メッセージの宛先 IP アドレス。 | 
| icmp_id | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| icmp_src_ip | principal.ip、principal.asset.ip | ICMP エラー メッセージの送信元 IP アドレス。 | 
| icmp_type | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| intermediary_ip | principal.ip、principal.asset.ip | イベント ID 111010 の message_infoから抽出された仲介 IP アドレス。 | 
| invalid_ip | なし | ロジックに使用される内部変数。UDM にマッピングされません。 | 
| ip_1 | principal.ip、principal.asset.ip | 送信元 IP アドレスと宛先 IP アドレスが同じ場合に、フォールバックとして抽出された送信元 IP アドレス。 | 
| ip_2 | target.ip、target.asset.ip | 送信元 IP と宛先 IP が同じ場合に、フォールバックとして抽出された宛先 IP アドレス。 | 
| ipprotocol | network.ip_protocol | さまざまなログ メッセージ形式から抽出され、大文字に変換された IP プロトコル。 | 
| issuer | network.tls.client.certificate.issuer | ピア証明書の発行者。イベント ID 717037 の message_detailsから抽出されます。 | 
| local_proxy_ip | intermediary.ip | イベント ID 713041 の message_detailsから抽出されたローカル プロキシ IP アドレス。 | 
| log_mssg | security_result.description、sr.action | security_result.descriptionフィールドの入力と認証アクションの抽出に使用されます。 | 
| login | security_result.summary | message_infoから抽出されたログイン ステータス。 | 
| max_configured_rate.key | security_result.outcomes.key | キー「max_configured_rate」が security_result.outcomes配列に追加されます。 | 
| max_configured_rate.value | security_result.outcomes.value | message_infoから抽出された、構成された最大レートの値。 | 
| message_details | 各種フィールド | イベントの詳細を含むログ メッセージのメイン部分。イベント ID に応じてさまざまな grok パターンを使用して解析されます。 | 
| message_info | metadata.description | 使用可能な場合に metadata.descriptionフィールドに値を設定するために使用されます。 | 
| observer | observer.hostnameまたはobserver.ip | ログメッセージから抽出されたオブザーバーのホスト名または IP アドレス。 | 
| observer_ip | observer.ip | オブザーバーの IP アドレス。 observerフィールドから抽出されます。 | 
| peer_type | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| policy | target.resource.name | イベント ID 113003 の message_detailsから抽出されたポリシー名。 | 
| policy_name | target.resource.name | ポリシー名。イベント ID 113009 と 113011 の message_detailsから抽出されます。 | 
| principal_ip | principal.ip、principal.asset.ip | プリンシパル IP アドレス。イベント ID 113009 の message_detailsから抽出されます。 | 
| privilege_level_from | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| privilege_level_to | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| process | principal.process.command_line | イベント ID 711004 の message_detailsから抽出されたプロセス名。 | 
| protocol | network.ip_protocolまたはnetwork.application_protocol | イベントで使用されるプロトコル。さまざまなログメッセージ形式から抽出されます。プロトコルが標準の IP プロトコル(ICMP、TCP、UDP、ESP)の場合は network.ip_protocolにマッピングされ、それ以外の場合はnetwork.application_protocolにマッピングされます。 | 
| reason | security_result.description | イベントの理由。イベント ID 113016 の message_detailsから抽出されます。 | 
| remote_proxy_ip | intermediary.ip | イベント ID 713041 の message_detailsから抽出されたリモート プロキシ IP アドレス。 | 
| retrieved_file | target.file.full_path | message_infoから抽出された、取得したファイルへのパス。 | 
| security_action | security_result.action | イベント コンテキストに基づいてパーサーによって導出されたセキュリティ アクション。 | 
| security_category | security_result.category | イベント コンテキストに基づいてパーサーによって導出されたセキュリティ カテゴリ。 | 
| security_result.description | security_result.description | ログメッセージから抽出または導出されたセキュリティ結果の説明。 | 
| security_result.severity | security_result.severity | セキュリティ結果の重大度。 event_severityフィールドから取得されます。 | 
| security_result.summary | security_result.summary | ログメッセージから抽出または取得されたセキュリティ結果の概要。 | 
| sent_bytes | network.sent_bytes | message_infoから抽出された送信バイト数。 | 
| ses_id | network.session_id | message_infoから抽出されたセッション ID。 | 
| session_id | network.session_id | message_infoから抽出されたセッション ID。 | 
| sess_type | principal.hostname、principal.asset.hostname | セッション タイプ。 log_mssgから抽出され、hostnameが使用できない場合にホスト名として使用されます。 | 
| source_ip | principal.ip、principal.asset.ip | さまざまなログ メッセージ形式から抽出された送信元 IP アドレス。 | 
| source_ip_port | principal.port | さまざまなログ メッセージ形式から抽出された送信元ポート。 | 
| src_email | principal.user.email_addressesまたはprincipal.user.userid | message_infoから抽出された送信元メールアドレスまたはユーザー ID。値がメール形式と一致する場合はemail_addressesに追加され、一致しない場合はuseridとして使用されます。 | 
| src_ip | principal.ip、principal.asset.ip | 送信元 IP アドレス。メインの grok パターンまたは他の特定のパターンから抽出されます。 | 
| src_port | principal.port | メインの grok パターンまたは他の特定のパターンから抽出された送信元ポート。 | 
| src_user | principal.user.user_display_name | イベント ID 713049 と 713120 の message_detailsから抽出されたソースユーザーの表示名。 | 
| subject | network.tls.client.certificate.subject | ピア証明書のサブジェクト。イベント ID 717037 の message_detailsから抽出されます。 | 
| summary | security_result.summary | イベント ID 113016 の message_detailsから抽出されたイベントの概要。 | 
| target_host | target.hostname | イベント ID 113004 の message_detailsから抽出されたターゲット ホスト名。 | 
| target_ip | target.ip、target.asset.ip | イベント ID 113004 の message_detailsから抽出されたターゲット IP アドレス。 | 
| target_user | target.user.userid | イベント ID 113003 の message_detailsから抽出されたターゲット ユーザー ID。 | 
| task_duration | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| tcp_dst_ip | target.ip、target.asset.ip | ICMP エラー メッセージの元の TCP ペイロードの宛先 IP アドレス。 | 
| tcp_dst_port | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| tcp_src_ip | principal.ip、principal.asset.ip | ICMP エラー メッセージの元の TCP ペイロードの送信元 IP アドレス。 | 
| tcp_src_port | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| threshold | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| tls_version | network.tls.version | イベント ID 725002 の message_detailsから抽出された TLS バージョン。 | 
| ts | @timestamp | dateフィルタを使用して解析されたイベントのタイムスタンプ。 | 
| ts_day | @timestamp(一部) | タイムスタンプから取得した月の日。 @timestampフィールドの作成に使用されます。 | 
| ts_month | @timestamp(一部) | タイムスタンプの月。 @timestampフィールドの作成に使用されます。 | 
| ts_time | @timestamp(一部) | タイムスタンプからの時間。 @timestampフィールドの作成に使用されます。 | 
| ts_year | @timestamp(一部) | タイムスタンプの年。 @timestampフィールドの作成に使用されます。 | 
| tunnel_type | なし | このフィールドは解析されますが、UDM の IDM オブジェクトにはマッピングされません。 | 
| user | principal.user.userid、target.user.userid | さまざまなログ メッセージ形式から抽出されたユーザー ID。 | 
| user_agent | network.http.user_agent | イベント ID 722055 の message_detailsから抽出されたユーザー エージェント文字列。 | 
| user_attr.key | principal.user.attribute.labels.key | イベント ID 734003 と 734001 の message_detailsから抽出されたユーザー属性のキー。 | 
| user_attr.value | principal.user.attribute.labels.value | イベント ID 734003 と 734001 の message_detailsから抽出されたユーザー属性の値。 | 
| userid | principal.user.userid | イベント ID 106103 の message_detailsから抽出されたユーザー ID。 | 
| username | principal.user.userid | イベント ID 111008、111009、111010、113008 の message_detailsから抽出されたユーザー名。 | 
| なし | metadata.vendor_name | 「CISCO」にハードコードされます。 | 
| なし | metadata.product_name | 「ASA VPN」または「VPN」にハードコードされています。 | 
| なし | metadata.event_type | 特定のフィールドとイベント ID の有無に基づいてパーサー ロジックによって決定されます。GENERIC_EVENT、NETWORK_CONNECTION、STATUS_UPDATE、NETWORK_FTP、USER_LOGIN、USER_LOGOUT、NETWORK_UNCATEGORIZED、USER_UNCATEGORIZED、NETWORK_FLOW のいずれかです。 | 
| なし | metadata.log_type | 「CISCO_VPN」にハードコードされています。 | 
| なし | metadata.event_timestamp | 解析された @timestampフィールドからコピーされます。 | 
| なし | extensions.auth.type | イベントのコンテキストに応じて、「VPN」、「AUTHTYPE_UNSPECIFIED」、「MACHINE」に設定します。 | 
| なし | security_result.about.resource.type | イベント ID 209005 の場合は「PACKET FRAGMENT」に設定されます。 | 
| なし | is_alert | 重大度の高いイベント(event_severity 0 または 1)の場合は true に設定します。 | 
| なし | is_significant | 重大度の高いイベント(event_severity 0 または 1)の場合は true に設定します。 | 
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。