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

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.

    Arquitetura de implantação

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:

  1. Configure todos os sistemas com o fuso horário UTC.
  2. 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.
  3. 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 cmdlets Get-ADUser e Get-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 }
    
  4. Crie uma tarefa recorrente que execute o script para buscar e gravar dados no arquivo de saída.

    1. Abra o aplicativo Agendador de Tarefas.
    2. Clique em ""Criar tarefa" no painel direito.
    3. Digite o Nome e a Descrição da tarefa.
    4. Marque a caixa de seleção ""Executar com privilégios mais altos" para garantir que todos os dados sejam recuperados. Criar uma tarefa

    5. Na guia "Triggers&quot, defina quando você quer repetir a tarefa.

    6. Na guia ""Action&quot", adicione uma nova ação e forneça o caminho do arquivo em que o script está armazenado. Criar uma programação

  5. 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.

  6. 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 propriedade File, adicione o caminho do arquivo de registros de saída gravado pelo script do Powershell. Sempre defina DirCheckInterval e PollInterval. 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>
    
  7. 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.

  1. Configure o sistema com o fuso horário UTC.
  2. Instale o encaminhador Chronicle no servidor Microsoft Windows ou Linux.
  3. 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