Raccogliere i log F5 AFM
Questo documento spiega come importare i log di F5 Advanced Firewall Management in Google Security Operations utilizzando Bindplane. Il parser trasforma i log in formato SYSLOG e CSV o CSV in un modello Unified Data Model (UDM). Tenta innanzitutto di analizzare il messaggio di log utilizzando pattern grok specifici per il formato SYSLOG e, se non riesce, lo elabora come file CSV, estraendo e mappando i campi nella struttura UDM.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Windows 2016 o versioni successive oppure un host Linux con
systemd
- Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
- Accesso con privilegi a F5 BIG-IP e F5 Advanced Firewall Management
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
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
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 inviarlo 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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:5145" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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: 'F5_AFM' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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
Abilitare F5 BIG-IP Advanced Firewall Manager
- Accedi alla console di gestione dell'appliance BIG-IP.
- Vai a Sistema > Licenza.
- Verifica che Advanced Firewall Manager sia con licenza e abilitato.
- Per attivare Advanced Firewall Manager, vai a Sistema > Risorse > Provisioning.
- Seleziona la casella di controllo dalla colonna Provisioning e seleziona Nominale dall'elenco.
- Fai clic su Invia.
Configura il pool di logging in F5 AFM
- Vai a Traffico locale > Pool.
- Fai clic su Crea.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome per il pool di logging (ad esempio logging_pool).
- Monitoraggio dell'integrità: nell'elenco Disponibile, seleziona TCP e fai clic su <<.
- Nella scheda Risorsa, seleziona il pool di logging creato in precedenza dall'elenco Nome nodo.
- Nel campo Indirizzo, inserisci l'indirizzo IP dell'agente Bindplane.
- Nel campo Porta di servizio, inserisci
5145
o un'altra porta come definita nell'agente Bindplane. - Fai clic su Aggiungi.
- Fai clic su Fine.
Configura la destinazione dei log formattati in F5 AFM
- Vai a Sistema > Log > Configurazione > Destinazioni log.
- Fai clic su Crea.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome per la destinazione del formato di logging (ad esempio,
Logging_Format_Destination
). - Descrizione: inserisci una descrizione.
- Tipo: seleziona Syslog remoto.
- Formato Syslog: seleziona Syslog.
- Destinazione log ad alta velocità: seleziona la destinazione di logging ad alta velocità (ad esempio,
Logging_HSL_Destination
).
- Nome: inserisci un nome per la destinazione del formato di logging (ad esempio,
- Fai clic su Fine.
Configura Log Publisher in F5 AFM
- Vai a Sistema > Log > Configurazione > Editor di log.
- Fai clic su Crea.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome per l'editore (ad esempio,
Log_Publisher
). - Descrizione: inserisci una descrizione.
- Destinazioni: seleziona il nome della destinazione dei log che hai creato nel passaggio Configura il pool di logging in F5 AFM e fai clic su << per aggiungere elementi all'elenco Selezionati.
- Nome: inserisci un nome per l'editore (ad esempio,
Configurare il profilo di logging in F5 AFM
- Vai a Sicurezza > Log eventi > Profilo di logging.
- Fai clic su Crea.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome per il profilo di logging (ad esempio, Logging_Profile).
- Firewall di rete: seleziona la casella di controllo Attivato.
- Publisher: seleziona il publisher di log che hai configurato in precedenza (ad esempio,
Log_Publisher
). - Corrispondenze regole log: seleziona le caselle di controllo Accetta, Elimina e Rifiuta.
- Registra errori IP: seleziona la casella di controllo Attivata.
- Registra errori TCP: seleziona la casella di controllo Attivato.
- Registra eventi TCP: seleziona la casella di controllo Attivato.
- Formato di archiviazione: seleziona Elenco campi.
- Delimitatore: inserisci
,
(virgola) come delimitatore per gli eventi. - Opzioni di archiviazione: seleziona tutte le opzioni nell'elenco Elementi disponibili e fai clic su <<.
- Nella scheda IP Intelligence, seleziona il publisher di log che hai configurato (ad esempio,
Log_Publisher
).
- Fai clic su Fine.
Configura l'associazione del profilo del server virtuale in F5 AFM
- Vai a Traffico locale > Server virtuali.
- Seleziona il server virtuale da modificare.
- Vai alla scheda Sicurezza > Criteri.
- Dall'elenco Log Profile (Profilo log), seleziona Enabled (Attivato).
- Nel campo Profilo, seleziona Logging_Profile e fai clic su <<.
- Fai clic su Aggiorna.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
acl_policy_name | security_result.detection_fields.acl_policy_name | Valore della colonna 22 se il formato del log è SYSLOG, altrimenti valore della colonna 13 |
acl_policy_type | security_result.detection_fields.acl_policy_type | Valore della colonna 21 se il formato del log è SYSLOG, altrimenti valore della colonna 18 |
acl_rule_name | security_result.rule_name | Valore della colonna 23 se il formato del log è SYSLOG, altrimenti valore della colonna 11 |
acl_rule_uuid | security_result.rule_id | Valore del campo acl_rule_uuid dal pattern grok |
azione | security_result.action | Se il valore di column25 è Drop , Reject o Block , allora BLOCK, altrimenti se il valore di column25 è Accept , Accept decisively , Established o Allow , allora ALLOW |
attackID | security_result.detection_fields.attackID | Valore della colonna 12 se il formato log è CSV senza src_ip |
bigip_hostname | intermediary.hostname | Valore di column2 se il formato log è SYSLOG, altrimenti valore di column3 |
bigip_ip | intermediary.ip | Valore di column2 se il formato del log è SYSLOG, altrimenti valore di column1 |
context_name | additional.fields.context_name.string_value | Valore di column4 se il formato del log è SYSLOG, altrimenti valore di column10 se è presente src_ip, altrimenti valore di column5 |
context_type | additional.fields.context_type.string_value | Valore di column3 se il formato del log è SYSLOG, altrimenti valore di column4 se è presente src_ip, altrimenti valore di column4 |
dest_fqdn | additional.fields.dest_fqdn.string_value | Valore di column7 se il formato del log è SYSLOG, altrimenti valore di column13 |
dest_geo | additional.fields.dest_geo.string_value | Valore della colonna 14 |
dest_ip | target.asset.ip, target.ip | Valore di column8 se il formato del log è SYSLOG, altrimenti valore di column6 se è presente src_ip, altrimenti valore di column6 |
dest_port | target.port | Valore della colonna 10 se il formato del log è SYSLOG, altrimenti valore della colonna 8 se è presente src_ip, altrimenti valore della colonna 8 |
drop_reason | security_result.summary | Valore della colonna 26 se il formato log è SYSLOG, altrimenti valore della colonna 19 |
eventId | additional.fields.eventId.string_value | Valore acquisito nel pattern Grok |
flow_id | additional.fields.flow_id.string_value | Valore della colonna 29 se il formato del log è SYSLOG, altrimenti valore della colonna 17 |
loglevel | security_result.severity | Se il valore del campo loglevel del pattern grok è warning ,debug o notice , allora MEDIUM, altrimenti se il valore è info o informational , allora INFORMATIONAL, altrimenti se il valore è err o error , allora HIGH, altrimenti se il valore è alert , crit o emer , allora CRITICAL |
packetsReceived | network.received_packets | Valore della colonna 15 se il formato del log è CSV senza src_ip |
di diffusione | target.application | Valore del campo del processo dal pattern grok |
protocol_number_src | network.ip_protocol | Valore di column12 se il formato del log è SYSLOG, altrimenti valore estratto dalla variabile ip_protocol_out |
route_domain | additional.fields.route_domain.string_value | Valore della colonna 13 se il formato del log è SYSLOG, altrimenti valore della colonna 9 |
source_fqdn | additional.fields.source_fqdn.string_value | Valore di column5 se il formato del log è SYSLOG, altrimenti valore di column7 |
src_geo | additional.fields.src_geo.string_value | Valore della colonna 8 |
src_ip | principal.asset.ip, principal.ip | Valore della colonna 6 se il formato log è SYSLOG, altrimenti valore della colonna 9 se il formato log è CSV senza src_ip, altrimenti valore della colonna 5 |
src_port | principal.port | Valore di column9 se il formato log è SYSLOG, altrimenti valore di column7 se il formato log è CSV senza src_ip, altrimenti valore di column7 |
ts | metadata.event_timestamp | Valore del campo ts dal pattern grok |
vlan | additional.fields.vlan.string_value | Valore della colonna 11 se il formato del log è SYSLOG, altrimenti valore della colonna 21 |
metadata.event_type | Se esistono src_ip e dest_ip, NETWORK_CONNECTION, altrimenti se esiste solo src_ip, STATUS_UPDATE, altrimenti GENERIC_EVENT | |
metadata.log_type | F5_AFM | |
metadata.product_name | Gestione avanzata del firewall | |
metadata.vendor_name | F5 |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.