收集 Microsoft System Center Endpoint Protection (SCEP) 日志

支持的平台:

本文档介绍了如何通过使用 Microsoft Azure Blob Storage V2 设置 Google Security Operations Feed 来收集 Microsoft System Center Endpoint Protection (SCEP) 日志。

Microsoft System Center Endpoint Protection (SCEP) 是一款与 System Center Configuration Manager (SCCM) 集成的企业反恶意软件和防病毒解决方案。SCEP 可为基于 Windows 的端点提供实时保护,防范恶意软件、病毒、间谍软件和其他恶意软件。SCEP 会将安全事件写入 Microsoft-Windows-Windows Defender/Operational Windows 事件日志渠道,这些事件可以使用 Azure 监视器代理收集并导出到 Azure Blob Storage。

准备工作

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

  • Google SecOps 实例
  • Microsoft Azure 门户的特权访问权限,包括:
    • 创建存储账号
    • 创建和管理 Log Analytics 工作区
    • 创建和管理数据收集规则
    • 配置数据导出规则
    • 管理访问密钥
  • 安装了 SCEP 的 Windows Server 2012 R2 或更高版本,或者安装了 Windows Defender 防病毒软件的 Windows Server 2016 或更高版本
  • 安装在 Windows 服务器上的 Azure Monitor 代理(需要 Azure Arc 来支持本地服务器,或需要原生支持 Azure 虚拟机)
  • 部署 SCEP 的 Windows 服务器上的管理员访问权限

配置 Azure 存储账号

