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

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

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

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

このパーサーは、Dell スイッチログを抽出し、タイムスタンプを正規化し、Grok パターンを使用してログ メッセージを Key-Value ペアに構造化します。次に、抽出されたフィールドを統合データモデル(UDM)にマッピングし、さまざまなログ形式を処理して、アセットの詳細やセキュリティの重大度などのコンテキスト情報でデータを拡充します。

始める前に

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

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

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/dell_switch:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: DELL_SWITCH
            raw_log_field: body
    
    service:
        pipelines:
            logs/dell_switch_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/dell_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. サービスが実行されていることを確認します。

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

      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"
        

Dell スイッチから syslog エクスポートを構成する

  1. SSH またはコンソール ポートを使用して Dell スイッチに接続します。
  2. 管理者認証情報でログインします。
  3. 次のコマンドを使用して、Syslog サーバーの IP アドレスまたはホスト名を指定します(<syslog-server-ip><udp|tcp><syslog-port-number> は実際の詳細に置き換えます)。

    logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
    
  4. 省略可: Syslog サーバーに送信されるメッセージの最小重大度レベルを定義します。たとえば、情報メッセージ以上のメッセージをログに記録するには:

    logging level informational
    
  5. 再起動後も変更が保持されるように、実行中の構成スタートアップ構成に保存します。

    copy running-config startup-config
    
  6. 構成を保存します。

    write memory
    

