Raccogliere i log di Forescout NAC

Supportato in:

Questo documento spiega come importare i log di Forescout Network Access Control (NAC) in Google Security Operations utilizzando Bindplane. Il parser gestisce i log in formato syslog e CEF di Forescout NAC. Estrae i campi utilizzando i pattern grok, li mappa al modello di dati unificato (UDM) e classifica gli eventi in base a parole chiave e campi estratti, gestendo l'accesso/la disconnessione, le connessioni di rete, gli eventi di posta e gli aggiornamenti dello stato del sistema. Viene implementata una logica specifica per la gestione degli eventi "CounterACT" e "Virtual Firewall", inclusi il mapping della gravità e l'arricchimento del contesto utente.

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
  • Deve essere installata la versione 8.0 o successiva di ForeScout CounterAct
  • Deve essere installato il plug-in Syslog v3.5 del modulo di estensione principale ForeScout CounterAct
  • Accesso con privilegi all'appliance Forescout e al plug-in CounterACT

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. 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

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. 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

  1. Apri il 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
    

Installazione di Linux

  1. Apri un terminale con privilegi di 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
    

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

  1. 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).
  2. 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_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: 'FORESCOUT_NAC'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. 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
    

Installa il plug-in Syslog di CounterACT

  1. Vai alla pagina Forescount Base Plugins e scarica il file del plug-in .fpi.
  2. Salva il file sul computer su cui è installata la console CounterACT.
  3. Accedi alla console CounterACT.
  4. Seleziona Opzioni > Plug-in > Installa.
  5. Sfoglia e seleziona il file FPI del plug-in salvato.
  6. Fai clic su Installa.
  7. Accetta il contratto di licenza per continuare.
  8. Al termine dell'installazione, fai clic su Chiudi.
  9. Seleziona il plug-in dal riquadro Plug-in e fai clic su Avvia.
  10. Seleziona le CounterACT Appliances su cui avviare il plug-in (è consigliabile eseguire il plug-in su tutte le appliance nell'ambiente).
  11. Fai clic su OK.
  12. Fai clic su Chiudi.

Configurare Syslog nel plug-in Syslog di Forescout CounterACT

  1. Nel riquadro Plug-in, fai clic su Syslog > Configura.
  2. Seleziona un'appliance o Enterprise Manager dalla finestra di dialogo e fai clic su Ok.
  3. In Invia eventi a, fai clic su Aggiungi.
  4. Fornisci i seguenti dettagli di configurazione:
    • Indirizzo server: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta server: inserisci il numero di porta dell'agente Bindplane (ad esempio, 514 per UDP).
    • Protocollo server: seleziona UDP.
    • Identità: campo di testo libero per identificare il messaggio syslog.
    • (Facoltativo) Struttura: struttura del messaggio Syslog trasmessa come parte del campo Priorità del messaggio. Se il valore della struttura non è menzionato, è impostato su local5.
    • Gravità: seleziona Informazioni.
  5. Vai alla scheda Syslog Trigger.
  6. Non selezionare la casella di controllo Invia solo i messaggi generati dall'azione "Invia messaggio a Syslog".
  7. Seleziona solo la casella di controllo Includi timestamp e identificatore del dispositivo CounterACT in tutti i messaggi.
  8. Fai clic su Opzioni per definire quali tipi di eventi attivano i messaggi syslog:
    • Includi i log delle policy NAC.
    • Includi eventi di corrispondenza e mancata corrispondenza delle norme NAC.
    • Seleziona altri eventi, se disponibili.
  9. Vai alla scheda Configurazione azione predefinita.
  10. Fornisci i seguenti dettagli di configurazione:
    • Indirizzo server: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta server: inserisci il numero di porta dell'agente Bindplane (ad esempio, 514 per UDP).
    • Protocollo server: seleziona UDP.
    • Identità messaggio: campo di testo libero per identificare il messaggio Syslog.
    • (Facoltativo) Struttura: struttura del messaggio Syslog trasmessa come parte del campo Priorità del messaggio. Se il valore della struttura non è menzionato, è impostato su local5.
    • Gravità: seleziona Informazioni.
  11. Fai clic su OK.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
act security_result.action_details Mappato direttamente dal campo act nei log CEF.
app network.application_protocol Mappato direttamente dal campo app nei log CEF.
Available_memory additional.fields Estratto da kv_data quando event_type è "Statistiche di sistema". La chiave è "Available memory" (Memoria disponibile) e il valore è la stringa estratta.
Available_swap additional.fields Estratto da kv_data quando event_type è "Statistiche di sistema". La chiave è "Available swap" e il valore è la stringa estratta.
application_status additional.fields Estratto da kv_data quando event_type è "Stato della richiesta". La chiave è "Stato dell'applicazione" e il valore è la stringa estratta.
Assigned_hosts additional.fields Estratto da kv_log_data quando event_type è "Stato della richiesta". La chiave è "Assigned hosts" (Host assegnati) e il valore è la stringa estratta.
Category security_result.description Parte di security_result.description quando et_lower è "nac policy log". Concatenato con altri dettagli.
command principal.process.command_line Estratto dal campo rnmsg nei log CEF quando inizia con "command:".
Connected_clients additional.fields Estratto da kv_log_data quando event_type è "Stato della richiesta". La chiave è "Connected clients" (Client connessi) e il valore è la stringa estratta.
CPU_usage additional.fields Estratto da kv_data quando event_type è "Statistiche di sistema". La chiave è "Utilizzo CPU" e il valore è la stringa estratta.
cs1 additional.fields Mappato direttamente dal campo cs1 nei log CEF. La chiave è "Compliancy Policy Name".
cs2 additional.fields Mappato direttamente dal campo cs2 nei log CEF. La chiave è "Compliancy Policy Subrule Name".
cs3 additional.fields Mappato direttamente dal campo cs3 nei log CEF. La chiave è "Host Compliancy Status".
cs4 additional.fields Mappato direttamente dal campo cs4 nei log CEF. La chiave è "Compliancy Event Trigger".
data security_result.description Utilizzato in varie parti del parser per estrarre informazioni e contribuire ai campi UDM finali. Non mappato direttamente a un singolo campo UDM.
details security_result.description Utilizzato per compilare security_result.description in diversi casi, ad esempio durante l'analisi degli eventi "Log" e delle modifiche alla sessione utente. Potrebbe essere analizzato ulteriormente per informazioni specifiche.
Destination target.ip, target.hostname Analizzato da kv_data o data. Se può essere convertito in un indirizzo IP, viene mappato su target.ip. In caso contrario, viene mappato a target.hostname.
deviceExternalId about.asset.asset_id Mappato direttamente dal campo deviceExternalId nei log CEF, con il prefisso "Forescout.CommandCenter:".
dhost target.hostname Mappato direttamente dal campo dhost nei log CEF.
dmac target.mac Mappato direttamente dal campo dmac nei log CEF.
dntdom target.administrative_domain Mappato direttamente dal campo dntdom nei log CEF.
dst target.ip Mappato direttamente dal campo dst nei log CEF.
dpt target.port Mappato direttamente dal campo dpt nei log CEF.
duser target.user.user_display_name Mappato direttamente dal campo duser nei log CEF.
dvc about.ip Mappato direttamente dal campo dvc nei log CEF.
dvchost about.hostname Mappato direttamente dal campo dvchost nei log CEF.
EM_connection_status additional.fields Estratto da kv_log_data quando event_type è "Stato della richiesta". La chiave è "EM connection status" (stato della connessione EM) e il valore è la stringa estratta.
Engine_status additional.fields Estratto da kv_log_data quando event_type è "Stato della richiesta". La chiave è "Engine status" (Stato del motore) e il valore è la stringa estratta.
event_type metadata.description, security_result.summary Analizzato dal messaggio di log. Utilizzato per determinare il tipo di evento UDM e altri campi. Se l'evento è di tipo"GENERIC_EVENT", viene utilizzato anche per la descrizione.
eventtype additional.fields Mappato direttamente dal campo eventtype nei log CEF. La chiave è "eventtype".
externalId metadata.product_log_id Mappato direttamente dal campo externalId nei log CEF.
from\[...\] to\[...\] principal.ip, target.ip Estrae gli IP di origine e destinazione dal pattern "da[...] a[...]".
Host principal.ip, principal.hostname Analizzato da kv_data quando et_lower è "block event". Se convertibile in un IP, mappato a principal.ip; altrimenti, a principal.hostname.
Hostname principal.hostname, principal.asset.hostname Mappato a principal.hostname e principal.asset.hostname se presente negli eventi di modifica della proprietà rilevati.
Installed_Plugins additional.fields Estratto da kv_log_data quando event_type è "Stato della richiesta". La chiave è "Installed Plugins" (Plug-in installati) e il valore è la stringa estratta.
iporhost intermediary.ip, intermediary.hostname Analizzato da header_data. Se convertibile in un IP, mappato a intermediary.ip; altrimenti, a intermediary.hostname.
Is Virtual Firewall blocking rule security_result.action, security_result.rule_name Se "true", imposta security_result.action su "BLOCK" e security_result.rule_name su "Virtual Firewall blocking".
log_description security_result.summary Mappato direttamente su security_result.summary, se presente.
log_type metadata.log_type Impostato sul valore costante "FORESCOUT_NAC".
MAC principal.mac Analizzato da kv_data negli eventi di modifica della proprietà rilevati e formattato come indirizzo MAC.
mail_from network.email.from Mappato direttamente dal campo mail_from estratto da mail_details.
mail_subject network.email.subject Mappato direttamente dal campo mail_subject estratto da mail_details.
mail_to network.email.to Mappato direttamente dal campo mail_to estratto da mail_details.
Match security_result.rule_name Mappato direttamente dal campo Match quando et_lower è "nac policy log".
metadata.event_type metadata.event_type Determinato da varie condizioni nel parser, tra cui la presenza di campi e parole chiave specifici nel messaggio di log. Il valore predefinito è GENERIC_EVENT e viene aggiornato in base ai dati analizzati. Esempi: USER_LOGIN, USER_LOGOUT, NETWORK_CONNECTION, SCAN_NETWORK, STATUS_UPDATE, EMAIL_TRANSACTION e USER_UNCATEGORIZED.
metadata.product_name metadata.product_name Imposta il valore "FORESCOUT NAC" per la maggior parte degli eventi o il valore del campo product, se esistente. Per gli eventi CEF, è impostato su "CounterAct".
metadata.vendor_name metadata.vendor_name Imposta "FORESCOUT" per la maggior parte degli eventi. Per gli eventi CEF, viene estratto dal campo cs1Label, se esistente, o impostato su "ForeScout Technologies".
msg metadata.description Mappato direttamente dal campo msg nei log CEF.
pid intermediary.process.pid Mappato direttamente dal campo pid estratto da header_data.
policy_details security_result.description Parte di security_result.description quando et_lower è "nac policy log". Concatenato con altri dettagli.
product metadata.product_name Mappato direttamente su metadata.product_name, se presente.
proto network.ip_protocol Mappato direttamente dal campo proto nei log CEF.
Reason security_result.description Mappato direttamente dal campo Reason quando et_lower è "block event".
resource principal.resource.name Mappato direttamente dal campo resource nei log CEF.
rnmsg security_result.description, principal.process.command_line Se inizia con "command:", la parte dopo "command:" viene mappata a principal.process.command_line. In caso contrario, viene mappato a security_result.description.
rt metadata.event_timestamp Mappato direttamente dal campo rt nei log CEF, convertito in un timestamp.
Rule security_result.rule_id Mappato direttamente dal campo Rule quando et_lower è "nac policy log".
security_result.severity security_result.severity Derivato dal campo severity_level. 0-3 corrisponde a BASSA, 4-6 a MEDIA, 7-8 ad ALTA e 9-10 a CRITICA.
security_result.severity_details security_result.severity_details Mappato direttamente dal campo severity nei log CEF.
Service target.port, network.ip_protocol Analizzato per estrarre porta e protocollo. La porta è mappata a target.port e il protocollo a network.ip_protocol.
session_id network.session_id Mappato direttamente dal campo session_id.
severity security_result.severity_details Mappato direttamente dal campo severity nei log CEF.
severity_level security_result.severity Utilizzato per determinare security_result.severity.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.