Carbon Black App Control ログを収集する

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

このドキュメントでは、Carbon Black App Control ログを収集する方法について説明します。パーサーは CEF 形式と JSON 形式の両方をサポートしています。まず、入力を JSON として解析しようとします。解析に失敗すると、入力を CEF として扱い、テキスト置換を実行し、CEF フィールドを抽出して UDM にマッピングし、イベントタイプを GENERIC_EVENT に設定します。それ以外の場合は、JSON 固有の UDM マッピング インクルード ファイルを別途使用します。

始める前に

  • Google Security Operations インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • Carbon Black App Control(CB Protection)サーバー(バージョン 8.x 以降を推奨)。
  • Carbon Black App Control への特権アクセス権があることを確認します。

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 Agent を構成する

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:11592"
    
    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: JSON
                namespace: cb_app_control
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

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

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

Bindplane Agent を再起動して変更を適用する

  • Linux で Bindplane Agent を再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane Agent を再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog ログを送信するように CB App Control を構成する

  1. 管理者アカウントで CB App Control コンソールにログインします。
  2. [Admin] > [System Configuration] > [External Logging] に移動します。
  3. [External Event Logging] セクションで、次の操作を行います。
    • Syslog ロギングを有効にする: [Syslog Enabled] チェックボックスをオンにします。
    • サーバー アドレス: <Bindplane Server IP>
    • ポート: <Bindplane Server PORT>.
    • プロトコル: [TCP] を選択します。
    • Syslog Format: [JSON] を選択します。
  4. [イベント ロギング オプション] で、送信するログの種類を選択します。
    • ポリシー違反
    • ファイル整合性モニタリング(FIM)イベント
    • ユーザー認証イベント
    • 脅威インテリジェンス データ
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
ABId principal.asset.asset_id JSON ログの ABId は、PRODUCT_SPECIFIC_ID:{ABId}-{Bit9Server} 形式のアセット ID の一部として使用されます。
Bit9Server principal.asset.asset_id ABId と組み合わせて、プリンシパルのアセット ID の一部として使用されます。metadata.url_back_to_product フィールドの作成にも使用されます。
CommandLine about.process.command_line 直接マッピングされます。
EventType metadata.product_event_type 対応する EventTypeId が角かっこで囲まれてマッピングされます(例: [5] - Discovery)。
EventTypeId metadata.product_event_type EventType とともに使用して metadata.product_event_type を入力します。
EventSubType metadata.description metadata.description フィールドに追加されます。
EventSubTypeId metadata.description 明示的にマッピングされていませんが、パーサーの内部ロジックに基づいて説明に貢献する可能性があります。
externalId metadata.product_log_id 直接マッピングされます。
FileHash about.file.sha256 直接マッピングされます。
FileName additional.fields(キー FileName を含む) 追加フィールドとして追加されました。一部のイベントの metadata.description のファイル情報の一部としても使用されます。
FilePath about.file.full_path 直接マッピングされます。
FileThreat additional.fields(キー fileThreat を含む) 追加フィールドとして追加されました。
FileTrust additional.fields(キー fileTrust を含む) 追加フィールドとして追加されました。
HostId principal.asset.asset_id metadata.url_back_to_product で商品に戻る URL を作成するために使用されます。
HostName target.hostname 直接マッピングされます。
HostIP target.ip 直接マッピングされます。
Message metadata.description 直接マッピングされます。
PathName about.file.full_path 直接マッピングされます。
Platform target.platform 列挙値 WINDOWS にマッピングされます。
Policy additional.fields(キー Policy を含む) 追加フィールドとして追加されました。
PolicyId additional.fields(キー PolicyId を含む) 追加フィールドとして追加されました。
ProcessKey additional.fields(キー ProcessKey を含む) 追加フィールドとして追加されました。
ProcessPath about.process.command_line 直接マッピングされます。
ProcessPathName about.process.command_line 直接マッピングされます。
ProcessThreat additional.fields(キー ProcessThreat を含む) 追加フィールドとして追加されました。
ProcessTrust additional.fields(キー ProcessTrust を含む) 追加フィールドとして追加されました。
RuleName additional.fields(キー ruleName を含む) 追加フィールドとして追加されました。
Timestamp metadata.event_timestamp 直接マッピングされます。
UserName target.user.user_display_name 直接マッピングされます。
UserSid principal.user.userid 直接マッピングされます。
agent.ephemeral_id observer.labels(キー ephemeral_id を含む) オブザーバー ラベルとして追加されます。
agent.name principal.hostnameobserver.hostnameobserver.user.userid 複数のフィールドにマッピングされています。
agent.type observer.application 直接マッピングされます。
agent.version metadata.product_version JSON ログに直接マッピングされます。CEF ログの場合、CEF メッセージから抽出されます。
cat security_result.category_details 直接マッピングされます。
cs1 additional.fields(キー rootHash またはその他の cs1Label を使用) cs1Label で定義されたキーを持つ追加フィールドとして追加されます。
cs1Label additional.fields cs1 によって入力される追加フィールドのキーとして使用されます。
cs2 additional.fields(キー installerFilename またはその他の cs2Label を使用) cs2Label で定義されたキーを持つ追加フィールドとして追加されます。
cs2Label additional.fields cs2 によって入力される追加フィールドのキーとして使用されます。
cs3 additional.fields(キー Policy またはその他の cs3Label を使用) cs3Label で定義されたキーを持つ追加フィールドとして追加されます。
cs3Label additional.fields cs3 によって入力される追加フィールドのキーとして使用されます。
cs5 additional.fields(キー ruleName またはその他の cs5Label を使用) cs5Label で定義されたキーを持つ追加フィールドとして追加されます。
cs5Label additional.fields cs5 によって入力される追加フィールドのキーとして使用されます。
cfp1 additional.fields(キー fileTrust または他の cfp1Label を使用) cfp1Label で定義されたキーを持つ追加フィールドとして追加されます。
cfp1Label additional.fields cfp1 によって入力される追加フィールドのキーとして使用されます。
cfp2 additional.fields(キー processTrust または他の cfp2Label を使用) cfp2Label で定義されたキーを持つ追加フィールドとして追加されます。
cfp2Label additional.fields cfp2 によって入力される追加フィールドのキーとして使用されます。
deviceProcessName about.process.command_line 直接マッピングされます。
dhost target.hostname 直接マッピングされます。
dst target.ip 直接マッピングされます。
duser target.user.user_display_name 直接マッピングされます。
dvchost about.hostname 直接マッピングされます。
eventId additional.fields(キー eventId を含む) 追加フィールドとして追加されました。
fileHash about.file.sha256 直接マッピングされます。
flexString1 additional.fields(キー fileThreat またはその他の flexString1Label を使用) flexString1Label で定義されたキーを持つ追加フィールドとして追加されます。
flexString1Label additional.fields flexString1 によって入力される追加フィールドのキーとして使用されます。
flexString2 additional.fields(キー processThreat またはその他の flexString2Label を使用) flexString2Label で定義されたキーを持つ追加フィールドとして追加されます。
flexString2Label additional.fields flexString2 によって入力される追加フィールドのキーとして使用されます。
fname additional.fields(キー fname を含む) 追加フィールドとして追加されました。一部のイベントの metadata.description のファイル情報の一部としても使用されます。
host.architecture target.asset.hardware.cpu_platform 直接マッピングされます。
host.hostname target.asset.asset_id ターゲット アセット ID(Host Id: {host.hostname})の一部として使用されます。また、target.hostname にもマッピングされます。
host.id target.asset.asset_id ターゲット アセット ID(Host Id: {host.id})の一部として使用されます。
host.ip target.asset.ip 直接マッピングされます。
host.mac target.mac 直接マッピングされます。
host.name target.hostname 直接マッピングされます。
host.os.build target.platform_patch_level 直接マッピングされます。
host.os.kernel target.platform_patch_level target.platform_patch_level に追加されました。
host.os.platform target.platform 列挙値 WINDOWS にマッピングされます。
host.os.type target.platform 列挙値 WINDOWS にマッピングされます。
host.os.version target.platform_version 直接マッピングされます。
log.file.path target.file.full_path 直接マッピングされます。
metadata.event_type metadata.event_type CEF ログの場合は GENERIC_EVENT、JSON ログの場合は SYSTEM_AUDIT_LOG_UNCATEGORIZED に設定します。
metadata.log_type metadata.log_type CB_EDR に設定します。
metadata.product_log_id metadata.product_log_id CEF ログの externalId からマッピングされます。JSON ログには適用されません。
metadata.product_name metadata.product_name CEF ログの場合は App Control、JSON ログの場合は CB_APP_CONTROL に設定します。
metadata.product_version metadata.product_version CEF ログの CEF メッセージから抽出されます。JSON ログの agent.version からマッピングされます。
metadata.vendor_name metadata.vendor_name Carbon Black に設定します。
msg metadata.descriptionadditional.fields パーサーのロジックに基づいて metadata.description と追加フィールドに入力するために使用されます。
sproc principal.process.command_line 直接マッピングされます。
metadata.url_back_to_product metadata.url_back_to_product JSON ログの Bit9Server フィールドと HostId フィールドを使用して作成されます。CEF ログには適用されません。
security_result.severity security_result.severity MEDIUM に設定します。
timestamp events.timestamp JSON ログに直接マッピングされます。CEF ログの場合、パーサー ロジックは、未加工ログの rt フィールド(使用可能な場合)または collection_timert が存在しない場合)に基づいてタイムスタンプを決定します。

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