Vai al contenuto
Avanet

Sophos Switch: interrogare i dati di dispositivi e client con Live Discover

Con Live Discover è possibile interrogare la telemetria degli Sophos Switch gestiti in Sophos Fusion. I dati del Data Lake consentono, ad esempio, di esaminare i dispositivi che erano connessi a uno switch specifico. Non rappresentano tuttavia una vista in tempo reale dello stato attuale dello switch.

Prerequisiti

È necessario disporre di almeno uno Sophos Switch gestito in Sophos Fusion, accedere al tenant corretto e poter aprire Threat Analysis Center > Live Discover. Live Discover richiede una licenza Sophos EDR, XDR o MDR. La documentazione non indica inoltre né un pacchetto di licenze Switch specifico né un determinato ruolo di amministratore. Se manca Live Discover, Switch o una funzione di modifica, far verificare l’assegnazione delle licenze, i propri diritti di accesso e l’abilitazione nel tenant interessato.

Definire in anticipo l’obiettivo dell’analisi. Punti di riferimento adatti sono, ad esempio, l’ID dello switch, il nome del dispositivo, il numero di serie, l’indirizzo MAC del client, la porta, la VLAN e l’intervallo di tempo. Designer Mode è necessario solo per modificare o creare una query.

Interrogare i dati dello switch

Iniziare con una query sullo switch predefinita. In questo modo si ottiene prima un risultato di confronto e si passa al designer solo se la query esistente non risponde alla domanda.

  1. In Sophos Fusion, aprire Threat Analysis Center > Live Discover > Switch.
  2. Selezionare una query Data Lake predefinita per Sophos Switch. Verificarne lo scopo, la definizione visibile e i parametri richiesti.
  3. Se disponibile, impostare il periodo dell’analisi in Select a Time Period, quindi eseguire la query.
  4. Interpretare i risultati in base all’identità dello switch, a type_of_data e ai campi temporali. Confrontare uno switch noto o un client di test con i dati nella gestione degli switch.
  5. Se la query predefinita è sufficiente, documentare query, parametri, intervallo temporale e risultato. In caso contrario, attivare Designer Mode e scegliere una delle seguenti opzioni:
    • Adattare una query esistente: selezionare la query in Query e fare clic su Edit. Salvare la definizione originale prima di modificarla.
    • Creare una nuova query: in Query, fare clic su Create new query e selezionare Data Lake come Source.
  6. Nella finestra di dialogo SQL, aprire Schema in alto a destra. Lo Schema Viewer viene aperto in una nuova scheda. Selezionare NSG Cswitch > nsg_cswitch_data e verificare le colonne e i tipi di dati disponibili.
  7. Utilizzare solo tabelle, campi e valori mostrati dallo Schema Viewer attuale o dalla query predefinita. Modificare ogni volta una sola parte coerente, ad esempio la selezione dei campi o il filtro per uno switch noto.
  8. Eseguire inizialmente la query adattata con uno switch o un client noto e ben circoscritto. Confrontare il risultato con la query predefinita invariata e con i dati noti di inventario o connessione.

Per cercare i client di uno switch specifico, identificare in modo univoco il dispositivo di destinazione mediante device_id o il numero di serie. Valutare quindi insieme l’indirizzo MAC del client, device_port, client_vlan, lo stato della connessione e i campi temporali. Questa limitazione evita confusioni, ma non dimostra ancora che l’elenco dei client sia completo; devono essere coerenti anche l’intervallo e is_full_set.

Scegliere l’intervallo temporale

Select a Time Period è facoltativo per le query Data Lake. Se non si effettua una selezione, vengono usati gli ultimi 7 giorni. Una singola query può coprire al massimo 30 giorni.

Per analisi più lunghe, eseguire più query con intervalli temporali separati. Per 90 giorni, Sophos indica ad esempio 0–30, 31–60 e 61–90 giorni. Documentare ogni intervallo separatamente e mantenere invariati lo switch, il tipo di dati e gli altri filtri durante il confronto.

