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