收集 Bitdefender 日志

支持的语言:

此解析器可提取 CEF 或 CSV 格式的 Bitdefender 日志,将字段标准化为 UDM,并根据 event_namemodule 字段执行特定操作。它可处理各种事件类型,例如文件操作、网络连接、进程创建和注册表修改,将相关信息映射到相应的 UDM 字段,并使用原始日志中的其他上下文来丰富数据。

准备工作

  • 确保您拥有 Google Security Operations 实例。
  • 确保您拥有 Windows 2016 或更高版本或带有 systemd 的 Linux 主机。
  • 如果通过代理运行,请确保防火墙端口处于开放状态。
  • 确保您拥有对 Bitdefender 的特权访问权限。

获取 Google SecOps 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 个人资料
  3. 复制并保存组织详细信息部分中的客户 ID

安装 BindPlane 代理

  1. 对于 Windows 安装,请运行以下脚本:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. 对于 Linux 安装,请运行以下脚本:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 如需了解其他安装选项,请参阅此安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问安装了 Bindplane 的机器。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        tcplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: bitdefender
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 重启 Bindplane 代理以应用更改:

    sudo systemctl restart bindplane
    

在 Bitdefender GravityZone 中配置 Syslog 流式传输

  1. 登录 GravityZone 控制中心。
  2. 依次前往配置 > 集成 > Syslog
  3. 点击添加 Syslog 服务器
  4. 提供所需的详细信息:
    • 名称:为 Syslog 服务器提供唯一名称(例如 CentralSyslog)。
    • IP 地址/主机名:输入 Bindplane 服务器的 IP 地址或主机名。
    • 协议:选择要使用的协议:TCP / UDP
    • 端口:指定 Bindplane 服务器的端口号。
    • 选择要流式传输的日志类型(例如反恶意软件事件网络攻击防御 (NAD) 事件Web 控制事件防火墙事件政策变更)。
    • 可选:配置过滤条件以包含或排除特定事件类型。
  5. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
