EfficientIP DDI ログを収集する

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

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

EfficientIP SOLIDserver は、DNS、DHCP、IP アドレス管理、NTP、TFTP などの重要なネットワーク サービス向けに、拡張性、安全性、堅牢性に優れた仮想アプライアンスとハードウェア アプライアンスを提供する包括的な DDI(DNS-DHCP-IPAM)ソリューションです。このプラットフォームは、高度なモニタリング機能とセキュリティ機能を備えたネットワーク インフラストラクチャの一元管理と自動化を提供します。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと EfficientIP SOLIDserver アプライアンス間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • EfficientIP SOLIDserver ウェブ コンソールへの管理者権限
  • SOLIDserver バージョン 8.0 以降(8.3.x と 8.4.x でテスト済み)

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。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
    

    サービスのステータスが [active (running)] になります。

その他のインストール リソース

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

構成ファイルを見つける

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

  1. config.yaml の内容全体を次の構成に置き換えます。

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/efficientip_ddi:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EFFICIENTIP_DDI
        raw_log_field: body
        ingestion_labels:
          env: production
          source: solidserver
    
    service:
      pipelines:
        logs/efficientip_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/efficientip_ddi
    
  2. 各プレースホルダを次のように置き換えます。

    • レシーバーの構成:

      • listen_address: 0.0.0.0:514 に設定して、UDP ポート 514 のすべてのインターフェースでリッスンします。
        • Linux の非 root デプロイの場合は、ポート 1514 以降を使用します。
        • ポートが SOLIDserver の構成と一致していることを確認します。
    • エクスポータの構成:

      • creds_file_path: 取り込み認証ファイルのフルパス:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id: YOUR_CUSTOMER_ID は、前の手順の顧客 ID に置き換えます。

      • endpoint: リージョン エンドポイント:

        • 米国: malachiteingestion-pa.googleapis.com
        • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
        • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
        • 完全なリストについては、リージョン エンドポイントをご覧ください。
      • log_type: EFFICIENTIP_DDI に設定します(完全一致が必要です)。

      • ingestion_labels: ログの分類に使用する省略可能なラベル(必要に応じてカスタマイズします)。

構成ファイルを保存する

編集が完了したら、ファイルを保存します。

  • Linux: Ctrl+OEnterCtrl+X の順に押します。
  • Windows: [ファイル>保存] をクリックします。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには:

    1. 次のコマンドを実行します。

      sudo systemctl restart observiq-otel-collector
      
    2. サービスが実行されていることを確認します。

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

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには:

    1. 次のいずれかのオプションを選択します。

      • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • サービス コンソール:

        1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
        2. observIQ OpenTelemetry Collector を見つけます。
        3. 右クリックして [再起動] を選択します。
    2. サービスが実行されていることを確認します。

      sc query observiq-otel-collector
      
    3. ログでエラーを確認します。

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

EfficientIP DDI syslog 転送を構成する

  1. EfficientIP SOLIDserver ウェブ コンソールにログインします。
  2. 左側のナビゲーションで [管理] をクリックします。
  3. [モニタリング] セクションで、[構成] をクリックします。
  4. メニューで [+ 追加] をクリックします。
  5. [サービス] リストで、次のサービスを選択します。 named(DNS ログの場合)
  6. [ターゲット サーバー] フィールドに、Bindplane エージェント ホストの IP アドレスとポートを <ip-address>:<port> 形式で入力します。
    • 例: 192.168.1.100:514
    • Linux で標準以外のポートを使用している場合は、ポートを適宜指定します(例: 192.168.1.100:1514)。
  7. [OK] をクリックして構成を保存します。

ログ転送を確認する

  1. Bindplane エージェントのログを調べて、ログが受信されていることを確認します。
    • Linux: sudo journalctl -u observiq-otel-collector -f
    • Windows: type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  2. SOLIDserver からの DNS クエリと回答イベントを含むログエントリを探します。
  3. Google SecOps コンソールにログインし、EfficientIP DDI ログが [イベント] ページに表示されていることを確認します。

サポートされているログタイプ

