Sophos Capsule8 のログを収集する

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

このドキュメントでは、Bindplane を使用して Sophos Linux Sensor(旧称 Capsule8)のログを収集する方法について説明します。Sophos Capsule8 は、eBPF テクノロジーを使用してカーネルレベルで脅威を検出して対応することで、Linux ワークロード、コンテナ、Kubernetes 環境のランタイム保護を提供します。パーサーは、まず JSON 形式のログデータを抽出して構造化します。次に、抽出されたフィールドを Chronicle 統合データモデル(UDM)内の対応する属性にマッピングします。このとき、メタデータ、セキュリティ結果、プリンシパル情報に重点が置かれます。

始める前に

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

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • Python を継続的に実行できる Windows または Linux マシン
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
  • Sophos Central 管理コンソールへの特権アクセス
  • Linux システムにデプロイされた Sophos Linux Sensor(旧 Capsule8)

アラートを Sophos Central にエクスポートするように Sophos Linux Sensor を構成する

統合を構成する前に、まず Sophos Linux Sensor を構成して、アラートデータを Sophos Central に送信する必要があります。

Sophos Central 統合の前提条件

  1. Sophos Linux Sensor バージョン 5.5.2.22 以降。
  2. 次のいずれかのライセンス。
    • Intercept X Advanced for Server with XDR
    • Central Managed Detection and Response Essential Server
    • Central Managed Detection and Response Complete Server
  3. Sophos Central MCS の URL とテナント ID。
  4. 有効な SLS パッケージ リポジトリ API トークン。

MCS URL を確認する

  1. Sophos Central にログインします。
  2. アカウント名 > [サポート設定] をクリックします。
  3. This account is located で始まる行を探して、Sophos Central アカウントがどの地域にあるかを確認します。
  4. 次の表で、お住まいの地域に基づいて MCS URL を確認してください。

    地域 MCS URL
    米国(オレゴン) mcs2-cloudstation-us-west-2.prod.hydra.sophos.com
    米国(オハイオ州) mcs2-cloudstation-us-east-2.prod.hydra.sophos.com
    アイルランド mcs2-cloudstation-eu-west-1.prod.hydra.sophos.com
    ドイツ mcs2-cloudstation-eu-central-1.prod.hydra.sophos.com
    カナダ mcs2.stn100yul.ctr.sophos.com
    オーストラリア mcs2.stn100syd.ctr.sophos.com
    アジア太平洋(東京) mcs2.stn100hnd.ctr.sophos.com
    南アメリカ(サンパウロ) mcs2.stn100gru.ctr.sophos.com

表にお住まいの地域が表示されていない場合は、MCS URL として mcs2.stn100bom.ctr.sophos.com を使用します。

Sophos Linux Sensor アラートの出力を構成する

  1. テキスト エディタで /etc/sophos/runtimedetections.yaml を開きます。
  2. 次の行を追加し、プレースホルダの値を実際の Sophos Central の詳細に置き換えます。

    send_labs_telemetry: true
    endpoint_telemetry_enabled: true
    cloud_meta: auto
    
    # Set your customer id:
    customer_id: "{tenant-id}"
    
    mcs:
      token: "{LINUX_REPO_API_KEY}"
      url: "{MCS_URL}"
      enabled: true
    
  3. 変更を保存して終了します。

  4. センサーを再起動します。

    systemctl restart sophoslinuxsensor
    

省略可: メタイベントを Data Lake に送信するように Sophos Linux Sensor を構成する

