Raccogliere dati Microsoft Windows AD
Questo documento include le seguenti informazioni:
- Architettura di deployment e passaggi di installazione, oltre a eventuali configurazioni necessarie che generano log supportati dall'analizzatore sintattico Chronicle per gli eventi di Microsoft Windows Active Directory. Per una panoramica dell'importazione dei dati di Chronicle, vedi Importazione di dati in Chronicle.
- Informazioni su come l'analizzatore sintattico mappa i campi nel log originale ai campi Chronicle Unified Data Model.
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 in formato UDM strutturato.
Prima di iniziare
Esamina l'architettura di deployment consigliata
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. L'implementazione di ciascun cliente sarà diversa da quella della rappresentazione e potrebbe essere più complessa. È 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 Microsoft Windows AD per raccogliere i dati USER_CONTEXT e ASSET_CONTEXT.
- NXLog è installato su ogni server Microsoft Windows AD per inviare dati al server Microsoft Windows o Linux centrale.
L'inoltro Chronicle è installato sul server centrale Microsoft Windows o Linux per inoltrare i dati di log a Chronicle.
Esaminare i dispositivi e le versioni 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 eventi dei log generati da ogni edizione non cambia.
- Microsoft Windows Server 2019
- Microsoft Windows Server 2016
- Microsoft Windows Server 2012
L'analizzatore sintattico Chronicle supporta i log raccolti dalla community NXLog o da Enterprise Edition.
Esamina i tipi di log supportati
L'analizzatore sintattico Chronicle analizza e normalizza i dati recuperati da Contesto utente e da Contesto asset. Supporta i log generati con testo in lingua inglese e non è supportato per quelli generati in lingue diverse dall'inglese.
Configura i server AD di Microsoft Windows
Procedura per configurare i server Microsoft Windows AD nell'architettura di deployment:
- Configura tutti i sistemi che hanno il fuso orario UTC.
- Su ogni server Microsoft Windows Active Directory, 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 Microsoft Windows o Linux centrale.
Crea lo script di PowerShell. Vedi il seguente esempio. 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. Quando chiami i cmdletGet-ADUser
eGet-ADComputer
, utilizza il parametro-Filter
anziché il parametro-LDAPFilter
.# 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 }
Creare un'attività ricorrente che esegua lo script per recuperare e scrivere dati nel file di output.
- Apri l'applicazione Task Scheduler.
- Fai clic su "Crea attività" nel riquadro a destra.
- Inserisci il nome e la descrizione dell'attività,
Seleziona la casella di controllo"Esegui con privilegi più elevati". Per assicurarti che tutti i dati vengano recuperati.
Nella scheda "Attivatori", definisci quando vuoi ripetere l'attività.
Nella scheda"Azione", aggiungi una nuova azione e specifica il percorso del file in cui è archiviato lo script.
Installa l'agente NXLog su ciascun server Microsoft Windows Active Directory. Questa applicazione inoltra i log al server Microsoft Windows o Linux centrale. Segui la documentazione di NXLog.
Crea un file di configurazione per ogni istanza NXLog. Utilizza il modulo NXLog im_file per leggere dal file e analizzare le righe in campi. Utilizza il modulo om_tcp per inoltrare i dati al server Microsoft Windows o Linux centrale.
Ecco un esempio di configurazione NXLog. Sostituisci i valori
<hostname>
e<port>
con 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 di output scritto dallo script di PowerShell. Imposta sempreDirCheckInterval
ePollInterval
. Se non sono definiti, NXLog esegue il polling dei file ogni 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>
Avviare il servizio NXLog in ciascun sistema.
Configurare il server centrale di Microsoft Windows o Linux
Per informazioni sull'installazione e sulla configurazione dello strumento di forwarding, consulta Installare e configurare lo strumento di forwarding su Linux o Installare e configurare lo strumento di forwarding su Microsoft Windows.
- Configura il sistema con il fuso orario UTC.
- Installa lo strumento per l'inoltro di Chronicle sul server centrale Microsoft Windows o Linux.
Configura lo strumento per l'inoltro di Chronicle per inviare i log a Chronicle. Ecco un esempio di configurazione 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 del log dispositivo ai campi UDM
Questa sezione descrive il modo in cui l'analizzatore sintattico associa i campi di log originali ai campi di modelli di dati unificati.
Log del contesto utente
Campo NXLog | Campo UDM |
---|---|
GivenName | entity.entity.user.first_name |
Surname | entity.entity.user.last_name |
SamAccountName | entity.entity.user.userid |
SID.Value | entity.entity.user.windows_sid |
ObjectClass | If the value is "user", entity.metadata.entity_type is set to USER |
ObjectGuid | entity.entity.user.product_object_id |
AccountExpirationDate | Stored as an entity.entity.user.attribute.label.key/value pair. |
badPwdCount | Stored as an entity.entity.user.attribute.label.key/value pair. |
CanonicalName | entity.enitity.administrative_domain |
City | entity.entity.user.personal_address.city |
Company | entity.entity.user.company_name |
Country | entity.entity.user.personal_address.country_or_region |
Department | entity.entity.user.department |
Description | entity.metadata.description |
DisplayName | entity.entity.user.user_display_name |
EmailAddress | entity.entity.user.email_addresses |
EmployeeID | entity.entity.user.employee_id |
HomeDirectory | entity.entity.file.full_path |
HomePage | entity.entity.url |
HomePhone | entity.entity.user.phone_numbers |
LastBadPasswordAttempt | Stored as an entity.entity.user.attribute.label.key/value pair. |
lastLogoff | Stored as an entity.entity.user.attribute.label.key/value pair. |
lastLogon | Stored as an entity.entity.user.attribute.label.key/value pair. |
LastLogonDate | Stored as an entity.entity.user.attribute.label.key/value pair. |
Manager | Values for GUID, SAMAccountname, SID all mapped to different UDM fields: - SID is stored in manager.windows_sid - Distinguished name (i.e. value in first CN) is stored in manager.user_display_name - GUID,SamAccountName is stored in manager.userid |
MemberOf | The following fields in the first occurrence of CN are set: entity.relations.entity.group.group_display_name entity.relations.entity_type set to GROUP entity.relations.relationship set t0 MEMBER entity.relations.direction set to UNIDIRECTIONAL |
MobilePhone | entity.entity.user.phone_numbers |
Office | entity.entity.user.office_address.name |
PasswordExpired | Stored as an entity.entity.user.attribute.label.key/value pair. |
PasswordLastSet | Stored as an entity.entity.user.attribute.label.key/value pair. |
PasswordNeverExpires | Stored as an entity.entity.user.attribute.label.key/value pair. |
PasswordNotRequired | Stored as an entity.entity.user.attribute.label.key/value pair. |
PrimaryGroup | Following fields are set: - entity.relations.entity.group.group_display_name - entity.relations.entity_type set to GROUP - entity.relations.relationship set to MEMBER - entity.relations.direction set to UNIDIRECTIONAL |
ServicePrincipalNames | Stored as an entity.entity.user.attribute.label.key/value pair. |
State | entity.entity.user.personal_address.state |
StreetAddress | entity.entity.user.personal_address.name |
Title | entity.entity.user.title |
whenCreated | entity.user.attribute.creation_time |
Log di contesto asset
Campo NXLog | Campo UDM |
---|---|
DNSHostName | entity.entity.asset.hostname |
SamAccountName | entity.entity.asset.asset_id |
SID.Value | entity.entity.user.windows_sid |
ObjectClass | If the value is "computer", entity.metadata.entity_type set to ASSET |
ObjectGuid | entity.entity.asset.product_object_id |
AccountExpirationDate | entity.entity.asset.attribute.label.key/value |
badPwdCount | entity.entity.asset.attribute.label.key/value |
CanonicalName | entity.entity.administrative_domain |
countryCode | entity.entity.asset.location.country_or_region |
Description | entity.entity.metadata.description |
HomePage | entity.entity.url |
IPv4Address | entity.entity.asset.ip |
IPv6Address | entity.entity.asset.ip |
LastBadPasswordAttempt | Stored as an entity.entity.asset.attribute.label.key/value pair. |
lastLogoff | Stored as an entity.entity.asset.attribute.label.key/value pair. |
lastLogon | Stored as an entity.entity.asset.attribute.label.key/value pair. |
LastLogonDate | Stored as an entity.entity.asset.attribute.label.key/value pair. |
Location | entity.entity.asset.location.name |
ManagedBy | The following fields are set: entity.entity.user.user_display_name entity.relations.entity_type set to USER entity.relations.relationship set to ADMINISTERS entity.relations.direction set to UNIDIRECTIONAL |
ObjectCategory | entity.entity.asset.category |
OperatingSystem | If the name contains "Windows", entity.entity.asset.platform_software.platform field is set to WINDOWS. |
OperatingSystemServicePack | entity.entity.asset.platform_software.platform_patch_level |
OperatingSystemVersion | The field entity.entity.asset.platform_software.platform_version is set to %{OperatingSystem} - %{OperatingSystemVersion} |
PasswordExpired | Stored as an entity.entity.asset.attribute.label.key/value pair. |
PasswordLastSet | Stored as an entity.entity.asset.attribute.label.key/value pair. |
PasswordNeverExpires | Stored as an entity.entity.asset.attribute.label.key/value pair. |
PasswordNotRequired | Stored as an entity.entity.asset.attribute.label.key/value pair. |
PrimaryGroup | The following fields are set: - entity.relations.entity.group.group_display_name - entity.relations.entity_type set to GROUP - entity.relations.relationship set to MEMBER - entity.relations.direction set to UNIDIRECTIONAL |
ServicePrincipalNames | Stored as an entity.entity.asset.attribute.label.key/value pair. |
whenChanged | entity.entity.asset.attribute.last_update_time |
whenCreated | entity.entity.asset.attribute.creation_time |