この統合は、EfficientIP SOLIDserver から次のログタイプを収集します。

  • DNS クエリログ: クエリタイプ、ドメイン名、クライアント IP を含むクライアント DNS クエリ
  • DNS 応答ログ: 応答レコード、TTL、応答コードを含む DNS 応答
  • DHCP ログ: DISCOVER、OFFER、REQUEST、ACK、NAK、RELEASE、INFORM などの DHCP オペレーション
  • DNS Guardian ログ: 不審な動作の検出、トリガーの有効化/無効化などのセキュリティ イベント
  • DNS ゾーン転送ログ: ゾーン転送オペレーションと通知
  • DNS エラーログ: 形式エラー、SERVFAIL、REFUSED などの DNS エラー

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
ip_version additional.fields 空でない場合は、キー「ip_version」のラベルとして統合
message_size additional.fields 空でない場合は、キー「message_size」のラベルとして統合
domain_name additional.fields 空でない場合は、キー「domain_name」のラベルとして統合されます。
なし intermediary 中間オブジェクトから統合されました
説明 metadata.description 空でない場合、値が直接コピーされます
msg2 metadata.description event_type が GENERIC_EVENT で、説明が空の場合、msg2 に設定
su_cmd metadata.event_type su_cmd が「sudo」の場合は「PROCESS_OPEN」に設定
activity_type metadata.event_type activity_type が dns と一致し、has_dns_questions が true の場合は、「NETWORK_DNS」に設定します。
メッセージ metadata.event_type メッセージが dhcp と一致する場合は「NETWORK_DHCP」に設定されます
inner_message metadata.event_type inner_message が特定のパターンに一致し、has_principal と has_target が true の場合、「NETWORK_UNCATEGORIZED」に設定されます。
プロセス metadata.event_type プロセスが「named」で has_dns_questions が true の場合は「NETWORK_DNS」に設定します。プロセスが「named」で has_principal が true の場合は「STATUS_UPDATE」に設定します。プロセスが「named」の場合は「GENERIC_EVENT」に設定します。プロセスが「dhcpd」の場合は「NETWORK_DHCP」に設定します。
PWD metadata.event_type PWD が空でなく、has_target または has_principal が true の場合は、「PROCESS_OPEN」に設定します。
activity_type metadata.product_event_type 値を直接コピー
なし metadata.vendor_name 「EFFICIENTIP_DDI」に設定
なし metadata.product_name 「EFFICIENTIP_DDI DHCP」に設定します。
activity_type network.application_protocol activity_type が dns と一致し、has_dns_questions が true の場合は「DNS」に設定されます。
メッセージ network.application_protocol メッセージが dhcp と一致する場合は「DHCP」に設定されます
プロセス network.application_protocol プロセスが「named」の場合は「DNS」に設定し、プロセスが「dhcpd」の場合は「DHCP」に設定します。
src_mac network.dhcp.chaddr プロセスが「dhcpd」の場合、値が直接コピーされる
src_ip network.dhcp.ciaddr dhcp_info が「REQUEST」の場合、値が直接コピーされます
giaddr network.dhcp.giaddr 値を直接コピー
dhcp_info network.dhcp.opcode dhcp_info が「INFORM」、「DISCOVER」、「REQUEST」の場合は「BOOTREQUEST」に設定し、dhcp_info が「OFFER」または「ACK」の場合は「BOOTREPLY」に設定します。
siaddr network.dhcp.siaddr 値を直接コピー
transaction_id network.dhcp.transaction_id 空または「0」でない場合、uinteger に変換された値
dhcp_info network.dhcp.type dhcp_info が「INFORM」の場合は「INFORM」に設定します。「DISCOVER」の場合は「DISCOVER」に設定します。「OFFER」の場合は「OFFER」に設定します。「REQUEST」の場合は「REQUEST」に設定します。「PACK」の場合は「ACK」に設定します。
yiaddr network.dhcp.yiaddr 値を直接コピー
src_ip network.dhcp.yiaddr プロセスが「dhcpd」で yiaddr が空の場合、src_ip に設定
answer_rrs network.dns.answers answer_rrs の各 rd の回答オブジェクトからマージ
なし network.dns.questions has_dns_questions が true の場合、質問オブジェクトから統合されます
rcode network.dns.response_code uinteger に変換された値
response_code network.dns.response_code 値が数値コードにマッピングされ、uinteger に変換されます
transport network.ip_protocol udp または tcp と一致する場合は値を大文字に変換
observer observer.ip ipaddress に変換された値
su_cmd principal.application su_cmd が「sudo」の場合、値は直接コピーされます
プロセス principal.application プロセスが「named」または「dhcpd」の場合は処理に設定
ホスト principal.asset.hostname 空でない場合、値が直接コピーされます
hostname principal.asset.hostname 値が空でなく、ホストが空の場合、値は直接コピーされます
src_ip principal.asset.ip 値を直接コピー
asset_id principal.asset_id 「ID:」+ asset_id として連結されます。
ホスト principal.hostname 空でない場合、値が直接コピーされます
hostname principal.hostname 値が空でなく、ホストが空の場合、値は直接コピーされます
domain_name principal.hostname 説明にホスト名が含まれていて、ホスト/ホスト名が空の場合、値が直接コピーされる
src_ip principal.ip ipaddress への変換が成功した場合は値が直接コピーされ、src_ip が空の場合は説明から抽出されます。
src_mac principal.mac 値を直接コピー
src_port principal.port 整数に変換された値
process_id principal.process.pid 値を直接コピー
source_user principal.user.userid 値を直接コピー
なし security_result sec_result からマージ
dst_ip target.asset.ip 値を直接コピー
file_path target.file.full_path 値を直接コピー
dst_ip target.hostname 有効な IP アドレスでない場合は、値が直接コピーされます
ホスト target.hostname inner_message が特定のパターンと一致する場合、値が直接コピーされる
dst_ip target.ip 値を直接コピー
dst_port target.port 整数に変換された値
target_cmd_line target.process.command_line 値を直接コピー
target_user target.user.userid 値を直接コピー

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