バージョン 5.11.0 以降では、SLS は Sophos Data Lake へのイベントデータの送信をサポートしています。

  1. テキスト エディタで /etc/sophos/runtimedetections.yaml を開きます。
  2. 次の構成を追加します。

    investigations:
      reporting_interval: 5s
      zeromq:
        topics:
        - process_events: running_processes_linux_events
          audit_user_msg: user_events_linux
      sinks:
      - backend: mcs
        name: "mcs"
        type: mcs
      flight_recorder:
        enabled: true
        tables:
        - name: "process_events"
          enabled: true
          rows: 1000
          filter:
          - match eventType == "PROCESS_EVENT_TYPE_EXEC"
          - match eventType == "BASELINE_TASK"
          - default ignore
        - name: "audit_user_msg"
          enabled: true
          rows: 1000
          filter:
          - ignore programName == "cron"
          - ignore processPid == 1
          - default match
    
  3. 変更を保存して終了します。

  4. センサーを再起動します。

    systemctl restart sophoslinuxsensor
    

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_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: 'SOPHOS_CAPSULE8'
        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 エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Sophos Central API アクセスを構成する

  1. Sophos Central Admin にログインします。
  2. [Global Settings>API Token Management] を選択します。
  3. [Add Token] をクリックして新しいトークンを作成します。
  4. トークン名を入力して [保存] をクリックします(指定したトークンの API トークンの概要が表示されます)。
  5. [API Token Summary] セクションで、[Copy] をクリックして API アクセス URL とヘッダーをコピーします。

追加のマシンに Python をインストールする

  1. ウェブブラウザを開き、Python のウェブサイトにアクセスします。
  2. オペレーティング システムの [Download Python] をクリックします。
  3. Python をインストールします。

    • Windows の場合:
      1. インストーラを実行します。
      2. [PATH に Python を追加] のチェックボックスをオンにします。
      3. [今すぐインストール] をクリックします。
    • Mac の場合:

      1. Python がすでにインストールされている場合があります。インストールされていない場合は、ターミナルを使用して最新バージョンをインストールできます。
      2. ターミナルを開き、次のコマンドを入力します。

        python --version
        

Sophos 統合スクリプトをダウンロードする

  1. Sophos Central SIEM Integration GitHub リポジトリの GitHub ページに移動します。
  2. 緑色の [Code] ボタン > [Download ZIP] をクリックします。
  3. ZIP ファイルを解凍します。

スクリプト構成を設定する

  1. ZIP アーカイブを解凍したディレクトリにある config.ini ファイルを開きます
  2. 構成ファイルを編集します。
    • API トークン: Sophos Central からコピーした API キーを入力します。
    • Syslog サーバーの詳細: Syslog サーバーの詳細を入力します。
    • ホスト: BindPlane エージェントの IP アドレスを入力します。
    • ポート: BindPlane Agent のポート番号を入力します。
    • プロトコル: UDP と入力します(設定に応じて TCP または TLS を使用することもできます)。
  3. ファイルを保存します。

スクリプトを実行する

  1. スクリプト フォルダに移動します。

    • Windows の場合:

      1. Windows キーを押して「cmd」と入力します。
      2. [コマンド プロンプト] をクリックします。
      3. スクリプト フォルダに移動します。
      cd C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
    • macOS の場合:

      1. [Applications] > [Utilities] に移動します。
      2. ターミナルを開きます。
      3. スクリプト フォルダに移動します。
      cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
  2. スクリプトを実行します。

    • 次のコマンドを入力して、スクリプトを開始します。

      python siem.py
      

Windows でスクリプトを継続的に実行するように自動化します(タスク スケジューラを使用)。

  1. [スタート] メニューに「タスク スケジューラ」と入力して、タスク スケジューラを開きます。
  2. [タスクを作成] をクリックします。
  3. [全般] タブで、次の操作を行います。
    • タスクに名前を付けます(例: Sophos AV Log Export)。
  4. [トリガー] タブで次の操作を行います。
    • [新規] をクリックし、タスクを [毎日] または [起動時] に実行するように設定します(必要に応じて)。
  5. [アクション] タブで次の操作を行います。
    • [新規] をクリックし、[プログラムの開始] を選択します。
    • python.exe 実行ファイル(通常は C:/Python/XX/python.exe にあります)を参照します。
    • [引数を追加] フィールドに、スクリプトのパスを入力します(例: C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.py)。
  6. [OK] をクリックしてタスクを保存します。

