Raccogli i log del controller wireless e del punto di accesso Aruba

Versione parser: 12.0

Supportato in:

Questo documento spiega come importare i log di Aruba Wireless Controller e Access Point in Google Security Operations utilizzando l'agente Bindplane.

I controller e gli access point wireless Aruba generano messaggi syslog per eventi wireless, associazioni client, autenticazione, controllo dell'accesso e operazioni di sistema. Il parser elabora i messaggi syslog, estraendo i campi relativi ai dettagli di osservatore, intermediario e punto di accesso.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive o host Linux con systemd
  • Connettività di rete tra l'agente Bindplane e l'Aruba Wireless Controller
  • Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso con privilegi a un controller wireless Aruba

Ottieni le credenziali di Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuove implementazioni: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (opzione 2) fino al ritiro dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla consoleGoogle Cloud e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. 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).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Editor Chronicle.
  7. Fai clic su Continua e poi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) oppure aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul tuo sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di Windows

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

    Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

    Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare il syslog e inviarlo a Google SecOps

Individua il file di configurazione

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/aruba_wireless:
        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
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: ARUBA_WIRELESS
        raw_log_field: body
    
    service:
      pipelines:
        logs/aruba_wireless_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/aruba_wireless
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del ricevitore:

    • listen_address: Indirizzo IP e porta da ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • La porta 514 è la porta syslog standard (richiede l'accesso root su Linux; utilizza 1514 per l'accesso non root)
  • Configurazione dell'esportatore:

    • creds_file_path: percorso completo del file della chiave JSON del account di servizio (opzione 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID cliente copiato dalla console Google SecOps
    • location: sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore aggiunge chronicle.googleapis.com come prefisso a questo valore. Per l'elenco completo, consulta Endpoint regionali.
    • project: sostituisci <PROJECT_NUMBER> con il numero di progetto da IAM e amministrazione > Impostazioni.
    • endpoint: mantieni l'impostazione chronicle.googleapis.com.

Esportatore dell'API di importazione precedente

  • Se utilizzi il file di autenticazione dell'importazione dell'opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'acquisizione e, se l'istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con il tuo endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/aruba_wireless:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ARUBA_WIRELESS
        raw_log_field: body
    

Salva il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica che il servizio sia in esecuzione:

      sudo systemctl status observiq-otel-collector
      
    2. Controlla i log per verificare la presenza di errori:

      sudo journalctl -u observiq-otel-collector -f
      
  • Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Servizi:

      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per verificare la presenza di errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura il controller e l'access point wireless Aruba

  1. Accedi all'UI web del controller Aruba.
  2. Vai al menu in alto e seleziona Configurazione > Sistema.
  3. Seleziona Logging per aprire la pagina di configurazione del logging.
  4. Nella sezione Server Syslog, fai clic su + Aggiungi per aggiungere un nuovo server Syslog.
  5. Inserisci i seguenti dettagli:
    • Nome: inserisci un nome univoco per il server syslog, ad esempio Google SecOps Syslog.
    • Indirizzo IP: inserisci l'indirizzo IP di Bindplane.
    • Porta: inserisci il numero di porta di Bindplane (in genere 514 per UDP).
    • Logging Facility: seleziona local 6 (di uso comune per i dispositivi di rete).
    • Logging Level (Livello di logging): seleziona Informational (Informativo) per acquisire i log delle informazioni.
    • Formato: seleziona il formato bsd-standard (questo è il formato syslog predefinito utilizzato dai controller Aruba).
  6. Fai clic su Invia per salvare le impostazioni.
  7. Fai clic su Modifiche in attesa.
  8. Fai clic su Implementa modifiche per applicare la nuova configurazione del server syslog.

  9. Vai alle impostazioni Livello di logging e imposta il Livello di logging su Informativo per ciascuna delle seguenti categorie:

    • Rete
    • Tutti
    • Cluster
    • DHCP
    • GP
    • Difficoltà di deambulazione
    • Dump dei pacchetti
    • SDN

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
Additional Info read_only_udm.security_result.description Il valore di Additional Info del log non elaborato viene mappato al campo UDM security_result.description.
AP read_only_udm.target.hostname Se presente nel log non elaborato, il valore dopo AP: viene estratto e mappato al campo UDM target.hostname.
BSSID read_only_udm.target.mac, read_only_udm.principal.resource.name (quando il tipo di risorsa è BSSID) Il valore BSSID del log non elaborato viene mappato a target.mac. Viene utilizzato anche come nome della risorsa quando principal.resource.type è BSSID.
COMMAND read_only_udm.principal.process.command_line Il valore del comando del log non elaborato viene mappato al campo UDM principal.process.command_line.
Dst-MAC read_only_udm.target.mac Se presente, il valore Dst-MAC del log non elaborato viene mappato al campo UDM target.mac.
SERVER read_only_udm.target.hostname Se presente, il nome del server del log non elaborato viene mappato al campo UDM target.hostname.
SERVER-IP read_only_udm.target.ip Se presente, l'IP del server del log non elaborato viene mappato al campo UDM target.ip.
Src-MAC read_only_udm.principal.mac Se presente, il valore Src-MAC del log non elaborato viene mappato al campo UDM principal.mac.
SSID read_only_udm.target.resource.name (quando il tipo di risorsa è SSID) Il valore SSID del log non elaborato viene utilizzato come nome della risorsa quando target.resource.type è SSID.
USER read_only_udm.target.user.userid Se presente, l'ID utente del log non elaborato viene mappato al campo UDM target.user.userid.
USERIP read_only_udm.principal.ip, read_only_udm.observer.ip Se presente, l'IP utente del log non elaborato viene mappato ai campi UDM principal.ip e observer.ip.
USERMAC read_only_udm.principal.mac Se presente, il MAC utente del log non elaborato viene mappato al campo UDM principal.mac.
USERNAME read_only_udm.principal.user.userid Se presente, il nome utente del log non elaborato viene mappato al campo UDM principal.user.userid.
action read_only_udm.security_result.action Il valore dell'azione del log non elaborato (ad es. permit, deny) viene mappato al campo UDM security_result.action.
apname read_only_udm.target.hostname Se presente, il nome dell'AP del log non elaborato viene mappato al campo UDM target.hostname.
bssid read_only_udm.target.mac Se presente, il valore BSSID del log non elaborato viene mappato al campo UDM target.mac.
collection_time.seconds read_only_udm.metadata.event_timestamp.seconds Il valore dei secondi dell'ora di raccolta del log non elaborato viene mappato al campo UDM metadata.event_timestamp.seconds.
device_ip read_only_udm.intermediary.ip L'IP del dispositivo dal log non elaborato o da logstash viene mappato al campo UDM intermediary.ip.
dstip read_only_udm.target.ip Se presente, l'IP di destinazione del log non elaborato viene mappato al campo UDM target.ip.
dstport read_only_udm.target.port Se presente, la porta di destinazione del log non elaborato viene mappata al campo UDM target.port.
event_id read_only_udm.metadata.product_event_type L'ID evento del log non elaborato viene utilizzato per creare il campo metadata.product_event_type nell'UDM, con il prefisso Event ID:.
event_message read_only_udm.security_result.summary Il messaggio dell'evento del log non elaborato viene mappato al campo UDM security_result.summary.
log.source.address read_only_udm.observer.ip L'indirizzo dell'origine log è mappato al campo UDM observer.ip.
log_type read_only_udm.metadata.log_type Il tipo di log del log non elaborato viene mappato al campo UDM metadata.log_type.
logstash.collect.host read_only_udm.observer.ip o read_only_udm.observer.hostname L'host di raccolta logstash è mappato a observer.ip se si tratta di un indirizzo IP o a observer.hostname se si tratta di un nome host.
logstash.ingest.host read_only_udm.intermediary.hostname L'host di importazione logstash è mappato al campo UDM intermediary.hostname.
logstash.process.host read_only_udm.intermediary.hostname L'host del processo Logstash è mappato al campo UDM intermediary.hostname.
program read_only_udm.target.application Il nome del programma del log non elaborato viene mappato al campo UDM target.application.
serverip read_only_udm.target.ip Se presente, l'IP del server del log non elaborato viene mappato al campo UDM target.ip.
servername read_only_udm.target.hostname Se presente, il nome del server del log non elaborato viene mappato al campo UDM target.hostname.
srcip read_only_udm.principal.ip Se presente, l'IP di origine del log non elaborato viene mappato al campo UDM principal.ip.
srcport read_only_udm.principal.port Se presente, la porta di origine del log non elaborato viene mappata al campo UDM principal.port.
syslog_host read_only_udm.intermediary.hostname L'host syslog del log non elaborato viene mappato al campo UDM intermediary.hostname.
timestamp read_only_udm.metadata.event_timestamp Il timestamp del log non elaborato viene analizzato e mappato al campo UDM metadata.event_timestamp.
userip read_only_udm.principal.ip, read_only_udm.observer.ip Se presente, l'IP utente del log non elaborato viene mappato ai campi UDM principal.ip e observer.ip.
usermac read_only_udm.principal.mac Se presente, il MAC utente del log non elaborato viene mappato al campo UDM principal.mac.
username read_only_udm.principal.user.userid Se presente, il nome utente del log non elaborato viene mappato al campo UDM principal.user.userid. Derivato da event_id e dalla logica all'interno del parser. Determinato dal parser in base all'ID evento e ai contenuti del messaggio di log. Codificato in modo permanente su Wireless. Impostato come hardcoded su Aruba. Determinato dal parser in base all'ID evento e ai contenuti del messaggio di log. Determinato dal parser in base all'ID evento e ai contenuti del messaggio di log. Estratto dal messaggio di log non elaborato utilizzando l'espressione regolare. Determinato dal parser in base all'ID evento e ai contenuti del messaggio di log. Viene aggiunto un oggetto vuoto quando event_type è USER_LOGIN o un evento di autenticazione correlato. Determinato dal parser in base al protocollo di rete utilizzato nell'evento (ad es. TCP, UDP, ICMP, IGMP). Contiene campi aggiuntivi estratti dal log non elaborato in base a condizioni specifiche. Ad esempio, ap_name viene aggiunto come coppia chiave-valore, se presente. Impostato su BSSID quando un BSSID è presente nel contesto dell'entità. Imposta su SSID quando un SSID è presente nel contesto del target. Contiene coppie chiave-valore di informazioni di rilevamento pertinenti estratte dal log non elaborato, come BSSID o SSID.
event_code event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
function_name event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
thread_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
station_macaddress event.idm.read_only_udm.principal.mac Mappato dal log delle modifiche
station_macaddress event.idm.read_only_udm.principal.asset.mac Mappato dal log delle modifiche
event_details event.idm.read_only_udm.security_result.summary Mappato dal log delle modifiche
application event.idm.read_only_udm.principal.application Mappato dal log delle modifiche
version event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
priority event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
module event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
instance event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
role event.idm.read_only_udm.principal.user.attribute.roles.name Mappato dal log delle modifiche
policy event.idm.read_only_udm.security_result.rule_name Mappato dal log delle modifiche
command_status event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.ip Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.hostname Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.asset.hostname Mappato dal log delle modifiche
t_user event.idm.read_only_udm.target.user.userid Mappato dal log delle modifiche
p_ip event.idm.read_only_udm.principal.ip Mappato dal log delle modifiche
p_ip event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
cmd event.idm.read_only_udm.target.process.command_line Mappato dal log delle modifiche
node event.idm.read_only_udm.target.resource.name Mappato dal log delle modifiche
principal_ip_value event.idm.read_only_udm.principal.ip Mappato dal log delle modifiche
p_port event.idm.read_only_udm.principal.port Mappato dal log delle modifiche
t_hostname event.idm.read_only_udm.intermediary.hostname Mappato dal log delle modifiche
details metadata.description Mappato dal log delle modifiche
ap_name additional.fields Mappato dal log delle modifiche
logstash.irm_site", "logstash.irm_environment", "logstash.irm_region additional.fields Mappato dal log delle modifiche

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.