创建存储账号

  1. Azure 门户中,搜索存储账号
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    存储账号名称 输入唯一名称(例如 sceplogssa
    区域 选择区域(例如 East US
    性能 标准(推荐)
    冗余 GRS(地理位置冗余存储)或 LRS(本地冗余存储)
  4. 点击检查 + 创建

  5. 查看账号概览,然后点击创建

  6. 等待部署完成。

获取存储账号凭据

  1. 前往您刚刚创建的存储账号
  2. 在左侧导航栏中,选择安全性 + 网络下的访问密钥
  3. 点击显示密钥
  4. 复制并保存以下内容以供日后使用:
    • 存储账号名称:您创建的名称(例如 sceplogssa
    • 密钥 1密钥 2:共享访问密钥(采用 base-64 编码的 512 位随机字符串)

获取 Blob 服务端点

  1. 在同一存储账号中,从左侧导航栏中选择端点
  2. 复制并保存 Blob 服务端点网址。
    • 示例:https://sceplogssa.blob.core.windows.net/

创建 Log Analytics 工作区

  1. Azure 门户中,搜索 Log Analytics 工作区
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择与存储账号相同的资源组
    名称 输入唯一名称(例如 scep-logs-workspace
    区域 选择与存储账号相同的区域
  4. 点击检查 + 创建

  5. 点击创建

  6. 等待部署完成。

在 Windows 服务器上安装 Azure 监视器代理

对于运行 SCEP 的本地服务器,您必须先将服务器载入到 Azure Arc,然后安装 Azure Monitor 代理。

加入 Azure Arc(仅限本地服务器)

  1. Azure 门户中,搜索 Azure Arc
  2. 基础架构下,选择服务器
  3. 点击添加
  4. 选择添加单个服务器,然后点击生成脚本
  5. 提供以下配置详细信息:
    • 订阅:选择您的 Azure 订阅
    • 资源组:选择您的资源组
    • 区域:选择与存储账号相同的区域
    • 操作系统:选择 Windows
  6. 点击下载并运行脚本
  7. 在运行 SCEP 的 Windows 服务器上,以管理员身份打开 PowerShell
  8. 运行下载的脚本以完成 Azure Arc 初始配置。

安装 Azure Monitor 代理

  1. Azure 门户中,依次前往 Azure Arc > 服务器(或 虚拟机,如果是 Azure 虚拟机)。
  2. 选择运行 SCEP 的服务器。
  3. 在左侧导航栏中,选择设置下的扩展程序
  4. 点击添加
  5. 搜索并选择 Azure Monitor 代理
  6. 点击下一步,然后点击检查并创建
  7. 点击创建
  8. 等待扩展程序安装完成。

为 SCEP 事件创建数据收集规则

  1. Azure 门户中,搜索监控
  2. 设置下,选择数据收集规则
  3. 点击 + 创建
  4. 基本标签页中,提供以下配置详细信息:
    • 规则名称:输入一个描述性名称(例如 dcr-scep-events
    • 订阅:选择您的 Azure 订阅
    • 资源组:选择您的资源组
    • 区域:选择与 Log Analytics 工作区相同的区域
    • 平台类型:选择 Windows
  5. 点击下一步:资源
  6. 资源标签页中:
    1. 点击 + 添加资源
    2. 展开资源组,然后选择运行 SCEP 的服务器(Azure Arc 服务器或 Azure 虚拟机)。
    3. 点击应用
  7. 点击下一部分:收集和交付
  8. 取件和送达标签页中:

    1. 点击 + 添加数据源
    2. 数据源类型下拉菜单中,选择 Windows 事件日志
    3. 选择自定义以输入 XPath 查询。
    4. 点击 + 添加 XPath 查询,然后输入以下 XPath 查询以收集所有 SCEP 和 Windows Defender 事件:

      Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]
      

      此 XPath 查询从 Windows Defender Operational 渠道收集所有事件(严重、错误、警告、信息和详细)。如需仅收集特定事件 ID(例如恶意软件检测),请使用更具针对性的查询,例如:

      Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]]
      
    5. 目标标签页中,点击 + 添加目标

    6. 选择 Azure Monitor 日志作为目标类型

    7. 选择您之前创建的 Log Analytics 工作区(例如 scep-logs-workspace)。

  9. 点击添加数据源

  10. 点击 Review + create(检查 + 创建)。

  11. 点击创建

收集的关键事件 ID

数据收集规则从 Microsoft-Windows-Windows Defender/Operational 渠道收集事件,其中包括以下关键 SCEP 事件 ID:

事件 ID 说明
1006 反恶意软件引擎检测到恶意软件
1007 针对检测到的恶意软件采取了反恶意软件措施
1116 实时防护功能检测到恶意软件或潜在的垃圾软件
1117 实时防护功能针对恶意软件采取了行动
2000 已开始更新恶意软件防护签名
2001 反恶意软件签名更新完成
5007 反恶意软件平台配置已更改

将数据从 Log Analytics 工作区导出到 Azure Blob Storage

注册 Microsoft.Insights 资源提供程序

  1. Azure 门户中,前往订阅
  2. 选择您的订阅。
  3. 在左侧导航栏中,选择设置下的资源提供方
  4. 搜索 Microsoft.Insights
  5. 如果状态不是已注册,请选择相应应用,然后点击注册

创建数据导出规则

  1. Azure 门户中,前往您的 Log Analytics 工作区(例如 scep-logs-workspace)。
  2. 在左侧导航栏中,选择设置下的数据导出
  3. 点击 + 新导出规则
  4. 基本标签页中:
    • 数据导出规则名称:输入一个描述性名称(例如 export-scep-to-blob
  5. 点击下一步:来源
  6. 来源标签页中,选择事件表。

  7. 点击下一步:目的地

  8. 目标标签页中:

    • 目标类型:选择存储账号
    • 订阅:选择包含存储账号的订阅
    • 存储账号:选择您之前创建的存储账号(例如 sceplogssa
  9. 点击下一步:检查并创建

  10. 点击创建

  • 配置完成后,系统会自动将事件导出到存储账号。在存储账号中创建名为 am-Event 的容器。Blob 存储在 5 分钟文件夹中,采用以下路径结构:

    am-Event/
      └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/
          └── y={year}/m={month}/d={day}/h={hour}/m={minute}/
              └── PT05M.json
    

验证数据导出

  1. Azure 门户中,前往存储账号(例如 sceplogssa)。
  2. 在左侧导航栏中,选择数据存储区下的容器
  3. 验证容器 am-Event 是否存在。
  4. 进入容器,并验证是否正在文件夹结构中创建包含事件数据的 JSON 文件。

在 Google SecOps 中配置 Feed 以注入 Microsoft System Center Endpoint Protection (SCEP) 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Microsoft SCEP Logs)。
  5. 选择 Microsoft Azure Blob Storage V2 作为来源类型
  6. 选择 Microsoft System Center Endpoint Protection (SCEP) 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • Azure URI:输入包含容器路径的 Blob 服务端点网址:
    https://sceplogssa.blob.core.windows.net/am-Event/
    

    替换以下内容:

    • sceplogssa:您的 Azure 存储账号名称。
    • am-Event:用于存储导出事件的 Blob 容器名称。
    • 来源删除选项:根据您的偏好选择删除选项:
      • 永不:转移后永不删除任何文件。
      • 删除已转移的文件:在成功转移后删除文件。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。
    • 文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)
    • 共享密钥:输入您从存储账号中捕获的共享密钥值(访问密钥)
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签
  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

配置 Azure 存储防火墙(如果已启用)

如果您的 Azure 存储账号使用防火墙,则必须添加 Google SecOps IP 范围。

  1. Azure 门户中,前往您的存储账号
  2. 安全性 + 网络下,选择网络
  3. 防火墙和虚拟网络下,选择从所选虚拟网络和 IP 地址启用
  4. 防火墙部分的地址范围下,点击 + 添加 IP 范围
  5. 以 CIDR 表示法添加每个 Google SecOps IP 范围。

    如需获取当前的 IP 范围,请执行以下操作:

  6. 此外,请选中允许受信任的服务列表中的 Azure 服务访问此存储账号复选框,以允许 Log Analytics 工作区数据导出功能将数据写入存储账号。

  7. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
about.hostname about.hostname 设置为“%{_DB_HOST}”
_DB_PORT about.port 直接复制的值,已转换为整数
_DB_DRIVER about.resource.name 设置为“%{_DB_DRIVER}”
_DB_URL about.url 设置为“%{_DB_网址}”
signature_labels event.idm.read_only_udm.additional.fields 如果签名不为空,则从 signature_labels 合并;如果 PendingAction 不为空,则从 pending_action 合并;如果 ExecutionStatus 不为空,则从 execution_status 合并;如果 RecordID 不为空,则从 record_id 合并;如果 ErrorCode 不为空,则从 error_code 合并;如果 ActionSuccess 不为空,则从 action_success 合并
pending_action event.idm.read_only_udm.additional.fields
execution_status event.idm.read_only_udm.additional.fields
record_id event.idm.read_only_udm.additional.fields
error_code event.idm.read_only_udm.additional.fields
action_success event.idm.read_only_udm.additional.fields
source_url event.idm.read_only_udm.src.url 如果 source_url 不为空,则取自 source_url;否则,如果 my_string1 不为空,则取自 my_string1
my_string1 event.idm.read_only_udm.src.url
has_principal metadata.event_type 如果 has_principal 和 has_target 为 true,则设置为“NETWORK_CONNECTION”;否则,如果 has_principal 为 true,则设置为“STATUS_UPDATE”;否则,如果 not no_target_host 和 path_available 为 true,则设置为“SCAN_FILE”;否则,如果 not no_target_host,则设置为“STATUS_UNCATEGORIZED”;否则,如果 has_user 为 true,则设置为“USER_UNCATEGORIZED”;否则,设置为“GENERIC_EVENT”
has_user metadata.event_type
has_target metadata.event_type
no_target_host metadata.event_type
path_available metadata.event_type
名称 metadata.product_event_type 直接复制值
DetectionID metadata.product_log_id 直接复制值
metadata.product_name metadata.product_name 设置为“MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION”
metadata.vendor_name metadata.vendor_name 设置为“MICROSOFT”
NTdomain principal.administrative_domain 直接复制值
主机名 principal.asset.hostname 如果主机名不为空,则取自主机名;否则,取自 TargetHost
TargetHost principal.asset.hostname
action_type principal.group.attribute.labels 如果 action_type 不为空,则从 action_type_label 合并
主机名 principal.hostname 如果主机名不为空,则取自主机名;否则,取自 TargetHost
TargetHost principal.hostname
流程 principal.process.file.full_path 如果 Process 不为空,则直接复制值
用户名 principal.user.user_display_name 直接复制值
用户名 principal.user.userid 如果 UserName 不为空,则返回 UserName 中的值;否则,如果 user 不为空,则返回 user 中的值
用户 principal.user.userid
操作 security_result.action 根据操作值(成功/创建/开始/传送/允许时为 ALLOW,失败/已屏蔽/拆除/延迟/删除/拒绝/丢弃/出错/锁定时为 BLOCK,acl_modified/修改时为 ALLOW_WITH_MODIFICATION,隔离时为 QUARANTINE)或 CleanAction(失败时为 FAIL,隔离时为 QUARANTINE,允许时为 ALLOW,屏蔽时为 BLOCK)设置
CleanAction security_result.action
CleanAction security_result.action_details 如果 CleanAction 不为空,则直接复制值
类别 security_result.category_details 如果非空,则从类别合并,否则从类别合并
类别 security_result.category_details
DetectionID security_result.detection_fields 如果 DetectionID 不为空,则从 DetectionID_field 合并;如果 detectionid 不为空,则从 detectionid_field 合并;如果 detection_source 不为空,则从 detection_source_labels 合并;如果 pending_action 不为空,则从 pending_action_labels 合并;如果 source_url、file_path 和 Path 均不为空,则从 detection_Path 合并
detectionid security_result.detection_fields
detection_source security_result.detection_fields
pending_action security_result.detection_fields
路径 security_result.detection_fields
和程度上减少 security_result.severity 根据严重程度(0/1/2/3/LOW 为 LOW,4/5/6/MEDIUM/SUBSTANTIAL/INFO 为 MEDIUM,7/8/HIGH/SEVERE 为 HIGH,9/10/VERY-HIGH/CRITICAL 为 CRITICAL)或 SeverityID(1 为 LOW,2 为 MEDIUM,4 为 HIGH,5 为 CRITICAL,其他为 UNKNOWN_SEVERITY)设置
SeverityID security_result.severity
SeverityID security_result.severity_details 直接复制值
ThreatID security_result.threat_id 直接复制值
ThreatName security_result.threat_name 直接复制值
MaliciousFileCt security_result.verdict_info 直接复制的值,转换为整数,合并为 malicious_file_ct
dest_nt_domain target.administrative_domain 直接复制值
dest_name target.asset.hostname 如果 dest_name 不为空,则直接复制值
file_path target.file.full_path 如果 file_path 不为空,则返回 file_path 中的值;否则,如果 Path 不为空,则返回 Path 中的值;否则,如果 my_string 不为空,则返回 my_string 中的值
路径 target.file.full_path
my_string target.file.full_path
dest_name target.hostname 如果 dest_name 不为空,则直接复制值
ResourceID target.resource.name 如果 ResourceID 不为空,则取自 ResourceID;否则,如果 resourceid 不为空,则取自 resourceid
resourceid target.resource.name
用户 target.user.userid 如果用户不为空,则直接复制值
时间 metadata.event_timestamp 如果时间不为空,则使用“MMM dd HH:mm:ss”格式从时间转换;否则,使用 UNIX_MS 从 DetectionTime 或 detectiontime 转换
DetectionTime metadata.event_timestamp
detectiontime metadata.event_timestamp

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