Raccogli i log della VPN SSL di Array Networks
Versione parser: 1.0
Questo documento spiega come importare i log della VPN SSL di Array Networks in Google Security Operations utilizzando l'agente Bindplane.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Un host Windows 2016 o versioni successive o Linux con
systemd - Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso con privilegi alla console di gestione o all'appliance (serie AG o vxAG) della VPN SSL di Array Networks
Recupera le credenziali di Google SecOps per l'agente Bindplane
Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:
- Nuovi deployment: utilizza l'API Chronicle (opzione 1).
- Deployment precedenti: continua a utilizzare il file di autenticazione dell'importazione (opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
Opzione 1: crea un account di servizio per l'API Chronicle (consigliata)
- Accedi alla Google Cloud console e seleziona il Google Cloud progetto collegato alla tua istanza Google SecOps.
- Vai a IAM e amministrazione > Service account.
- Fai clic su Crea service account.
- Fornisci i seguenti dettagli di configurazione:
- Nome service account: inserisci un nome per l'account (ad esempio,
bindplane-ingest). - Descrizione service account: inserisci una descrizione (ad esempio,
Bindplane agent log ingestion).
- Nome service account: inserisci un nome per l'account (ad esempio,
- Fai clic su Crea e continua.
- Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Editor Chronicle.
- Fai clic su Continua e poi su Fine.
- Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
- Fai clic su Aggiungi chiave > Crea nuova chiave.
- Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul computer.
- Salva il file della chiave come
ingestion-auth.jsonnella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsonsu Linux oC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonsu Windows) oppure aggiornacreds_file_pathinconfig.yamlin modo che corrisponda al percorso in cui lo salvi. - Vai a IAM e amministrazione > Impostazioni e copia il numero di progetto. Ti servirà per la configurazione dell'esportatore.
Opzione 2: scarica il file di autenticazione dell'importazione (legacy)
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione.
- Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Recupera 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 di installazione aggiuntive
Per ulteriori opzioni di installazione, consulta questa 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/opt/observiq-otel-collector/su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano,vio Blocco note).
- Individua il file
Modifica il file
config.yamlcome segue:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'ARRAYNETWORKS_VPN' raw_log_field: body ingestion_labels: 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.jsonal percorso del file in cui è stato salvato il file della chiave del account di servizio (opzione 1) nel passaggio 1. - Sostituisci
<LOCATION>con la regione della tua istanza Google SecOps (ad esempio,us,europe, oasia-southeast1). L'esportatore anteponechronicle.googleapis.coma questo valore. Per l'elenco completo, consulta Endpoint regionali. - Sostituisci
<PROJECT_NUMBER>con il numero di progetto da IAM e amministrazione > Impostazioni.
Esportatore dell'API Ingestion legacy
Se utilizzi il file di autenticazione dell'importazione dell'opzione 2, sostituisci il blocco
exporterscon il seguente. Impostacreds_file_pathsul percorso del file di autenticazione dell'importazione e, se la tua istanza si trova al di fuori degli Stati Uniti, sostituiscimalachiteingestion-pa.googleapis.comcon l'endpoint regionale (ad esempio,europe-malachiteingestion-pa.googleapis.com).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 log_type: 'ARRAYNETWORKS_VPN' raw_log_field: body ingestion_labels:
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorPer riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:
net stop observiq-otel-collector && net start observiq-otel-collector
Configura l'inoltro di Syslog sulla VPN SSL di Array Networks
- Accedi alla console di gestione della VPN SSL di Array Networks (interfaccia utente web).
- Nel menu di navigazione a sinistra, fai clic su STRUMENTI DI AMMINISTRAZIONE.
- Fai clic su Monitoraggio.
- Fai clic sulla scheda Logging.
- Fai clic sulla sottoscheda Server Syslog.
- Nella sezione CONFIGURAZIONE SERVER SYSLOG REMOTO, fai clic su Aggiungi voce server.
- Fornisci i seguenti dettagli di configurazione:
- IP host: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta host: inserisci il numero di porta dell'agente Bindplane (ad esempio, 514).
- Protocollo: seleziona UDP o TCP, a seconda della configurazione dell'agente Bindplane.
- Porta di origine: lascia il valore predefinito o specifica se richiesto dalla configurazione di rete.
- Livello: seleziona il livello di gravità minimo da inoltrare (ad esempio, Informazioni, Avviso, Errore).
- Fai clic su Aggiungi o Salva per applicare la configurazione.
Fai clic su Salva configurazione nella parte superiore della pagina per rendere permanenti le modifiche.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
clientip |
principal.ip |
L'indirizzo IP del client estratto dal campo clientip nel messaggio di log non elaborato. |
column1 |
principal.ip |
Indirizzo IP estratto da column1 nel log non elaborato. |
column1 |
principal.asset.ip |
Indirizzo IP estratto da column1 nel log non elaborato. |
column3 |
network.received_bytes |
Il numero di byte ricevuti, convertito in un numero intero senza segno. |
column4 |
network.http.method |
Il metodo HTTP estratto da column4 nel log non elaborato. |
column7 |
target.ip |
L'indirizzo IP di destinazione estratto da column7 nel log non elaborato. |
dport |
target.port |
Porta di destinazione, convertita in un numero intero. |
dst |
target.ip |
Indirizzo IP di destinazione. |
dst |
target.asset.ip |
Indirizzo IP di destinazione. |
hostname |
principal.hostname |
Il nome host estratto dal campo hostname nel messaggio di log non elaborato. |
hostname |
principal.asset.hostname |
Il nome host estratto dal campo hostname nel messaggio di log non elaborato. |
http_method |
network.http.method |
Il metodo HTTP estratto dal messaggio di log non elaborato. |
id |
principal.application |
L'ID applicazione dal log non elaborato. |
mac |
principal.mac |
L'indirizzo MAC estratto dal campo mac nel messaggio di log non elaborato. |
msg |
metadata.product_event_type |
Il campo del messaggio dal log non elaborato, utilizzato come tipo di evento del prodotto. Utilizzato anche per security_result.description dopo aver rimosso le barre rovesciate e le virgolette. |
product_name |
metadata.product_name |
Il nome del prodotto estratto dal messaggio di log non elaborato. |
prxy_ip |
intermediary.ip |
Indirizzo IP del proxy. |
prxy_port |
intermediary.port |
Porta proxy, convertita in un numero intero. |
response_code |
network.http.response_code |
Il codice di risposta HTTP, convertito in un numero intero. |
security_result.action |
security_result.action |
Determinato dalla logica del parser in base al valore di column2. "BLOCK" se column2 contiene "TCP_MISS", "UNKNOWN_ACTION" in caso contrario. |
security_result.description |
security_result.description |
Il campo del messaggio dal log non elaborato, dopo aver rimosso le barre rovesciate e le virgolette. |
sport |
principal.port |
Porta di origine, convertita in un numero intero. |
src |
principal.ip |
Indirizzo IP di origine. |
src |
principal.asset.ip |
Indirizzo IP di origine. |
target_hostname |
target.hostname |
Il nome host di destinazione estratto dal messaggio di log non elaborato. |
timestamp |
metadata.event_timestamp |
Il timestamp estratto dal messaggio di log non elaborato e analizzato in un oggetto timestamp. |
uri |
target.url |
Parte dell'URL di destinazione. Combinato con uri_param per formare l'URL completo. |
uri_param |
target.url |
Parte dell'URL di destinazione. Combinato con uri per formare l'URL completo. |
user |
target.user.userid |
Il nome utente estratto dal messaggio di log non elaborato. |
user_agent_string |
network.http.user_agent |
La stringa dello user agent estratta dal messaggio di log non elaborato. |
vpn |
target.user.group_identifiers |
Il nome della VPN estratto dal messaggio di log non elaborato. |
metadata.event_type |
metadata.event_type |
Determinato dalla logica del parser in base a una combinazione di campi come has_principal, has_target, has_http_value e user. Può essere "NETWORK_HTTP", "NETWORK_CONNECTION", "STATUS_UPDATE", "USER_UNCATEGORIZED" o "GENERIC_EVENT". |
network.ip_protocol |
network.ip_protocol |
Impostato su "TCP" se il messaggio contiene "TCP". |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.