Sophos Intercept EDR のログを収集する

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

このドキュメントでは、Bindplane を使用して Sophos Intercept EDR ログを収集する方法について説明します。パーサーは、Sophos EDR JSON ログからフィールドを抽出し、Unified Data Model(UDM)に変換します。message フィールドを解析し、Sophos フィールドを UDM フィールドにマッピング(suser から principal.user.userid など)し、フィールドの存在に基づいて条件付きで統合し、type フィールドに基づいてイベントを分類し、適切な UDM イベントタイプとセキュリティ結果アクションを設定します。

始める前に

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

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

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
    

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_EDR'
        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 マッピング 論理
appSha256 principal.process.file.sha256 未加工ログの appSha256 の値がこの UDM フィールドに割り当てられます。
core_remedy_items.items[].descriptor principal.process.file.names 未加工ログの core_remedy_itemsitems 配列内の各 descriptor の値は、UDM に個別の names エントリとして追加されます。
customer_id target.resource.id 未加工ログの customer_id の値がこの UDM フィールドに割り当てられます。
detection_identity_name security_result.threat_feed_name 未加工ログの detection_identity_name の値がこの UDM フィールドに割り当てられます。
dhost target.hostname 未加工ログの dhost の値がこの UDM フィールドに割り当てられます。
endpoint_id target.resource.attribute.labels[].value 未加工ログの endpoint_id の値が、target.resource.attribute.labels のラベルの値として割り当てられます。このラベルのキーは「endpoint_id」です。
endpoint_type target.resource.attribute.labels[].value 未加工ログの endpoint_type の値が、target.resource.attribute.labels のラベルの値として割り当てられます。このラベルのキーは「endpoint_type」です。
filePath target.file.full_path 未加工ログの filePath の値がこの UDM フィールドに割り当てられます。
group principal.group.group_display_name 未加工ログの group の値がこの UDM フィールドに割り当てられます。
id target.process.pid 未加工ログの id の値がこの UDM フィールドに割り当てられます。
name metadata.description 未加工ログの name の値がこの UDM フィールドに割り当てられます。この値は、パーサーの条件ロジックを使用して未加工ログの type フィールドから導出されます。デフォルト値は NETWORK_UNCATEGORIZED です。特定の type 値は、異なる UDM イベントタイプにマッピングされます(例: 「UpdateSuccess」は STATUS_UPDATE にマッピングされ、「ServiceNotRunning」は SERVICE_STOP にマッピングされます。「SOPHOS_EDR」にハードコードされます。未加工ログの type の値がこの UDM フィールドに割り当てられます。「Sophos EDR」にハードコードされています。「SOPHOS」にハードコードされています。
rt metadata.event_timestamptimestamp 未加工ログの rt の値(イベント時刻を表す)が解析され、UDM の metadata.event_timestamp フィールドと最上位の timestamp フィールドの両方に値を設定するために使用されます。
security_result.severity security_result.severity 未加工ログの severity の値が、大文字に変換されてこの UDM フィールドに割り当てられます。
source_info.ip principal.ip 未加工ログの source_info 内の ip の値がこの UDM フィールドに割り当てられます。
suser principal.user.userid 未加工ログの suser の値がこの UDM フィールドに割り当てられます。
threat security_result.threat_name 未加工ログの threat の値がこの UDM フィールドに割り当てられます。
security_result.action この値は、未加工ログの type フィールドから導出されます。type に「Blocked」または「Warn」が含まれている場合(大文字と小文字を区別しない)、値は「BLOCK」に設定されます。type に「Allow」が含まれている場合(大文字と小文字を区別しない)、値は「ALLOW」に設定されます。未加工ログの type フィールドが「ScheduledDataUploadResumed」または「ScheduledDailyLimitExceeded」の場合、値は「TASK」に設定されます。

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