Cisco IOS ログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して Cisco Internetwork Operating System(IOS)のログを Google Security Operations に取り込む方法について説明します。パーサーは、未加工の syslog メッセージを統合データモデル(UDM)に準拠した構造化形式に変換します。まず、一般的な Cisco IOS syslog 形式に基づいて grok パターンを使用してフィールドを初期化して抽出します。次に、抽出されたフィールドを対応する UDM フィールドにマッピングし、イベントを分類して、追加のコンテキストでデータを拡充してから、最後に構造化ログを UDM 形式で出力します。

始める前に

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

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: CISCO_IOS
                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
    

Cisco IOS で Syslog を構成する

  1. Cisco IOS にログインします。
  2. 次のコマンドを入力して権限をエスカレーションします。

    enable
    
  3. 次のコマンドを入力して、構成モードに切り替えます。

    conf t
    
  4. 次のコマンドを入力します。

    logging host <bindplane-server-ip> transport <tcp/udp> port <port-number>
    logging source-interface <interface>
    
    • <bindplane-server-ip> は Bindplane エージェントの IP アドレスに、<port-number> は構成されたポートに置き換えます。
    • <tcp/udp> は、Bindplane エージェントで構成されたリッスン プロトコルに置き換えます(例: udp)。
    • <interface> は、Cisco インターフェース ID に置き換えます。
  5. 次のコマンドを入力して優先度を設定します。

    logging trap Informational 
    logging console Informational 
    logging severity Informational
    
  6. syslog 施設を設定します。

    logging facility syslog
    
  7. 保存して終了します。

  8. 次のコマンドを入力して、再起動後も設定が維持されるようにします。

    copy running-config startup-config
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
AcsSessionID network.session_id AcsSessionID フィールドから取得された値。
AcctRequest-Flags security_result.summary AcctRequest-Flags フィールドから取得された値。
AcctRequest-Flags security_result.action AcctRequest-Flags に Start が含まれている場合は、ALLOW に設定します。AcctRequest-Flags に Stop が含まれている場合は、BLOCK に設定します。
AuthenticationIdentityStore additional.fields.key = AuthenticationIdentityStore、value = AuthenticationIdentityStore AuthenticationIdentityStore フィールドから取得された値。
AuthenticationMethod additional.fields.key = AuthenticationMethod、value = AuthenticationMethod AuthenticationMethod フィールドから取得された値。
AuthenticationStatus security_result.summary AuthenticationStatus フィールドから取得された値。
Authen-Method security_result.detection_fields.key = Authen-Method、value = Authen-Method Authen-Method フィールドから取得された値。
Authen-Method extensions.auth.type Authen-Method に TacacsPlus が含まれている場合は、TACACS に設定します。
AVPair_priv-lvl security_result.detection_fields.key = AVPair_priv-lvl、value = AVPair_priv-lvl AVPair_priv-lvl フィールドから取得された値。
AVPair_start_time additional.fields.key = AVPair_start_time、value = AVPair_start_time AVPair_start_time フィールドから取得された値。
AVPair_task_id additional.fields.key = AVPair_task_id、value = AVPair_task_id AVPair_task_id フィールドから取得された値。
AVPair_timezone additional.fields.key = AVPair_timezone、value = AVPair_timezone AVPair_timezone フィールドから取得された値。
auditid metadata.product_log_id auditid フィールドから取得された値。
cisco_facility IDM オブジェクトにはマッピングされません。
cisco_message metadata.description cisco_message フィールドから取得された値。
cisco_mnemonic security_result.rule_name cisco_mnemonic フィールドから取得された値。
cisco_severity security_result.severity 値に基づいてさまざまな重大度レベルにマッピングされます。0: アラート、1: 重大、2: 高、3: エラー、4: 中、5: 低、6: 情報、7: 情報。
cisco_severity security_result.severity_details 値に基づいて、さまざまな重大度の詳細にマッピングされます。0: System unusable、1: Immediate action needed、2: Critical condition、3: Error condition、4: Warning condition、5: Normal but significant condition、6: Informational message only、7: Appears during debugging only
cisco_tag metadata.product_event_type cisco_tag フィールドから取得された値。
cisco_tag metadata.event_type 値に基づいて、さまざまなイベントタイプにマッピングされます。SYS-6-LOGGINGHOST_STARTSTOP、TRACK-6-STATE、SYS-3-LOGGINGHOST_FAIL、CRYPTO-4-IKMP_NO_SA、HA_EM-3-FMPD_ACTION_NOTRACK、HA_EM-3-FMPD_ERROR: GENERIC_EVENT; IPSEC-3-REPLAY_ERROR、CRYPTO-4-RECVD_PKT_INV_SPI、IPSEC-3-HMAC_ERROR、FW-6-DROP_PKT、SEC-6-IPACCESSLOGP: NETWORK_UNCATEGORIZED; CRYPTO-4-IKMP_BAD_MESSAGE、CRYPTO-6-IKMP_NOT_ENCRYPTED、CRYPTO-6-IKMP_MODE_FAILURE: STATUS_UNCATEGORIZED; SYS-5-CONFIG_I: USER_UNCATEGORIZED。
ClientLatency additional.fields.key = ClientLatency、value = ClientLatency ClientLatency フィールドから取得された値。
CmdSet additional.fields.key = CmdSet、value = CmdSet CmdSet フィールドから取得された値。
コマンド principal.process.command_line コマンド フィールドから取得された値。
CPMSessionID additional.fields.key = CPMSessionID、value = CPMSessionID CPMSessionID フィールドから取得された値。
説明 metadata.description 説明フィールドから取得された値。
DestinationIPAddress target.asset.ip DestinationIPAddress フィールドから取得された値。
DestinationIPAddress target.ip DestinationIPAddress フィールドから取得された値。
DestinationPort target.port DestinationPort フィールドから取得された値。
Device_IP_Address principal.asset.ip Device_IP_Address フィールドから取得された値。
Device_IP_Address principal.ip Device_IP_Address フィールドから取得された値。
Device_Type additional.fields.key = Device_Type、value = Device_Type Device_Type フィールドから取得された値。
dst_ip target.asset.ip dst_ip フィールドから取得された値。
dst_ip target.ip dst_ip フィールドから取得された値。
dst_port target.port dst_port フィールドから取得された値。
dst_user target.user.userid dst_user フィールドから取得された値。
EnableFlag security_result.detection_fields.key = EnableFlag、value = EnableFlag EnableFlag フィールドから取得された値。
IdentityGroup additional.fields.key = IdentityGroup、value = IdentityGroup IdentityGroup フィールドから取得された値。
IdentitySelectionMatchedRule security_result.detection_fields.key = IdentitySelectionMatchedRule、value = IdentitySelectionMatchedRule IdentitySelectionMatchedRule フィールドから取得された値。
intermediary_host intermediary.hostname intermediary_host フィールドから取得された値。
intermediary_ip intermediary.ip intermediary_ip フィールドから取得された値。
IPSEC additional.fields.key = IPSEC、value = IPSEC IPSEC フィールドから取得された値。
ISEPolicySetName extensions.auth.type ISEPolicySetName に Tacacs が含まれている場合は、TACACS に設定します。
IsMachineAuthentication additional.fields.key = IsMachineAuthentication、value = IsMachineAuthentication IsMachineAuthentication フィールドから取得された値。
IsMachineIdentity security_result.detection_fields.key = IsMachineIdentity、value = IsMachineIdentity IsMachineIdentity フィールドから取得された値。
場所 additional.fields.key = Location、value = Location 位置情報フィールドから取得された値。
MatchedCommandSet additional.fields.key = MatchedCommandSet、value = MatchedCommandSet MatchedCommandSet フィールドから取得された値。
メッセージ IDM オブジェクトにはマッピングされません。
metadata_event_type metadata.event_type metadata_event_type フィールドから取得された値。空または GENERIC_EVENT の場合、principal_mid_present と target_mid_present が true の場合は NETWORK_UNCATEGORIZED、principal_userid_present が true の場合は USER_UNCATEGORIZED、principal_mid_present が true の場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT に設定します。Service に Login が含まれている場合は、principal_userid_present、principal_mid_present、target_mid_present が true の場合は USER_LOGIN に、principal_userid_present が true の場合は USER_UNCATEGORIZED に設定します。
Model_Name additional.fields.key = Model_Name、value = Model_Name Model_Name フィールドから取得された値。
名前 additional.fields.key = Name、value = Name Name フィールドから取得された値。
Network_Device_Profile additional.fields.key = Network_Device_Profile、value = Network_Device_Profile Network_Device_Profile フィールドから取得された値。
NetworkDeviceGroups additional.fields.key = NetworkDeviceGroups、value = NetworkDeviceGroups NetworkDeviceGroups フィールドから取得された値。
NetworkDeviceName principal.asset.hostname NetworkDeviceName フィールドから取得された値。
NetworkDeviceName principal.hostname NetworkDeviceName フィールドから取得された値。
NetworkDeviceProfileId principal.resource.product_object_id NetworkDeviceProfileId フィールドから取得された値。
pid principal.process.pid pid フィールドから取得された値。
ポート principal.resource.attribute.labels.key = Port、value = Port Port フィールドから取得された値。
権限レベル security_result.detection_fields.key = Privilege-Level、value = Privilege-Level Privilege-Level フィールドから取得された値。
product_event_type metadata.product_event_type product_event_type フィールドから取得された値。
プロトコル additional.fields.key = Protocol、value = Protocol Protocol フィールドから取得された値。
プロトコル network.application_protocol プロトコルが HTTPS の場合は、HTTPS に設定します。
プロトコル network.ip_protocol プロトコルが TCP または UDP の場合は、プロトコルの大文字の値に設定します。
reason security_result.summary reason フィールドから取得された値。
region principal.location.country_or_region リージョン フィールドから取得された値。
Remote-Address target.asset.ip IP アドレスとして検証された後、Remote-Address フィールドから取得された値。
Remote-Address target.ip IP アドレスとして検証された後、Remote-Address フィールドから取得された値。
RequestLatency security_result.detection_fields.key = RequestLatency、value = RequestLatency RequestLatency フィールドから取得された値。
レスポンス additional.fields.key = Response、value = Response Response フィールドから取得された値。
SelectedAccessService security_result.action_details SelectedAccessService フィールドから取得された値。
SelectedAuthenticationIdentityStores security_result.detection_fields.key = SelectedAuthenticationIdentityStores、value = SelectedAuthenticationIdentityStores SelectedAuthenticationIdentityStores フィールドから取得された値。
SelectedCommandSet additional.fields.key = SelectedCommandSet、value = SelectedCommandSet SelectedCommandSet フィールドから取得された値。
サービス additional.fields.key = Service、value = Service Service フィールドから取得された値。
Service-Argument additional.fields.key = Service-Argument、value = Service-Argument Service-Argument フィールドから取得された値。
重要度 security_result.severity severity に Notice が含まれている場合は、INFORMATIONAL に設定します。
Software_Version additional.fields.key = Software_Version、value = Software_Version Software_Version フィールドから取得された値。
source_facility principal.asset.hostname source_facility フィールドから取得された値。
source_facility principal.hostname source_facility フィールドから取得された値。
src_ip principal.asset.ip src_ip フィールドから取得された値。
src_ip principal.ip src_ip フィールドから取得された値。
src_mac principal.mac .: に置き換えた後、src_mac フィールドから取得された値。
src_port principal.port src_port フィールドから取得された値。
src_user_id principal.user.userid src_user_id フィールドから取得された値。空の場合は、User フィールドの値を取得します。それでも空の場合は、StepData_9 フィールドの値を取得します。
src_user_name principal.user.user_display_name src_user_name フィールドから取得された値。
ステップ additional.fields.key = Step、value = Step Step フィールドから取得された値。
StepData_10 principal.asset.hostname StepData_10 フィールドから取得された値。
StepData_10 principal.hostname StepData_10 フィールドから取得された値。
StepData_13 security_result.summary StepData_13 フィールドから取得された値。
StepData_14 security_result.detection_fields.key = StepData_14、value = StepData_14 StepData_14 フィールドから取得された値。
StepData_15 security_result.detection_fields.key = StepData_15, value = StepData_15 StepData_15 フィールドから取得された値。
StepData_20 security_result.detection_fields.key = StepData_20、value = StepData_20 StepData_20 フィールドから取得された値。
StepData_21 security_result.detection_fields.key = StepData_21, value = StepData_21 StepData_21 フィールドから取得された値。
StepData_3 additional.fields.key = StepData_3、value = StepData_3 StepData_3 フィールドから取得された値。
StepData_4 security_result.detection_fields.key = StepData_4、value = StepData_4 StepData_4 フィールドから取得された値。
StepData_6 security_result.detection_fields.key = StepData_6, value = StepData_6 StepData_6 フィールドから取得された値。
StepData_7 security_result.detection_fields.key = StepData_7、value = StepData_7 StepData_7 フィールドから取得された値。
StepData_8 security_result.detection_fields.key = StepData_8、value = StepData_8 StepData_8 フィールドから取得された値。
StepData_9 principal.user.userid src_user_id フィールドと User フィールドが空の場合、StepData_9 フィールドから取得される値。
target_host target.asset.hostname target_host フィールドから取得された値。
target_host target.hostname target_host フィールドから取得された値。
timestamp metadata.event_timestamp 余分なスペースを削除して日付を解析した後に、タイムスタンプ フィールドから取得された値。
TotalAuthenLatency additional.fields.key = TotalAuthenLatency、value = TotalAuthenLatency TotalAuthenLatency フィールドから取得された値。
ts metadata.event_timestamp 日付を解析した後に ts フィールドから取得された値。
タイプ security_result.category_details Type フィールドから取得された値。
ユーザー principal.user.userid src_user_id が空の場合、User フィールドから取得される値。
UserType additional.fields.key = UserType、value = UserType UserType フィールドから取得された値。
metadata.vendor_name CISCO に設定します。
metadata.product_name CISCO_IOS に設定します。
metadata.log_type CISCO_IOS に設定します。

