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 |









