Agente OsQuery

Funzione

Interroga gli host utilizzando osquery. Questo plugin richiede che l'eseguibile osqueryi sia installato sull'host monitorato. osqueryi viene eseguito tramite il SKOOR Agent, che deve essere installato e in esecuzione sulla macchina interrogata. Non è necessario che il demone osqueryd sia in esecuzione affinché queste interrogazioni funzionino.

Allarmi

Dipende dai valori di ritorno configurati nei parametri del job.

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

  • Processi in esecuzione

  • Moduli del kernel caricati

  • Account utente attivi

  • Connessioni di rete attive

e molto altro ancora. osquery rende il sistema operativo accessibile 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

È possibile installarlo seguendo le istruzioni riportate nella pagina dei download di osquery: https://osquery.io/downloads/. In alternativa, è sufficiente copiare il file binario osqueryi nella directory /usr/bin.

Eseguire query manualmente sull'host su cui è installato osqueryi è semplice. È sufficiente eseguire il comando osqueryi per accedere allo 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

Per ulteriori informazioni su osquery, consultare: https://osquery.readthedocs.io/en/stable/.

Dettagli sull’agente OsQuery

Parametri dell’agente OsQuery

Parametro

Descrizione

Query

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

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

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 processo" del processo per apparire nella sezione "Valori" del processo.

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 processo (vedere la sezione Codici di errore dei processi)

Esempi di OsQuery dell'agente

Esempio 1 - Interrogazione del modello della CPU

Query

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

Ciò richiede la configurazione del seguente valore stringa:

Risultato 1

Esempio 2 - Interrogazione della memoria totale e libera

Query

select memory_total, memory_free da memory_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

Altre query di esempio

Query

Descrizione

Esempio di output

select username, description, directory from users where username like '%eranger'

Leggi le informazioni sull'utente

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

Leggi l'ora di sistema

select count(pid) as total, name da processes raggruppa per name ordina per total in ordine decrescente limita a 10

Restituisce il numero e il nome dei 10 processi più attivi

select * da uptime

Restituisce il tempo di attività del sistema