Coletar dados do Microsoft Windows AD
Este documento inclui as seguintes informações:
- Arquitetura de implantação e etapas de instalação, além de qualquer configuração necessária que produz registros compatíveis com o analisador Chronicle para eventos do Microsoft Windows Active Directory. Para uma visão geral da ingestão de dados do Chronicle, consulte Ingestão de dados do Chronicle.
- Informações sobre como o analisador mapeia os campos no registro original para os campos do modelo de dados unificado do Chronicle.
As informações neste documento se aplicam ao analisador com o rótulo de processamento WINDOWS_AD. O rótulo de processamento identifica qual analisador normaliza os dados brutos de registro para o formato UDM estruturado.
Antes de começar
Revisar a arquitetura de implantação recomendada
Este diagrama ilustra os componentes básicos recomendados em uma arquitetura de implantação para coletar e enviar eventos do Microsoft Windows para o Chronicle. Compare essas informações com o ambiente para garantir que esses componentes estejam instalados. Cada implantação de cliente é diferente dessa representação e pode ser mais complexa. Os itens a seguir são obrigatórios:
- Todos os sistemas na arquitetura de implantação são configurados com o fuso horário UTC.
- O script do PowerShell é criado e configurado em cada servidor Microsoft Windows AD para coletar dados USER_ contexto e ASSET_PROGRESS.
- O NXLog é instalado em cada servidor Microsoft Windows AD para enviar dados ao servidor central do Microsoft Windows ou Linux.
O encaminhador do Chronicle está instalado no servidor central do Microsoft Windows ou Linux para encaminhar dados de registro para o Chronicle.
Verificar os dispositivos e as versões compatíveis
O Chronicle Parser é compatível com registros das seguintes versões do servidor Microsoft Microsoft. O Microsoft Windows Server foi lançado com as seguintes edições: Foundation, Essentials, Standard e Datacenter. O esquema de eventos dos registros gerados por cada edição não é diferente.
- Microsoft Windows Server 2019
- Microsoft Windows Server 2016
- Microsoft Windows Server 2012
O analisador Chronicle é compatível com registros coletados pela NXLog Community ou Enterprise Edition.
Analisar os tipos de registro compatíveis
O analisador Chronicle analisará e normalizará os dados recuperados do contexto do usuário e do contexto do recurso. Ele é compatível com registros gerados com textos em inglês e com registros gerados em outros idiomas.
Configurar os servidores do Microsoft Windows AD
Etapas para configurar servidores do Microsoft Windows AD na arquitetura de implantação:
- Configure todos os sistemas com o fuso horário UTC.
- Em cada servidor Microsoft Active Directory, crie e configure um script do PowerShell para coletar dados de registro para um arquivo de saída. O NXLog lê o arquivo de saída e envia dados para o servidor central do Microsoft Windows ou Linux.
Crie o script do Powershell. Veja o exemplo a seguir: Altere o valor de
$OUTPUT_FILENAME
para o local em que o arquivo de saída precisa ser gravado. Esse arquivo será lido pelo NXLog. Os dados precisam ser armazenados no formato JSON. Define a codificação como utf8. Use o parâmetro-Filter
em vez do parâmetro-LDAPFilter
ao chamar os cmdletsGet-ADUser
eGet-ADComputer
.# Set the location where the log file will be written $OUTPUT_FILENAME="<Path_of_the_output_file>" If (Test-Path -Path $OUTPUT_FILENAME) { Remove-Item -path $OUTPUT_FILENAME -ErrorAction SilentlyContinue} # USER_CONTEXT: Gets all Active Directory users and their properties. Get-ADUser -Filter * -properties samAccountName | % { Get-ADUser $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append } # ASSET_CONTEXT: Gets all Active Directory assets and their properties. Get-ADComputer -Filter * -properties samAccountName | % { Get-ADComputer $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append }
Crie uma tarefa recorrente que execute o script para buscar e gravar dados no arquivo de saída.
- Abra o aplicativo Agendador de Tarefas.
- Clique em ""Criar tarefa" no painel direito.
- Digite o Nome e a Descrição da tarefa.
Marque a caixa de seleção ""Executar com privilégios mais altos" para garantir que todos os dados sejam recuperados.
Na guia "Triggers", defina quando você quer repetir a tarefa.
Na guia ""Action"", adicione uma nova ação e forneça o caminho do arquivo em que o script está armazenado.
Instale o agente NXLog em cada servidor Microsoft Active Directory. Esse aplicativo encaminha os registros para o servidor central do Microsoft Windows ou Linux. Siga a documentação do NXLog.
Crie um arquivo de configuração para cada instância do NXLog. Use o módulo im_file do NXLog para ler o arquivo e analisar as linhas em campos. Use o módulo om_tcp para encaminhar dados ao servidor Microsoft Windows ou Linux.
Veja um exemplo de configuração do NXLog. Substitua os valores
<hostname>
e<port>
por informações sobre o Microsoft Windows ou o Linux Server central. Na seção<Input in_adcontext>
e na propriedadeFile
, adicione o caminho do arquivo de registros de saída gravado pelo script do Powershell. Sempre definaDirCheckInterval
ePollInterval
. Se esses valores não estiverem definidos, o NXLog pesquisa enquetes de arquivos a cada um segundo.define ROOT C:\Program Files\nxlog define ADCONTEXT_OUTPUT_DESTINATION_ADDRESS <hostname> define ADCONTEXT_OUTPUT_DESTINATION_PORT <port> Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log <Input in_adcontext> Module im_file File "<Path_of_the_output_file>" DirCheckInterval 3600 PollInterval 3600 </Input> <Output out_chronicle_adcontext> Module om_tcp Host %ADCONTEXT_OUTPUT_DESTINATION_ADDRESS% Port %ADCONTEXT_OUTPUT_DESTINATION_PORT% </Output> <Route ad_context_to_chronicle> Path in_adcontext => out_chronicle_adcontext </Route>
Inicie o serviço NXLog em cada sistema.
Configurar o servidor central do Microsoft Windows ou Linux
Consulte Como instalar e configurar o encaminhador no Linux ou Como instalar e configurar o encaminhador no Microsoft Windows para mais informações sobre como instalar e configurar o encaminhador.
- Configure o sistema com o fuso horário UTC.
- Instale o encaminhador Chronicle no servidor Microsoft Windows ou Linux.
Configure o encaminhador do Chronicle para enviar registros ao Chronicle. Veja um exemplo de configuração do Encaminhar.
- syslog: common: enabled: true data_type: WINDOWS_AD batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10518 connection_timeout_sec: 60
Referência de mapeamento de campo: campos de registro de dispositivo para campos UDM
Nesta seção, descrevemos como o analisador mapeia os campos de registro originais para os modelos do modelo de dados unificado.
Registros de contexto do usuário
Campo NXLog | Campo UDM |
---|---|
GivenName | entity.entity.user.first_name. |
Sobrenome | entity.user.last_name. |
SamAccountName. | entity.user.userid |
Valor SID. | entity.entity.user.windows_sid |
ObjectClass | Se o valor for "user", entity.metadata.entity_type será definido como USER. |
ObjectGuid | entity.user.product_object_id |
AccountExpirationDate | Armazenado como um par entity.entity.user.attribute.label.key/value. |
badPwdCount. | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Nome canônico | entity.enitity.administrator_domain |
Cidade | entity.entity.user.personal_address.city |
Empresa | entity.entity.user.company_name. |
Country | entity.entity.user.personal_address.country_or_region. |
Departamento | entity.entity.user.department |
Descrição | entity.metadata.description |
DisplayName | entity.user.user_display_name |
EmailAddress | entity.entity.user.email_addresses |
EmployeeID | entity.entity.user.funcionário_id |
Diretório principal | entity.file.full_path |
Página inicial | entity.entity.url |
Telefone residencial | entity.entity.user.phone_numbers |
LastBadPasswordTentativa | Armazenado como um par entity.entity.user.attribute.label.key/value. |
lastLogoff | Armazenado como um par entity.entity.user.attribute.label.key/value. |
lastLogon. | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Data do último registro | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Gerente | Valores de GUID, SAMAccountname, SID mapeados para diferentes campos de UDM: - SID é armazenado em manager.windows_sid - Nome distinto (ou seja, valor no primeiro CN) é armazenado em manager.user_display_name - GUID,SamAccountName é armazenado em manager.userid |
Membro de | Os seguintes campos na primeira ocorrência da CN são definidos: entity.relations.entity.group.group_display_name entity.relations.entity_type definido como GROUP entity.relations.relationship set t0 MEMBER entity.relations.direction definido como UNIDIRECTIONAL |
Smartphone | entity.entity.user.phone_numbers |
Escritório | entity.entity.user.office_address.name |
Senha expirada | Armazenado como um par entity.entity.user.attribute.label.key/value. |
PasswordLastSet | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Senha nunca expira | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Senha não necessária | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Grupo_principal | Os campos a seguir são definidos: - entity.relations.entity.group.group_display_name - entity.relations.entity_type definido como GROUP - entity.relations.relationship definido como MEMBER - entity.relations.direction definido como UNIDirectionAL |
Nomes principais do serviço | Armazenado como um par entity.entity.user.attribute.label.key/value. |
Estado | entity.entity.user.personal_address.state |
StreetAddress | entity.entity.user.personal_address.name |
Título | entity.entity.user.title |
whenCreated | entity.user.attribute.creation_time |
Registros de contexto de recursos
Campo NXLog | Campo do UDM |
---|---|
DNSHostName. | entity.asset.asset.hostname |
SamAccountName. | entity.asset.asset_id |
Valor SID. | entity.entity.user.windows_sid |
ObjectClass | Se o valor for "computer", entity.metadata.entity_type, definido como ASSET |
ObjectGuid | entity.asset.asset.product_id |
AccountExpirationDate | entity.entity.asset.attribute.label.key/value |
badPwdCount. | entity.entity.asset.attribute.label.key/value |
Nome canônico | entity.entity_administrator_domain |
countryCode | entity.entity.asset.location.country_or_region |
Descrição | entity.metadata.description |
Página inicial | entity.entity.url |
IPv4: endereço | entity.asset.ip.p |
IPv6 | entity.asset.ip.p |
LastBadPasswordTentativa | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
lastLogoff | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
lastLogon. | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
Data do último registro | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
Local | entity.entity.asset.location.name |
Gerenciada por | Os seguintes campos são definidos: entity.entity.user.user_display_name entity.relations.entity_type definido como USER entity.relations.relationship definido como ADMINISTERS entity.relations.direction definido como UNIDirectionAL |
Categoria do objeto | entity.entity.asset.category |
OperatingSystem | Se o nome contiver "Windows", o campo entity.entity.asset.platform_software.platform está definido como WINDOWS. |
OperatingSystemServicePack | entity.entity.asset.platform_software.platform_patch_level |
OperatingSystemVersion | O campo entity.entity.asset.platform_software.platform_version está definido como %{OperatingSystem} - %{OperatingSystemVersion} |
Senha expirada | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
PasswordLastSet | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
Senha nunca expira | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
Senha não necessária | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
Grupo_principal | Os seguintes campos são definidos: - entity.relations.entity.group.group_display_name - entity.relations.entity_type definido como GROUP - entity.relations.relationship definido como MEMBER - entity.relations.direction definido como UNIdirectionAL |
Nomes principais do serviço | Armazenado como um par entity.entity.asset.attribute.label.key/value. |
whenChanged | entity.asset.attribute.last_update_time |
whenCreated | entity.asset.attribute.creation_time |