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 |