Mac でスクリプトを継続的に実行するように自動化します(Cron ジョブを使用)。

  1. ターミナルを開きます。
  2. crontab -e」と入力して Enter キーを押します。
  3. ファイルの末尾に新しい行を追加します。

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. [保存] をクリックして、エディタを終了します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
categories read_only_udm.security_result.category_details categories 配列の各要素は、個別の category_details として追加されます。
comments read_only_udm.security_result.description コメント フィールドから直接マッピングされます。
confidence read_only_udm.security_result.severity_details 信頼度フィールドから直接マッピングされます。
説明 read_only_udm.security_result.summary 説明フィールドから直接マッピングされます。
incident_id read_only_udm.security_result.rule_id incident_id フィールドから直接マッピングされます。
リネージ principal.process.parent_process... リネージ配列は、最大 15 レベルの親プロセス チェーンを設定するために使用されます。リネージ配列の各要素はチェーン内のプロセスを表します。インデックス 0 は直近の親であり、インデックスが大きいほど祖先が遠くなります。各リネージ要素の pid フィールドと name フィールドは、UDM の対応するフィールドにマッピングされます。
location.container_id principal.labels.value location.container_id フィールドから直接マッピングされます。対応するキーは「container_id」に設定されます。
location.container_labels.maintainer principal.labels.value location.container_labels.maintainer フィールドから直接マッピングされます。対応するキーは「maintainer」に設定されます。
location.container_name principal.labels.value location.container_name フィールドから直接マッピングされます。対応するキーは「container_name」に設定されます。
location.image_id principal.labels.value location.image_id フィールドから直接マッピングされます。対応するキーは「image_id」に設定されます。
location.image_name principal.labels.value location.image_name フィールドから直接マッピングされます。対応するキーは「image_name」に設定されます。
location.kubernetes_namespace principal.labels.value location.kubernetes_namespace フィールドから直接マッピングされます。対応するキーは「kubernetes_namespace」に設定されます。
location.kubernetes_pod principal.labels.value location.kubernetes_pod フィールドから直接マッピングされます。対応するキーは「kubernetes_pod」に設定されます。
matched_rule read_only_udm.security_result.rule_name matched_rule フィールドから直接マッピングされます。
metadata.gcp_instance_hostname principal.hostname metadata.gcp_instance_hostname フィールドから直接マッピングされます。
metadata.gcp_instance_zone principal.cloud.availability_zone 可用性ゾーンは、正規表現を使用して metadata.gcp_instance_zone フィールドから抽出されます。
metadata.gcp_project_id principal.cloud.project.name metadata.gcp_project_id フィールドから直接マッピングされます。
metadata.gcp_project_numeric_id principal.cloud.project.id metadata.gcp_project_numeric_id フィールドから直接マッピングされます。
metadata.network_interface_eth0_addr_0 principal.ip IP アドレスは、正規表現を使用して metadata.network_interface_eth0_addr_0 フィールドから抽出されます。
metadata.network_interface_eth0_hardware_addr principal.mac metadata.network_interface_eth0_hardware_addr フィールドから直接マッピングされます。
policy_type read_only_udm.metadata.product_event_type policy_type フィールドから直接マッピングされます。
process_info.args principal.labels.value process_info.args 配列の各要素は、個別のラベルとして追加されます。キーは「process_info.arg[index]」に設定されます。ここで、index は配列内の引数の位置です。
process_info.name principal.process.file.full_path process_info.name フィールドから直接マッピングされます。
process_info.pid principal.process.pid process_info.pid フィールドから直接マッピングされます。
process_info.ppid principal.process.parent_process.pid process_info.ppid フィールドから直接マッピングされます。
priority read_only_udm.security_result.severity 優先度フィールドから直接マッピングされ、大文字に変換されます。
timestamp read_only_udm.metadata.event_timestamp タイムスタンプ フィールドから直接マッピングされます。
uuid read_only_udm.metadata.product_log_id uuid フィールドから直接マッピングされます。
なし read_only_udm.metadata.log_type 定数値「SOPHOS_CAPSULE8」に設定します。
なし read_only_udm.metadata.event_type 定数値「SCAN_HOST」に設定します。
なし read_only_udm.metadata.vendor_name 定数値「Sophos」に設定します。
なし read_only_udm.metadata.product_name 定数値「Capsule8」に設定します。

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