Raccogliere i dati di Microsoft Windows AD

Questo documento include le seguenti informazioni:

  • Architettura di deployment e passaggi di installazione, oltre a qualsiasi configurazione richiesta che produca log supportati dall'analizzatore sintattico di Chronicle per gli eventi di Active Directory di Microsoft Windows. Per una panoramica dell'importazione dei dati di Chronicle, consulta la sezione Importazione dei dati su Chronicle.
  • Informazioni su come l'analizzatore sintattico mappa i campi nel log originale ai campi del modello di dati unificati Chronicle.

Le informazioni contenute in questo documento si applicano all'analizzatore sintattico con l'etichetta di importazione WINDOWS_AD. L'etichetta di importazione identifica quale analizzatore sintattico normalizza i dati di log non elaborati nel formato UDM strutturato.

Prima di iniziare

Questo diagramma illustra i componenti di base consigliati in un'architettura di deployment per raccogliere e inviare eventi di Microsoft Windows a Chronicle. Confronta queste informazioni con il tuo ambiente per assicurarti che questi componenti siano installati. Il deployment di ciascun cliente sarà diverso da quello indicato e potrebbe essere più complesso. È obbligatorio:

  • Tutti i sistemi nell'architettura di deployment sono configurati con il fuso orario UTC.
  • Lo script di PowerShell viene creato e configurato su ogni server AD di Microsoft Windows per raccogliere i dati USER_CONTEXT e ASSET_CONTEXT.
  • NXLog viene installato su ogni server Microsoft Windows AD per l'invio di dati al server Microsoft Windows o Linux centrale.
  • L'inoltro di Chronicle è installato sul server centrale di Microsoft Windows o Linux per inoltrare i dati di log a Chronicle.

    Architettura di deployment

Esamina le versioni e i dispositivi supportati

L'analizzatore sintattico di Chronicle supporta i log delle seguenti versioni di server Microsoft Windows. Microsoft Windows Server è disponibile con le seguenti versioni: Foundation, Essentials, Standard e Datacenter. Lo schema di log generato da ogni versione non è diverso.

  • Microsoft Windows Server 2019
  • Microsoft Windows Server 2016
  • Microsoft Windows Server 2012

L'analizzatore sintattico di Chronicle supporta i log raccolti da NXLog Community o Enterprise Edition.

Esamina i tipi di log supportati

L'analizzatore sintattico di Chronicle analizza e normalizza i dati recuperati da User Context e Asset Context. Supporta i log generati con testo in lingua inglese e non è supportato con i log generati in lingue diverse dall'inglese.

Configurare i server di Microsoft Windows AD

Per configurare i server AD di Microsoft Windows nell'architettura di deployment:

  1. Configura tutti i sistemi con il fuso orario UTC.
  2. Su ogni server Active Directory di Microsoft Windows, crea e configura uno script di PowerShell per raccogliere i dati del log in un file di output. NXLog legge il file di output e invia i dati al server centrale di Microsoft Windows o Linux.
  3. Crea lo script di PowerShell. Vedi l'esempio di seguito. Modifica il valore di $OUTPUT_FILENAME nella posizione in cui deve essere scritto il file di output. Questo file verrà letto da NXLog. I dati devono essere archiviati in formato JSON. Imposta la codifica su utf8. Utilizza il parametro -Filter anziché il parametro -LDAPFilter durante la chiamata ai cmdlet 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. Crea un'attività ricorrente che esegue lo script per recuperare e scrivere dati nel file di output.

    1. Apri l'applicazione del programma di pianificazione attività.
    2. Fai clic su "Crea attività" nel riquadro a destra.
    3. Inserisci il nome e la descrizione dell'attività,
    4. Seleziona la casella di controllo"Esegui con privilegi più elevati"per assicurarti che tutti i dati vengano recuperati. Creare un&#39;attività

    5. Nella scheda "Attivatori", definisci quando vuoi ripetere l'attività.

    6. Nella scheda "Azione", aggiungi una nuova azione e fornisci il percorso del file in cui è archiviato lo script. Crea una pianificazione

  5. Installa l'agente NXLog su ogni server Microsoft Windows Active Directory. Questa applicazione inoltra i log al server Microsoft Windows o Linux centrale. Segui la documentazione di NXLog.

  6. Crea un file di configurazione per ogni istanza NXLog. Utilizza il modulo NXLog im_file per leggere dal file e analizzare le righe nei campi. Utilizza il modulo om_tcp per inoltrare i dati al server Microsoft Windows o Linux centrale.

    Di seguito è riportata una configurazione di esempio di NXLog. Sostituisci i valori <hostname> e <port> con le informazioni sul server Microsoft Windows o Linux centrale di destinazione. Nella sezione <Input in_adcontext> e nella proprietà File, aggiungi il percorso del file di log dell'output scritto dallo script di PowerShell. Imposta sempre DirCheckInterval e PollInterval. Se non sono definiti, NXLog esegue il polling dei file ogni 1 secondo.

    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. Avvia il servizio NXLog in ciascun sistema.

Configurare il server centrale di Microsoft Windows o Linux

Per informazioni sull'installazione e la configurazione dell'inoltro, consulta Installare e configurare lo strumento di inoltro su Linux o Installare e configurare lo strumento di inoltro su Microsoft Windows.

  1. Configura il sistema utilizzando il fuso orario UTC.
  2. Installa lo strumento di inoltro Chronicle sul server centrale di Microsoft Windows o Linux.
  3. Configura lo strumento di inoltro di Chronicle per inviare i log a Chronicle. Ecco una configurazione di esempio dell'inoltro.

      - 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
    

