Cisco スイッチのログを収集する

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

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

このドキュメントでは、Bindplane エージェントを使用して Cisco スイッチログを Google Security Operations に取り込む方法について説明します。

Cisco スイッチは、ポート状態の変更、スパニング ツリー イベント、ACL の一致、認証、システム オペレーションに関する syslog メッセージを生成します。パーサーは grok パターンを使用してフィールドを抽出し、Unified Data Model(UDM)にマッピングします。

始める前に

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

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

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:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/cisco_switch:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: CISCO_SWITCH
            raw_log_field: body
    
    service:
        pipelines:
            logs/cisco_switch_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/cisco_switch
    

構成パラメータ

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

  • レシーバーの構成:

    • listen_address: リッスンする IP アドレスとポート:
      • すべてのインターフェースでリッスンする 0.0.0.0(推奨)
      • ポート 514 は標準の syslog ポートです(Linux で root が必要。root 以外の場合は 1514 を使用)
  • エクスポータの構成:

    • 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. サービスが実行されていることを確認します。

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

      ```bash
      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"
        

Cisco スイッチで syslog を構成する

  1. Cisco スイッチにログインします。
  2. 権限の昇格:

    enable
    
  3. 構成モードに切り替えます。

    conf t
    
  4. syslog を構成します。

    logging host <BINDPLANE_IP> transport <tcp/udp> port <PORT>
    logging source-interface <INTERFACE>
    
    • <BINDPLANE_IP> は、Bindplane エージェントの IP アドレスに置き換えます。
    • <tcp/udp> は、構成されたリスニング プロトコル(udp など)に置き換えます。
    • <INTERFACE> は、Cisco インターフェース ID に置き換えます。
  5. 優先度を設定します。

    logging trap Informational
    logging console Informational
    logging severity Informational
    
  6. syslog ファシリティを設定します。

    logging facility local6
    
  7. タイムスタンプを有効にする:

    service timestamps log datetime
    
  8. 保存して終了します。

  9. 再起動後も構成を維持するには、構成を保存します。

    copy running-config startup-config
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
アクション security_result.action_details このフィールドの値は、未加工ログの action フィールドから派生します。
説明 metadata.description このフィールドの値は、未加工ログの description フィールドから派生します。
説明 security_result.description このフィールドの値は、未加工ログの description フィールドから派生します。
destination_ip target.asset.ip このフィールドの値は、未加工ログの destination_ip フィールドから派生します。
destination_ip target.ip このフィールドの値は、未加工ログの destination_ip フィールドから派生します。
destination_port target.port このフィールドの値は、未加工ログの destination_port フィールドから派生します。
device principal.asset.hostname このフィールドの値は、未加工ログの device フィールドから派生します。
device principal.hostname このフィールドの値は、未加工ログの device フィールドから派生します。
device target.asset.hostname このフィールドの値は、未加工ログの device フィールドから派生します。
device target.hostname このフィールドの値は、未加工ログの device フィールドから派生します。
device_ip principal.asset.ip このフィールドの値は、未加工ログの device_ip フィールドから派生します。
device_ip principal.ip このフィールドの値は、未加工ログの device_ip フィールドから派生します。
device_ip target.asset.ip このフィールドの値は、未加工ログの device_ip フィールドから派生します。
device_ip target.ip このフィールドの値は、未加工ログの device_ip フィールドから派生します。
facility principal.resource.type このフィールドの値は、未加工ログの facility フィールドから派生します。
header_data metadata.product_log_id このフィールドの値は、未加工ログの header_data フィールドから派生します。
header_data target.asset.ip このフィールドの値は、未加工ログの header_data フィールドから派生します。
header_data target.ip このフィールドの値は、未加工ログの header_data フィールドから派生します。
hostname principal.asset.hostname このフィールドの値は、未加工ログの hostname フィールドから派生します。
hostname principal.hostname このフィールドの値は、未加工ログの hostname フィールドから派生します。
ip principal.asset.ip このフィールドの値は、未加工ログの ip フィールドから派生します。
ip principal.ip このフィールドの値は、未加工ログの ip フィールドから派生します。
ip_address principal.asset.ip このフィールドの値は、未加工ログの ip_address フィールドから派生します。
ip_address principal.ip このフィールドの値は、未加工ログの ip_address フィールドから派生します。
ip_protocol network.ip_protocol このフィールドの値は、未加工ログの ip_protocol フィールドから派生します。
mac principal.mac このフィールドの値は、未加工ログの mac フィールドから派生します。
ニーモニック network.dhcp.opcode このフィールドの値は、未加工ログの mnemonic フィールドから派生します。
ニーモニック metadata.product_event_type このフィールドの値は、未加工ログの mnemonic フィールドから派生します。
p_ip principal.asset.ip このフィールドの値は、未加工ログの p_ip フィールドから派生します。
p_ip principal.ip このフィールドの値は、未加工ログの p_ip フィールドから派生します。
ポート target.port このフィールドの値は、未加工ログの port フィールドから派生します。
priority
プロトコル network.ip_protocol このフィールドの値は、未加工ログの protocol フィールドから派生します。
reason
ルール security_result.rule_id このフィールドの値は、未加工ログの rule フィールドから派生します。
sec_result_action security_result.action このフィールドの値は、未加工ログの sec_result_action フィールドから派生します。
重要度
ソース principal.asset.ip このフィールドの値は、未加工ログの source フィールドから派生します。
ソース principal.ip このフィールドの値は、未加工ログの source フィールドから派生します。
source_ip network.dhcp.ciaddr このフィールドの値は、未加工ログの source_ip フィールドから派生します。
source_ip principal.asset.ip このフィールドの値は、未加工ログの source_ip フィールドから派生します。
source_ip principal.ip このフィールドの値は、未加工ログの source_ip フィールドから派生します。
source_mac network.dhcp.chaddr このフィールドの値は、未加工ログの source_mac フィールドから派生します。
source_port principal.port このフィールドの値は、未加工ログの source_port フィールドから派生します。
概要 security_result.summary このフィールドの値は、未加工ログの summary フィールドから派生します。
時間
タイムゾーン
ユーザー principal.user.userid このフィールドの値は、未加工ログの user フィールドから派生します。
ユーザー target.user.userid このフィールドの値は、未加工ログの user フィールドから派生します。
when
extensions.auth.type MACHINE
metadata.log_type CISCO_SWITCH
metadata.vendor_name Cisco
metadata.product_name Cisco スイッチ
network.application_protocol DHCP
network.dhcp.type リクエスト
intermediary_ip event.idm.read_only_udm.intermediary.ipevent.idm.read_only_udm.intermediary.asset.ip 変更履歴からマッピング
priority event.idm.read_only_udm.additional.fields 変更履歴からマッピング
product_log_id event.idm.read_only_udm.metadata.product_log_id 変更履歴からマッピング
_time event.idm.read_only_udm.metadata.collected_timestamp 変更履歴からマッピング
vlan_data event.idm.read_only_udm.intermediary.resource.attribute.labels 変更履歴からマッピング
intermediary_ip event.idm.read_only_udm.intermediary.ip 変更履歴からマッピング
intermediary_ip event.idm.read_only_udm.intermediary.asset.ip 変更履歴からマッピング
time_stamp event.idm.read_only_udm.metadata.event_timestamp 変更履歴からマッピング
process_name event.idm.read_only_udm.additional.fields 変更履歴からマッピング
switch_id event.idm.read_only_udm.additional.fields 変更履歴からマッピング
log_seq_num event.idm.read_only_udm.additional.fields 変更履歴からマッピング
log_seq_num_2 event.idm.read_only_udm.additional.fields 変更履歴からマッピング
p_interface event.idm.read_only_udm.principal.resource.name 変更履歴からマッピング
audit_session_id event.idm.read_only_udm.security_result.detection_fields 変更履歴からマッピング
mac event.idm.read_only_udm.principal.mac 変更履歴からマッピング
packets event.idm.read_only_udm.network.sent_packets 変更履歴からマッピング
facility event.idm.read_only_udm.principal.resource.resource_subtype 変更履歴からマッピング
seq_num event.idm.read_only_udm.additional.fields 変更履歴からマッピング
device_hostname event.idm.read_only_udm.principal.hostnameevent.idm.read_only_udm.principal.asset.hostname 変更履歴からマッピング
id event.idm.read_only_udm.principal.user.userid 変更履歴からマッピング
seq_num event.idm.read_only_udm.target.user.userid 変更履歴からマッピング
log_message event.idm.read_only_udm.metadata.description 変更履歴からマッピング
syslog_tag event.idm.read_only_udm.additional.fields 変更履歴からマッピング
syslog_pri event.idm.read_only_udm.additional.fields 変更履歴からマッピング
appcat event.idm.read_only_udm.additional.fields 変更履歴からマッピング
applist event.idm.read_only_udm.additional.fields 変更履歴からマッピング
dstintf event.idm.read_only_udm.additional.fields 変更履歴からマッピング
dstintfrole event.idm.read_only_udm.additional.fields 変更履歴からマッピング
mastersrcmac event.idm.read_only_udm.additional.fields 変更履歴からマッピング
osname event.idm.read_only_udm.additional.fields 変更履歴からマッピング
poluuid event.idm.read_only_udm.additional.fields 変更履歴からマッピング
service event.idm.read_only_udm.additional.fields 変更履歴からマッピング
srchwvendor event.idm.read_only_udm.additional.fields 変更履歴からマッピング
srcintf event.idm.read_only_udm.additional.fields 変更履歴からマッピング
srcintfrole event.idm.read_only_udm.additional.fields 変更履歴からマッピング
srcserver event.idm.read_only_udm.additional.fields 変更履歴からマッピング
transport event.idm.read_only_udm.additional.fields 変更履歴からマッピング
trandisp event.idm.read_only_udm.additional.fields 変更履歴からマッピング
vd event.idm.read_only_udm.additional.fields 変更履歴からマッピング
vwlid event.idm.read_only_udm.additional.fields 変更履歴からマッピング
devid event.idm.read_only_udm.intermediary.asset.product_object_id 変更履歴からマッピング
devname event.idm.read_only_udm.intermediary.hostname 変更履歴からマッピング
logid event.idm.read_only_udm.metadata.product_log_id 変更履歴からマッピング
subtype event.idm.read_only_udm.network.direction 変更履歴からマッピング
proto event.idm.read_only_udm.network.ip_protocol 変更履歴からマッピング
rcvdbyte event.idm.read_only_udm.network.received_bytes 変更履歴からマッピング
sentbyte event.idm.read_only_udm.network.sent_bytes 変更履歴からマッピング
sentpkt event.idm.read_only_udm.network.sent_packets 変更履歴からマッピング
duration event.idm.read_only_udm.network.session_duration.seconds 変更履歴からマッピング
sessionid event.idm.read_only_udm.network.session_id 変更履歴からマッピング
srcname event.idm.read_only_udm.principal.asset.hostnameevent.idm.read_only_udm.principal.hostname 変更履歴からマッピング
srcip event.idm.read_only_udm.principal.asset.ipevent.idm.read_only_udm.principal.ip 変更履歴からマッピング
srcmac event.idm.read_only_udm.principal.asset.macevent.idm.read_only_udm.principal.mac 変更履歴からマッピング
osname event.idm.read_only_udm.principal.asset.platform_software.platform 変更履歴からマッピング
srcswversion event.idm.read_only_udm.principal.asset.platform_software.platform_version 変更履歴からマッピング
srccountry event.idm.read_only_udm.principal.location.country_or_region 変更履歴からマッピング
transip event.idm.read_only_udm.principal.nat_ip 変更履歴からマッピング
srcport event.idm.read_only_udm.principal.port 変更履歴からマッピング
action event.idm.read_only_udm.security_result.action 変更履歴からマッピング
policyid event.idm.read_only_udm.security_result.rule_id 変更履歴からマッピング
policyname event.idm.read_only_udm.security_result.rule_name 変更履歴からマッピング
policytype event.idm.read_only_udm.security_result.rule_type 変更履歴からマッピング
level event.idm.read_only_udm.security_result.severity 変更履歴からマッピング
action event.idm.read_only_udm.security_result.summary 変更履歴からマッピング
dstip event.idm.read_only_udm.target.asset.ipevent.idm.read_only_udm.target.ip 変更履歴からマッピング
dstcountry event.idm.read_only_udm.target.location.country_or_region 変更履歴からマッピング
dstport event.idm.read_only_udm.target.port 変更履歴からマッピング
device principle.hostname 変更履歴からマッピング
username3 principal.user.userid 変更履歴からマッピング
login_status security_result.summary 変更履歴からマッピング
ecs.version metadata.product_version 変更履歴からマッピング
fileset.name", "flow.locality", "flow.id", "input.type", "netflow.exporter.source_id", and "netflow.exporter.uptime_millis additional.fields 変更履歴からマッピング
network.transport network.ip_protocol 変更履歴からマッピング
netflow.post_nat_source_ipv4_address principal.ip 変更履歴からマッピング
netflow.source_transport_port principal.port 変更履歴からマッピング
network.direction network.direction 変更履歴からマッピング
intermediary_ip intermediary.ip 変更履歴からマッピング
intermediary_hostname intermediary.hostname 変更履歴からマッピング
principal_host principal.hostname 変更履歴からマッピング
src_mac principal.mac 変更履歴からマッピング
eventSummary metadata.product_event_type 変更履歴からマッピング
error_msg security_result.detection_fields 変更履歴からマッピング
pid principal.process.pid 変更履歴からマッピング
srcPort principal.port 変更履歴からマッピング
srcUser principal.user.userid 変更履歴からマッピング
username1 target.user.userid 変更履歴からマッピング
command target.process.command_line 変更履歴からマッピング
PWD target.process.file.full_path 変更履歴からマッピング
node_id", "cluster_id", "exception", "UniqueId", and "app_id additional.fields 変更履歴からマッピング
DEVICE principal.mac 変更履歴からマッピング
SRC principal.ip 変更履歴からマッピング
SPT principal.port 変更履歴からマッピング
DST target.ip 変更履歴からマッピング
DPT target.port 変更履歴からマッピング
ID network.session_id 変更履歴からマッピング
LEN network.session_duration.seconds 変更履歴からマッピング
PROTO network.ip_protocol 変更履歴からマッピング
IN", "OUT", "PHYSIN", "WINDOW", "RES, "TOS", "PREC", "TTL" ,"URGP", "MAC", "radio", "vap", "auth_type", "sugg_band", "ssid_id", "ssid_profile_name" and "protocol additional.fields 変更履歴からマッピング
client_mac principal.mac 変更履歴からマッピング
aid network.session_id 変更履歴からマッピング
rssi intermediary.asset.product_object_id 変更履歴からマッピング
channel security_result.detection_fields 変更履歴からマッピング
eventSummary", "dhcp_ip", "client_mac", "aid" and "ip_src metadata.product_event_type 変更履歴からマッピング
mac", "src", "sport", "dst", "dport", "action", "protocol", "url" and "signature principal.mac 変更履歴からマッピング
metadata.event_type" and "extensions.auth.type USER_LOGIN 変更履歴からマッピング
eventSummary", "aid", "rssi", "channel", "last_known_client_ip" and "event_type security_result.summary 変更履歴からマッピング
pid target.process.pid 変更履歴からマッピング
app_name target.application 変更履歴からマッピング

変更履歴

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

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