Raccogliere i log HP ProCurve
Questo documento spiega come importare i log dello switch HP ProCurve in Google Security Operations utilizzando Bindplane. Il codice del parser tenta innanzitutto di analizzare il messaggio di log non elaborato come JSON. In caso contrario, utilizza le espressioni regolari (pattern grok
) per estrarre i campi dal messaggio in base ai formati di log HP ProCurve comuni.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Host Windows 2016 o versioni successive o Linux con systemd
- Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
- Accesso privilegiato a uno switch HP ProCurve
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 la 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: HP_PROCURVE 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
Configurare Syslog su HP ProCurve Switch
- Accedi allo switch HP Procurve con SSH.
Verifica l'interfaccia dello switch utilizzando il seguente comando:
show ip int br
Attiva la modalità di configurazione sullo switch utilizzando il seguente comando:
console# conf t
Configura lo switch per inviare i log utilizzando i seguenti comandi:
logging host <bindplae-server-ip> transport <udp/tcp> port <port-number> logging facility syslog logging trap informational logging buffer 65536 logging origin-id hostname logging source-interface <interface>
Sostituisci
<bindplae-server-ip>
e<port-number>
con l'indirizzo IP di Bindplane e il numero di porta.Sostituisci
<udp/tcp>
selezionando solo UDP o TCP come protocollo di comunicazione (a seconda della configurazione dell'agente Bindplane).Sostituisci
<interface>
con l'ID interfaccia che hai ricevuto in precedenza dallo switch (ad esempio,Ethernet1/1
).Esci dalla modalità di configurazione e salva utilizzando i seguenti comandi:
console# exit console# wr
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
AAAScheme | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è AAAScheme |
AAAType | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è AAAType |
ID telaio | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo description se la chiave è Chassis ID |
Il comando è | read_only_udm.security_result.detection_fields.value | Testo dopo Command is nel campo commandInfo |
CommandSource | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è CommandSource |
Config-Method | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come config_method |
ConfigDestination | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è ConfigDestination |
ConfigSource | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è ConfigSource |
Device-Name | read_only_udm.principal.hostname | Se il campo esiste nel log, viene mappato al nome host dell'entità e al nome host dell'asset |
ID evento | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come event_id |
EventIndex | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è EventIndex |
IfIndex | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo description se la chiave è IfIndex |
IP: %{IP:IPAddr} | read_only_udm.target.ip, read_only_udm.target.asset.ip | Indirizzo IP estratto dal campo desc e mappato all'IP di destinazione e all'IP dell'asset di destinazione |
IPAddr | read_only_udm.target.ip, read_only_udm.target.asset.ip | Se il campo esiste nel log, viene mappato all'IP di destinazione e all'IP della risorsa di destinazione |
Notice-Type | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come notice_type |
ID porta | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo description se la chiave è Port ID |
Remote-IP-Address | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come remote_ip_address |
Servizio | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è Service |
Attività | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo descrip se la chiave è Task |
Utente | read_only_udm.principal.user.userid | Se il campo esiste nel log, viene mappato all'ID utente principale |
User-Name | read_only_udm.principal.user.userid | Se il campo esiste nel log, viene mappato all'ID utente principale |
Nome utente | read_only_udm.principal.user.userid | Se il campo esiste nel log, viene mappato all'ID utente principale |
UserService | read_only_udm.security_result.detection_fields.value | Valore estratto dal campo desc se la chiave è UserService |
collection_time.seconds | read_only_udm.metadata.event_timestamp.seconds | Parte dei secondi del timestamp dell'evento |
dati | Questo campo contiene il messaggio di log non elaborato e viene analizzato per estrarre altri campi. Non è mappato all'UDM. | |
decr | read_only_udm.security_result.description | Descrizione estratta dal messaggio di log |
descrip | Descrizione estratta dal campo desc , analizzata ulteriormente per le coppie chiave-valore. Non è mappato all'UDM. |
|
description | read_only_udm.security_result.description | Se il campo esiste nel log, viene mappato alla descrizione del risultato di sicurezza |
descript | read_only_udm.metadata.description | Se il campo esiste nel log, viene mappato alla descrizione dei metadati |
event_id | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come event_id |
eventId | read_only_udm.metadata.product_event_type | ID evento estratto dal messaggio di log |
nome host | read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname | Nome host estratto dal messaggio di log e mappato al nome host principale e al nome host dell'asset |
inter_ip | read_only_udm.additional.fields.value.string_value, read_only_udm.intermediary.ip | Se il campo esiste nel log ed è un IP valido, viene mappato all'IP intermedio. In caso contrario, viene inserito nei campi aggiuntivi come inter_ip |
notice_type | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come notice_type |
pid | read_only_udm.principal.process.pid | Se il campo esiste nel log, viene mappato al PID del processo principale |
programma | Informazioni sul programma estratte dal messaggio di log, analizzate ulteriormente per estrarre modulo, gravità e azione. Non è mappato all'UDM. | |
proto | read_only_udm.network.application_protocol, read_only_udm.additional.fields.value.string_value | Protocollo estratto dal messaggio di log. Se corrisponde a protocolli noti, viene mappato al protocollo dell'applicazione. In caso contrario, viene inserito nei campi aggiuntivi come Application Protocol |
remote_ip_address | read_only_udm.principal.ip, read_only_udm.principal.asset.ip, read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log ed è un IP valido, viene mappato all'IP principale e all'IP dell'asset principale. In caso contrario, viene inserito nei campi aggiuntivi come remote_ip_address |
gravità | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Gravità estratta dal campo program dopo la suddivisione per / . È mappato ai livelli di gravità UDM e memorizzato anche come dettagli di gravità non elaborati |
src_ip | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | L'IP di origine estratto dal messaggio di log e mappato all'IP principale e all'IP della risorsa principale |
stato | read_only_udm.additional.fields.value.string_value | Se il campo esiste nel log, viene inserito nei campi aggiuntivi come status |
targetHostname | read_only_udm.target.hostname, read_only_udm.target.asset.ip | Se il campo esiste nel log, viene mappato al nome host di destinazione e all'IP risorsa di destinazione |
target_ip | read_only_udm.target.ip, read_only_udm.target.asset.ip | IP di destinazione estratto dal messaggio di log e mappato all'IP di destinazione e all'IP della risorsa di destinazione |
timestamp | read_only_udm.metadata.event_timestamp.seconds | Timestamp estratto dal messaggio di log e convertito in timestamp dell'evento |
timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | Parte dei secondi del timestamp dell'evento |
nome utente | read_only_udm.principal.user.userid | Se il campo esiste nel log, viene mappato all'ID utente principale |
read_only_udm.metadata.event_type | Determinato in base a una combinazione di campi e logica: - NETWORK_CONNECTION : se has_principal e has_target sono true. - USER_LOGOUT : se action è WEBOPT_LOGOUT , LOGOUT o SHELL_LOGOUT . - USER_LOGIN : se action è LOGIN o WEBOPT_LOGIN_SUC . - STATUS_UPDATE : se action non è vuoto o src_ip /hostname non sono vuoti. - USER_UNCATEGORIZED : se has_user è true. - GENERIC_EVENT : se nessuna di queste condizioni è soddisfatta. |
|
read_only_udm.metadata.product_name | Codificato in modo permanente su Procurve |
|
read_only_udm.metadata.vendor_name | Codificato in modo permanente su HP |
|
read_only_udm.extensions.auth.type | Impostato su MACHINE se event_type è USER_LOGOUT o USER_LOGIN |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.