CrowdStrike Falcon のログを収集する
このドキュメントでは、CrowdStrike Falcon ログを Google Security Operations に取り込む方法について、次のガイダンスを提供します。
- Google Security Operations フィードを設定して、CrowdStrike Falcon ログを収集します。
- CrowdStrike Falcon ログフィールドを Google SecOps Unified Data Model(UDM)フィールドにマッピングします。
- サポートされている CrowdStrike Falcon のログタイプとイベントタイプを理解する。
詳細については、Google SecOps へのデータの取り込みの概要をご覧ください。
始める前に
次の前提条件を満たしていることを確認します。
- CrowdStrike Falcon Host センサーをインストールするための CrowdStrike インスタンスの管理者権限
- デプロイ アーキテクチャ内のすべてのシステムが、UTC タイムゾーンに構成されている。
- ターゲット デバイスがサポートされているオペレーティング システムで実行されている
- 64 ビットサーバーである必要があります
- Microsoft Windows Server 2008 R2 SP1 は、CrowdStrike Falcon Host センサー バージョン 6.51 以降でサポートされています。
- 以前の OS バージョンは SHA-2 コード署名をサポートしている必要があります。
- Google SecOps サポートチームから提供された Google SecOps サービス アカウント ファイルとお客様の ID
Google SecOps フィード統合を使用して CrowdStrike Falcon をデプロイする
一般的なデプロイは、ログを送信する CrowdStrike Falcon と、ログを取得する Google SecOps フィードで構成されます。設定によっては、デプロイが若干異なる場合があります。
通常、デプロイには次のコンポーネントが含まれます。
- CrowdStrike Falcon Intelligence: ログの収集元である CrowdStrike プロダクト。
- CrowdStrike フィード。CrowdStrike からログを取得して Google SecOps に書き込む CrowdStrike フィード。
- CrowdStrike Intel Bridge: データソースから脅威指標を収集し、Google SecOps に転送する CrowdStrike プロダクト。
- Google SecOps: CrowdStrike 検出ログを保持、正規化、分析するプラットフォーム。
- 未加工のログデータを UDM 形式に正規化する取り込みラベル パーサー。このドキュメントの情報は、次の取り込みラベルを持つ CrowdStrike Falcon パーサーに適用されます。
CS_EDR
CS_DETECTS
CS_IOC
CrowdStrike のセキュリティ侵害インジケーター(IoC)パーサーは、次のインジケーター タイプをサポートしています。domain
email_address
file_name
file_path
hash_md5
hash_sha1
hash_sha256
ip_address
mutex_name
url
CS_ALERTS
CrowdStrike Alerts パーサーは、次のプロダクト タイプをサポートしています。epp
idp
overwatch
xdr
mobile
cwpp
ngsiem
CrowdStrike EDR ログ用の Google SecOps フィードを構成する
フィードを構成するには、次の手順が必要です。
CrowdStrike の構成方法
Falcon Data Replicator フィードを設定する手順は次のとおりです。
- CrowdStrike Falcon コンソールにログインします。
- サポートアプリ > Falcon Data Replicator に移動します。
- [追加] をクリックして、新しい Falcon Data Replicator フィードを作成し、次の値を生成します。
- フィード
- S3 ID、
- SQS URL
- クライアント シークレット。これらの値は、Google SecOps でフィードを設定するために使用します。
詳細については、Falcon Data Replicator フィードを設定する方法をご覧ください。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード] > [新しいフィードを追加]
- Content Hub > Content Packs > Get Started
CrowdStrike Falcon フィードの設定方法
- [CrowdStrike] パックをクリックします。
[CrowdStrike Falcon] ログタイプで、次のフィールドの値を指定します。
- ソース: Amazon SQS V2
- キュー名: ログデータの読み取り元となる SQS キューの名前。
- S3 URI: S3 バケットのソース URI。
- ソース削除オプション: データの転送後にファイルとディレクトリを削除するオプション。
- ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
- SQS Queue Access Key ID: 20 文字のアカウント アクセスキー ID。例:
AKIAOSFOODNN7EXAMPLE
- SQS キューのシークレット アクセスキー: 40 文字のシークレット アクセスキー。例:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- Asset Namespace: フィードに関連付けられた名前空間。
- Ingestion Labels - このフィードのすべてのイベントに適用されるラベル。
[フィードを作成] をクリックします。
このプロダクト ファミリー内の異なるログタイプに対して複数のフィードを構成する方法については、プロダクト別にフィードを構成するをご覧ください。
Amazon S3 バケットを使用して取り込みフィードを設定する
S3 バケットを使用して取り込みフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Crowdstrike Falcon Logs)。
- [Source type] で [Amazon S3] を選択します。
- [Log type] で [CrowdStrike Falcon] を選択します。
- 作成したサービス アカウントと Amazon S3 バケットの構成に基づいて、次のフィールドの値を指定します。
フィールド 説明 region
S3 リージョン URI。 S3 uri
S3 バケットのソース URI。 uri is a
URI が指すオブジェクトのタイプ(ファイルやフォルダなど)。 source deletion option
データの転送後にファイルとディレクトリを削除するオプション。 access key id
アクセスキー(20 文字の英数字文字列)。例: AKIAOSFOODNN7EXAMPLE
secret access key
シークレット アクセスキー(40 文字の英数字文字列)。例: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
oauth client id
公開 OAuth クライアント ID。 oauth client secret
OAuth 2.0 クライアント シークレット oauth secret refresh uri
OAuth 2.0 クライアント シークレットの更新 URI。 asset namespace
フィードに関連付けられた名前空間。
CrowdStrike ログ用の Google SecOps フィードを構成する
CrowdStrike 検出モニタリング ログを転送する手順は次のとおりです。
- CrowdStrike Falcon Console にログインします。
- [Support Apps] > [API Clients and Keys] に移動します。
- CrowdStrike Falcon で新しい API クライアント鍵ペアを作成します。この鍵ペアには、CrowdStrike Falcon の
Detections
とAlerts
の両方に対するREAD
権限が必要です。
CrowdStrike EDR ログに Cloud Storage を使用してログを取り込む
CrowdStrike を構成して EDR ログを Cloud Storage バケットに送信し、フィードを使用してこれらのログを Google SecOps に取り込むことができます。このプロセスでは、CrowdStrike サポートとの連携が必要です。
始める前に
- アクティブな CrowdStrike Falcon インスタンスがあることを確認します。
- Cloud Storage バケットを作成して IAM 権限を管理できる Google Cloud プロジェクトがあることを確認します。
- アクティブな Google SecOps インスタンスがあることを確認します。
- Google Cloud 環境と Google SecOps インスタンスの両方で管理者権限があることを確認します。
手順
CrowdStrike サポートに連絡する: CrowdStrike でサポート チケットを開き、EDR ログを Cloud Storage バケットに push する機能を有効にして構成します。必要な構成については、CrowdStrike サポートからガイダンスが提供されます。
Cloud Storage バケットを作成して権限を付与します。
- Google Cloud コンソールで、Cloud Storage に新しいバケットを作成します。バケット名(例:
gs://my-crowdstrike-edr-logs/
)をメモします。 - CrowdStrike が提供するサービス アカウントまたはエンティティに書き込み権限を付与します。この権限でログファイルをこのバケットに書き込めるようにするには、CrowdStrike サポートの手順に沿って操作します。
- Google Cloud コンソールで、Cloud Storage に新しいバケットを作成します。バケット名(例:
Google SecOps フィードを構成します。
- Google SecOps インスタンスで、[SIEM 設定] > [フィード] に移動します。
- [Add New] をクリックします。
- わかりやすいフィード名を入力します(例:
CS-EDR-GCS
)。 - [ソースタイプ] で、[Google Cloud Storage V2] を選択します。
- [Log type] で [CrowdStrike Falcon] を選択します。
- [サービス アカウント] セクションで、[サービス アカウントを取得] をクリックします。表示された一意のサービス アカウントのメールアドレスをコピーします。
- Google Cloud コンソールで、Cloud Storage バケットに移動します。Google SecOps フィード設定からコピーしたサービス アカウントのメールアドレスに
Storage Object Viewer
IAM ロールを付与します。この権限により、フィードはログファイルを読み取ることができます。 - [Google SecOps] フィード構成ページに戻ります。
- 作成したバケットの名前(
gs://my-crowdstrike-edr-logs/
など)を使用して、ストレージ バケットの URL を入力します。この URL は、末尾にスラッシュ(/)が付いている必要があります。 - [ソース削除オプション] を選択します。
- ファイルを削除しない: 推奨。
- 転送されたファイルと空のディレクトリを削除する: 注意して使用してください。
- 省略可: アセット名前空間を指定します。
- [次へ] をクリックし、設定を確認して、[送信] をクリックします。
ログの取り込みを確認する: CrowdStrike がログのプッシュを確認した後、データが Google SecOps に取り込まれるまでしばらく待ちます。Google SecOps でログタイプ
CROWDSTRIKE_EDR
を使用して検索し、受信ログを確認します。
問題が発生した場合は、Cloud Storage バケットの IAM 権限と Google SecOps のフィード構成を確認してください。問題が解決しない場合は、Google SecOps サポートチームにお問い合わせください。
CrowdStrike 検出モニタリング ログを受信するには、次の操作を行います。
- Google SecOps インスタンスにログインします。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Crowdstrike Falcon Logs)。
- [ソースタイプ] で [サードパーティ API] を選択します。
- [Log type] で、[CrowdStrike Detection Monitoring] を選択します。
問題が発生した場合は、Google SecOps サポートチームにお問い合わせください。
CrowdStrike IoC ログを Google SecOps に取り込む
CrowdStrike から Google SecOps に IoC ログを取り込むように構成する手順は次のとおりです。
- CrowdStrike Falcon Console で新しい API クライアント鍵ペアを作成します。この鍵ペアにより、Google SecOps Intel Bridge は CrowdStrike Falcon からイベントと補足情報にアクセスして読み取ることができます。設定手順については、CrowdStrike から Google SecOps Intel Bridge をご覧ください。
- 鍵ペアを作成するときに、
Indicators (Falcon Intelligence)
にREAD
権限を付与します。 - CrowdStrike から Google SecOps Intel Bridge の手順に沿って、Google SecOps Intel Bridge を設定します。
次の Docker コマンドを実行して、CrowdStrike から Google SecOps にログを送信します。ここで、
sa.json
は Google SecOps サービス アカウント ファイルです。docker build . -t ccib:latest docker run -it --rm \ -e FALCON_CLIENT_ID="$FALCON_CLIENT_ID" \ -e FALCON_CLIENT_SECRET="$FALCON_CLIENT_SECRET" \ -e FALCON_CLOUD_REGION="$FALCON_CLOUD" \ -e CHRONICLE_CUSTOMER_ID="$CHRONICLE_CUSTOMER_ID" \ -e GOOGLE_APPLICATION_CREDENTIALS=/ccib/sa.json \ -v ~/my/path/to/service/account/filer/sa.json:/ccib/sa.json \ ccib:latest
コンテナが正常に実行されると、IoC ログが Google SecOps にストリーミングされ始めます。
CrowdStrike アラートログ用に Google SecOps フィードを構成する
CrowdStrike アラートログの取り込みフィードを設定する手順は次のとおりです。
CrowdStrike Falcon コンソールで次の操作を行います。
- CrowdStrike Falcon コンソールにログインします。
- [API クライアントとキー] ページ([サポートとリソース] > [リソースとツール] > [API クライアントとキー])で、[API クライアントを作成] をクリックします。
- API クライアントを定義する詳細情報を入力します。
- クライアント名
- 説明
- API スコープ: [アラート] スコープの横にある [読み取り] ボックスと [書き込み] ボックスをオンにして、アクセスを有効にします。
- [作成] をクリックして API クライアントを保存し、クライアント ID とシークレットを生成します。注: クライアント ID、シークレット、ベース URL は、以降の手順で使用します。
Google SecOps インスタンスで次の操作を行います。
- Google SecOps インスタンスにログインします。
- Google SecOps メニューから [設定] を選択し、[フィード] をクリックします。
- [Add New Feed] をクリックします。
- [ソースタイプ] で [サードパーティ API] を選択します。
- [Log type] で [CrowdStrike Alerts API] を選択します。
- [次へ] をクリックし、CrowdStrike API クライアントから収集した値を使用して次のフィールドに入力します。
- OAuth トークン エンドポイント
- OAuth クライアント ID
- OAuth クライアント シークレット
- ベース URL
- [次へ] をクリックしてから、[送信] をクリックします。
問題が発生した場合は、Google SecOps サポートチームにお問い合わせください。
CrowdStrike アラートログの UDM マッピングの差分
UDM マッピングの差分リファレンス: CS_ALERTS
次の表に、CS ALERTS
のデフォルト パーサーと CS ALERTS
のプレミアム バージョンの差分を示します。
Default UDM Mapping | Log Field | Premium Mapping Delta |
---|---|---|
about.resource.product_object_id |
cid |
Removed mapping to avoid duplication, as the cid log field is also mapped to metadata.product_deployment_id . |
principal.asset.platform_software.platform |
platform |
If the device.platform_name log field value is empty and the platform log field value is not empty and if the platform log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS . Else, if platform log field value matches the regular expression pattern (?i)Linux then, the principal.asset.platform_software.platform UDM field is set to LINUX . Else, if platform log field value matches the regular expression pattern (?i)Mac then, the principal.asset.platform_software.platform UDM field is set to MAC . Else, if platform log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS . |
security_result.detection_fields[agent_id] |
agent_id |
If the device.device_id log field value is empty and the host_id log field value is empty and the mdm_device_id log field value is empty then, CS:%{agent_id} log field is mapped to the principal.asset_id UDM field. Else, the principal.asset.attribute.labels.key UDM field is set to agent_id and agent_id log field is mapped to the principal.asset.attribute.labels.value UDM field. |
security_result.detection_fields[idp_policy_account_event_type] |
idp_policy_account_event_type |
security_result.rule_labels[idp_policy_account_event_type] |
security_result.detection_fields[idp_policy_mfa_factor_type] |
idp_policy_mfa_factor_type |
security_result.rule_labels[idp_policy_mfa_factor_type] |
security_result.detection_fields[idp_policy_mfa_provider_name] |
idp_policy_mfa_provider_name |
security_result.rule_labels[idp_policy_mfa_provider_name] |
security_result.detection_fields[idp_policy_mfa_provider] |
idp_policy_mfa_provider |
security_result.rule_labels[idp_policy_mfa_provider] |
security_result.detection_fields[idp_policy_rule_action] |
idp_policy_rule_action |
security_result.rule_labels[idp_policy_rule_action] |
security_result.detection_fields[idp_policy_rule_trigger] |
idp_policy_rule_trigger |
security_result.rule_labels[idp_policy_rule_trigger] |
security_result.detection_fields[idp_policy_rule_id] |
idp_policy_rule_id |
security_result.rule_id |
security_result.detection_fields[idp_policy_rule_name] |
idp_policy_rule_name |
security_result.rule_name |
target.process.file.mime_type |
alleged_filetype |
If the technique_name log field value contain one of the following values
alleged_filetype log field is mapped to the target.file.mime_type UDM field. Else, alleged_filetype log field is mapped to the target.process.file.mime_type UDM field. |
principal.resource.product_object_id |
device.cid |
principal.asset.attribute.labels[device_cid] |
security_result.detection_fields[active_directory_dn_display] |
device.hostinfo.active_directory_dn_display |
Iterate through log field device.hostinfo.active_directory_dn_display , then the security_result.detection_fields.key UDM field is set to device_hostinfo_active_directory_dn_display and device.hostinfo.active_directory_dn_display log field is mapped to the security_result.detection_fields.value UDM field. |
principal.asset.platform_software.platform |
device.platform_name |
If the device.platform_name log field value is not empty and if the device.platform_name log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS . Else, if device.platform_name log field value matches the regular expression pattern (?i)Linux then, the principal.asset.platform_software.platform UDM field is set to LINUX . Else, if device.platform_name log field value matches the regular expression pattern (?i)Mac then, the principal.asset.platform_software.platform UDM field is set to MAC . Else, if device.platform_name log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS . if the platform log field value is not empty and the device.platform_name log field value is equal to the then, the principal.asset.attribute.labels.key UDM field is set to platform and platform log field is mapped to the principal.asset.attribute.labels.value UDM field. |
principal.asset.platform_software.platform_version |
device.system_product_name |
principal.asset.hardware.model |
target.process.file.names |
filename |
If the technique_name log field value contain one of the following values
filename log field is mapped to the target.file.names UDM field. Else, filename log field is mapped to the target.process.file.names UDM field. |
target.file.full_path |
filepath |
If the technique_name log field value contain one of the following values
filepath log field is mapped to the target.file.full_path UDM field. Else, filepath log field is mapped to the target.process.file.full_path UDM field.If the product log field value is equal to epp and the type log field value is equal to ofp and if the macros.ioc_description log field value is not empty then, macros.ioc_description log field is mapped to the target.file.full_path UDM field and the security_result.detection_fields.key UDM field is set to filepath and filepath log field is mapped to the security_result.detection_fields.value UDM field. |
target.process_ancestors.command_line |
grandparent_details.cmdline |
target.process.parent_process.parent_process.command_line |
target.process_ancestors.file.names |
grandparent_details.filename |
target.process.parent_process.parent_process.file.names |
target.process_ancestors.file.full_path |
grandparent_details.filepath |
target.process.parent_process.parent_process.file.full_path |
target.process_ancestors.file.md5 |
grandparent_details.md5 |
target.process.parent_process.parent_process.file.md5 |
target.process_ancestors.product_specific_process_id |
grandparent_details.process_graph_id |
If the grandparent_details.process_graph_id log field value is not empty then, PRODUCT_SPECIFIC_PROCESS_ID: %{grandparent_details.process_graph_id} log field is mapped to the target.process.parent_process.parent_process.product_specific_process_id UDM field. |
target.process_ancestors.pid |
grandparent_details.process_id |
target.process.parent_process.parent_process.pid |
target.process_ancestors.file.sha256 |
grandparent_details.sha256 |
target.process.parent_process.parent_process.file.sha256 |
security_result.detection_fields[ioc_description] |
ioc_context.ioc_description |
Iterate through log field ioc_context , then the security_result.detection_fields.key UDM field is set to ioc_context_ioc_description and ioc_context.ioc_description log field is mapped to the security_result.detection_fields.value UDM field. |
security_result.detection_fields[ioc_source] |
ioc_context.ioc_source |
Iterate through log field ioc_context , then the security_result.detection_fields.key UDM field is set to ioc_context_ioc_source and ioc_context.ioc_source log field is mapped to the security_result.detection_fields.value UDM field. |
target.process.file.md5 |
md5 |
If the technique_name log field value contain one of the following values
md5 log field is mapped to the target.file.md5 UDM field. Else, md5 log field is mapped to the target.process.file.md5 UDM field. |
target.process.file.sha1 |
sha1 |
If the technique_name log field value contain one of the following values
sha1 log field is mapped to the target.file.sha1 UDM field. Else, sha1 log field is mapped to the target.process.file.sha1 UDM field. |
target.file.sha256 |
sha256 |
If the technique_name log field value contain one of the following values
sha256 log field is mapped to the target.file.sha256 UDM field. Else, sha256 log field is mapped to the target.process.file.sha256 UDM field.If the product log field value is equal to epp and the type log field value is equal to ofp and if the ioc_type log field value is equal to hash_sha256 and the macros.ioc_value log field value is not empty then, macros.ioc_value log field is mapped to the target.file.sha256 UDM field and the security_result.detection_fields.key UDM field is set to sha256 and sha256 log field is mapped to the security_result.detection_fields.value UDM field. |
target.asset.platform_software.platform |
operating_system |
If the operating_system log field value matches the regular expression pattern (?i)Windows then, the principal.asset.platform_software.platform UDM field is set to WINDOWS . Else, if operating_system log field value matches the regular expression pattern (?i)linux then, the principal.asset.platform_software.platform UDM field is set to LINUX . Else, if operating_system log field value matches the regular expression pattern (?i)ios then, the principal.asset.platform_software.platform UDM field is set to IOS . Else, if operating_system log field value matches the regular expression pattern (?i)mac then, the principal.asset.platform_software.platform UDM field is set to MAC . |
security_result.detection_fields[agent_version] |
agent_version |
principal.asset.attribute.labels[agent_version] |
about.email |
enrollment_email |
principal.user.email_addresses |
principal.asset.type |
|
If the mdm_device_id log field value is not empty or the mobile_hardware log field value is not empty or the mobile_manufacturer log field value is not empty or the mobile_serial log field value is not empty then, the principal.asset.type UDM field is set to MOBILE . |
サポートされている CrowdStrike ログ形式
CrowdStrike パーサーは JSON 形式のログをサポートしています。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。