変更点

2025-02-11

機能強化:

  • 新しい Syslog ログ形式のサポートを追加しました。

2025-01-23

機能強化:

  • 新しい Syslog ログ形式のサポートを追加しました。

2025-01-02

機能強化:

  • 新しい Syslog ログ形式のサポートを追加しました。

2024-12-27

機能強化:

  • 新しい Syslog ログ形式のサポートを追加しました。

2024-11-25

機能強化:

  • 新しいログを解析するための Grok パターンを追加しました。
  • syslog ヘッダーのホスト名を target.hostname から intermediary.hostname にマッピングしました。

2024-11-19

機能強化:

  • 新しい形式の Syslog ログのサポートを追加しました。

2024-10-28

機能強化:

  • 新しいログを解析するための Grok パターンを追加しました。

2024-10-24

機能強化:

  • 新しいログを解析するための Grok パターンを追加しました。

2024-10-01

機能強化:

  • 新しいログを解析するための Grok パターンを追加しました。

2024-07-04

機能強化:

  • syslog ログの新しいパターンのサポートを追加しました。

2024-04-02

機能強化:

  • 新しいログタイプを解析するための新しい Grok パターンを追加しました。
  • 新しいフィールドを対応する UDM フィールドにマッピングしました。

2023-10-04

機能強化:

  • 新しいログタイプを解析するための新しい Grok パターンを追加しました。
  • source_facilityprincipal.hostname にマッピングしました。

2023-08-11

機能強化:

  • メッセージに HOST= が含まれている場合に intermediary.ip をマッピングしました。
  • メッセージに User: が含まれている場合に principal.user.userid をマッピングしました。
  • メッセージに command: が含まれている場合に principal.process.command_line をマッピングしました。
  • メッセージに username が含まれている場合に target.user.userid をマッピングしました。
  • metadata.event_type をより具体的な metadata.event_type にマッピングしました。

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