Agente OsQuery

Funzione

Interroga gli host utilizzando osquery. Questo plugin richiede che l'eseguibile osqueryi sia installato sull'host monitorato. osqueryi viene eseguito tramite SKOOR Agent, che deve essere anch'esso installato e in esecuzione sul computer interrogato. Il demone osqueryd non è necessario per il funzionamento di queste query.

Allarme

Dipende dai valori di ritorno configurati nei parametri del lavoro.

osquery è uno strumento open source creato da Facebook per interrogare varie informazioni sullo stato delle macchine. Ciò include informazioni quali:

  • Processi in esecuzione

  • Moduli del kernel caricati

  • Account utente attivi

  • Connessioni di rete attive

e molto altro ancora. osquery espone un sistema operativo come un database relazionale ad alte prestazioni e consente di interrogarlo utilizzando istruzioni SQL.

osquery è attualmente disponibile per i seguenti sistemi operativi:

  • Linux

  • Windows

  • OS X

  • FreeBSD

Può essere installato seguendo le istruzioni riportate nella pagina dei download di osquery: https://osquery.io/downloads/. In alternativa, il file binario osqueryi può essere semplicemente copiato in /usr/bin.

Eseguire query manualmente sull'host in cui è installato osqueryi è facile. È sufficiente eseguire il comando osqueryi che avvia lo strumento di query interattivo, quindi inserire la query seguita da un punto e virgola:

$ osqueryi
Using a virtual database. Need help, type '.help'
osquery> select value as string_value1 from cpuid where feature="product_name";
+------------------------------------------+
| string_value1                            |
+------------------------------------------+
| Dual-Core AMD Opteron(tm) Processor 1218 |
+------------------------------------------+
osquery> .quit

Maggiori informazioni su osquery sono disponibili qui: https://osquery.readthedocs.io/en/stable/.

Dettagli dell'agente OsQuery

Parametri dell'agente OsQuery

Parametro

Descrizione

Query

La query da eseguire sul database osquery sull'host locale (SKOOR Collector) o remoto.

L'elenco a discesa Tag consente di inserire variabili predefinite nei campi sopra indicati, ad esempio $NAME$ per il nome del lavoro.

La sezione Esempi riportata di seguito elenca alcune delle query che è possibile utilizzare. L'output restituito dalla query deve essere mappato ai valori di ritorno e ai valori stringa nell'ordine corretto.

In alternativa, l'ordine dei valori e delle stringhe restituiti può essere modificato adattando la query in modo da fornire i nomi dei valori e delle stringhe previsti, ad esempio la seguente query mapperà il valore memory_free al primo valore di ritorno e memory_total al secondo valore di ritorno:

select memory_total as return_value2, memory_free as return_value1 from memory_info

La seguente query restituisce due valori stringa in un ordine specifico:

select feature as string_value1, value as string_value2 from cpuid limit 1

Tuttavia, i valori di ritorno e i valori stringa devono comunque essere configurati nella sezione Parametri del lavoro per apparire nella sezione Valori del lavoro.

Valori OsQuery dell'agente e limiti di allarme

Valore / Limite di allarme

Descrizione

<Generico>

Dipende dai valori di ritorno configurati nei parametri del processo.

Codice di errore

Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro)

Esempi di OsQuery dell'agente

Esempio 1 - Query sul modello della CPU

Query

select value as string_value1 from cpuid where feature="product_name"

Ciò richiede la configurazione del seguente valore stringa:

Risultato

Esempio 2 - Query della memoria totale e libera

Query

seleziona memoria_totale, memoria_libera da memoria_info

Ciò richiede la configurazione dei seguenti 2 valori di ritorno:

L'unità contiene il nome del valore di ritorno, un'unità e un divisore, poiché osquery restituisce i valori in byte:

Output 2

Ulteriori esempi di query

Query

Descrizione

Esempio di output

seleziona nome utente, descrizione, directory da utenti dove nome utente è simile a '%eranger'

Leggi le informazioni sull'utente

seleziona giorno della settimana, giorno, mese, anno, unix_time da time

Leggi l'ora di sistema

seleziona count(pid) come totale, nome da processi raggruppa per nome ordina per totale discendente limite 10

Restituisci conteggio dei processi, nome per i 10 processi più attivi

seleziona * da uptime

Restituisce il tempo di attività del sistema