macOS システムログを収集する

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

このドキュメントでは、Bindplane を使用して macOS システムログを Google Security Operations に取り込む方法について説明します。macOS は、Apple Unified Logging システムを使用して、認証、プロセス実行、カーネル アクティビティ、アプリケーションの動作など、システムレベルのイベントをキャプチャします。これらのログは、syslog 経由でリモート コレクタに転送して、セキュリティ モニタリングと分析を一元的に行うことができます。

始める前に

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

  • Google SecOps インスタンス。
  • Windows 2016 以降または systemd を使用する Linux ホスト。
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認してください。
  • ログを転送する macOS エンドポイントに対する管理者権限。
  • Unified Logging をサポートする macOS 10.12(Sierra)以降。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイル をダウンロードします。
    • 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. 構成ファイルにアクセスします。

    • config.yaml ファイルを見つけます。通常、Linux では /observiq-otel-collector/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(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: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'MACOS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
  • <PLACEHOLDER_CUSTOMER_ID> は、実際の顧客 ID に置き換えます。
  • /path/to/ingestion-authentication-file.json は、Google SecOps の取り込み認証ファイルを取得する で認証ファイルを保存したファイルパスに更新します。

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"
    

macOS syslog 転送を構成する

macOS は Unified Logging システムを使用します。syslog 経由でログを Bindplane エージェントに転送するには、各 macOS エンドポイントで組み込みの syslogd サービスを構成します。

オプション 1: syslog.conf を使用して syslog 転送を構成する

  1. macOS エンドポイントでターミナル を開きます。
  2. syslog 構成ファイルを編集します。

    sudo nano /etc/syslog.conf
    
  3. 次の行をファイルの末尾に追加して、すべてのログを UDP 経由で Bindplane エージェントに転送します。

    *.*     @<BINDPLANE_IP_ADDRESS>:514
    
    • <BINDPLANE_IP_ADDRESS> は、Bindplane エージェント ホストの IP アドレス(192.168.1.100 など)に置き換えます。
  4. ファイルを保存して終了します。

  5. syslog デーモンを再起動します。

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

オプション 2: asl.conf を使用して syslog 転送を構成する

  1. macOS エンドポイントでターミナル を開きます。
  2. ASL 構成ファイルを編集します。

    sudo nano /etc/asl.conf
    
  3. 次の行を追加して、ログをリモート syslog サーバーに転送します。

    ? [= Sender kernel] forward <BINDPLANE_IP_ADDRESS>:514
    ? [<= Level notice] forward <BINDPLANE_IP_ADDRESS>:514
    
    • <BINDPLANE_IP_ADDRESS> は、Bindplane エージェント ホストの IP アドレスに置き換えます。
  4. ファイルを保存して終了します。

  5. syslog デーモンを再起動します。

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

ログ転送を確認する

  1. macOS エンドポイントで、テスト ログメッセージを生成します。

    logger -p user.notice "Test syslog message for Bindplane"
    
  2. Bindplane エージェント ホストで、エージェント ログで受信メッセージを確認します。

    sudo journalctl -u observiq-otel-collector -f
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
activityIdentifier_label additional.fields 統合済み
backtrace_label additional.fields 統合済み
bootUUID_label additional.fields 統合済み
category_label additional.fields 統合済み
chronicle_log_type_label additional.fields 統合済み
formatString_label additional.fields 統合済み
log_type_label additional.fields 統合済み
machTimestamp_label additional.fields 統合済み
messageType_label additional.fields 統合済み
parentActivityIdentifier_label additional.fields 統合済み
processImageUUID_label additional.fields 統合済み
senderImageUUID_label additional.fields 統合済み
senderProgramCounter_label additional.fields 統合済み
subprocess_label additional.fields 統合済み
subsystem_label additional.fields 統合済み
threadID_label additional.fields 統合済み
traceID_label additional.fields 統合済み
intermediary_host intermediary.hostname 直接マッピングされます。
attributes.message metadata.description 直接マッピングされます。
description metadata.description 直接マッピングされます。
eventMessage metadata.description 直接マッピングされます。
timestamp metadata.event_timestamp ISO8601 として解析されます。
has_principal metadata.event_type マッピング: trueSTATUS_UPDATE
has_user metadata.event_type マッピング: trueUSER_UNCATEGORIZED
attributes.process metadata.product_event_type 直接マッピングされます。
eventType metadata.product_event_type 直接マッピングされます。
attributes.host principal.asset.hostname 直接マッピングされます。
hostname principal.asset.hostname 直接マッピングされます。
source principal.asset.hostname 直接マッピングされます。
senderImagePath principal.file.full_path 直接マッピングされます。
attributes.host principal.hostname 直接マッピングされます。
hostname principal.hostname 直接マッピングされます。
source principal.hostname 直接マッピングされます。
command_line principal.process.command_line 直接マッピングされます。
processImagePath principal.process.file.full_path 直接マッピングされます。
attributes.pid principal.process.pid 直接マッピングされます。
processID principal.process.pid 直接マッピングされます。
process_id principal.process.pid 直接マッピングされます。
userID principal.user.userid 直接マッピングされます。
なし metadata.event_type 定数: USER_UNCATEGORIZED
なし metadata.product_name 定数: MacOS
なし metadata.vendor_name 定数: Apple
なし principal.platform 定数: MAC

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