Sophos Central のログを収集する

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

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

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • Python を継続的に実行できる Windows または Linux マシンが別途用意されていることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • Sophos XG Firewall への特権アクセス権があることを確認します。

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: '/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
            ingestion_labels:
                log_type: SYSLOG
                namespace: sophos_central
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /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. [全般設定] > [API トークン管理] を選択します。
  3. [Add Token] をクリックして新しいトークンを作成します。
  4. トークン名を入力して [保存] をクリックします。指定されたトークンの API トークンの概要が表示されます。
  5. [API Token Summary] セクションで、[Copy] をクリックして API アクセス URL とヘッダーをコピーします。

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

  1. ウェブブラウザを開き、Python のウェブサイトにアクセスします。
  2. お使いのオペレーティング システム(Windows または Mac)の [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. テキスト エディタで config.ini ファイルを見つけて開きます
  2. 構成ファイルを編集します。
    • API トークン: Sophos Central からコピーした API キーを入力します。
    • Syslog サーバーの詳細: Syslog サーバーの詳細を入力します。
    • ホスト: Bindplane の IP アドレスを入力します。
    • ポート: Bindplane ポート番号を入力します。
    • プロトコル: 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 Central Log Export)。
  4. [トリガー] タブで次の操作を行います。
    • [新規] をクリックし、タスクを [毎日] または [起動時] に実行するように設定します(必要に応じて)。
  5. [操作] タブで次の操作を行います。
    • [新規] をクリックし、[プログラムの開始] を選択します。
    • python.exe 実行ファイル(通常は C:\PythonXX\python.exe にあります)を参照します。
    • [引数を追加] フィールドに、スクリプトのパス(例: C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.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 customer_id フィールドから直接マッピングされます。
data.core_remedy_items.items.0.descriptor target.process.file.full_path data.core_remedy_items.items.0.descriptor フィールドから直接マッピングされます。
data.source_info.ip principal.ip
principal.asset.ip
data.source_info.ip フィールドから直接マッピングされます。
説明 metadata.description metadata.event_typeGENERIC_EVENT の場合、description フィールドから直接マッピングされます。
dhost principal.hostname
principal.asset.hostname
dhost フィールドから直接マッピングされます。
duid security_result.detection_fields.value duid フィールドから直接マッピングされます。
end metadata.event_timestamp RFC 3339 形式に解析され、event_timestamp フィールドにマッピングされます。
endpoint_id target.asset_id Device endpoint Id: {endpoint_id} としてマッピングされます。
endpoint_type security_result.about.labels.value endpoint_type フィールドから直接マッピングされます。
グループ security_result.category_details group フィールドから直接マッピングされます。
name security_result.description
security_result.summary
name フィールドから直接マッピングされます。
metadata.event_type type フィールドとパーサー内の追加ロジックに基づいて決定されます。有効な値には、FILE_OPEN、SCAN_HOST、SETTING_MODIFICATION、STATUS_HEARTBEAT、SETTING_CREATION、NETWORK_CONNECTION、SCAN_PROCESS、SCAN_UNCATEGORIZED、USER_CREATION、USER_UNCATEGORIZED、STATUS_UPDATE などがあります。
metadata.log_type SOPHOS_CENTRAL に設定します。
metadata.product_event_type type フィールドから直接マッピングされます。
metadata.product_name Sophos Central に設定します。
metadata.vendor_name Sophos に設定します。
network.direction アウトバウンド ネットワーク接続を示す特定の type 値の場合は OUTBOUND に設定します。
network.ip_protocol TCP ネットワーク接続を示す特定の type 値の場合は TCP に設定します。
security_result.action Grok パターンを使用して name フィールドから抽出された action フィールドに基づいて決定されます。有効な値は、ALLOW、BLOCK、ALLOW_WITH_MODIFICATION、UNKNOWN_ACTION です。
security_result.detection_fields.key duid フィールドが存在する場合は duid に設定します。
security_result.rule_name 特定の type 値の grok パターンを使用して、name フィールドから抽出されます。
security_result.severity 次のマッピングを使用して severity フィールドからマッピングされます。low -> LOW、medium -> MEDIUM、high/critical -> HIGH。
target.application 特定の type 値の grok パターンを使用して、name フィールドから抽出されます。
target.asset.hostname 特定の type 値の dhost フィールドからマッピングされます。
target.file.full_path 特定の type 値の Grok パターンを使用して name フィールドから抽出されるか、data.core_remedy_items.items.0.descriptor または core_remedy_items.items.0.descriptor から直接マッピングされます。
target.file.size Grok パターンを使用して name フィールドから抽出され、特定の type 値に対して uinteger に変換されます。
target.hostname 特定の type 値の dhost フィールドからマッピングされます。
target.resource.name type フィールドに基づいて特定の値に設定されるか、grok パターンを使用して name フィールドから抽出されます。
target.resource.type type フィールドに基づいて特定の値に設定します。
target.user.userid Grok パターンを使用してユーザー名を抽出した後、suser フィールドからマッピングされます。
target.url 特定の type 値の grok パターンを使用して、name フィールドから抽出されます。
source_info.ip principal.ip
principal.asset.ip
source_info.ip フィールドから直接マッピングされます。
suser principal.user.userid
target.user.userid
grok パターンを使用して suser フィールドから抽出され、ホスト名の接頭辞が削除されます。
type metadata.product_event_type type フィールドから直接マッピングされます。

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