Raccogli i log di Brocade ServerIron
Questo parser estrae i campi dai messaggi syslog di Brocade ServerIron utilizzando la corrispondenza delle espressioni regolari e li mappa al modello di dati unificato (UDM). Gestisce vari formati di log, tra cui lo stato della rete, l'autenticazione utente e gli eventi di sicurezza. Il parser esegue le conversioni e l'arricchimento dei tipi di dati, se necessario.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con systemd.
- Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.
- Assicurati di disporre dell'accesso privilegiato all'istanza Brocade ServerIron.
Recupera il file di autenticazione di importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione.
Ottenere 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 BindPlane Agent
- Per l'installazione su Windows, esegui il seguente script:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Per l'installazione di Linux, esegui il seguente script:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.
Configurare l'agente BindPlane per importare i dati Syslog e inviarli a Google SecOps
- Accedi al computer su cui è installato BindPlane.
Modifica il file
config.yaml
come segue:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Brocade_ServerIron raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Riavvia l'agente BindPlane per applicare le modifiche:
sudo systemctl restart bindplane
Configurare l'esportazione di Syslog da Brocade ServerIron ADX
Accedi al dispositivo ADX e accedi alla modalità di configurazione globale:
enable configure terminal
Attiva il logging Syslog:
logging on
Specifica l'indirizzo IP o il nome host e la porta del server syslog, incluso il protocollo desiderato (Bindplane):
logging host <syslog-server-ip> [udp | tcp] port <port-number>
Esempio per TCP sulla porta 54525:
logging host 10.10.10.10 tcp port 54525
(Facoltativo) Imposta il Facility Syslog (da local0 a local7):
logging facility local0
Definisci il livello di gravità minimo dei log da inviare al server syslog:
logging trap <severity-level>
Salva la configurazione:
write memory
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
%{GREEDYDATA} | metadata.description | Il campo %{GREEDYDATA} viene mappato a metadata.description quando corrisponde al pattern "-- %{GREEDYDATA} --". |
%{GREEDYDATA:auth_result} | security_result.description | Il campo %{GREEDYDATA:auth_result} viene concatenato con il campo %{GREEDYDATA:desc} per formare security_result.description quando %{GREEDYDATA:desc} è presente. |
%{GREEDYDATA:desc} | security_result.description | Il campo %{GREEDYDATA:desc} viene utilizzato per compilare il campo security_result.description. Può essere concatenato con altri campi a seconda del formato del log non elaborato. |
%{GREEDYDATA:login_to} | security_result.description | Il campo %{GREEDYDATA:login_to} viene concatenato con il campo %{GREEDYDATA:desc} per formare la descrizione security_result quando %{GREEDYDATA:desc} è presente. |
%{GREEDYDATA:user} | target.user.userid | Il campo %{GREEDYDATA:user} è mappato a target.user.userid. |
%{HOST:principal_host} | principal.hostname | Il campo %{HOST:principal_host} è mappato a principal.hostname. |
%{HOST:target_host} | target.hostname | Il campo %{HOST:target_host} è mappato a target.hostname. |
%{INT:http_port} | additional.fields.value.string_value | Il campo %{INT:http_port} è mappato a additional.fields.value.string_value con chiave "Porta HTTP". |
%{INT:target_port} | target.port | Il campo %{INT:target_port} viene mappato a target.port e convertito in un numero intero. |
%{INT:telnet_port} | additional.fields.value.string_value | Il campo %{INT:telnet_port} è mappato a additional.fields.value.string_value con chiave "Porta Telnet". |
%{INT:tftp_port} | additional.fields.value.string_value | Il campo %{INT:tftp_port} è mappato a additional.fields.value.string_value con chiave "TFTP Port". |
%{IP:principal_ip} | principal.ip | Il campo %{IP:principal_ip} è mappato a principal.ip. |
%{IP:target_ip} | target.ip | Il campo %{IP:target_ip} è mappato a target.ip. |
%{IPV4:principal_ip} | principal.ip | Il campo %{IPV4:principal_ip} è mappato a principal.ip. |
%{IPV4:target_ip} | target.ip | Il campo %{IPV4:target_ip} è mappato a target.ip. |
%{MAC:principal_mac} | principal.mac | Il campo %{MAC:principal_mac} viene mappato a principal.mac dopo la conversione nel formato [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}. |
%{USERNAME:target_host} | target.hostname | Il campo %{USERNAME:target_host} è mappato a target.hostname. |
%{USERNAME:user} | target.user.userid | Il campo %{USERNAME:user} è mappato a target.user.userid. |
%{WORD:auth_result} | security_result.description | Il campo %{WORD:auth_result} viene concatenato con il campo %{GREEDYDATA:desc} per formare security_result.description quando %{GREEDYDATA:desc} è presente. |
%{WORD:proto} | network.application_protocol | Il campo %{WORD:proto} viene mappato a network.application_protocol quando il relativo valore è "SSH". |
timestamp | metadata.event_timestamp | Il campo timestamp viene analizzato dai dati non elaborati dei log utilizzando un pattern Grok e convertito in un oggetto timestamp. |
extensions.auth.type | Il valore viene impostato su "MACCHINA" se il campo proto non è vuoto e il campo auth_action è "logout" o "login". | |
metadata.description | Il campo viene compilato con il valore del campo "metadata_description", se non è vuoto. | |
metadata.event_type | Il campo viene compilato in base ai valori di altri campi utilizzando la logica condizionale: - STATUS_STARTUP: se target_port_status è "up". - STATUS_SHUTDOWN: se lo stato della porta di destinazione è "down". - USER_LOGOUT: se proto non è vuoto e auth_action è "logout". - USER_LOGIN: se proto non è vuoto e auth_action è "login". - STATUS_UPDATE: se metadata_description corrisponde a "state changed". - GENERIC_EVENT: se nessuna delle condizioni precedenti è soddisfatta. |
|
metadata.log_type | Il valore è hardcoded in "BROCADE_SERVERIRON". | |
metadata.product_name | Il valore è hardcoded su "ServerIron". | |
metadata.vendor_name | Il valore è hardcoded su "Brocade". | |
security_result.action | Il valore è impostato su "BLOCK" se il campo desc contiene "fail" o se il campo auth_result contiene "fail" o "rejected". |
Modifiche
2022-01-13
- Analizzatore appena aggiunto.