Campi nello schema dello switch

Lo schema comprende l’identità dello switch, i client connessi e i log. type_of_data indica il tipo di dati inviati, ad esempio dati del client o di log. Non tutte le righe contengono quindi contemporaneamente tutti i campi dei client e dei log.

CampoSignificato documentato
message_identifierID univoco generato dalla pipeline di acquisizione
ingest_dateData in cui i dati sono stati acquisiti
ingestion_timestampOra di acquisizione in secondi epoch
schema_versionVersione dello schema del Data Lake
record_sizeDimensione dei dati
customer_idID cliente
type_of_dataTipo di dati inviati nel flusso, ad esempio dati del client o di log
is_full_setIndica se la trasmissione è completa o incrementale
timestampOra in cui è stato generato l’evento
device_idID univoco dello switch
device_nameNome dello switch
device_modelModello dello switch
device_firmwareVersione firmware dello switch
device_serial_idNumero di serie dello switch
client_macIndirizzo MAC del dispositivo connesso
client_ipIndirizzo IP del dispositivo connesso
client_hostnameNome host del dispositivo connesso
client_event_timestampOra in cui il dispositivo si è connesso
client_conn_statusStato della connessione del dispositivo
log_idID del log
log_subtypeSottotipo del log
log_componentComponente del log
log_messageMessaggio di log
log_severityGravità del messaggio di log
device_ipIndirizzo IP dello switch
device_portPorta dello switch a cui è connesso il client
client_vlanVLAN assegnata al dispositivo connesso
direct_end_deviceIndica se il dispositivo è connesso direttamente allo switch

I valori di stato, sottotipo e gravità possono variare in base ai dati visualizzati. Riprenderne la grafia e il significato esatti dallo schema attuale e dal risultato della query.

Interpretare correttamente i risultati

Una riga non elaborata del Data Lake è innanzitutto il risultato di una query. type_of_data e i campi compilati indicano se contiene dati del client o di log. Se la query SQL raggruppa più record, la riga del risultato è un riepilogo calcolato e non un singolo evento di rete. Non applicare quindi il significato di timestamp a un aggregato senza verificarlo.

Identità e tenant

device_id è l’ID univoco dello switch. Confrontare con il dispositivo di destinazione almeno un ulteriore riferimento, come device_serial_id, device_name, device_model o device_ip. Nomi e indirizzi IP possono cambiare o essere riutilizzati. customer_id associa i dati al tenant e non è né l’ID dello switch né un numero di serie né l’ID del client.

Ora dell’evento e dell’acquisizione

  • timestamp indica l’ora in cui è stato generato l’evento.
  • client_event_timestamp indica l’ora in cui il dispositivo si è connesso.
  • ingestion_timestamp indica l’ora di acquisizione in secondi epoch.
  • ingest_date è la data di acquisizione.

Un’acquisizione successiva non corrisponde automaticamente a un evento di rete successivo. Per le serie temporali, verificare anche la conversione epoch e il fuso orario dell’ambiente di query utilizzato.

Dati completi e incrementali

is_full_set indica se una trasmissione è completa o incrementale. Non considerare un set di dati incrementale come un inventario completo dei client. Anche una trasmissione contrassegnata come completa non garantisce da sola che ogni client previsto compaia nel periodo esaminato.

Client e log

device_port e client_vlan associano un client a una porta e a una VLAN. Solo il valore di direct_end_device, e non la semplice presenza del campo, indica se è connesso direttamente. L’indirizzo IP e il nome host possono mancare o cambiare; per l’attribuzione usare anche client_mac e i campi temporali. Un record di telemetria è inoltre solo un’osservazione riferita a un momento preciso, non una prova dello stato attuale o di una cronologia delle connessioni senza interruzioni.

Per i dati di log, log_id, log_subtype, log_component, log_message e log_severity forniscono il contesto. La sola gravità non dimostra né la causa né l’impatto di un problema di rete.

Verificare il risultato

