Agente OsQuery
Funzione | Interrogare gli host utilizzando osquery. Questo plugin richiede che l'eseguibile osqueryi sia installato sull'host monitorato. osqueryi viene eseguito tramite lo SKOOR Agent, che deve essere anch'esso installato ed eseguito sul computer interrogato. Non è necessario che il demone osqueryd sia in esecuzione 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. Sono incluse 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 permette 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 binario di osqueryi può essere semplicemente copiato in /usr/bin.
Eseguire manualmente le query sull'host in cui è installato osqueryi è facile. È sufficiente eseguire il comando osqueryi per accedere allo strumento di interrogazione interattiva, 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
Ulteriori informazioni su osquery sono disponibili qui: https://osquery.readthedocs.io/en/stable/.
Dettaglio agente OsQuery
Parametri dell'agente OsQuery
Parametro | Descrizione |
---|---|
Query | La query da eseguire contro il database osquery sull'host locale (SKOOR Collector) o remoto. |
L'elenco a discesa Tags consente di inserire variabili predefinite nei campi precedenti, ad esempio $NAME$ per il nome del lavoro.
La sezione degli esempi che segue elenca alcune delle query che possono essere utilizzate. L'output restituito dalla query deve essere mappato in valori Return e valori String nell'ordine corretto.
In alternativa, l'ordine dei valori e delle stringhe restituiti può essere influenzato adattando la query in modo da fornire i nomi dei valori e delle stringhe previsti, ad esempio la query seguente mapperà il valore memory_free al primo valore Return e memory_total al secondo valore Return:
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 essere configurati nella sezione Parametri lavoro del lavoro per apparire nella sezione Valori del lavoro.
Valori e limiti di allarme dell'agente OsQuery
Valore / Limite di allarme | Descrizione |
---|---|
<Generico | Dipende dai valori di ritorno configurati nei parametri del lavoro. |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro). |
Esempi di agenti OsQuery
Esempio 1 - Interrogazione del modello di CPU
Domanda | select value as string_value1 from cpuid where feature="nome_prodotto" |
---|
Questa operazione richiede la configurazione del seguente valore di stringa:
Uscita 1
Esempio 2 - Interrogare la memoria totale e libera
Query | selezionare memory_total, memory_free da memory_info |
---|
Questo 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:
Uscita 2
Ulteriori esempi di query
Query | Descrizione | Esempio di output |
---|---|---|
selezionare nome utente, descrizione, directory da utenti dove nome utente è simile a '%eranger'. | Leggere le informazioni sull'utente | |
selezionare giorno della settimana, giorno, mese, anno, unix_time da time | Leggere l'ora del sistema | |
select count(pid) as total, name from processes group by name order by total desc limit 10 | Restituisce il conteggio dei processi e il nome dei primi 10 processi più attivi | |
selezionare * da uptime | Restituisce il tempo di attività del sistema |