Apple macOS の syslog データを収集する

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

このパーサーは、Grok パターンを使用して Apple macOS syslog メッセージからフィールドを抽出し、抽出された値(タイムスタンプ、ホスト名、中間ホスト、コマンドライン、プロセス ID、説明など)を統合データモデル(UDM)に入力します。ホスト名が存在する場合、パーサーはイベントを STATUS_UPDATE に分類します。それ以外の場合は、イベントにカテゴリ GENERIC_EVENT を割り当てます。最後に、パーサーはベンダーとプロダクトの情報で UDM イベントを拡充します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Auditd ホストに対する root 権限があることを確認します。
  • Auditd ホストに rsyslog がインストールされていることを確認します。
  • Windows 2012 SP2 以降または systemd を搭載した Linux ホストがあることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細] セクションから [お客様 ID] をコピーして保存します。

BindPlane Agent をインストールする

  1. Windows へのインストールの場合は、次のスクリプト
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet を実行します。
  2. Linux へのインストールの場合は、次のスクリプト
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh を実行します。
  3. その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように BindPlane エージェントを構成する

  1. BindPlane がインストールされているマシンにアクセスします。
  2. config.yaml ファイルを次のように編集します。

    receivers:
      tcplog:
        # Replace the below port <54525> and IP <0.0.0.0> with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: auditd
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 次のコマンドを使用して BindPlane エージェントを再起動して、変更を適用します。sudo systemctl bindplane restart

macOS から Syslog をエクスポートする

  1. Homebrew を使用して syslog-ng をインストールします。

    brew install syslog-ng
    
  2. syslog-ng を構成します。

    • syslog-ng.conf ファイルを編集します(通常は /usr/local/etc/syslog-ng/syslog-ng.conf にあります)。
    sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
    
    • 次の構成ブロックを追加します。
      • BindPlane の構成に応じて、配信方法を tcp に変更するか、udp のままにします。
      • <BindPlaneAgent_IP><BindPlaneAgent_Port> は、BindPlane エージェントの実際の IP アドレスとポートに置き換えます。
    source s_local { system(); internal(); };
    destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); };
    log { source(s_local); destination(d_secops); };
    
  3. syslog-ng サービスを再起動します。

    brew services restart syslog-ng
    
  4. syslog-ng のステータスを確認します(syslog-ng が開始済みと表示されます)。

    brew services list
    

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
サポート read_only_udm.metadata.description description フィールドの値は、Grok パターンを使用して未加工ログの data フィールドから抽出されます。
サポート read_only_udm.principal.hostname ホスト名は、Grok パターンを使用して data フィールドから抽出されます。
サポート read_only_udm.intermediary.hostname 中間ホスト名は、grok パターンを使用して data フィールドから抽出されます。
サポート read_only_udm.principal.process.command_line プロセスのコマンドラインは、grok パターンを使用して data フィールドから抽出されます。
サポート read_only_udm.principal.process.pid プロセス ID は、grok パターンを使用して data フィールドから抽出されます。
サポート read_only_udm.metadata.event_timestamp イベント タイムスタンプは、grok パターンを使用して data フィールドから抽出され、タイムスタンプ オブジェクトに変換されます。パーサーで「MacOS」にハードコードされています。パーサーで「Apple」にハードコードされています。ログからホスト名が抽出された場合は「STATUS_UPDATE」に設定し、それ以外の場合は「GENERIC_EVENT」に設定します。
log_type read_only_udm.metadata.log_type 元のログの log_type フィールドから直接マッピングされます。

変更点

2022-05-04

  • 新しく作成されたパーサー。