Raccogliere i log di ManageEngine ADAudit Plus
Questo documento spiega come importare i log di ManageEngine ADAudit Plus in Google Security Operations utilizzando un agente Bindplane. Il parser gestisce i log di ADAudit Plus, convertendoli in formato UDM. Utilizza pattern grok per estrarre i campi dai messaggi formattati in formato SYSLOG (CEF) e chiave-valore, mappandoli ai campi UDM in base ai tipi di eventi derivati dai profili di avviso e report e arricchendo i dati con un contesto aggiuntivo. Il parser gestisce anche scenari specifici come errori di accesso, modifiche degli utenti e modifiche dei file, modificando di conseguenza il mapping UDM.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di utilizzare Windows 2016 o versioni successive oppure un host Linux con
systemd
. - Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
- Assicurati di disporre dell'accesso privilegiato a ManageEngine ADAudit.
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Risorse aggiuntive per l'installazione
- Per ulteriori opzioni di installazione, consulta questa guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps
Accedi al file di configurazione:
- Individua il file
config.yaml
. In genere, si trova nella directory/etc/bindplane-agent/
su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano
,vi
o Blocco note).
- Individua il file
Modifica il file
config.yaml
come segue:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: ADAUDIT_PLUS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.Aggiorna
/path/to/ingestion-authentication-file.json
al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart bindplane-agent
Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurazione di ManageEngine ADAudit Plus Syslog
- Accedi all'interfaccia utente web di ManageEngine ADAudit Plus.
- Vai ad Amministrazione > Configurazione > Integrazione SIEM.
- Seleziona Attiva per inviare i log di ADAudit Plus.
- Seleziona il formato ArcSight (CEF).
- Fornisci i seguenti dettagli di configurazione:
- Indirizzo IP: indirizzo IP dell'agente Bindplane.
- Port (Porta): numero di porta Bindplane; ad esempio,
514
per UDP. - Tipo di target: seleziona UDP (puoi selezionare anche TCP, a seconda della configurazione dell'agente Bindplane).
- Fai clic su Salva.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
Il valore di ACCOUNT_DOMAIN del log non elaborato viene assegnato a questo campo UDM. |
ACCOUNT_NAME |
principal.user.userid |
Il valore di ACCOUNT_NAME del log non elaborato viene assegnato a questo campo UDM. |
ALERT_PROFILE |
security_result.summary |
Il valore di ALERT_PROFILE del log non elaborato viene assegnato a questo campo UDM. |
APPLICATION_NAME |
target.resource.name |
Il valore di APPLICATION_NAME del log non elaborato viene assegnato a questo campo UDM. Imposta anche target.resource.resource_type su TASK e has_target_resource su true. |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
Il valore di CALLER_DISPLAY_NAME del log non elaborato viene assegnato a questo campo UDM. |
CALLER_USER_NAME |
target.user.userid |
Il valore di CALLER_USER_NAME del log non elaborato viene assegnato a questo campo UDM. |
CALLER_USER_SID |
target.group.windows_sid |
Il valore di CALLER_USER_SID del log non elaborato viene assegnato a questo campo UDM dopo la rimozione dei caratteri [%,{,}] . Questa operazione viene eseguita solo se il valore corrisponde a un pattern SID di Windows. |
Category |
metadata.product_event_type |
Il valore di Category del log non elaborato viene assegnato a questo campo UDM. |
CLIENT_HOST_NAME |
target.hostname , target.asset.hostname |
Il valore di CLIENT_HOST_NAME del log non elaborato viene assegnato a questi campi UDM. |
CLIENT_IP_ADDRESS |
target.ip , target.asset.ip |
Il valore di CLIENT_IP_ADDRESS del log non elaborato viene assegnato a questi campi UDM dopo aver verificato che si tratti di un indirizzo IP valido. |
CLIENT_PORT |
target.port |
Il valore di CLIENT_PORT del log non elaborato viene assegnato a questo campo UDM dopo la conversione in un numero intero. |
DOMAIN |
target.administrative_domain |
Il valore di DOMAIN del log non elaborato viene assegnato a questo campo UDM. Questo valore potrebbe essere sovrascritto in un secondo momento da ACCOUNT_DOMAIN , se presente. |
FILE_LOCATION |
target.file.full_path |
Il valore di FILE_LOCATION del log non elaborato viene assegnato a questo campo UDM. |
FILE_NAME |
target.file.full_path |
Se FILE_LOCATION non è presente, a questo campo UDM viene assegnato il valore di FILE_NAME del log non elaborato. |
FORMAT_MESSAGE |
security_result.description |
Il valore di FORMAT_MESSAGE del log non elaborato viene assegnato a questo campo UDM. Alcune parti di questo campo potrebbero essere utilizzate per compilare altri campi UDM e poi rimosse dalla descrizione. |
IP |
principal.ip , principal.asset.ip |
Il valore di IP del log non elaborato viene assegnato a questi campi UDM dopo aver verificato che si tratti di un indirizzo IP valido. |
loggerHost |
intermediary.hostname , intermediary.asset.hostname |
Il valore di loggerHost estratto dal campo del messaggio del log non elaborato viene assegnato a questi campi UDM. |
login_name |
target.user.userid , target.user.email_addresses o target.user.user_display_name |
Se il valore contiene @ , viene considerato come un indirizzo email. Se contiene spazi, viene trattato come nome visualizzato. In caso contrario, viene trattato come un ID utente. Imposta anche event_type su USER_LOGIN , extensions.auth.type su MACHINE e extensions.auth.mechanism su USERNAME_PASSWORD . |
RECORD_NUMBER |
principal.process.pid |
Il valore di RECORD_NUMBER del log non elaborato viene assegnato a questo campo UDM. |
REPORT_PROFILE |
metadata.description |
Il valore di REPORT_PROFILE del log non elaborato viene assegnato a questo campo UDM. |
SEVERITY |
security_result.severity |
Il valore di SEVERITY determina il valore di questo campo UDM: 1 corrisponde a BASSA, 2 a MEDIA e 3 ad ALTA. |
SOURCE |
principal.hostname , principal.asset.hostname |
Il valore di SOURCE del log non elaborato, combinato con DOMAIN se SOURCE non contiene una parte di dominio, viene assegnato a questi campi UDM. Imposta anche has_principal_host su true. |
TIME_GENERATED |
metadata.event_timestamp.seconds |
Il valore di TIME_GENERATED del log grezzo viene utilizzato come timestamp dell'evento. |
UNIQUE_ID |
metadata.product_log_id |
Il valore di UNIQUE_ID del log non elaborato viene assegnato a questo campo UDM. |
USERNAME |
principal.user.userid |
Se ACCOUNT_NAME non è presente, a questo campo UDM viene assegnato il valore di USERNAME del log non elaborato. |
USER_OU_GUID |
metadata.product_log_id |
Se UNIQUE_ID non è presente, a questo campo UDM viene assegnato il valore di USER_OU_GUID del log non elaborato, dopo la rimozione delle parentesi graffe. |
access_mode |
security_result.detection_fields.value |
Il valore di access_mode del log non elaborato viene assegnato a questo campo UDM, con la chiave impostata su ACCESS_MODE . |
action_name |
security_result.description |
Il valore di action_name del log non elaborato viene assegnato a questo campo UDM. |
domain_name |
principal.administrative_domain |
Il valore di domain_name del log non elaborato viene assegnato a questo campo UDM. |
event.idm.read_only_udm.extensions.auth.mechanism |
event.idm.read_only_udm.extensions.auth.mechanism |
Imposta su USERNAME_PASSWORD se login_name è presente o se event_type è USER_LOGIN . |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
Imposta su MACHINE se login_name è presente o se event_type è USER_LOGIN . |
event.idm.read_only_udm.metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
Determinato dal parser in base ai valori di ALERT_PROFILE , REPORT_PROFILE e FORMAT_MESSAGE . Può essere uno dei seguenti valori: USER_CHANGE_PERMISSIONS , USER_STATS , USER_LOGIN , USER_CHANGE_PASSWORD , SETTING_MODIFICATION , FILE_DELETION , FILE_MODIFICATION , STATUS_SHUTDOWN , SCHEDULED_TASK_CREATION , FILE_READ , NETWORK_CONNECTION , GENERIC_EVENT , USER_UNCATEGORIZED o STATUS_UPDATE . |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
Sempre impostato su ADAUDIT_PLUS . |
event.idm.read_only_udm.metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
Sempre impostato su ADAudit Plus . |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
Sempre impostato su Zoho Corporation . |
host |
principal.hostname , principal.asset.hostname |
Il valore di host del log non elaborato viene assegnato a questi campi UDM. Imposta anche has_principal_host su true. |
intermediary.hostname , intermediary.asset.hostname |
intermediary.hostname , intermediary.asset.hostname |
Imposta il valore di loggerHost . |
principalHost |
principal.hostname , principal.asset.hostname |
Il valore di principalHost del log non elaborato viene assegnato a questi campi UDM dopo aver verificato se si tratta di un IP. Imposta anche has_principal_host su true. |
security_result.action |
security_result.action |
Imposta su ALLOW se outcome o msg_data_2 contiene Success o se FORMAT_MESSAGE contiene Status:Success . Imposta su BLOCK se status contiene denied , locked out , incorrect , does not meet o Unable to validate . Imposta su BLOCK se ALERT_PROFILE è Logon Failures for Admin Users . |
security_result.category |
security_result.category |
Imposta su POLICY_VIOLATION se event_type è USER_STATS o se ALERT_PROFILE è Logon Failures for Admin Users . |
security_result.rule_name |
security_result.rule_name |
Estratto dal campo FORMAT_MESSAGE se contiene Reason: . |
status |
security_result.summary |
Il valore di status del log non elaborato viene assegnato a questo campo UDM. |
targetHost |
target.hostname , target.asset.hostname o target.ip , target.asset.ip |
Il valore di targetHost del log non elaborato viene assegnato a questi campi UDM dopo aver verificato se si tratta di un IP. |
targetUser |
target.user.userid |
Il valore di targetUser del log non elaborato viene assegnato a questo campo UDM. |
_CNtargetUser |
target.user.user_display_name |
Il valore di _CNtargetUser del log non elaborato viene assegnato a questo campo UDM. |
_user |
principal.user.userid o target.user.userid |
Il valore di _user del log grezzo viene assegnato a principal.user.userid , a meno che event_type non sia USER_CHANGE_PASSWORD , nel qual caso viene assegnato a target.user.userid . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.