BitdefenderGZAttackEntry security_result.detection_fields.value 原始日志中的 BitdefenderGZAttackEntry 值会作为值分配给键为“attack_entry”的 security_result.detection_fields 对象。
BitdefenderGZAttackTypes security_result.category_details 原始日志中的 BitdefenderGZAttackTypes 值会分配给 security_result.category_details。然后,该值会被拆分为各个字符串,并且每个字符串都会作为值添加到 security_result.category_details 数组中。
BitdefenderGZAttCkId security_result.detection_fields.value 原始日志中的 BitdefenderGZAttCkId 值会作为值分配给键为“BitdefenderGZAttCkId”的 security_result.detection_fields 对象。
BitdefenderGZCompanyId target.user.company_name 原始日志中的 BitdefenderGZCompanyId 值会分配给 target.user.company_name
BitdefenderGZComputerFQDN principal.asset.network_domain 原始日志中的 BitdefenderGZComputerFQDN 值会分配给 principal.asset.network_domain
BitdefenderGZDetectionName security_result.threat_name 原始日志中的 BitdefenderGZDetectionName 值会分配给 security_result.threat_name
BitdefenderGZEndpointId security_result.detection_fields.value 原始日志中的 BitdefenderGZEndpointId 值会作为值分配给键为“BitdefenderGZEndpointId”的 security_result.detection_fields 对象。
BitdefenderGZIncidentId metadata.product_log_id 原始日志中的 BitdefenderGZIncidentId 值会分配给 metadata.product_log_id
BitdefenderGZMainAction security_result.action_details 原始日志中的 BitdefenderGZMainAction 值会分配给 security_result.action_details。系统会根据此值设置 security_result.action 字段(例如,“blocked”映射到“BLOCK”)。security_result.description 字段还会填充“main_action: ”,后跟 BitdefenderGZMainAction 的值。
BitdefenderGZMalwareHash principal.process.file.sha256 原始日志中的 BitdefenderGZMalwareHash 值会分配给 principal.process.file.sha256
BitdefenderGZMalwareName security_result.threat_name 原始日志中的 BitdefenderGZMalwareName 值会分配给 security_result.threat_name
BitdefenderGZMalwareType security_result.detection_fields.value 原始日志中的 BitdefenderGZMalwareType 值会作为值分配给键为“malware_type”的 security_result.detection_fields 对象。
BitdefenderGZModule metadata.product_event_type 原始日志中的 BitdefenderGZModule 值会分配给 metadata.product_event_type
BitdefenderGZSeverityScore security_result.severity_details 原始日志中的 BitdefenderGZSeverityScore 值会分配给 security_result.severity_details
BitdefenderGZHwId target.resource.id 原始日志中的 BitdefenderGZHwId 值会分配给 target.resource.id
act security_result.action_details 原始日志中的 act 值会分配给 security_result.action_details
actionTaken security_result.action_details 原始日志中的 actionTaken 值会分配给 security_result.action_details。系统会根据此值设置 security_result.action 字段(例如,“block”映射到“BLOCK”)。security_result.description 字段还会填充“actionTaken: ”,后跟 actionTaken 的值。
additional.fields additional.fields 解析器逻辑会为“product_installed”创建一个键值对,并将其添加到 additional.fields 对象中。
categories principal.asset.category 原始日志中的 categories 值会分配给 principal.asset.category
cmd_line target.process.command_line 原始日志中的 cmd_line 值会分配给 target.process.command_line
companyId target.user.company_name 原始日志中的 companyId 值会分配给 target.user.company_name
computer_fqdn principal.asset.network_domain 原始日志中的 computer_fqdn 值会分配给 principal.asset.network_domain
computer_id principal.asset.asset_id 原始日志中的 computer_id 值在添加“ComputerId:”前缀后会分配给 principal.asset.asset_id
computer_ip principal.asset.ip 系统会解析原始日志中的 computer_ip 值,按英文逗号将其拆分,并将每个生成的 IP 地址添加到 principal.asset.ip 数组中。
computer_name principal.resource.attribute.labels.value 原始日志中的 computer_name 值会作为值分配给键为“computer_name”的 principal.resource.attribute.labels 对象。它还会作为值添加到键为“computer_name”的 security_result.detection_fields 对象中。
column1 metadata.product_log_id 原始日志中的 column1 值会分配给 metadata.product_log_id
column3 observer.ip 原始日志中的 column3 值会分配给 observer.ip
command_line target.process.command_line 原始日志中的 command_line 值会分配给 target.process.command_line
data target.registry.registry_value_data 原始日志中的 data 值会分配给 target.registry.registry_value_data
detection_attackTechnique security_result.detection_fields.value 原始日志中的 detection_attackTechnique 值会作为值分配给 security_result.detection_fields 对象,其中键为“detection attackTechnique”。
detection_name security_result.threat_name 原始日志中的 detection_name 值会分配给 security_result.threat_name
destination_ip target.ip 原始日志中的 destination_ip 值会分配给 target.ip
destination_port target.port 原始日志中的 destination_port 值会分配给 target.port
direction network.direction 原始日志中的 direction 值会转换为大写,并分配给 network.direction
dvc principal.ip 系统会解析原始日志中的 dvc 值,按英文逗号将其拆分,并将每个生成的 IP 地址添加到 principal.ip 数组中。
dvchost about.hostname 原始日志中的 dvchost 值会分配给 about.hostname
event_description metadata.description 原始日志中的 event_description 值会分配给 metadata.description
event_name metadata.product_event_type 原始日志中的 event_name 值会分配给 metadata.product_event_type。如果值为“Antiphishing”,则将 security_result.category 设置为“PHISHING”。如果值为“AntiMalware”,则 security_result.category 设置为“SOFTWARE_MALICIOUS”。metadata.event_type 字段是通过解析器内的一系列条件语句从 event_name 派生出来的。
ev metadata.product_event_type 原始日志中的 ev 值会分配给 metadata.product_event_type
extra_info.command_line target.process.command_line 原始日志中的 extra_info.command_line 值会分配给 target.process.command_line
extra_info.parent_pid principal.process.pid 原始日志中的 extra_info.parent_pid 值会分配给 principal.process.pid
extra_info.parent_process_cmdline principal.process.command_line 原始日志中的 extra_info.parent_process_cmdline 值会分配给 principal.process.command_line
extra_info.parent_process_path principal.process.file.full_path 原始日志中的 extra_info.parent_process_path 值会分配给 principal.process.file.full_path
extra_info.pid target.process.pid 原始日志中的 extra_info.pid 值会分配给 target.process.pid
extra_info.process_path target.process.file.full_path 原始日志中的 extra_info.process_path 值会分配给 target.process.file.full_path
extra_info.user target.user.userid 原始日志中的 extra_info.user 值会分配给 target.user.userid
filePath principal.process.file.full_path 原始日志中的 filePath 值会分配给 principal.process.file.full_path
file_path principal.process.file.full_path 原始日志中的 file_path 值会分配给 principal.process.file.full_path
final_status security_result.action_details 原始日志中的 final_status 值会分配给 security_result.action_details。系统会根据此值设置 security_result.action 字段(例如,“已删除”映射到“BLOCK”,“已忽略”映射到“ALLOW”)。security_result.description 字段还会填充“final_status: ”,后跟 final_status 的值。如果值为“deleted”或“blocked”,则 metadata.event_type 会设置为“SCAN_NETWORK”。
hash principal.process.file.sha256 原始日志中的 hash 值会分配给 principal.process.file.sha256
host principal.hostname 原始日志中的 host 值会分配给 principal.hostname
hostname principal.hostname 如果 event_name 不是“log_on”或“log_out”,则原始日志中的 hostname 值会分配给 principal.hostname。否则,该值会分配给 target.hostname
host_name principal.hostname 原始日志中的 host_name 值会分配给 principal.hostname
hwid principal.resource.id 如果原始日志中的 hwid 值不为空,则将其分配给 principal.resource.id。如果为空且相应事件不是“log_on”或“log_out”,则将 source_hwid 的值分配给 principal.resource.id。如果事件是“log_on”或“log_out”,则将其分配给 target.resource.id
incident_id metadata.product_log_id 原始日志中的 incident_id 值会分配给 metadata.product_log_id
ip_dest target.ip 原始日志中的 ip_dest 值会分配给 target.ip
ip_source principal.ip 原始日志中的 ip_source 值会分配给 principal.ip
key_path target.registry.registry_key 原始日志中的 key_path 值会分配给 target.registry.registry_key
local_port principal.port 原始日志中的 local_port 值会转换为整数并分配给 principal.port
logon_type extensions.auth.mechanism 原始日志中的 logon_type 值用于确定 extensions.auth.mechanism 的值。logon_type 的不同数值会映射到不同的身份验证机制(例如,2 个映射到“LOCAL”,3 个映射到“NETWORK”)。如果未找到匹配的 logon_type,则将机制设置为“MECHANISM_UNSPECIFIED”。
lurker_id intermediary.resource.id 原始日志中的 lurker_id 值会分配给 intermediary.resource.id
main_action security_result.action_details 原始日志中的 main_action 值会分配给 security_result.action_details。系统会根据此值设置 security_result.action 字段(例如,“blocked”映射到“BLOCK”,“no action”映射到“ALLOW”)。security_result.description 字段还会填充“main_action: ”,后跟 main_action 的值。
malware_name security_result.threat_name 原始日志中的 malware_name 值会分配给 security_result.threat_name
malware_type security_result.detection_fields.value 原始日志中的 malware_type 值会作为值分配给键为“malware_type”的 security_result.detection_fields 对象。
metadata.description metadata.description 解析器会根据 event_name 字段设置 metadata.description 字段。
metadata.event_type metadata.event_type 解析器会根据 event_name 字段设置 metadata.event_type 字段。
metadata.product_event_type metadata.product_event_type 解析器会根据 event_namemodule 字段设置 metadata.product_event_type 字段。
metadata.product_log_id metadata.product_log_id 解析器会根据 msg_idincident_id 字段设置 metadata.product_log_id 字段。
metadata.product_name metadata.product_name 解析器将 metadata.product_name 设置为“BitDefender EDR”。
metadata.product_version metadata.product_version 解析器将 product_version 字段重命名为 metadata.product_version
metadata.vendor_name metadata.vendor_name 解析器将 metadata.vendor_name 设置为“BitDefender”。
module metadata.product_event_type 原始日志中的 module 值会分配给 metadata.product_event_type。如果值为“new-incident”且 target_process_file_full_path 不为空,则 metadata.event_type 会设置为“PROCESS_UNCATEGORIZED”。如果值为“task-status”,则 metadata.event_type 设置为“STATUS_UPDATE”。如果值为“network-monitor”或“fw”,则 metadata.event_type 设置为“SCAN_NETWORK”。
msg_id metadata.product_log_id 原始日志中的 msg_id 值会分配给 metadata.product_log_id
network.application_protocol network.application_protocol 原始日志中的 uc_type 值会转换为大写,并分配给 network.application_protocol
network.direction network.direction 解析器会根据 direction 字段设置 network.direction 字段。
network.ip_protocol network.ip_protocol 如果 protocol_id 为“6”,解析器会将 network.ip_protocol 设置为“TCP”。
new_path target.file.full_path 原始日志中的 new_path 值会分配给 target.file.full_path
old_path src.file.full_path 原始日志中的 old_path 值会分配给 src.file.full_path
origin_ip intermediary.ip 原始日志中的 origin_ip 值会分配给 intermediary.ip
os principal.platform_version 原始日志中的 os 值会分配给 principal.platform_versionprincipal.platform 字段派生自 os(例如,“Win”映射到“WINDOWS”)。如果事件为“log_on”或“log_out”,则 principal.platformprincipal.platform_version 字段分别重命名为 target.platformtarget.platform_version
os_type principal.platform 原始日志中的 os_type 值用于确定 principal.platform 的值(例如,“Win”映射到“WINDOWS”)。
parent_pid principal.process.pid 原始日志中的 parent_pid 值会分配给 principal.process.pid
parent_process_path principal.process.file.full_path 原始日志中的 parent_process_path 值会分配给 principal.process.file.full_path
parent_process_pid principal.process.pid 原始日志中的 parent_process_pid 值会分配给 principal.process.pid
path target.file.full_path 原始日志中的 path 值会分配给 target.file.full_path
pid principal.process.pidtarget.process.pid 如果 event_name 以“file”或“reg”开头,或者属于“process_signal”“network_connection”或“connection_connect”之一,则原始日志中的 pid 值会分配给 principal.process.pid。否则,该值会分配给 target.process.pid
pid_path principal.process.file.full_path 原始日志中的 pid_path 值会分配给 principal.process.file.full_path
port_dest target.port 原始日志中的 port_dest 值会转换为整数并分配给 target.port
port_source principal.port 原始日志中的 port_source 值会转换为整数并分配给 principal.port
ppid principal.process.pid 原始日志中的 ppid 值会分配给 principal.process.pid
principal.ip principal.ip 解析器会根据 ip_sourcedvc 字段设置 principal.ip 字段。
principal.platform principal.platform 解析器会根据 osos_type 字段设置 principal.platform 字段。
principal.platform_version principal.platform_version 解析器会根据 ososi_version 字段设置 principal.platform_version 字段。
principal.process.command_line principal.process.command_line 解析器会根据 parent_process_cmdline 字段设置 principal.process.command_line 字段。
principal.process.file.full_path principal.process.file.full_path 解析器会根据 pid_pathfile_pathparent_process_pathprocess_path 字段设置 principal.process.file.full_path 字段。
principal.process.file.md5 principal.process.file.md5 解析器将 file_hash_md5 字段重命名为 principal.process.file.md5
principal.process.file.sha256 principal.process.file.sha256 解析器会根据 hashBitdefenderGZMalwareHashfile_hash_sha256 字段设置 principal.process.file.sha256 字段。
principal.process.parent_process.pid principal.process.parent_process.pid 解析器将 ppid 字段重命名为 principal.process.parent_process.pid
principal.process.pid principal.process.pid 解析器会根据 pidparent_pidppidparent_process_pid 字段设置 principal.process.pid 字段。
principal.resource.id principal.resource.id 解析器会根据 hwidsource_hwid 字段设置 principal.resource.id 字段。
principal.url principal.url 解析器会根据 url 字段设置 principal.url 字段。
process_command_line target.process.command_line 原始日志中的 process_command_line 值会分配给 target.process.command_line
process_path principal.process.file.full_pathtarget.process.file.full_path 如果 event_name 为“network_connection”或“connection_connect”,则将原始日志中的 process_path 值分配给 principal.process.file.full_path。否则,该值会分配给 target.process.file.full_path
product_installed additional.fields.value.string_value 原始日志中的 product_installed 值会作为值分配给键为“product_installed”的 additional.fields 对象。
product_version metadata.product_version 原始日志中的 product_version 值会分配给 metadata.product_version
protocol_id network.ip_protocol 如果 protocol_id 为“6”,解析器会将 network.ip_protocol 设置为“TCP”。
request target.url 原始日志中的 request 值会分配给 target.url
security_result.action security_result.action 解析器会根据 main_actionactionTakenstatusfinal_status 字段设置 security_result.action 字段。如果这些字段均未提供有效操作,则默认值为“UNKNOWN_ACTION”。
security_result.action_details security_result.action_details 解析器会根据 main_actionactionTakenstatusfinal_status 字段设置 security_result.action_details 字段。
security_result.category security_result.category 如果 event_name 为“Antiphishing”,解析器会将 security_result.category 字段设置为“PHISHING”;如果 event_name 为“AntiMalware”,则设置为“SOFTWARE_MALICIOUS”;否则,合并 sec_category 字段中的值。
security_result.category_details security_result.category_details 解析器会根据 block_typeattack_types 字段设置 security_result.category_details 字段。
security_result.detection_fields security_result.detection_fields 解析器会为各种字段创建 security_result.detection_fields 对象,包括“malware_type”“attack_entry”“BitdefenderGZAttCkId”“BitdefenderGZEndpointId”“final_status”“detection attackTechnique”和“computer_name”。
security_result.description security_result.description 解析器会根据 main_actionactionTakenfinal_status 字段设置 security_result.description 字段。
security_result.severity security_result.severity 如果 severity 字段不为空且 module 为“new-incident”,解析器会根据 severity 字段的大写值设置 security_result.severity 字段。
security_result.severity_details security_result.severity_details 解析器会根据 severity_score 字段设置 security_result.severity_details 字段。
security_result.threat_name security_result.threat_name 解析器会根据 malware_namedetection_name 字段设置 security_result.threat_name 字段。
severity security_result.severity 如果原始日志中的 severity 值不为空且 module 为“new-incident”,则该值会转换为大写并分配给 security_result.severity
severity_score security_result.severity_details 原始日志中的 severity_score 值会转换为字符串并分配给 security_result.severity_details
source_host observer.ip 原始日志中的 source_host 值会分配给 observer.ip
source_hwid principal.resource.id 原始日志中的 source_hwid 值会分配给 principal.resource.id
source_ip src.ip 原始日志中的 source_ip 值会分配给 src.ip
source_port principal.port 原始日志中的 source_port 值会转换为整数并分配给 principal.port
spt principal.port 原始日志中的 spt 值会分配给 principal.port
sproc principal.process.command_line 原始日志中的 sproc 值会分配给 principal.process.command_line
src principal.ip 原始日志中的 src 值会分配给 principal.ip
src.ip src.ip 解析器会根据 source_ip 字段设置 src.ip 字段。
src.file.full_path src.file.full_path 解析器会根据 old_path 字段设置 src.file.full_path 字段。
status security_result.action_details 原始日志中的 status 值会分配给 security_result.action_details。系统会根据此值设置 security_result.action 字段(例如,“portscan_blocked”和“uc_site_blocked”映射到“BLOCK”)。security_result.description 字段还会填充“status: ”,后跟 status 的值。
suid principal.user.userid 原始日志中的 suid 值会分配给 principal.user.userid
suser principal.user.user_display_name 原始日志中的 suser 值会分配给 principal.user.user_display_name
target.file.full_path target.file.full_path 解析器会根据 pathnew_path 字段设置 target.file.full_path 字段。
target.hostname target.hostname 解析器会根据 hostname 字段设置 target.hostname 字段。
target.ip target.ip 解析器会根据 ip_destdestination_ip 字段设置 target.ip 字段。
target.platform target.platform 解析器会根据 principal.platform 字段设置 target.platform 字段。
target.platform_version target.platform_version 解析器会根据 principal.platform_version 字段设置 target.platform_version 字段。
target.port target.port 解析器会根据 port_destdestination_port 字段设置 target.port 字段。
target.process.command_line target.process.command_line 解析器会根据 command_lineprocess_command_linecmd_line 字段设置 target.process.command_line 字段。
target.process.file.full_path target.process.file.full_path 解析器会根据 process_path 字段设置 target.process.file.full_path 字段。
target.process.pid target.process.pid 解析器会根据 pid 字段设置 target.process.pid 字段。
target.registry.registry_key target.registry.registry_key 解析器会根据 key_path 字段设置 target.registry.registry_key 字段。
target.registry.registry_value_data target.registry.registry_value_data 解析器会根据 data 字段设置 target.registry.registry_value_data 字段。
target.registry.registry_value_name target.registry.registry_value_name 解析器会根据 value 字段设置 target.registry.registry_value_name 字段。
target.resource.id target.resource.id 解析器会根据 hwidBitdefenderGZHwId 字段设置 target.resource.id 字段。
target.url target.url 解析器会根据 request 字段设置 target.url 字段。
target.user.company_name target.user.company_name 解析器会根据 companyId 字段设置 target.user.company_name 字段。
target.user.user_display_name target.user.user_display_name 解析器会根据 user.nameuser.userName 字段设置 target.user.user_display_name 字段。
target.user.userid target.user.userid 解析器会根据 user_nameuseruser.idextra_info.user 字段设置 target.user.userid 字段。
target_pid target.process.pid 原始日志中的 target_pid 值会分配给 target.process.pid
timestamp metadata.event_timestamp 系统会解析原始日志中的 timestamp 值,并将其分配给 metadata.event_timestamp
uc_type network.application_protocol 原始日志中的 uc_type 值会转换为大写,并分配给 network.application_protocol。如果 target_user_userid 不为空,则将 metadata.event_type 设置为“USER_UNCATEGORIZED”。否则,该值会设置为“STATUS_UPDATE”。
url principal.url 如果原始日志中的 url 值不为空或不是“0.0.0.0”,则将其分配给 principal.url
user target.user.userid 原始日志中的 user 值会分配给 target.user.userid
user.id target.user.userid 原始日志中的 user.id 值会分配给 target.user.userid
user.name target.user.user_display_name 原始日志中的 user.name 值会分配给 target.user.user_display_name
user.userName target.user.user_display_name 原始日志中的 user.userName 值会分配给 target.user.user_display_name
user.userSid principal.user.windows_sid 原始日志中的 user.userSid 值会分配给 principal.user.windows_sid
user_name target.user.userid 原始日志中的 user_name 值会分配给 target.user.userid
value target.registry.registry_value_datatarget.registry.registry_value_name 如果 event_name 为“reg_delete_value”,则原始日志中的 value 值会分配给 target.registry.registry_value_data。否则,该值会分配给 target.registry.registry_value_name

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。