Coletar dados do Microsoft Windows Sysmon
Este documento:
- descreve a arquitetura de implantação e as etapas de instalação, além de qualquer configuração necessária que produza registros compatíveis com o Chronicle Parser para eventos do Microsoft Windows Sysmon. Para uma visão geral da ingestão de dados do Chronicle, consulte Ingestão de dados no Chronicle.
- inclui informações sobre como o analisador mapeia campos no registro original para campos de modelo de dados unificados do Chronicle.
As informações neste documento se aplicam ao analisador com o rótulo de ingestão WINDOWS_SYSMON. O identificador de processamento identifica qual analisador analisa os dados brutos de registro no formato UDM estruturado.
Antes de começar
Analisar a arquitetura de implantação recomendada
Este diagrama representa os principais componentes recomendados em uma arquitetura de implantação para coletar e enviar dados do Microsoft Windows Sysmon ao Chronicle. Compare essas informações com seu ambiente para garantir que esses componentes estejam instalados. Cada implantação do cliente será diferente dessa representação e poderá ser mais complexa. Os requisitos a seguir são obrigatórios:
- Os sistemas na arquitetura de implantação são configurados com o fuso horário UTC.
- O Sysmon é instalado em servidores, endpoints e controladores de domínio.
- O servidor do Microsoft Windows do coletor recebe registros de servidores, endpoints e controladores de domínio.
Os sistemas do Microsoft Windows na arquitetura de implantação usam o seguinte:
- Assinaturas iniciadas para coletar eventos em vários dispositivos.
- Serviço WinRM para gerenciamento de sistema remoto.
O NXLog é instalado no servidor da janela do coletor para encaminhar registros para o encaminhador do Chronicle.
O encaminhador do Chronicle é instalado em um servidor Microsoft Windows ou Linux central.
Analisar os dispositivos e as versões compatíveis
O analisador do Chronicle é compatível com registros gerados pelas seguintes versões do servidor Microsoft Windows. O Microsoft Windows Server foi lançado com as seguintes edições: Foundation, Essentials, Standard e Datacenter. O esquema de eventos de registros gerados por cada edição não é diferente.
- Microsoft Windows Server 2019
- Microsoft Windows Server 2016
- Microsoft Windows Server 2012
O analisador do Chronicle é compatível com registros gerados por:
- Microsoft Windows 7 e sistemas mais recentes de clientes
- Sysmon versão 13.24.
O analisador do Chronicle é compatível com os registros coletados pela NXLog Community ou Enterprise.
Revisar os tipos de registro compatíveis
O analisador do Chronicle é compatível com os seguintes tipos de registro gerados pelo Microsoft Windows Sysmon. Veja mais informações sobre esses tipos de registro na documentação do Microsoft Windows Sysmon. Ele aceita registros gerados com texto em inglês e não é compatível com registros gerados em outros idiomas.
Tipo de registro | Descrição |
---|---|
Registros Sysmon | O canal Sysmon contém 27 IDs do evento. (ID do evento: 1 a 26 e 255). Para ver uma descrição desse tipo de registro, consulte a documentação de eventos do Microsoft Windows Sysmon. |
Configurar servidores, endpoints e controladores de domínio do Microsoft Windows
- Instale e configure servidores, endpoints e controladores de domínio. Veja mais informações na documentação de configuração do Microsoft Windows Sysmon.
- Configurar um servidor Microsoft Windows do coletor para analisar os registros coletados de vários sistemas.
- Configurar o servidor central do Microsoft Windows ou Linux
- Configurar todos os sistemas com o fuso horário UTC.
- Configure os dispositivos para encaminhar registros para o servidor do Microsoft Windows do coletor.
- Configurar assinaturas iniciadas pela origem em sistemas Microsoft Windows. Para mais informações, consulte Como configurar uma assinatura iniciada pela origem.
- Ative o WinRM nos servidores e clientes do Microsoft Windows. Veja informações em Instalação e configuração do Gerenciamento remoto do Microsoft Windows.
Configurar NXLog e encaminhador do Chronicle
- Instale o NXLog no servidor do Microsoft Windows do coletor. Siga a documentação do NXLog, incluindo informações sobre como configurar o NXLog para coletar registros do Sysmon.
Crie um arquivo de configuração para o NXLog. Use o módulo de entrada im_msvistalog. Veja um exemplo de configuração de NXLog. Substitua os valores
<hostname>
e<port>
pelas informações sobre o servidor central do Microsoft Windows ou Linux de destino. Para mais informações, consulte a documentação do NXLog sobre o módulo om_tcp.define ROOT C:\Program Files (x86)\nxlog define SYSMON_OUTPUT_DESTINATION_ADDRESS <hostname> define SYSMON_OUTPUT_DESTINATION_PORT <port> define CERTDIR %ROOT%\cert define CONFDIR %ROOT%\conf define LOGDIR %ROOT%\data define LOGFILE %LOGDIR%\nxlog.log LogFile %LOGFILE% Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data <Extension _json> Module xm_json </Extension> <Input windows_sysmon_eventlog> Module im_msvistalog <QueryXML> <QueryList> <Query Id="0"> <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select> </Query> </QueryList> </QueryXML> ReadFromLast False SavePos False </Input> <Output out_chronicle_sysmon> Module om_tcp Host %SYSMON_OUTPUT_DESTINATION_ADDRESS% Port %SYSMON_OUTPUT_DESTINATION_PORT% Exec $EventTime = integer($EventTime) / 1000; Exec $EventReceivedTime = integer($EventReceivedTime) / 1000; Exec to_json(); </Output> <Route r2> Path windows_sysmon_eventlog => out_chronicle_sysmon </Route>
Instale o encaminhador do Chronicle no servidor Microsoft Windows ou Linux central. Consulte Como instalar e configurar o encaminhador no Linux ou Como instalar e configurar o encaminhador no Microsoft Windows para ver informações sobre como instalar e configurar o encaminhador no Linux.
Configure o encaminhador do Chronicle para enviar registros ao Chronicle. Este é um exemplo de configuração de encaminhador.
- syslog: common: enabled: true data_type: WINDOWS_SYSMON Data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10518 connection_timeout_sec: 60
Inicie o serviço NXLog.
Referência de mapeamento de campo: campos de evento do dispositivo para campos do UDM
Nesta seção, descrevemos como o analisador mapeia campos do registro de dispositivos originais para os campos de modelo de dados unificado (UDM, na sigla em inglês). O mapeamento de campo pode variar de acordo com o ID do evento.
Campos comuns
Campo "NXLog" | Campo de UDM |
---|---|
Horário de Utc | metadata.event_timestamp |
Categoria | security_result.summary e metadata.product_event_type |
Nome da conta | principal.user.userid |
Domínio | principal.dominio_administrativo |
Número de registro | metadata.product_log_id |
Nome do host | principal.nomedohost |
ID do usuário | principal.user.windows_sid |
Valor de gravidade | segurança_resultado.gravidade |
Código do evento | security_result.rule_name definida como "EventID: %{EventID}" metadata.product_event_type definido como "%{Category} [%{EventID}]" |
ID do evento: 1
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_LAUNCH" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | target.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | target.process.pid |
Image | target.process.file.full_path |
Description | metadata.description |
CommandLine | target.process.command_line |
CurrentDirectory | src.file.full_path |
User | Domain stored in principal.administrative_domain Username stored in principal.user.userid |
Hashes | Based on Hash algorithm.
|
ParentProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ParentProcessGuid> " |
ParentProcessId | principal.process.pid |
ParentImage | principal.process.file.full_path |
ParentCommandLine | principal.process.command_line |
ID do evento: 2
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "FILE_MODIFICATION" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetFilename | target.file.full_path |
CreationUtcTime | target.resource.attribute.labels.key set to "CreationUtcTime" and value stored in target.resource.attribute.labels.value |
PreviousCreationUtcTime | target.resource.attribute.labels.key set to "PreviousCreationUtcTime" and value stored in target.resource.attribute.labels.value |
ID do evento: 3
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "NETWORK_CONNECTION" security_result.action set to "ALLOW" network.direction" set to "OUTBOUND" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
User | Domain stored in principal.administrative_domain Username stored in principal.user.userid" |
Protocol | network.ip_protocol |
SourceIp | principal.ip |
SourcePort | principal.port |
DestinationIp | target.ip |
DestinationHostname | target.hostname |
DestinationPort | target.port |
ID do evento: 4
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "SETTING_MODIFICATION" target.resource.resource_type set to "SETTING" resource.resource_subtype set to "State" |
|
UtcTime | metadata.event_timestamp |
State | target.resource.name |
Version | metadata.product_version |
ID do evento: 5
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_TERMINATION" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> |
ProcessId | target.process.pid |
Image | target.process.file.full_path |
ID do evento: 6
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_MODULE_LOAD" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ImageLoaded | principal.process.file.full_path |
Hashes | The field populated is determined by the Hash algorithm.
|
Signed | target.resource.attribute.labels.key set to "Signed" and value set to target.resource.attribute.labels.value |
Signature | target.resource.attribute.labels.key set to "Signature" and value stored in target.resource.attribute.labels.value |
SignatureStatus | target.resource.attribute.labels.key set to "SignatureStatus" and value stored in target.resource.attribute.labels.value |
ID do evento: 7
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_MODULE_LOAD" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
ImageLoaded | target.process.file.full_path |
Description | metadata.description |
Hashes | The field populated is determined by the Hash algorithm.
|
Signed | target.resource.attribute.labels.key set to "Signed" and value stored in target.resource.attribute.labels.value |
Signature | target.resource.attribute.labels.key set to "Signature" Signature value in target.resource.attribute.labels.value |
SignatureStatus | target.resource.attribute.labels.key set to "SignatureStatus" and value stored in target.resource.attribute.labels.value |
ID do evento: 8
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_MODULE_LOAD" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
SourceProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<SourceProcessGuid> " |
SourceProcessId | principal.process.pid |
SourceImage | principal.process.file.full_path |
TargetProcessGuid | target.process.product_specific_process_id set to
"SYSMON:<TargetProcessGuid> " |
TargetProcessId | target.process.pid |
TargetImage | target.process.file.full_path |
ID do evento: 9
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "FILE_READ"
If the Device log field, which is required to validate the FILE_READ UDM event type, is not available, then metadata.event_type is set to "GENERIC_EVENT". |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
Device | target.file.full_path |
ID do evento: 10
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_OPEN" target.resource.resource_subtype set to "GrantedAccess" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
SourceProcessGUID | principal.process.product_specific_process_id set to
"SYSMON:<SourceProcessGuid> " |
SourceProcessId | principal.process.pid |
SourceImage | principal.process.file.full_path |
TargetProcessGUID | target.process.product_specific_process_id set to
"SYSMON:<TargetProcessGuid> " |
TargetProcessId | target.process.pid |
TargetImage | target.process.file.full_path |
GrantedAccess | target.resource.name |
ID do evento: 11
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "FILE_CREATION" target.resource.resource_subtype set to "CreationUtcTime" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetFilename | target.file.full_path |
CreationUtcTime | target.resource.name |
ID do evento: 12
Campo "NXLog" | Campo de UDM |
---|---|
If the Message the field contains "CreateKey|CreateValue", then
metadata.event_type set to "REGISTRY_CREATION" If the Message field contains "DeleteKey|DeleteValue", then metadata.event_type set to REGISTRY_DELETION Otherwise, metadata.event_type set to "REGISTRY_MODIFICATION" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetObject | target.registry.registry_key |
ID do evento: 13
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "REGISTRY_MODIFICATION" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetObject | target.registry.registry_key |
Details | target.registry.registry_value_data |
ID do evento: 14
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "REGISTRY_MODIFICATION" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetObject | src.registry.registry_key |
NewName | target.registry.registry_key |
ID do evento: 15
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to FILE_CREATION | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | principal.process.file.full_path |
TargetFilename | target.file.full_path |
CreationUtcTime | target.resource.attribute.labels.key set to "CreationUtcTime" and value stored in target.resource.attribute.labels.value |
Hash | The field populated is determined by the Hash algorithm.
|
ID do evento: 16
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "SETTING_MODIFICATION" | |
UtcTime | metadata.event_timestamp |
ProcessID | target.process.pid |
Configuration | The value is stored in target.process.command_line when this field value
contains any command line or process The value is stored in target.process.file.full_path when this field value contains the configuration file path. |
ConfigurationFileHash | The field populated is determined by the Hash algorithm.
|
ID do evento: 17
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_UNCATEGORIZED" target.resource.resource_type set to "PIPE" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | target.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | target.process.pid |
PipeName | target.resource.name |
Image | target.process.file.full_path |
ID do evento: 18
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_UNCATEGORIZED" target.resource.resource_type set to "PIPE" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | target.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | target.process.pid |
PipeName | target.resource.name |
Image | target.process.file.full_path |
ID do evento: 19
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to USER_RESOURCE_ACCESS | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
Operation | |
User | The Domain is stored in principal.administrative_domain The Username is stored in principal.user.userid |
EventNamespace | target.file.full_path |
Name | target.application |
Query | target.resource.name |
ID do evento: 20
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "USER_RESOURCE_ACCESS" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
Operation | target.resource.attribute.labels.key set to "Operation" and the value is stored in target.resource.attribute.labels.value |
User | The domain is stored in principal.administrative_domain The Username is stored in principal.user.userid |
Name | target.resource.attribute.labels.key set to "Name" Name value in target.resource.attribute.labels.value |
Type | target.resource.attribute.labels.key set to "Type" and the value is stored in target.resource.attribute.labels.value |
Destination | target.resource.name |
ID do evento: 21
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "USER_RESOURCE_ACCESS" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
Operation | target.resource.attribute.labels.key set to "Operation" and the value is stored in target.resource.attribute.labels.value |
User | The domain is stored in principal.administrative_domain The username is stored in principal.user.userid |
Consumer | target.resource.attribute.labels.key set to "Consumer" and the value is stored in target.resource.attribute.labels.value |
Filter | target.resource.name |
ID do evento: 22
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "NETWORK_DNS" network.application_protocol set to "DNS" |
|
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
QueryName | network.dns.questions |
QueryStatus | Stored in security_result.summary as "Query Status: |
QueryResults | Type is saved to network.dns.answers.type with values separated by a
semicolon (;) Data is saved to network.dns.answers.data Values that do not have type are mapped to network.dns.answers.data. |
Image | principal.process.file.full_path |
ID do evento: 23
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "FILE_DELETION" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
User | Domain stored into principal.administrative_domain Username stored in principal.user.userid |
Image | principal.process.file.full_path |
TargetFilename | target.file.full_path |
Hashes | The field populated is determined by the Hash algorithm.
|
IsExecutable | Field target.resource.attribute.labels.key set to "IsExecutable" and the value is stored in target.resource.attribute.labels.value |
Archived | target.resource.attribute.labels.key set to "Archived" and the value is stored in target.resource.attribute.labels.value |
ID do evento: 24
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "RESOURCE_READ" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | target.process.product_specific_process_id set to
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | target.process.file.full_path target.resource.name |
ClientInfo | ip stored in target.ip hostname stored in target.hostname user stored in principal.user.userid |
Hashes | The field populated is determined by the Hash algorithm.
|
Archived | target.resource.attribute.labels.key set to "Archived" and value stored in target.resource.attribute.labels.value |
ID do evento: 25
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to "PROCESS_LAUNCH" | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | target.process.product_specific_process_id stored as
"SYSMON:<ProcessGuid> " |
ProcessId | principal.process.pid |
Image | target.process.file.full_path |
ID do evento: 26
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to FILE_DELETION | |
RuleName | security_result.rule_name |
UtcTime | metadata.event_timestamp |
ProcessGuid | principal.process.product_specific_process_id set to "SYSMON:%{ProcessGuid} |
ProcessId | principal.process.pid |
User | Domain set to principal.administrative_domain Username set to principal.user.userid |
Image | principal.process.file.full_path |
TargetFilename | target.file.full_path |
Hashes | Based on Hash algorithm. MD5 set to target.process.file.md5 SHA256 set to target.process.file.sha256 SHA1 set to target.process.file.sha1 |
IsExecutable | target.resource.attribute.labels.key set to "IsExecutable" & value in target.resource.attribute.labels.value |
ID do evento: 255
Campo "NXLog" | Campo de UDM |
---|---|
metadata.event_type set to SERVICE_UNSPECIFIED metadata.product_event_type set to "Error - [255]" target.application set to "Microsoft Sysmon" |
|
UtcTime | metadata.event_timestamp |
ID | security_result.summary |
Description | security_result.description |