Riferimento per la mappatura dei campi: campi dei log del dispositivo nei campi UDM

In questa sezione viene descritto in che modo l'analizzatore sintattico mappa i campi di log originali ai campi Unified Data Model.

Log di contesto utente

Campo NXLog Campo UDM
Nome entity.entity.user.first_name
Cognome entity.entity.user.last_name
NomeAccount Sama entity.entity.user.id
ValoreSID. entity.entity.user.windows_sid
ObjectClass Se il valore è "user",
entity.metadata.entity_type è impostato su USER
ObjectGuid entità.entity.user.product_object_id
DataScadenzaAccount Archiviato come coppia entity.entity.user.attribute.label.key/value.
BadPwdCount Archiviato come coppia entity.entity.user.attribute.label.key/value.
Nome canonico entity.enitity.administrative_domain (dominio_amministrativo)
City (Città) entity.entity.user.personal_address.city
Azienda entità.entity.user.company_name
Paese entità.entity.user.personal_address.country_or_region
Dipartimento entity.entity.user.department
Descrizione entity.metadata.description
DisplayName entità.entity.user.user_display_name
EmailAddress entity.entity.user.email_addresses
ID dipendente entità.entity.user.employee_id
Home directory entità.entity.file.full_path
Home page entity.entity.url
Telefono (casa) entità.entity.phone_numbers
LastBadPasswordTry Archiviato come coppia entity.entity.user.attribute.label.key/value.
ultimo logoff Archiviato come coppia entity.entity.user.attribute.label.key/value.
ultimo logon Archiviato come coppia entity.entity.user.attribute.label.key/value.
Data accesso ultimo log Archiviato come coppia entity.entity.user.attribute.label.key/value.
Manager Valori per GUID, SAMAccountname, SID, tutti mappati a diversi campi UDM:
- SID viene memorizzato in manager.windows_sid
- Il nome distinto (ovvero il valore nel primo CN) viene memorizzato in manager.user_display_name
- GUID, SamAccountName viene memorizzato in manager.userid
Membro di I seguenti campi nella prima occorrenza di CN sono impostati:
entity.relations.entity.group.group_display_name
entity.relations.entity_type è impostato su GROUP
entity.relations.relationship impostato su T0 MEMBER
entity.relations.direction impostato su UNIDIRECTIONAL
Telefono cellulare entità.entity.phone_numbers
Ufficio entity.entity.user.office_address.name
Password scaduta Archiviato come coppia entity.entity.user.attribute.label.key/value.
PasswordLastSet Archiviato come coppia entity.entity.user.attribute.label.key/value.
Password mai scaduta Archiviato come coppia entity.entity.user.attribute.label.key/value.
Password non obbligatoria Archiviato come coppia entity.entity.user.attribute.label.key/value.
GruppoPrincipale Sono stati impostati i seguenti campi:
- entity.relations.entity.group.group_display_name
- entity.relations.entity_type è impostato su GROUP
- entity.relations.relationship impostato su MEMBER
- entity.relations.direction impostato su UNIDIRECTIONAL
NomiEntità servizio Archiviato come coppia entity.entity.user.attribute.label.key/value.
Stato entity.entity.user.personal_address.state
Indirizzo entity.entity.user.personal_address.name
Titolo entity.entity.user.title
quando creato entity.user.attribute.creation_time

Log di contesto asset

Campo NXLog Campo UDM
NomeHost DNS nome.entità.asset.nomehost
NomeAccount Sama entity.entity.asset.asset_id
ValoreSID. entity.entity.user.windows_sid
ObjectClass Se il valore è "computer", entity.metadata.entity_type è impostato su ASSET
ObjectGuid entity.entity.asset.product_object_id
DataScadenzaAccount entity.entity.asset.attribute.label.key/value
BadPwdCount entity.entity.asset.attribute.label.key/value
Nome canonico entity.entity.administrative_domain
codice paese entity.entity.asset.location.country_or_region
Descrizione entity.entity.metadata.description
Home page entity.entity.url
Indirizzo IPv4 entity.entity.asset.ip
Indirizzo IPv6 entity.entity.asset.ip
LastBadPasswordTry Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
ultimo logoff Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
ultimo logon Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
Data accesso ultimo log Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
Località entity.entity.asset.location.name
Gestito da Sono impostati i seguenti campi:

entity.entity.user.user_display_name
entity.relations.entity_type è impostato su USER
entity.relations.relationship impostato su ADMINISTERS
entity.relations.direction impostato su UNIDIRECTIONAL
Categoria entità.entity.category
Sistema operativo Se il nome contiene "Windows", il campo entity.entity.platform_software.platform è impostato su WINDOWS.
OperatingSystemServicePack entity.entity.platform_software.platform.patch_level
Versione sistema operativo L'entità del campo entity.entity.platform_software.platform_version è impostata su {7}OperatingSystem} - {9/}OperatingSystemVersion}
Password scaduta Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
PasswordLastSet Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
Password mai scaduta Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
Password non obbligatoria Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
GruppoPrincipale Sono impostati i seguenti campi:
- entity.relations.entity.group.group_display_name
- entity.relations.entity_type è impostato su GROUP
- entity.relations.relationship impostato su MEMBER
- entity.relations.direction impostato su UNIDIRECTIONAL
NomiEntità servizio Archiviato come coppia di entità.entity.asset.attribute.label.key/value.
quandoCambiato entity.entity.asset.attribute.last_update_time
quando creato entity.entity.asset.attribute.creation_time