Sophos AV のログを収集する

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

このドキュメントでは、Bindplane を使用して Sophos AV ログを収集する方法について説明します。パーサーは、JSON ログを統合データモデル(UDM)に変換します。ネストされた JSON 構造からフィールドを抽出し、UDM フィールドにマッピングして、タイプ フィールドに基づいてイベントの分類を行い、さまざまな Sophos AV イベントタイプに固有の詳細とアクションでデータを拡充します。

始める前に

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

  • 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_AV'
        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 マッピング ロジック
customer_id target.resource.id 直接マッピング
data.customer_id target.resource.id 直接マッピング
data.dhost principal.hostname 直接マッピング
data.end timestamp 直接マッピング
data.endpoint_id principal.resource.id 直接マッピング
data.group security_result.category_details 直接マッピング
data.id principal.resource.id 直接マッピング
data.location principal.hostname 直接マッピング
data.name metadata.description 直接マッピング
data.rt timestamp 直接マッピング
data.severity security_result.severity 直接マッピング
data.source principal.user.user_display_name 直接マッピング
data.source_info.ip principal.ip 直接マッピング
data.suser principal.user.userid 直接マッピング
data.threat security_result.rule_name data.group が「POLICY」の場合の直接マッピング
data.type metadata.product_event_type 直接マッピング
data.user_id principal.user.userid 直接マッピング
data.when timestamp 直接マッピング
dhost principal.hostname 直接マッピング
end timestamp 直接マッピング
endpoint_id principal.resource.id 直接マッピング
グループ security_result.category_details 直接マッピング
id principal.resource.id 直接マッピング
ロケーション principal.hostname 直接マッピング
name metadata.description 直接マッピング
rt timestamp 直接マッピング
重要度 security_result.severity 直接マッピング
ソース principal.user.user_display_name 直接マッピング
source_info.ip principal.ip 直接マッピング
suser principal.user.userid 直接マッピング
type metadata.product_event_type 直接マッピング
user_id principal.user.userid 直接マッピング
when timestamp 直接マッピング
- is_alert 「重大度」が「中」または「高」のイベント、または「タイプ」フィールドが「Event::Endpoint::UpdateRebootRequired」などのアラートに値するイベントを示す場合、is_alert フィールドは true に設定されます。
- is_significant 重大度が「中」または「高」のイベントの場合、is_significant フィールドは true に設定されます。
- metadata.description 説明フィールドには、未加工ログの「name」フィールドの値が入力されます。
- metadata.event_timestamp event_timestamp フィールドには、未加工ログの「end」、「rt」、「when」フィールドの値が入力されます。
- metadata.event_type event_type フィールドは、未加工ログの「type」フィールドから派生し、特定の Sophos イベントタイプを Chronicle UDM イベントタイプにマッピングします。
- metadata.log_type すべてのイベントで log_type フィールドが「SOPHOS_AV」に設定されます。
- metadata.product_event_type product_event_type フィールドには、未加工ログの「type」フィールドの値が入力されます。
- metadata.product_name product_name フィールドは、すべてのイベントで「Sophos Anti-Virus」に設定されています。
- metadata.vendor_name すべてのイベントで vendor_name フィールドが「Sophos」に設定されています。
- network.direction すべての「NETWORK_CONNECTION」イベントで、direction フィールドが「OUTBOUND」に設定されます。
- network.ip_protocol 「target.url」フィールドが存在する「NETWORK_CONNECTION」イベントの場合、ip_protocol フィールドは「TCP」に設定されます。
- principal.hostname ホスト名フィールドには、未加工ログの「dhost」フィールドまたは「location」フィールドの値が入力されます。
- principal.ip ip フィールドには、未加工ログの「source_info.ip」フィールドの値が入力されます。
- principal.resource.id id フィールドには、未加工ログの「id」または「endpoint_id」フィールドの値が入力されます。
- principal.user.user_display_name user_display_name フィールドには、未加工ログの「suser」フィールドまたは「source」フィールドの値が入力されます。
- principal.user.userid userid フィールドには、未加工ログの「suser」、「user_id」、「data.suser」フィールドの値が入力されます。
- security_result.action アクション フィールドは、未加工ログの「data.name」フィールドから派生し、特定の Sophos アクションを Chronicle UDM アクションにマッピングします。
- security_result.category_details category_details フィールドには、未加工ログの「group」フィールドの値が入力されます。
- security_result.rule_name rule_name フィールドは、未加工ログの「data.name」フィールドから抽出されます。具体的には、「Policy non-compliance: [rule_name]」や「Rule names: [rule_name]」などのパターンを探します。
- security_result.severity 重大度フィールドには、未加工ログの「重大度」フィールドの値が入力され、対応する Chronicle UDM 重大度レベルに変換されます。
- security_result.summary イベントタイプが「GENERIC_EVENT」または「STATUS_HEARTBEAT」の場合、概要フィールドには未加工ログの「name」フィールドの値が入力されます。
- target.application イベントタイプが「NETWORK_CONNECTION」で、説明にアプリがブロックされていることが記載されている場合、アプリケーション フィールドには未加工ログの「data.name」フィールドの値が入力されます。
- target.asset_id イベントタイプが「NETWORK_CONNECTION」で、説明にアセット ID が記載されている場合、asset_id フィールドには未加工ログの「data.endpoint_id」フィールドの値が入力されます。
- target.file.full_path full_path フィールドは、未加工ログの「data.name」フィールドから抽出されます。具体的には、「Source path: [full_path]」のようなパターンを探します。
- target.file.size サイズ フィールドは、未加工ログの「data.name」フィールドから抽出されます。具体的には、「File size: [size]」のようなパターンを探します。
- target.hostname イベントタイプが「NETWORK_CONNECTION」で、説明にターゲット ホスト名が含まれている場合、ホスト名フィールドには未加工ログの「data.dhost」フィールドの値が入力されます。
- target.process.file.full_path full_path フィールドは、未加工ログの data.name フィールドから抽出されます。具体的には、「Controlled application [action]: [full_path]」のようなパターンを探します。
- target.resource.id id フィールドには、未加工ログの「customer_id」フィールドの値が入力されます。
- target.resource.name name フィールドには、イベントタイプに基づいて特定の値が入力されます。「SETTING_CREATION」と「SETTING_MODIFICATION」では、それぞれ「Device Registration」と「Real time protection」に設定されます。「SCAN_UNCATEGORIZED」の場合、未加工ログの「data.name」フィールドの値が入力されます。
- target.resource.type type フィールドには、イベントタイプに基づいて特定の値が入力されます。「SETTING_CREATION」と「SETTING_MODIFICATION」の場合は、「SETTING」に設定されます。「SCAN_UNCATEGORIZED」の場合は、「Scan」に設定されます。「SCAN_NETWORK」の場合は、「デバイス」に設定されます。
- target.url url フィールドは、未加工ログの data.name フィールドから抽出されます。具体的には、「'[url]' blocked」のようなパターンを探します。
- target.user.userid イベントタイプが「USER_CREATION」の場合、userid フィールドには未加工ログの「data.user_id」フィールドの値が入力されます。
- timestamp タイムスタンプ フィールドには、未加工ログの「end」、「rt」、「when」フィールドの値が入力されます。

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