Installazione di Osquery su Ubuntu
osquery i pacchetti non sono disponibili nel repository Ubuntu predefinito quindi prima di installarlo dobbiamo aggiungere il osquery apt repository eseguendo il seguente comando nel terminale.
[email protected]:~$ echo "deb [arch=amd64] https://pkg.osquery.io/deb deb main" |sudo tee /etc/apt/sources.elenco.d/osquery.elenco
Ora importeremo la chiave di firma eseguendo il seguente comando nel terminale.
[email protected]:~$ sudo apt-key adv --keyserver keyserver.ubuntu.come--chiavi-recv 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Dopo aver importato la chiave di firma, ora aggiorna il tuo sistema eseguendo il seguente comando nel terminale.
[email protected]:~$ sudo apt-get updateOra installa osquery eseguendo il seguente comando
[email protected]:~$ sudo apt-get install osqueryDopo l'installazione osquery, ora dobbiamo verificare se è stato installato correttamente eseguendo il seguente comando
[email protected]:~$ osqueryi --versionSe fornisce il seguente output, allora è installato correttamente
Usando Osquery
Ora, dopo l'installazione, siamo pronti per l'uso osquery. Esegui il seguente comando per andare al prompt della shell interattivo
[email protected]:~$ osqueryi
Ottenere aiuto
Ora possiamo eseguire query basate su SQL per ottenere dati dal sistema operativo. Possiamo ottenere aiuto su osquery eseguendo il seguente comando nella shell interattiva.
osquery> .Aiuto
Ottenere tutti i tavoli
Come menzionato prima, osquery espone i dati dal sistema operativo come un database relazionale quindi ha tutti i dati sotto forma di tabelle. Possiamo ottenere tutte le tabelle eseguendo il seguente comando nella shell interattiva
osquery> .tavoli
Come possiamo vedere, eseguendo il comando sopra possiamo ottenere un sacco di tabelle. Ora possiamo ottenere dati da queste tabelle eseguendo query basate su SQL.
Informazioni sull'elenco di tutti gli utenti
Possiamo vedere tutte le informazioni sugli utenti eseguendo il seguente comando nella shell interattiva
osquery> SELECT * FROM utenti;Il comando sopra mostrerà gid, uid, descrizione ecc. di tutti gli utenti
Possiamo anche estrarre solo i dati rilevanti sugli utenti, ad esempio vogliamo vedere solo gli utenti e non altre informazioni sugli utenti. Esegui il seguente comando nella shell interattiva per ottenere i nomi utente
osquery> SELECT username FROM utenti;Il comando sopra mostrerà tutti gli utenti nel tuo sistema
Allo stesso modo possiamo ottenere nomi utente insieme alla directory in cui esiste l'utente eseguendo il seguente comando.
osquery> SELECT nome utente, directory FROM utenti;
Allo stesso modo possiamo interrogare tutti i campi che vogliamo eseguendo i comandi simili.
Possiamo anche ottenere tutti i dati di utenti specifici. Ad esempio vogliamo ottenere tutte le informazioni sull'utente root. Possiamo ottenere tutte le informazioni sull'utente root eseguendo il seguente comando.
osquery> SELECT * FROM utenti WHERE username="root";
Possiamo anche ottenere dati specifici da campi specifici (colonne). Ad esempio, vogliamo ottenere l'id del gruppo e il nome utente dell'utente root. Esegui il seguente comando per ottenere questi dati.
osquery> SELECT username, gid FROM utenti WHERE username=”root”
In questo modo possiamo interrogare tutto ciò che vogliamo da una tabella.
Elenco di tutti i processi
Possiamo elencare i primi cinque processi in esecuzione in Ubuntu eseguendo il seguente comando nella shell interattiva
osquery> SELECT * FROM processi LIMIT 5;
Poiché ci sono molti processi in esecuzione nel sistema, abbiamo visualizzato solo cinque processi utilizzando la parola chiave LIMIT.
Possiamo trovare l'id del processo di un processo specifico, ad esempio vogliamo trovare l'id del processo di mongodb quindi eseguiremo il seguente comando nella shell interattiva
osquery> SELECT pid FROM processi WHERE name="mongod";
Trovare la versione di Ubuntu
Possiamo trovare la versione del nostro sistema Ubuntu eseguendo il seguente comando nella shell interattiva
osquery> SELECT * FROM os_version;Ci mostrerà la versione del nostro sistema operativo
Verifica delle interfacce di rete e degli indirizzi IP
Possiamo controllare l'indirizzo IP, la subnet mask delle interfacce di rete eseguendo la seguente query nella shell interattiva.
osquery> SELECT interfaccia,indirizzo,maschera FROM indirizzi_interfacciaWHERE interfaccia NON COME '%lo%';
Verifica degli utenti che hanno effettuato l'accesso
Possiamo anche controllare gli utenti che hanno effettuato l'accesso sul tuo sistema interrogando i dati dalla tabella 'logged_in_users'. Esegui il seguente comando per trovare gli utenti che hanno effettuato l'accesso.
osquery> SELECT utente,host,ora FROM utenti_loggati WHERE tty NON MI PIACE '-';
Controllo della memoria di sistema
Possiamo anche controllare la memoria totale, la memoria cache della memoria libera ecc. eseguendo alcuni comandi basati su SQL nella shell interattiva. Per controllare la memoria totale, esegui il seguente comando. Questo ci darà la memoria totale del sistema in byte.
osquery> SELECT memory_total FROM memory_info;
Per controllare la memoria libera del tuo sistema esegui la seguente query nella shell interattiva
osquery> SELECT memory_free FROM memory_info;Quando eseguiamo il comando sopra, ci darà memoria libera disponibile nel nostro sistema
Possiamo anche controllare la memoria cache del sistema usando la tabella memory_info eseguendo la seguente query.
osquery> seleziona memorizzato nella cache da memory_info;
Elenco dei gruppi
Possiamo trovare tutti i gruppi nel tuo sistema eseguendo la seguente query nella shell interattiva
osquery> SELECT * FROM gruppi;
Visualizzazione delle porte di ascolto
Possiamo visualizzare tutte le porte di ascolto del nostro sistema eseguendo il seguente comando nella shell interattiva
osquery> SELECT * FROM porte_di ascolto;
Possiamo anche verificare se una porta è in ascolto o meno eseguendo il seguente comando nella shell interattiva
osquery> SELECT porta, indirizzo FROM porte_di ascolto WHERE porta=27017;Questo ci darà un output come mostrato nella figura seguente following
Conclusione
osquery è un'utilità software molto utile per trovare qualsiasi tipo di informazione sul tuo sistema. Se conosci già le query basate su SQL, è molto facile da usare per te o se non sei a conoscenza delle query basate su SQL, ho fatto del mio meglio per mostrarti alcune query importanti che sono utili per trovare dati. Puoi trovare qualsiasi tipo di dato da qualsiasi tabella eseguendo query simili.