收集 CrowdStrike Falcon 日志
本文档提供了有关如何将 CrowdStrike Falcon 日志注入 Google Security Operations 的指南,具体如下:
- 通过设置 Google Security Operations Feed 来收集 CrowdStrike Falcon 日志。
- 将 CrowdStrike Falcon 日志字段映射到 Google SecOps 统一数据模型 (UDM) 字段。
- 了解受支持的 CrowdStrike Falcon 日志类型和事件类型。
如需了解详情,请参阅将数据提取到 Google SecOps 概览。
准备工作
确保您满足以下前提条件:
- CrowdStrike 实例的管理员权限,用于安装 CrowdStrike Falcon Host 传感器
- 部署架构中的所有系统都使用世界协调时间 (UTC) 时区进行配置。
- 目标设备运行在受支持的操作系统上
- 必须是 64 位服务器
- CrowdStrike Falcon Host 传感器版本 6.51 或更高版本支持 Microsoft Windows Server 2008 R2 SP1。
- 旧版操作系统版本必须支持 SHA-2 代码签名。
- Google SecOps 服务账号文件和您的客户 ID(来自 Google SecOps 支持团队)
通过 Google SecOps Feed 集成部署 CrowdStrike Falcon
典型的部署包括发送日志的 CrowdStrike Falcon 和提取日志的 Google SecOps Feed。您的部署可能会因设置而略有不同。
部署通常包含以下组件:
- CrowdStrike Falcon Intelligence:您从中收集日志的 CrowdStrike 产品。
- CrowdStrike Feed。从 CrowdStrike 获取日志并将其写入 Google SecOps 的 CrowdStrike Feed。
- CrowdStrike Intel Bridge:CrowdStrike 产品,用于从数据源收集威胁指标并将其转发给 Google SecOps。
- 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 提醒解析器支持以下产品类型:epp
idp
overwatch
xdr
mobile
cwpp
ngsiem
为 CrowdStrike EDR 日志配置 Google SecOps Feed
您需要执行以下程序来配置 Feed。
如何配置 CrowdStrike
如需设置 Falcon Data Replicator Feed,请按以下步骤操作:
- 登录 CrowdStrike Falcon 控制台。
- 依次前往支持应用 > Falcon Data Replicator。
- 点击添加以创建新的 Falcon Data Replicator Feed 并生成以下值:
- Feed
- S3 标识符,
- SQS 网址
- 客户端密钥。 请保留这些值,以便在 Google SecOps 中设置 Feed。
如需了解详情,请参阅如何设置 Falcon Data Replicator Feed。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
- 内容中心 > 内容包 > 开始
如何设置 CrowdStrike Falcon Feed
- 点击 CrowdStrike 包。
在 CrowdStrike Falcon 日志类型中,为以下字段指定值:
- 来源:Amazon SQS V2
- 队列名称:要从中读取日志数据的 SQS 队列的名称。
- S3 URI:S3 存储桶源 URI。
- 源删除选项:用于在转移数据后删除文件和目录的选项。
- 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
- SQS 队列访问密钥 ID:20 字符的账号访问密钥 ID。例如
AKIAOSFOODNN7EXAMPLE
。 - SQS 队列私有访问密钥:40 字符的私有访问密钥。例如
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 资产命名空间:与 Feed 关联的命名空间。
- 注入标签 - 应用于此 Feed 中所有事件的标签。
点击创建 Feed。
如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
设置使用 Amazon S3 存储桶的注入 Feed
如需使用 S3 存储桶设置提取 Feed,请按以下步骤操作:
- 依次前往 SIEM 设置> Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称,例如 Crowdstrike Falcon 日志。
- 在来源类型中,选择 Amazon S3。
- 在日志类型中,选择 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
与 Feed 关联的命名空间。
为 CrowdStrike 日志配置 Google SecOps Feed
如需转发 CrowdStrike 检测监控日志,请按以下步骤操作:
- 登录 CrowdStrike Falcon 控制台。
- 前往 Support Apps(支持应用)> API Clients and Keys(API 客户端和密钥)。
- 在 CrowdStrike Falcon 中创建新的 API 客户端密钥对。此密钥对必须具有 CrowdStrike Falcon 的
Detections
和Alerts
权限。READ
使用 Cloud Storage 提取 CrowdStrike EDR 日志
您可以将 CrowdStrike 配置为将 EDR 日志发送到 Cloud Storage 存储桶,然后使用 Feed 将这些日志注入到 Google SecOps 中。此流程需要与 CrowdStrike 支持团队协调。
准备工作
- 确保您拥有有效的 CrowdStrike Falcon 实例。
- 确保您拥有一个 Google Cloud 项目,您可以在其中创建 Cloud Storage 存储分区并管理 IAM 权限。
- 确保您拥有有效的 Google SecOps 实例。
- 确保您在 Google Cloud 环境和 Google SecOps 实例中都拥有管理员权限。
步骤
联系 CrowdStrike 支持团队: 向 CrowdStrike 开立支持服务工单,以启用并配置将 EDR 日志推送到 Cloud Storage 存储桶的功能。 CrowdStrike 支持团队将针对所需配置提供指导。
创建 Cloud Storage 存储桶并为其授予权限:
- 在 Google Cloud 控制台中,在 Cloud Storage 中创建一个新存储桶。
记下存储桶名称(例如
gs://my-crowdstrike-edr-logs/
)。 - 向 CrowdStrike 提供的服务账号或实体授予写入权限。按照 CrowdStrike 支持团队的说明操作,以允许将日志文件写入此存储桶。
- 在 Google Cloud 控制台中,在 Cloud Storage 中创建一个新存储桶。
记下存储桶名称(例如
配置 Google SecOps Feed:
- 在 Google SecOps 实例中,依次前往 SIEM 设置 > Feed。
- 点击 Add New(新增)。
- 输入一个描述性的 Feed 名称(例如
CS-EDR-GCS
)。 - 对于数据源类型,选择 Google Cloud Storage V2。
- 对于日志类型,选择 CrowdStrike Falcon。
- 在服务账号部分,点击获取服务账号。复制显示的唯一服务账号电子邮件地址。
- 在 Google Cloud 控制台中,前往您的 Cloud Storage 存储桶。
向从 Google SecOps Feed 设置中复制的服务账号电子邮件地址授予
Storage Object Viewer
IAM 角色。此权限允许 Feed 读取日志文件。 - 返回到 Google SecOps Feed 配置页面。
- 使用您创建的存储桶的名称(例如
gs://my-crowdstrike-edr-logs/
)输入存储桶网址。此网址必须以尾随正斜杠 (/) 结尾。 - 选择一个来源删除选项:
- 永不删除文件:推荐。
- 删除已转移的文件和空目录:请谨慎使用。
- 可选:指定资产命名空间。
- 点击下一步,检查设置,然后点击提交。
验证日志注入:CrowdStrike 确认日志正在推送后,请等待一段时间,以便将数据注入到 Google SecOps 中。在 Google SecOps 中使用日志类型
CROWDSTRIKE_EDR
进行搜索,检查是否有传入的日志。
如果遇到问题,请查看 Cloud Storage 存储桶的 IAM 权限以及 Google SecOps 中的 Feed 配置。如果问题仍然存在,请与 Google SecOps 支持团队联系。
如需接收 CrowdStrike 检测监控日志,请按以下步骤操作
- 登录您的 Google SecOps 实例。
- 依次前往 SIEM 设置> Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称,例如 Crowdstrike Falcon 日志。
- 在来源类型中,选择第三方 API。
- 在日志类型中,选择 CrowdStrike 检测监控。
如果您遇到问题,请与 Google SecOps 支持团队联系。
将 CrowdStrike IoC 日志注入到 Google SecOps
如需配置从 CrowdStrike 到 Google SecOps 的日志提取,以提取 IoC 日志,请完成以下步骤:
- 在 CrowdStrike Falcon 控制台中创建新的 API 客户端密钥对。借助此密钥对,Google SecOps Intel Bridge 可以访问和读取 CrowdStrike Falcon 中的事件和补充信息。如需查看设置说明,请参阅 CrowdStrike to 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 Feed
如需为 CrowdStrike 提醒日志设置提取 Feed,请执行以下步骤:
在 CrowdStrike Falcon 控制台中:
- 登录 CrowdStrike Falcon 控制台。
- 在“API 客户端和密钥”页面(支持和资源 > 资源和工具 > API 客户端和密钥)上,点击创建 API 客户端。
- 输入详细信息以定义 API 客户端:
- 客户端名称
- 说明
- API 范围:选中提醒范围旁边的读取和写入框以启用访问权限。
- 点击创建以保存 API 客户端并生成客户端 ID 和密钥。 注意:客户端 ID、密钥和基本网址将在后续步骤中使用。
在 Google SecOps 实例中:
- 登录您的 Google SecOps 实例。
- 在 Google SecOps 菜单中,选择设置,然后点击 Feed。
- 点击添加新 Feed。
- 在来源类型中,选择第三方 API。
- 在日志类型中,选择 CrowdStrike Alerts API。
- 点击下一步,然后使用从 CrowdStrike API 客户端收集的值填充以下字段:
- OAuth 令牌端点
- OAuth 客户端 ID
- OAuth 客户端密钥
- 基础网址
- 点击下一步,然后点击提交。
如果您遇到问题,请与 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 专业人士那里获得解答。