サポートされている Dell スイッチのサンプルログ

  • SYSLOG

    {
      "priority": 165,
      "version": 1,
      "timestamp": "2023-10-12T12:37:17.249566+00:00",
      "hostname": "switch-lon-01",
      "app_name": "dn_alm",
      "proc_id": "940",
      "message": "Node.1-Unit.1:PRI [event], Dell EMC (OS10) %ALM_AUTH_EVENT: Authentication event was raised MESSAGE=pam_unix(sshd:session): session opened for user service_account by (uid=0)"
    }
    
  • JSON

    {
      "appname": "SNOOP",
      "facility": 23,
      "hostname": "access-switch-a1",
      "message": "snooping.c(2177) 70820228 %% DBG Report from intf Gi6/0/11 ignored -- no router ports on vlan 193",
      "priority": 191,
      "proc_id": "snoopTask"
    }
    
  • KV / イベントの形式

    Events: 
      Eventid        = {38812} 
      Occurrencetime = {3 Sept 2024 00:06:06} 
      Eventseverity  = {Minor} 
      Jobid          = {30506} 
      Computer       = {backup-server-01} 
      Program        = {DatabaseAgent} 
      Description    = {Block Change Tracking is found DISABLED on Oracle DB [PROD_DB]. Incremental backups may run slow.}
    
  • 監査 SYSLOG

    {
        "priority": 110,
        "version": 1,
        "timestamp": "2023-12-12T00:58:26.893679+00:00",
        "hostname": "core-switch-palf",
        "app_name": ".clish",
        "proc_id": "29156",
        "message": "Node.1-Unit.1:PRI [audit], User sec_admin on /dev/pts/0 from 10.0.0.50 used cmd: 'terminal length 0' - completed"
    }
    
  • SNMP トラップ / TRAPMGR 形式

    {
      "priority": 189,
      "version": 1,
      "timestamp": "2023-12-28T23:37:27.394Z",
      "hostname": "dist-switch-01",
      "app_name": "TRAPMGR",
      "proc_id": "trapTask",
      "extensions": {
        "origin_ip": "192.168.1.1",
        "software": "N3000_Series",
        "swVersion": "6.3.2.3"
      },
      "message": "traputil.c(721) 1056839 %% Gi1/0/5 is transitioned from the Learning state to the Forwarding state"
    }
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
acct principal.user.userid user フィールドが存在しない場合、userid として使用されます。
addr principal.asset.ipprincipal.ip IP アドレスとして解析され、有効な IP でホスト名と異なる場合は、プリンシパルの IP とアセット IP に使用されます。
application principal.application 直接マッピングされます。
asset principal.asset.attribute.labels.value アセットラベル値に直接マッピングされ、キーは「Asset Name」としてハードコードされています。アセット フィールドが空で、メッセージに「Dell」が含まれている場合、アセットは「Dell」に設定されます。
auid principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー auid を持つラベルに直接マッピングされます。
datetime metadata.event_timestamp メッセージ フィールドのさまざまな形式から解析され、タイムスタンプに変換されます。
dest_ip target.asset.iptarget.ip ターゲット IP とターゲット アセット IP にマッピングされます。
enterpriseId principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー enterpriseId を持つラベルにマッピングされます。
exe sec_result.detection_fields.value キー exe を持つ検出フィールドにマッピングされます。
File target.file.full_path 直接マッピングされます。
grantors principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー grantors を持つラベルにマッピングされます。
host principal.hostnameprincipal.asset.hostnamemetadata.event_type プリンシパル ホスト名とアセット ホスト名として使用されます。host が存在する場合、metadata.event_typeSTATUS_UPDATE に設定されます。ホスト名が存在するがホストが存在しない場合、ホスト名がホストとして使用されます。
hostname principal.asset.ipprincipal.iphost 有効な IP の場合、プリンシパル IP とアセット IP に使用されます。host が空の場合、host として使用されます。
ID principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー ID を持つラベルにマッピングされます。
ip principal.asset.ipprincipal.ip プリンシパル IP とアセット IP にマッピングされます。
is_synced sec_result.detection_fields.value キー is_synced を持つ検出フィールドにマッピングされます。
local target.asset.iptarget.iptarget.port 解析されてローカル IP とポートが抽出され、ターゲット IP、ターゲット アセット IP、ターゲット ポートにマッピングされます。
local_ip target.asset.iptarget.ip local フィールドから抽出され、ターゲット IP とターゲット アセット IP にマッピングされます。
local_port target.port local フィールドから抽出され、ターゲット ポートにマッピングされます。
mac principal.mac 有効な MAC アドレスの場合、プリンシパル MAC アドレスにマッピングされます。
msg metadata.description イベントの説明として使用されます(存在する場合)。追加のフィールドも解析されます。
msg1 metadata.description msg2 が存在しない場合、イベントの説明として使用されます。
msg2 sec_result.descriptionmetadata.event_typeextensions.auth.type セキュリティ結果の説明として使用されます。「opened for user」が含まれている場合、イベントタイプは USER_LOGIN に、認証タイプは MACHINE に設定されます。「closed for user」が含まれている場合、イベントタイプは USER_LOGOUT に、認証タイプは MACHINE に設定されます。
op metadata.product_event_type プロダクトイベントのタイプとして使用されます(存在する場合)。
pid principal.process.pid 直接マッピングされます。
port principal.port 直接マッピングされます。
prod_event_type metadata.product_event_type プロダクトイベントのタイプとして使用されます(存在する場合)。
res sec_result.summary 直接マッピングされます。
sec_description sec_result.descriptiontarget.urltarget.iptarget.asset.ipsec_result.action_details ターゲット URL、IP、アクションの詳細が解析され、セキュリティ結果の説明として使用されます。
Server_ID target.resource.product_object_id 直接マッピングされます。
server principal.asset.ipprincipal.ipprincipal.port 解析されてサーバーの IP とポートが抽出され、プリンシパル IP、プリンシパル アセット IP、プリンシパル ポートにマッピングされます。
server_ip principal.asset.ipprincipal.ip server フィールドから抽出され、プリンシパル IP とプリンシパル アセット IP にマッピングされます。
server_port principal.port server フィールドから抽出され、プリンシパル ポートにマッピングされます。
ses network.session_id 直接マッピングされます。
severity sec_result.severitymetadata.product_event_type 特定の値に基づいてセキュリティ結果の重大度とプロダクト イベントタイプを判断するために使用されます。
software principal.asset.software 直接マッピングされます。
softwareName software.name 直接マッピングされます。
Status sec_result.summary res が存在しない場合、セキュリティ結果の概要として使用されます。
subj principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー subj を持つラベルにマッピングされます。
swVersion software.version 直接マッピングされます。
target_host target.hostnametarget.asset.hostname ターゲット ホスト名とターゲット アセットホスト名に直接マッピングされます。
target_ip target.asset.iptarget.ip ターゲット IP とターゲット アセット IP に直接マッピングされます。
target_url target.url 直接マッピングされます。
target_user_id target.user.userid 直接マッピングされます。
terminal principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー terminal を持つラベルにマッピングされます。
tzknown sec_result.detection_fields.value キー tzknown を持つ検出フィールドにマッピングされます。
uid principal.resource.attribute.labels.value principal.resource.attribute.labels 内のキー uid を持つラベルにマッピングされます。
user principal.user.useridmetadata.event_type プリンシパル ユーザー ID として使用されます。user が存在する場合、metadata.event_typeUSER_UNCATEGORIZED に設定されます。
username target.user.userid ターゲット ユーザー ID に直接マッピングされます。
該当なし metadata.vendor_name 「Dell」にハードコードされています。
該当なし metadata.product_name 「Dell Switch」にハードコードされています。
該当なし extensions.auth.type 特定のログイン / ログアウト イベントの場合は MACHINE に設定します。
該当なし metadata.event_type さまざまなフィールドと条件に基づく複雑なロジックによって決定されます。特に設定しない限り、デフォルトは GENERIC_EVENT です。USER_LOGINUSER_LOGOUTUSER_UNCATEGORIZEDNETWORK_CONNECTIONNETWORK_UNCATEGORIZEDSTATUS_UPDATEGENERIC_EVENT のいずれかです。
reason_code event.idm.read_only_udm.security_result.detection_fields 変更履歴からマッピング
Eventid metadata.product_log_id 変更履歴からマッピング
Eventseverity security_result.severity 変更履歴からマッピング
Computer principal.hostname 変更履歴からマッピング
Program principal.application 変更履歴からマッピング
Description security_result.description 変更履歴からマッピング
tzknown", "is_synced" and "exe security_result.detection_fields 変更履歴からマッピング
res security_result.summary 変更履歴からマッピング
status security_result.summary 変更履歴からマッピング
uid", "enterpriseId", "auid", "terminal", "subj", "grantors", and "ID principal.resource.attribute.labels 変更履歴からマッピング
sec_description security_result.description 変更履歴からマッピング
action_details security_result.action_details 変更履歴からマッピング
softwareName principal.asset.software.name 変更履歴からマッピング
swVersion principal.asset.software.version 変更履歴からマッピング
port principal_port 変更履歴からマッピング

変更履歴

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

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