CrowdStrike Falcon Stream のログを収集する
このドキュメントでは、Bindplane を使用して Crowdstrike Falcon Stream ログを収集する方法について説明します。パーサーは Key-Value ペアを抽出し、統合データモデル(UDM)にマッピングします。さまざまな区切り文字を処理し、重大度やイベントタイプなどの追加コンテキストでデータを拡充します。また、ユーザー ログインやセキュリティ結果など、特定のイベントタイプとフィールドに対して特定の変換も実行します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google Security Operations インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認する
- CrowdStrike Falcon コンソールへの特権アクセス
- Falcon Stream の API 認証情報(クライアント ID とクライアント シークレット)を取得する
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
- BindPlane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに 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 エージェントを構成する
- 構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CS_STREAM' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/path/to/ingestion-authentication-file.json
の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
CrowdStrike API キーを構成して取得する
- 特権アカウントで CrowdStrike Falcon にログインします。
- メニュー アイコン > [サポート] に移動します。
- [API クライアント> キーを選択] をクリックします。
- [新しい API クライアントを追加] をクリックします。
- [API スコープ] セクションで、[イベント ストリーム] を選択し、[読み取り] オプションを有効にします。
- [追加] をクリックします。
- [クライアント ID、クライアント シークレット] と [ベース URL] の値をコピーして保存します。
Falcon SIEM コネクタをインストールする
- オペレーティング システム用の RPM インストーラ パッケージをダウンロードします。
パッケージのインストール:
- CentOS オペレーティング システム:
sudo rpm -Uvh <installer package>
- Ubuntu オペレーティング システム:
sudo dpkg -i <installer package>
デフォルトのインストール ディレクトリ:
- Falcon SIEM Connector -
/opt/crowdstrike/
。 - サービス -
/etc/init.d/cs.falconhoseclientd/
。
- Falcon SIEM Connector -
イベントを Bindplane に転送するように SIEM コネクタを構成する
- SIEM コネクタがインストールされているマシンに
sudo
ユーザーとしてログインします。 /opt/crowdstrike/etc/
ディレクトリに移動します。cs.falconhoseclient.leef.cfg
をcs.falconhoseclient.cfg
に名前変更します。- SIEM Connector は、デフォルトで
cs.falconhoseclient.cfg
構成を使用します。
- SIEM Connector は、デフォルトで
cs.falconhoseclient.cfg
ファイルを編集して、次のパラメータを変更または設定します。api_url:
- 前の手順でコピーした Crowdstrike Falcon ベース URL。app_id:
- Falcon Streaming API への接続の識別子としての任意の文字列(たとえば、app_id: SECOPS-LEEF
に設定します)。client_id:
- 前のステップからコピーしたclient_id
値。client_secret:
- 前のステップからコピーしたclient_secret
値。send_to_syslog_server: true
- Syslog サーバーへのプッシュを有効にします。host:
- BindPlane Agent の IP またはホスト名。port:
- BindPlane Agent のポート。
cs.falconhoseclient.cfg
ファイルを保存します。SIEM コネクタ サービスを開始します。
- CentOS オペレーティング システム
sudo service cs.falconhoseclientd start
- Ubuntu 16.04 以降のオペレーティング システム
sudo systemctl start cs.falconhoseclientd.service
(省略可)SIEM コネクタ サービスを停止します。
- CentOS オペレーティング システム
sudo service cs.falconhoseclientd stop
- Ubuntu 16.04 以降のオペレーティング システム
sudo systemctl stop cs.falconhoseclientd.service
(省略可)SIEM コネクタ サービスを再起動します。
- CentOS オペレーティング システム
sudo service cs.falconhoseclientd restart
- Ubuntu 16.04 以降のオペレーティング システム
sudo systemctl restart cs.falconhoseclientd.service
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
cat |
security_result.category_details |
cat フィールドの値は、security_result.category_details フィールドに直接マッピングされます。 |
commandLine |
target.process.command_line |
commandLine フィールドの値は、target.process.command_line フィールドに直接マッピングされます。 |
cs1 |
security_result.summary |
cs1Label が「incidentType」の場合、cs1 の値は security_result.summary にマッピングされます。それ以外の場合は、security_result.detection_fields の Key-Value ペアとしてマッピングされます。この場合、キーは cs1Label から、値は cs1 から取得されます。 |
cs1Label |
security_result.detection_fields.key |
cs1 がインシデント タイプでない場合、security_result.detection_fields のキーとして使用されます。 |
cs2 |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとしてマッピングされます。キーは cs2Label から、値は cs2 から取得されます。 |
cs2Label |
security_result.detection_fields.key |
cs2 とともに security_result.detection_fields のキーとして使用されます。 |
cs3 |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとしてマッピングされます。キーは cs3Label から、値は cs3 から取得されます。 |
cs3Label |
security_result.detection_fields.key |
cs3 とともに security_result.detection_fields のキーとして使用されます。 |
cs4 |
security_result.about.url |
cs4Label が「falconHostLink」の場合、cs4 の値が security_result.about.url にマッピングされます。それ以外の場合は、security_result.detection_fields の Key-Value ペアとしてマッピングされます。この場合、キーは cs4Label から、値は cs4 から取得されます。 |
cs4Label |
security_result.detection_fields.key |
cs4 が falconHostLink ではない場合、security_result.detection_fields のキーとして使用されます。 |
description |
metadata.description |
description フィールドの値は、metadata.description フィールドに直接マッピングされます。空の場合は、代わりに incidentDescription 、msg 、serviceName が使用されます。 |
devTime |
metadata.event_timestamp |
devTime フィールドの値が解析され、metadata.event_timestamp フィールドにマッピングされます。 |
deviceCustomDate1 |
metadata.event_timestamp |
devTime が存在しない場合、deviceCustomDate1 フィールドの値が解析され、metadata.event_timestamp フィールドにマッピングされます。 |
domain |
principal.administrative_domain |
正規表現を使用して userName フィールドから抽出され、principal.administrative_domain にマッピングされます。 |
duser |
principal.user.userid |
存在する場合、duser の値は usrName フィールドを上書きし、ユーザー フィールドの入力に使用されます。 |
endpointName |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとして「endpointName」キーでマッピングされます。 |
eventType |
metadata.product_event_type |
eventType フィールドの値は、metadata.product_event_type フィールドに直接マッピングされます。 |
falconHostLink |
security_result.about.url |
falconHostLink フィールドの値は、security_result.about.url フィールドに直接マッピングされます。 |
filePath |
target.process.file.full_path |
filePath フィールドの値は、target.process.file.full_path フィールドに直接マッピングされます。 |
identityProtectionIncidentId |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとして「identityProtectionIncidentId」キーでマッピングされます。 |
incidentDescription |
metadata.description |
description が空の場合、incidentDescription フィールドの値は metadata.description フィールドにマッピングされます。 |
incidentType |
security_result.summary |
incidentType フィールドの値は、security_result.summary フィールドに直接マッピングされます。 |
log_type |
metadata.log_type |
log_type フィールドの値は、metadata.log_type フィールドに直接マッピングされます。 |
msg |
metadata.description |
description と incidentDescription が空の場合、msg フィールドの値は metadata.description フィールドにマッピングされます。 |
numbersOfAlerts |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとして「numbersOfAlerts」キーでマッピングされます。 |
numberOfCompromisedEntities |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとして「numberOfCompromisedEntities」キーでマッピングされます。 |
product |
metadata.product_name |
product フィールドの値は、metadata.product_name フィールドに直接マッピングされます。 |
resource |
target.resource.name |
resource フィールドの値は、target.resource.name フィールドに直接マッピングされます。 |
serviceName |
target.application |
serviceName フィールドの値は、target.application フィールドに直接マッピングされます。metadata.description のフォールバックとしても使用されます。 |
severityName |
security_result.severity |
severityName フィールドの値は、大文字に変換された後、security_result.severity フィールドにマッピングされます。マッピング ロジックには、重大度の名前ごとに特定の変換が含まれます。 |
sha256 |
target.file.sha256 |
sha256 フィールドの値は、target.file.sha256 フィールドに直接マッピングされます。 |
src |
principal.ip |
src フィールドの値は、principal.ip フィールドに直接マッピングされます。 |
srcMAC |
principal.mac |
srcMAC フィールドの値は、ハイフンをコロンに置き換えた後、principal.mac フィールドに直接マッピングされます。 |
state |
security_result.detection_fields.value |
security_result.detection_fields の Key-Value ペアとして「state」キーでマッピングされます。 |
success |
security_result.action |
success が「true」の場合、security_result.action は「ALLOW」に設定されます。success が「false」の場合、security_result.action は「BLOCK」に設定されます。 |
userName |
principal.user.userid |
usrName が存在しない場合、userName フィールドの値を使用してユーザー フィールドが入力されます。ドメインが存在する場合は抽出されます。 |
usrName |
principal.user.userid / target.user.userid |
存在する場合、usrName フィールドの値は eventType に応じて principal.user.userid または target.user.userid にマッピングされます。メールアドレスの場合は、対応する email_addresses フィールドにも追加されます。 |
vendor |
metadata.vendor_name |
vendor フィールドの値は、metadata.vendor_name フィールドに直接マッピングされます。 |
version |
metadata.product_version |
version フィールドの値は、metadata.product_version フィールドに直接マッピングされます。 |
(パーサー ロジック) | extensions.auth.mechanism |
eventType が「saml2Assert」または「twoFactorAuthenticate」の場合は、「USERNAME_PASSWORD」に設定します。 |
(パーサー ロジック) | extensions.auth.type |
eventType が「assert」または「userAuthenticate」の場合は、「AUTHTYPE_UNSPECIFIED」に設定します。 |
(パーサー ロジック) | metadata.event_timestamp |
未加工ログの collection_time フィールドまたは timestamp フィールドのタイムスタンプがイベント タイムスタンプとして使用されます。 |
(パーサー ロジック) | metadata.event_type |
eventType などのフィールドに基づいて決定されます。デフォルトは「GENERIC_EVENT」です。「USER_LOGIN」、「GROUP_MODIFICATION」、「GROUP_DELETION」、「SERVICE_STOP」、「SERVICE_START」、「USER_UNCATEGORIZED」に変更できます。 |
(パーサー ロジック) | target.resource.type |
eventType が「remove_group」、「update_group」、「delete_group」の場合は「GROUP」に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。