收集 Microsoft Exchange 日志

支持的语言:

本文档介绍了如何使用 Bindplane 将 Microsoft Exchange 日志注入到 Google Security Operations。解析器首先尝试将传入的“message”字段解释为 JSON。如果此操作失败,它会应用一系列 Grok 模式和 CSV 解析技术,从原始消息字符串中提取字段,处理各种 Microsoft Exchange 日志格式,并填充标准化的统一数据模型 (UDM) 架构以进行安全分析。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Windows 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • 如果在代理后运行,防火墙端口处于开放状态
  • 已安装的 Exchange 服务
  • 对 Microsoft Windows Exchange 的特权访问权限

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

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。

获取 Google SecOps 客户 ID

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

安装 Bindplane 代理

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

如需了解其他安装选项,请参阅安装指南

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

  1. 访问配置文件:
    • 找到 config.yaml 文件。通常,它位于 Linux 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 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: '/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: 'EXCHANGE_MAIL'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 根据基础架构的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. /path/to/ingestion-authentication-file.json 更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

配置 MS Exchange 事件收集和导出

  1. 登录 MS Exchange 服务器计算机。
  2. 在 Windows Server 上下载并安装 NXlog
  3. 前往 NXlog 安装路径,然后打开配置文件。
  4. 使用文本编辑器打开 conf 目录中的 nxlog.conf 文件,该文件通常位于 C:\Program Files\nxlog\conf (Default Installation Path
  5. 添加以下配置代码:

    <Input eventlog>
        Module    im_msvistalog
    <QueryXML>
    <QueryList>
    <Query Id="0" Path="Application">
    <Select Path="Application">
                        *[System[(Level=1 or Level=2 or Level=3)]]
    </Select>
    <Select Path="System">
                        *[System[(Level=1 or Level=2 or Level=3)]]
    </Select>
    <Select Path="MSExchange Management">*</Select>
    </Query>
    </QueryList>
    </QueryXML>
    </Input>
    
    <Output syslog>
        Module      om_udp
        Host        <bindplane-agent-ip>
        Port        <bindplane-agent-port>
        Exec        to_syslog_bsd();
    </Output>
    
    <Route exchange_to_syslog>
        Path        eventlog => syslog
    </Route>
    
  6. <bindplane-agent-ip><bindplane-agent-port> 替换为 Bindplane 配置的 IP 地址和端口。

  7. 启动 NXLog 服务:

    • 在 Windows Server 上打开服务 (services.msc)。
    • 在服务列表中找到 NXLog 服务。
    • 右键点击 NXLog,然后选择开始
  8. 可选:自动执行 NXLog 启动

    • 打开服务 (services.msc)。
    • 在列表中找到 NXLog
    • 右键点击,然后选择属性
    • 启动类型设置为自动

UDM 映射表

日志字段 UDM 映射 逻辑
c-ip read_only_udm.target.asset.ip c-ip 字段中获取的值
c-ip read_only_udm.target.ip c-ip 字段中获取的值
client-hostname read_only_udm.principal.asset.hostname client-hostname 字段中获取的值
client-hostname read_only_udm.principal.hostname client-hostname 字段中获取的值
client-ip read_only_udm.principal.asset.ip client-ip 字段中获取的值
client-ip read_only_udm.principal.ip client-ip 字段中获取的值
第 1 列 read_only_udm.metadata.event_timestamp column1 字段中获取的值
column10 read_only_udm.intermediary.resource.attribute.labels.value column10 字段中获取的值
column11 read_only_udm.network.email.mail_id column11 字段中获取的值
column12 read_only_udm.additional.fields.value.string_value column12 字段中获取的值
column13 read_only_udm.network.email.to column13 字段中获取的值
column13 read_only_udm.target.user.email_addresses column13 字段中获取的值
column15 read_only_udm.additional.fields.value.string_value column15 字段中获取的值
column16 read_only_udm.target.resource.attribute.labels.value column16 字段中获取的值
column19 read_only_udm.network.email.subject column19 字段中获取的值
第 2 列 read_only_udm.principal.asset.ip column2 字段中获取的值
第 2 列 read_only_udm.principal.ip column2 字段中获取的值
column20 read_only_udm.network.email.from column20 字段中获取的值
column20 read_only_udm.principal.user.email_addresses column20 字段中获取的值
column21 read_only_udm.security_result.detection_fields.value column21 字段中获取的值
column22 read_only_udm.security_result.description column22 字段中获取的值
column24 read_only_udm.additional.fields.value.string_value column24 字段中获取的值
column25 read_only_udm.principal.asset.ip column25 字段中获取的值
column25 read_only_udm.principal.ip column25 字段中获取的值
column26 read_only_udm.target.asset.ip column26 字段中获取的值
column26 read_only_udm.target.ip column26 字段中获取的值
column27 read_only_udm.security_result.detection_fields.value column27 字段中获取的值
column28 read_only_udm.additional.fields.value.string_value column28 字段中获取的值
column29 read_only_udm.metadata.product_log_id column29 字段中获取的值
第 3 列 read_only_udm.principal.asset.hostname column3 字段中获取的值
第 3 列 read_only_udm.principal.hostname column3 字段中获取的值
column30 read_only_udm.metadata.product_version column30 字段中获取的值
column4 read_only_udm.target.asset.ip column4 字段中获取的值
column4 read_only_udm.target.ip column4 字段中获取的值
column5 read_only_udm.target.asset.hostname column5 字段中获取的值
column5 read_only_udm.target.hostname column5 字段中获取的值
column6 read_only_udm.metadata.event_timestamp column6 字段中获取的值
column6 read_only_udm.network.http.response_code column6 字段中获取的值
column6 read_only_udm.network.session_id column6 字段中获取的值
column6 read_only_udm.metadata.description column6 字段中获取的值
column7 read_only_udm.additional.fields.value.string_value column7 字段中获取的值
column8 read_only_udm.additional.fields.value.string_value column8 字段中获取的值
column9 read_only_udm.metadata.product_event_type column9 字段中获取的值
connector_id read_only_udm.additional.fields.value.string_value connector-id 字段中获取的值
cs-method read_only_udm.network.http.method cs-method 字段中获取的值
cs-uri-query read_only_udm.target.url cs-uri-query 字段中获取的值
cs-uri-stem read_only_udm.target.url cs-uri-stem 字段中获取的值
csReferer read_only_udm.network.http.referral_url csReferer 字段中获取的值
csUser-Agent read_only_udm.network.http.user_agent csUser-Agent 字段中获取的值
cs-username read_only_udm.principal.user.userid cs-username 字段中获取的值
custom-data read_only_udm.security_result.detection_fields.value custom-data 字段中获取的值
数据 read_only_udm.security_result.about.labels.value data 字段中获取的值
数据 read_only_udm.security_result.description data 字段中获取的值
数据 read_only_udm.network.email.from data 字段中获取的值
数据 read_only_udm.network.email.to data 字段中获取的值
数据 read_only_udm.target.hostname data 字段中获取的值
数据 read_only_udm.security_result.description data 字段中获取的值
数据 read_only_udm.network.sent_bytes data 字段中获取的值
数据 read_only_udm.target.user.email_addresses data 字段中获取的值
日期 read_only_udm.metadata.event_timestamp datetime 字段中获取的值
date-time read_only_udm.metadata.event_timestamp date-time 字段中获取的值
DeliveryLatency read_only_udm.security_result.detection_fields.value custom-datamessage-infoDeliveryLatency 字段中获取的值
DeliveryPriority read_only_udm.security_result.detection_fields.value custom-datacolumn21 字段中的 DeliveryPriority 字段获取的值
DeliveryPriority read_only_udm.security_result.priority 如果 DeliveryPriorityLowNormal,则为 LOW_PRIORITY;如果 DeliveryPriorityMedium,则为 MEDIUM_PRIORITY;如果 DeliveryPriorityHigh,则为 HIGH_PRIORITY
方向性 read_only_udm.network.direction 如果 directionalityIncoming,则为 INBOUND;如果 directionalityOriginating,则为 OUTBOUND
E2ELatency read_only_udm.security_result.detection_fields.value custom-datamessage-infoE2ELatency 字段中获取的值
事件 read_only_udm.metadata.product_event_type 如果 event+,则为 Connect;如果 event-,则为 Disconnect;如果 event*,则为 Information;如果 event>,则为 Send;如果 event<,则为 Receive
事件 read_only_udm.network.direction 如果 event>,则为 OUTBOUND;如果 event<,则为 INBOUND
EventID read_only_udm.security_result.detection_fields.value EventID 字段中获取的值
EventReceivedTime read_only_udm.metadata.collected_timestamp EventReceivedTime 字段中获取的值
EventReceivedTime read_only_udm.metadata.event_timestamp column6EventReceivedTime 字段中获取的值
FirstForestHop read_only_udm.security_result.detection_fields.value custom-dataFirstForestHop 字段中获取的值
FromEntity read_only_udm.security_result.detection_fields.value custom-datamessage-infoFromEntity 字段中获取的值
guid read_only_udm.metadata.product_log_id guid 字段中获取的值
主机名 read_only_udm.principal.asset.hostname Hostname 字段中获取的值
主机名 read_only_udm.principal.hostname Hostname 字段中获取的值
IncludeInSla read_only_udm.security_result.detection_fields.value custom-datamessage-infoIncludeInSla 字段中获取的值
internal-message-id read_only_udm.intermediary.resource.attribute.labels.value internal-message-id 字段中获取的值
IsProbe read_only_udm.security_result.detection_fields.value custom-datacolumn21 字段中的 IsProbe 字段获取的值
关键字 read_only_udm.security_result.detection_fields.value Keywords 字段中获取的值
local-endpoint read_only_udm.principal.asset.ip local-endpoint 字段中获取的值
local-endpoint read_only_udm.principal.ip local-endpoint 字段中获取的值
local-endpoint read_only_udm.principal.port local-endpoint 字段中获取的值
邮箱 read_only_udm.security_result.detection_fields.value custom-datamessage-infoMailboxes 字段中获取的值
MailboxDatabaseGuid read_only_udm.security_result.detection_fields.value custom-datamessage-infoMailboxDatabaseGuid 字段中获取的值
来自以下地址的邮件 read_only_udm.network.email.from dataMAIL FROM 字段中获取的值
来自以下地址的邮件 read_only_udm.principal.user.email_addresses dataMAIL FROM 字段中获取的值
邮件来自 read_only_udm.network.email.from dataMAIL From 字段中获取的值
邮件来自 read_only_udm.principal.user.email_addresses dataMAIL From 字段中获取的值
message-id read_only_udm.network.email.mail_id message-id 字段中获取的值
message-info read_only_udm.security_result.detection_fields.value message-info 字段中获取的值
message-info read_only_udm.security_result.description message-info 字段中获取的值
MessageValue read_only_udm.security_result.detection_fields.value custom-dataMessageValue 字段中获取的值
message-subject read_only_udm.network.email.subject message-subject 字段中获取的值
方法 read_only_udm.network.http.method method 字段中获取的值
Microsoft_Exchange_Transport_MailRecipient_RequiredTlsAuthLevel read_only_udm.security_result.detection_fields.value custom-dataMicrosoft_Exchange_Transport_MailRecipient_RequiredTlsAuthLevel 字段中获取的值
MsgRecipCount read_only_udm.security_result.detection_fields.value custom-datamessage-infoMsgRecipCount 字段中获取的值
network-message-id read_only_udm.additional.fields.value.string_value network-message-id 字段中获取的值
OriginalFromAddress read_only_udm.principal.user.email_addresses custom-datacolumn21 字段中的 OriginalFromAddress 字段获取的值
P2RecipStat read_only_udm.security_result.detection_fields.value custom-datamessage-infoP2RecipStat 字段中获取的值
PersistProbeTrace read_only_udm.security_result.detection_fields.value custom-datacolumn21 字段中的 PersistProbeTrace 字段获取的值
PrioritizationReason read_only_udm.security_result.detection_fields.value custom-dataPrioritizationReason 字段中获取的值
ProbeType read_only_udm.security_result.detection_fields.value custom-datacolumn21 字段中的 ProbeType 字段获取的值
ProcessID read_only_udm.principal.process.pid ProcessID 字段中获取的值
ProxiedClientHostname read_only_udm.intermediary.hostname custom-dataProxiedClientHostname 字段中获取的值
ProxiedClientIPAddress read_only_udm.intermediary.asset.ip custom-dataProxiedClientIPAddress 字段中获取的值
ProxiedClientIPAddress read_only_udm.intermediary.ip custom-dataProxiedClientIPAddress 字段中获取的值
ProxyHop1 read_only_udm.security_result.detection_fields.value custom-dataProxyHop1 字段中获取的值
RCPT TO read_only_udm.network.email.to dataRCPT TO 字段中获取的值
RCPT TO read_only_udm.target.user.email_addresses dataRCPT TO 字段中获取的值
RCPT To read_only_udm.network.email.to dataRCPT To 字段中获取的值
RCPT To read_only_udm.target.user.email_addresses dataRCPT To 字段中获取的值
recipient-address read_only_udm.target.user.email_addresses recipient-address 字段中获取的值
recipient-count read_only_udm.target.resource.attribute.labels.value recipient-count 字段中获取的值
recipient-status read_only_udm.target.resource.attribute.labels.value recipient-status 字段中获取的值
remote-endpoint read_only_udm.target.asset.ip remote-endpoint 字段中获取的值
remote-endpoint read_only_udm.target.ip remote-endpoint 字段中获取的值
remote-endpoint read_only_udm.target.port remote-endpoint 字段中获取的值
res_code read_only_udm.network.http.response_code res_code 字段中获取的值
s-ip read_only_udm.principal.asset.ip s-ip 字段中获取的值
s-ip read_only_udm.principal.ip s-ip 字段中获取的值
s-port read_only_udm.principal.port s-port 字段中获取的值
sc-status read_only_udm.network.http.response_code sc-status 字段中获取的值
sc-substatus read_only_udm.additional.fields.value.string_value sc-substatus 字段中获取的值
发件人地址 read_only_udm.network.email.from sender-address 字段中获取的值
发件人地址 read_only_udm.principal.user.email_addresses sender-address 字段中获取的值
sequence-number read_only_udm.additional.fields.value.number_value sequence-number 字段中获取的值
server-hostname read_only_udm.target.asset.hostname server-hostname 字段中获取的值
server-hostname read_only_udm.target.hostname server-hostname 字段中获取的值
server-ip read_only_udm.target.asset.ip server-ip 字段中获取的值
server-ip read_only_udm.target.ip server-ip 字段中获取的值
session-id read_only_udm.network.session_id session-id 字段中获取的值
sessionid read_only_udm.network.session_id sessionid 字段中获取的值
严重程度 read_only_udm.security_result.severity 如果 Severity 包含 Info,则为 INFORMATIONAL;如果 Severity 包含 Error,则为 ERROR;如果 Severity 包含 Warning,则为 MEDIUM;否则为 UNKNOWN_SEVERITY
SeverityValue read_only_udm.security_result.severity_details SeverityValue 字段中获取的值
SlaExclusionReason read_only_udm.security_result.detection_fields.value custom-dataSlaExclusionReason 字段中获取的值
来源 read_only_udm.additional.fields.value.string_value source 字段中获取的值
SourceModuleName read_only_udm.principal.resource.name SourceModuleName 字段中获取的值
SourceModuleType read_only_udm.principal.resource.type SourceModuleType 字段中获取的值
SourceName read_only_udm.principal.resource.attribute.labels.value SourceName 字段中获取的值
StoreObjectIds read_only_udm.security_result.detection_fields.value custom-datamessage-infoStoreObjectIds 字段中获取的值
任务 read_only_udm.security_result.detection_fields.value Task 字段中获取的值
ThreadID read_only_udm.security_result.detection_fields.value ThreadID 字段中获取的值
时间 read_only_udm.metadata.event_timestamp datetime 字段中获取的值
ToEntity read_only_udm.security_result.detection_fields.value custom-datamessage-infoToEntity 字段中获取的值
total-bytes read_only_udm.additional.fields.value.string_value total-bytes 字段中获取的值
TransportTrafficSubType read_only_udm.security_result.detection_fields.value custom-dataTransportTrafficSubType 字段中获取的值
TransportTrafficSubType read_only_udm.metadata.product_version custom-dataTransportTrafficSubType 字段中获取的值
ts read_only_udm.metadata.event_timestamp ts 字段中获取的值
u_agent read_only_udm.network.http.user_agent u_agent 字段中获取的值
u_param read_only_udm.target.url u_param 字段中获取的值
u_path read_only_udm.target.url u_path 字段中获取的值
u_path read_only_udm.target.url u_pathu_param 字段中获取的值
用户 read_only_udm.target.user.userid user 字段中获取的值
用户 read_only_udm.target.user.email_addresses user 字段中获取的值
metadata.event_type read_only_udm.metadata.event_type 如果 has_principal_emailtruehas_target_emailtrue,则为 EMAIL_TRANSACTION;如果 event_typeGENERIC_EVENTprincipal_hostname/s_ip/host 不为空或 has_principaltrue,则为 STATUS_UPDATE;如果 event_typeGENERIC_EVENThas_principal_emailtruehas_target_emailtrue,则为 USER_UNCATEGORIZED;否则,取自 event_type 字段的值
metadata.log_type read_only_udm.metadata.log_type 硬编码值 EXCHANGE_MAIL
metadata.product_name read_only_udm.metadata.product_name 硬编码值 Exchange Mail
metadata.vendor_name read_only_udm.metadata.vendor_name 硬编码值 Microsoft
network.application_protocol read_only_udm.network.application_protocol 如果 app_protocolSMTPHTTPHTTPS,则取自 app_protocol 字段的值,如果 app_protocol 包含 SMTP,则为 SMTP
network.direction read_only_udm.network.direction 如果 s_ip 不为空,则为 INBOUND
network.email.from read_only_udm.network.email.from from_mail 字段中获取的值
network.email.mail_id read_only_udm.network.email.mail_id msg_id 字段中获取的值
network.email.subject read_only_udm.network.email.subject column19 字段中获取的值
network.email.to read_only_udm.network.email.to to_mail 字段中获取的值
network.http.method read_only_udm.network.http.method method 字段中获取的值
network.http.response_code read_only_udm.network.http.response_code res_code 字段中获取的值
network.http.user_agent read_only_udm.network.http.user_agent u_agent 字段中获取的值
network.sent_bytes read_only_udm.network.sent_bytes sent_bytes 字段中获取的值
network.session_id read_only_udm.network.session_id sessionid 字段中获取的值
principal.asset.hostname read_only_udm.principal.asset.hostname principal_hostname 字段中获取的值
principal.asset.hostname read_only_udm.principal.asset.hostname host 字段中获取的值
principal.asset.hostname read_only_udm.principal.asset.hostname column3 字段中获取的值
principal.asset.ip read_only_udm.principal.asset.ip column2 字段中获取的值
principal.asset.ip read_only_udm.principal.asset.ip column25 字段中获取的值
principal.asset.ip read_only_udm.principal.asset.ip s_ip 字段中获取的值
principal.hostname read_only_udm.principal.hostname principal_hostname 字段中获取的值
principal.hostname read_only_udm.principal.hostname host 字段中获取的值
principal.hostname read_only_udm.principal.hostname column3 字段中获取的值
principal.ip read_only_udm.principal.ip column2 字段中获取的值
principal.ip read_only_udm.principal.ip column25 字段中获取的值
principal.ip read_only_udm.principal.ip s_ip 字段中获取的值
principal.port read_only_udm.principal.port s-port 字段中获取的值
principal.user.email_addresses read_only_udm.principal.user.email_addresses mail 字段中获取的值
principal.user.email_addresses read_only_udm.principal.user.email_addresses email_address 字段中获取的值
principal.user.userid read_only_udm.principal.user.userid cs-username 字段中获取的值
security_result.about.labels.key read_only_udm.security_result.about.labels.key 硬编码值 Response Code
security_result.description read_only_udm.security_result.description context 字段中获取的值
security_result.description read_only_udm.security_result.description column22 字段中获取的值
security_result.priority read_only_udm.security_result.priority 如果 severity123,则为 LOW;如果 severity456,则为 MEDIUM;如果 severity789,则为 HIGH
security_result.severity read_only_udm.security_result.severity 如果 Severity 包含 Info,则为 INFORMATIONAL;如果 Severity 包含 Error,则为 ERROR;如果 Severity 包含 Warning,则为 MEDIUM;否则为 UNKNOWN_SEVERITY
target.administrative_domain read_only_udm.target.administrative_domain domain 字段中获取的值
target.asset.hostname read_only_udm.target.asset.hostname column5 字段中获取的值
target.asset.hostname read_only_udm.target.asset.hostname target_host 字段中获取的值
target.asset.ip read_only_udm.target.asset.ip column4 字段中获取的值
target.asset.ip read_only_udm.target.asset.ip column26 字段中获取的值
target.asset.ip read_only_udm.target.asset.ip c-ip 字段中获取的值
target.hostname read_only_udm.target.hostname column5 字段中获取的值
target.hostname read_only_udm.target.hostname target_host 字段中获取的值
target.ip read_only_udm.target.ip column4 字段中获取的值
target.ip read_only_udm.target.ip column26 字段中获取的值
target.ip read_only_udm.target.ip c-ip 字段中获取的值
target.port read_only_udm.target.port c_port 字段中获取的值
target.resource.attribute.labels.key read_only_udm.target.resource.attribute.labels.key 硬编码值 Recipients Count
target.user.email_addresses read_only_udm.target.user.email_addresses user 字段中获取的值
target.user.user_display_name read_only_udm.target.user.user_display_name username 字段中获取的值
target.user.userid read_only_udm.target.user.userid user 字段中获取的值
target.url read_only_udm.target.url u_path 字段中获取的值

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