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 の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows へのインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux へのインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
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 を構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/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 を構成する
- 管理者アカウントで CB App Control コンソールにログインします。
- [Admin] > [System Configuration] > [External Logging] に移動します。
- [External Event Logging] セクションで、次の操作を行います。
- Syslog ロギングを有効にする: [Syslog Enabled] チェックボックスをオンにします。
- サーバー アドレス:
<Bindplane Server IP>
。 - ポート:
<Bindplane Server PORT>
. - プロトコル: [TCP] を選択します。
- Syslog Format: [JSON] を選択します。
- [イベント ロギング オプション] で、送信するログの種類を選択します。
- ポリシー違反
- ファイル整合性モニタリング(FIM)イベント
- ユーザー認証イベント
- 脅威インテリジェンス データ
- [保存] をクリックします。
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.hostname 、observer.hostname 、observer.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.description 、additional.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_time (rt が存在しない場合)に基づいてタイムスタンプを決定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。