Prima di usare il risultato, rispondere alle seguenti domande:

  • customer_id e l’identità dello switch appartengono al tenant e al dispositivo di destinazione corretti?
  • type_of_data e i campi del client o di log effettivamente compilati corrispondono alla domanda dell’analisi?
  • Le ore dell’evento, del client e dell’acquisizione rientrano nell’intervallo previsto e sono state interpretate separatamente?
  • È stato considerato is_full_set se si formula un’affermazione sulla completezza?
  • Per un client di test noto, l’indirizzo MAC, la porta, la VLAN e il valore di direct_end_device corrispondono alla connessione prevista?
  • La query predefinita fornisce un risultato di confronto plausibile per la stessa destinazione e lo stesso intervallo?

Un record mancante è solo una prova mancante nelle condizioni selezionate. Non dimostra né che lo switch o il client non esista né, da solo, un errore di telemetria.

Circoscrivere i problemi

Mancano le query dello switch o le funzioni di modifica

Se manca l’area Switch, verificare innanzitutto il tenant Fusion corretto, la presenza di uno switch gestito da Fusion e l’assegnazione della licenza Sophos EDR, XDR o MDR. Far quindi controllare i propri diritti di accesso e l’abilitazione nel tenant. Per Edit e Create new query deve inoltre essere attivo Designer Mode.

Manca lo schema o la tabella

Lo Schema Viewer può essere aperto dalla finestra SQL di una query modificata o nuova. Per una nuova query deve essere selezionato Source: Data Lake. Per la telemetria dello switch, utilizzare esclusivamente il percorso NSG Cswitch > nsg_cswitch_data visualizzato nel viewer e i relativi campi attuali.

La query non restituisce righe

Provare innanzitutto una query predefinita per uno switch noto. Annotare tenant, filtro dello switch, record di test previsto e intervallo temporale. Rimuovere quindi uno alla volta i filtri personalizzati e confrontare i nomi dei campi con lo schema.

Senza una selezione temporale personalizzata, tenere conto del valore predefinito di 7 giorni. Con tutte le altre condizioni invariate, ampliare gradualmente l’intervallo fino a un massimo di 30 giorni. Per analisi più lunghe, utilizzare intervalli separati e documentati. Confrontare inoltre l’ora dell’evento e quella di acquisizione e verificare type_of_data e is_full_set. Registrare il risultato come «nessuna riga nelle condizioni di query e nel periodo selezionati».

È inoltre possibile verificare lo stato operativo e di sincronizzazione del dispositivo di destinazione con il runbook Gestire una flotta di Sophos Switch.

Sono presenti righe, ma mancano i dati del client

Una riga di log non deve necessariamente contenere campi del client. Verificare quindi prima type_of_data e is_full_set, poi valutare insieme client_mac, client_ip, client_hostname, client_event_timestamp e client_conn_status. Non completare i valori mancanti usando l’inventario o le convenzioni di denominazione.

La serie temporale sembra incoerente

Confrontare separatamente l’ora dell’evento e quella di acquisizione e controllare la conversione epoch e il fuso orario. Un’acquisizione ritardata non è automaticamente un secondo evento di rete. Per la deduplicazione è possibile usare message_identifier, ma la sua unicità è documentata solo all’interno della pipeline di acquisizione.

Annullare le modifiche e proteggere i dati

Una query modifica la propria definizione o selezione SQL, non la configurazione dello switch. Se una query adattata non è affidabile, non utilizzarla ulteriormente e tornare alla query predefinita invariata. Se necessario, ripristinare la definizione salvata in precedenza o eliminare la nuova variante con la funzione disponibile nell’interfaccia. Verificare poi con la query predefinita che il normale processo continui a funzionare.

I risultati esportati possono contenere ID cliente, numeri di serie, indirizzi IP e MAC, nomi host, porte, VLAN e messaggi di log. Proteggere ed eliminare esportazioni, schermate e note in base ai requisiti di conservazione e protezione dei dati. L’annullamento di una query non rimuove le copie già salvate, che devono essere gestite nelle rispettive posizioni di archiviazione.