管理 Azure 本地的 syslog 转发
本文内容
适用于:Azure 本地版本 23H2
本文介绍如何使用 Azure 本地版本 23H2 的 syslog 协议将安全事件转发到客户管理的安全信息和事件管理(SIEM)系统。
使用 syslog 转发与安全监视解决方案集成,并检索相关的安全事件日志,以将其存储在自己的 SIEM 平台上。 有关此版本中的安全功能的详细信息,请参阅 Azure 本地版本 23H2 的安全功能。
默认情况下,Syslog 转发代理部署在每个 Azure 本地主机上,可供配置。 每个代理都将以 syslog 格式将安全事件从主机转发到客户配置的 syslog 服务器。
Syslog 转发代理彼此独立工作,但可在任一主机上一起管理。 在任何主机上使用具有管理权限的 PowerShell cmdlet 来控制所有转发器代理的行为。
Azure Local 中的 syslog 转发器支持以下配置:
Syslog 使用 TCP 转发、相互身份验证(客户端和服务器)和 TLS 加密: 在此配置中,syslog 服务器和 syslog 客户端都通过证书验证彼此的身份。 消息通过 TLS 加密通道发送。 有关详细信息,请参阅 Syslog 使用 TCP 转发、相互身份验证(客户端和服务器)和 TLS 加密 。
使用 TCP、服务器身份验证和 TLS 加密转发 Syslog: 在此配置中,syslog 客户端通过证书验证 syslog 服务器的标识。 消息通过 TLS 加密通道发送。 有关详细信息,请参阅 使用 TCP、服务器身份验证和 TLS 加密 的 Syslog 转发。
使用 TCP 进行 Syslog 转发,不加密: 在此配置中,不会验证 syslog 客户端和 syslog 服务器标识。 消息通过 TCP 以明文形式发送。 有关详细信息,请参阅 Syslog 使用 TCP 转发,而无需加密 。
具有 UDP 且无加密的 Syslog: 在此配置中,不会验证 syslog 客户端和 syslog 服务器标识。 消息通过 UDP 以明文形式发送。 有关详细信息,请参阅 Syslog 使用 UDP 转发,而无需加密 。
重要
为了防止中间人攻击和窃听消息,Microsoft强烈建议在生产环境中将 TCP 与身份验证和加密配合使用。
TLS 加密版本取决于终结点之间的握手。 默认情况下支持 TLS 1.2 和 TLS 1.3。
配置 syslog 转发器需要使用域管理员帐户访问物理主机。 已将一组 PowerShell cmdlet 添加到所有 Azure 本地主机,以控制 syslog 转发器的行为。
该 Set-AzSSyslogForwarder
cmdlet 用于为所有主机设置 syslog 转发器配置。 如果成功,将启动一个行动计划实例,以跨所有主机配置 syslog 转发器代理。 将返回操作计划实例 ID。
使用以下 cmdlet 将 syslog 服务器信息传递给转发器,并配置传输协议、加密、身份验证以及客户端和服务器之间使用的可选证书:
Set-AzSSyslogForwarder [-ServerName <String>] [-ServerPort <UInt16>] [-NoEncryption] [-SkipServerCertificateCheck | -SkipServerCNCheck] [-UseUDP] [-ClientCertificateThumbprint <String>] [-OutputSeverity {Default | Verbose}] [-Remove]
cmdlet 参数
下表提供 cmdlet 的参数 Set-AzSSyslogForwarder
:
参数
说明
类型
必须
ServerName
Syslog 服务器的 FQDN 或 IP 地址。
String
是
ServerPort
syslog 服务器侦听的端口号。
UInt16
是
NoEncryption
强制客户端以明文形式发送 Syslog 消息。
标记
否
SkipServerCertificateCheck
在 TLS 初次握手期间跳过对 Syslog 服务器所提供证书的验证。
标记
否
SkipServerCNCheck
在 TLS 初次握手期间跳过对 Syslog 服务器所提供证书的“公用名称”值的验证。
标记
否
UseUDP
使用 Syslog 时将 UDP 用作传输协议。
标记
否
ClientCertificateThumbprint
用于与 syslog 服务器通信的客户端证书的指纹。
字符串
否
OutputSeverity
输出日志记录的级别。 值为 Default 或 Verbose。 Default 包括严重性级别“警告”、“严重”或“错误”。 Verbose 包括所有严重性级别:“详细”、“信息”、“警告”、“严重”或“错误”。
字符串
否
删除
删除当前的 syslog 转发器配置并停止 syslog 转发器。
标记
否
使用 TCP、相互身份验证(客户端和服务器)和 TLS 加密进行 Syslog 转发
在此配置中,Azure 本地中的 syslog 客户端使用 TLS 加密通过 TCP 将消息转发到 syslog 服务器。 在初次握手期间,客户端会验证服务器是否提供了有效且可信的证书。 客户端也将证书提供给服务器,作为其标识的证明。
此配置是最安全的,因为它提供对客户端和服务器的标识的完全验证,并通过加密通道发送消息。
重要
Microsoft建议将此配置用于生产环境。
若要使用 TCP、相互身份验证和 TLS 加密配置 syslog 转发器,请配置服务器并向客户端提供证书,以便针对服务器进行身份验证。
针对物理主机运行以下 cmdlet:
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -ClientCertificateThumbprint <Thumbprint of the client certificate>
重要
客户端证书必须包含私钥。 如果使用自签名根证书对客户端证书进行签名,则还必须导入根证书。
使用 TCP、服务器身份验证和 TLS 加密进行 Syslog 转发
在此配置中,Azure 本地中的 syslog 转发器使用 TLS 加密通过 TCP 将消息转发到 syslog 服务器。 在初次握手期间,客户端也会验证服务器是否提供了有效且可信的证书。
此配置可以防止客户端将消息发送至不受信任的目标。 使用身份验证和加密的 TCP 是默认配置,表示 Microsoft 为生产环境推荐的最低安全级别。
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
如果要使用自签名或不受信任的证书测试 syslog 服务器与 Azure Local syslog 转发器的集成,请使用这些标志跳过客户端在初始握手期间完成的服务器验证。
跳过服务器证书中公用名值的验证。 如果为 syslog 服务器提供 IP 地址,请使用此标志。
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
-SkipServerCNCheck
跳过服务器证书验证。
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
-SkipServerCertificateCheck
重要
Microsoft建议不要在 -SkipServerCertificateCheck
生产环境中使用该标志。
使用 TCP 进行 Syslog 转发,不加密
在此配置中,Azure 本地中的 syslog 客户端通过 TCP 将消息转发到 syslog 服务器,无需加密。 客户端不会验证服务器的标识,也不会向服务器提供自己的标识进行验证。
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening on> -NoEncryption
重要
Microsoft建议不要在生产环境中使用此配置。
使用 UDP 进行 Syslog 转发,不加密
在此配置中,Azure 本地中的 syslog 客户端通过 UDP 将消息转发到 syslog 服务器,无需加密。 客户端不会验证服务器的标识,也不会向服务器提供自己的标识进行验证。
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -UseUDP
虽然没有加密的 UDP 是最容易配置的,但它不提供任何保护,防止中间人攻击或窃听消息。
重要
Microsoft建议不要在生产环境中使用此配置。
启用 syslog 转发
运行以下 cmdlet 以启用 syslog 转发:
Enable-AzSSyslogForwarder [-Force]
将使用最后一次成功 Set-AzSSyslogForwarder
调用提供的存储配置启用 Syslog 转发器。 如果未使用 Set-AzSSyslogForwarder
任何配置,则 cmdlet 将失败。
禁用 syslog 转发
运行以下 cmdlet 以禁用 syslog 转发:
Disable-AzSSyslogForwarder [-Force]
cmdlet Enable-AzSSyslogForwarder
的参数 Disable-AzSSyslogForwarder
:
参数
说明
类型
必须
Force
如果指定,即使目标状态与当前状态相同,也会始终触发行动计划。 这有助于重置带外更改。
标记
否
验证 syslog 设置
成功将 syslog 客户端连接到 syslog 服务器后,将开始接收事件通知。 如果未看到通知,请运行以下 cmdlet 来验证群集 syslog 转发器配置:
Get-AzSSyslogForwarder [-Local | -PerNode | -Cluster]
每个主机都有自己的 syslog 转发器代理,该代理使用群集配置的本地副本。 它们始终与群集配置相同。 可以使用以下 cmdlet 验证每个主机上的当前配置:
Get-AzSSyslogForwarder -PerNode
还可以使用以下 cmdlet 验证连接到的主机上的配置:
Get-AzSSyslogForwarder -Local
cmdlet 的 Get-AzSSyslogForwarder
Cmdlet 参数:
参数
说明
类型
必须
本地
显示当前主机上当前使用的配置。
标记
否
PerNode
显示每个主机上当前使用的配置。
标记
否
Cluster
显示 Azure 本地上的当前全局配置。 如果未提供任何参数,则这是默认行为。
标记
否
删除 syslog 转发
运行以下命令以删除 syslog 转发器配置并停止 syslog 转发器:
Set-AzSSyslogForwarder -Remove
消息架构和事件日志参考
以下参考资料记录了 syslog 消息架构和事件定义。
Azure 本地基础结构的 syslog 转发器发送按照 RFC3164 中定义的 BSD syslog 协议设置格式的消息。 CEF 还用于设置 syslog 消息有效负载的格式。
每个 syslog 消息都基于此架构进行结构化:优先级 (PRI) |时间 |主机 |CEF 有效负载 |
PRI 部分包含两个值:设施和 严重性 。 两者都取决于消息类型,如 Windows 事件等。
所有 Windows 事件都使用 PRI 设施值 10。
签名 ID:ProviderName:EventID
名称:TaskName
严重性:级别。 有关详细信息,请参阅以下严重性表。
扩展:自定义扩展名称。 有关详细信息,请参阅下表。
Windows 事件的严重性
PRI 严重性值
CEF 严重性值
Windows 事件级别
MasLevel 值(以扩展为单位)
7
0
Undefined
值:0. 指示所有级别的日志。
2
10
关键
值:1. 指示关键警报的日志。
3
8
错误
值:2. 指示错误的日志。
4
5
警告
值:3. 指示警告的日志。
6
2
信息
值:4. 指示信息性消息的日志。
7
0
详细
值:5. 指示详细消息的日志。
Azure 本地中的自定义扩展和 Windows 事件
自定义扩展名称
Windows 事件
MasChannel
系统
MasComputer
test.azurestack.contoso.com
MasCorrelationActivityID
C8F40D7C-3764-423B-A4FA-C994442238AF
MasCorrelationRelatedActivityID
C8F40D7C-3764-423B-A4FA-C994442238AF
MasEventData
svchost!!4132,G,0!!!!EseDiskFlushConsistency!!ESENT!!0x800000
MasEventDescription
用户的组策略设置已成功处理。 自从上次成功处理组策略后,尚未检测到任何更改。
MasEventID
1501
MasEventRecordID
26637
MasExecutionProcessID
29380
MasExecutionThreadID
25480
MasKeywords
0x8000000000000000
MasKeywordName
审核成功
MasLevel
4
MasOpcode
1
MasOpcodeName
info
MasProviderEventSourceName
MasProviderGuid
AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
MasProviderName
Microsoft-Windows-GroupPolicy
MasSecurityUserId
Windows SID
MasTask
0
MasTaskCategory
创建进程
MasUserData
KB4093112!!5112!!Installed!!0x0!!WindowsUpdateAgent Xpath: /Event/UserData/*
MasVersion
0
转发的其他事件。 无法自定义这些事件。
事件类型
事件查询
具有对等 MAC 地址的无线 Lan 802.1x 身份验证事件
query=“Security!*[System[(EventID=5632)]]”
新服务 (4697)
query=“Security!*[System[(EventID=4697)]]”
TS 会话重新连接 (4778), TS 会话断开连接 (4779)
query=“Security!*[System[(EventID=4778 or EventID=4779)]]]
不使用 IPC$ 和 Netlogon 共享的网络共享对象访问
query=“Security![System[(EventID=5140)] and EventData[Data[@Name='ShareName']!='\\ IPC$'] and EventData[data[@Name='ShareName']!='\*\NetLogon']]”
系统时间更改 (4616)
query=“Security!*[System[(EventID=4616)]]”
没有网络或服务事件的本地登录
query=“Security!*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']!='3'] and EventData[data[@Name='LogonType']!='5']]”
安全日志清除事件 (1102), EventLog 服务关闭 (1100)
query=“Security!*[System[(EventID=1102 or EventID=1100)]]”
用户发起的注销
query=“Security!*[System[(EventID=4647)]]”
所有非网络登录会话的用户注销
query=“Security!*[System[(EventID=4634)] and EventData[Data[@Name='LogonType'] != '3']]”
如果用户帐户不是 LocalSystem、NetworkService、LocalService,则服务登录事件
query=“Security!*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='5'] and EventData[data[@Name='TargetUserSid'] != 'S-1-5-18 '] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-19'] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-20']] ”
网络共享创建 (5142), 网络共享删除 (5144)
query=“Security!*[System[(EventID=5142 or EventID=5144]]]”
进程创建 (4688)
query=“Security!*[System[EventID=4688]]”
特定于安全通道的事件日志服务事件
query=“Security!*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]”
分配给新登录的特殊特权(管理员等效访问权限),不包括 LocalSystem
query=“Security!*[System[(EventID=4672)] and EventData[Data[1] != 'S-1-5-18']]”
添加到本地、全局或通用安全组的新用户
query=“Security!*[System[(EventID=4732 or EventID=4728 或 EventID=4756)]]”
从本地管理员组中删除的用户
query=“Security!*[System[(EventID=4733)]和 EventData[Data[@Name='TargetUserName']='Administrators']]”
证书服务收到证书请求(4886),已批准和颁发的证书(4887),拒绝请求(4888)
query=“Security!*[System[(EventID=4886 或 EventID=4887 或 EventID=4888)]]”
新建用户帐户(4720)、启用用户帐户(4722)、用户帐户已禁用(4725)、用户帐户已删除(4726)
query=“Security!*[System[(EventID=4720 或 EventID=4722 或 EventID=4725 或 EventID=4726)]]”
反恶意软件 旧 事件,但仅检测事件(减少噪音)
query=“System!*[System[Provider[@Name='Microsoft反恶意软件'] 和 (EventID = 1116 and EventID ><= 1119]]]
系统启动(12 - 包括 OS/SP/版本)和关闭
query=“System!*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=12 or EventID=13)]]”
服务安装 (7000), 服务启动失败 (7045)
query=“System!*[System[Provider[@Name='Service Control Manager'] and (EventID = 7000 or EventID=7045)]]”
关闭会启动具有用户、进程和原因的请求(如果已提供)
query=“System!*[System[Provider[@Name='USER32'] and (EventID=1074)]]”
事件日志服务事件
query=“System!*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]”
其他日志清除事件 (104)
query=“System!*[System[(EventID=104)]]”
EMET/Exploit 保护事件
query=“Application!*[System[Provider[@Name='EMET']]]”
仅限应用程序崩溃的 WER 事件
query=“Application!*[System[Provider[@Name='Windows 错误报告']] and EventData[Data[3]='APPCRASH']]”
使用临时配置文件(1511)登录的用户无法使用临时配置文件创建配置文件(1518)
query=“Application!*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]]”
应用程序崩溃/挂起事件,类似于 WER/1001。 其中包括错误 EXE/模块的完整路径。
query=“Application!*[System[Provider[@Name='Application Error'] and (EventID=1000)] 或 System[Provider[@Name='Application Hang'] and (EventID=1002)]]”
任务计划程序任务已注册 (106), 任务注册已删除 (141), 任务删除 (142)
query=“Microsoft-Windows-TaskScheduler/Operational!*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 或 EventID=142 )]]
AppLocker 打包(新式 UI)应用执行
query=“Microsoft-Windows-AppLocker/Packaged app-Execution!*”
AppLocker 打包(新式 UI)应用安装
query=“Microsoft-Windows-AppLocker/Packaged app-Deployment!*”
日志尝试的 TS 连接到远程服务器
query=“Microsoft-Windows-TerminalServices-RDPClient/Operational!*[System[(EventID=1024)]]”
获取主机上执行的所有智能卡卡持有者验证(CHV)事件(成功和失败)。
query=“Microsoft-Windows-SmartCard-Audit/Authentication!*”
获取所有 UNC/映射驱动器成功连接
query=“Microsoft-Windows-SMBClient/Operational!*[System[(EventID=30622 or EventID=30624]]]”
Modern SysMon 事件提供程序
query=“Microsoft-Windows-Sysmon/Operational!*”
新式 Windows Defender 事件提供程序检测事件(1006-1009)和(1116-1119):加上 (5001,5010,5012) 客户
query=“Microsoft-Windows-Windows Defender/Operational!*[System[(EventID >= 1006 and EventID <= 1009) 或 (EventID >= 1116 and EventID <= 1119) 或 (EventID = 5001 或 EventID = 5010 或 EventID = 5012) ]]”
代码完整性事件
query=“Microsoft-Windows-CodeIntegrity/Operational!*[System[Provider[@Name='Microsoft-Windows-CodeIntegrity'] and (EventID=3076 or EventID=3077)]]”
CA 停止/启动事件 CA 服务已停止(4880)、CA 服务启动(4881)、CA DB 行(秒)已删除(4896)、已加载 CA 模板(4898)
query=“Security!*[System[(EventID=4880 或 EventID = 4881 或 EventID = 4896 或 EventID = 4898)]]”
RRAS 事件 - 仅在 Microsoft IAS 服务器上生成
query=“Security!*[System[( EventID >= 6272 and EventID <= 6280) ]]”
进程终止 (4689)
query=“Security!*[System[(EventID = 4689)]]”
操作的注册表修改事件:新建注册表值(%%1904),现有注册表值已修改(%%1905),注册表值已删除(%%1906)
query=“Security!*[System[(EventID=4657)] 和 (EventData[Data[@Name='OperationType'] = '%%1904'] 或 EventData[Data[@Name='OperationType'] = '%%1905'] 或 EventData[data[@Name='OperationType'] = '%%1906']]] ”
向无线网络进行身份验证的请求(包括对等 MAC (5632)
query=“Security!*[System[(EventID=5632)]]”
系统已识别新的外部设备(6416)
query=“Security!*[System[(EventID=6416)]]”
RADIUS 身份验证事件用户分配的 IP 地址 (20274), 用户成功进行身份验证 (20250), 用户断开连接 (20275)
query=“System!*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 或 EventID=20250 或 EventID=20275)]]”
CAPI 事件生成链 (11), 访问私钥 (70), X509 对象 (90)
query=“Microsoft-Windows-CAPI2/Operational!*[System[(EventID=11 或 EventID=70 或 EventID=90)]]”
分配给新登录名的组(已知内置帐户除外)
query=“Microsoft-Windows-LSA/Operational!*[System[(EventID=300)] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-20'] and EventData[[Data[@Name='TargetUserSid'] != 'S-1-5-18'] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-19']]
DNS 客户端事件
query=“Microsoft-Windows-DNS-Client/Operational!*[System[(EventID=3008)] and EventData[Data[@Name='QueryOptions'] != '140737488355328'] and EventData[Data[@Name='QueryResults']]”
检测加载的用户模式驱动程序 - 用于潜在的 BadUSB 检测。
query=“Microsoft-Windows-DriverFrameworks-UserMode/Operational!*[System[(EventID=2004)]]”
旧版 PowerShell 管道执行详细信息(800)
query=“Windows PowerShell!*[System[(EventID=800)]]”
Defender 已停止事件
query=“System!*[System[(EventID=7036)] and EventData[Data[@Name='param1']='Microsoft Defender 防病毒 Network Inspection Service'] and EventData[data[@Name='param2']='stopped']]
BitLocker 管理事件
query=“Microsoft-Windows-BitLocker/BitLocker Management!*”
后续步骤
了解有关以下方面的详细信息: