Debian

Come installare Osquery su Debian 10

Come installare Osquery su Debian 10
In questo tutorial di Osquery, inizieremo discutendo che cos'è Osquery, come funziona, come installarlo su Debian, una rapida introduzione a SQL e, infine, costruiremo un progetto che descriva in dettaglio come integrare Osquery con lo stack ELK.

Per mantenere questo tutorial conciso, non approfondiremo il "cosa" e il "come" dello stack ELK. Invece, discuteremo rapidamente e semplicemente come usarlo con Osquery. Assumeremo inoltre che tu abbia una conoscenza pratica di SQL, nonostante la guida fornita).

Cos'è Osquery??

Sviluppato da Facebook, Osquery è uno strumento multipiattaforma e open source utilizzato per interrogare e monitorare i sistemi utilizzando query basate su SQL.

Osquery può interagire con il sistema e raccogliere informazioni dettagliate come l'utilizzo della memoria, i processi in esecuzione, i moduli del kernel caricati, gli eventi hardware, le connessioni di rete, ecc. Lo strumento funziona su tutti i sistemi, inclusi Windows, Linux, Mac e BSD.

Utilizzando Osquery, è possibile creare query SQL che visualizzano informazioni sul sistema e utilizzare queste informazioni per monitorare e analizzare i dati raccolti.

Come installare Osquery su sistemi Debian

Installare Osquery sui sistemi Debian è molto semplice e, sebbene non sia disponibile nei repository Debian principali, aggiungerlo è piuttosto semplice.

Diamo un'occhiata al primo metodo che puoi usare per installare Osquery su Debian:

Il primo e più semplice passaggio è scaricare il programma di installazione deb dalla pagina principale:

https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.deb

wget https://pkg.osquery.io/deb/osquery_4.6.0-1.linux_amd64.deb
sudo dpkg -i osquery_4.6.0-1.linux_amd64.deb

Raccomandiamo il metodo sopra visto che i pacchetti deb hanno pochissime dipendenze dalla maggior parte delle distribuzioni Debian. Tuttavia, se desideri aggiungere ad apt, usa il metodo successivo.

Inserisci i seguenti comandi per installare Osquery dai repository.

esporta OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb principale'
sudo apt-get update
sudo apt-get install osquery

Come usare Osquery su Debian 10

Prima di approfondire la creazione di script automatizzati e lavorare con lo stack ELK, discutiamo di alcuni semplici utilizzi di Osquery sul sistema locale.

Osquery ha tre componenti principali che puoi utilizzare per interagire con l'API.

osquery: Il primo componente è osqueryi, una sessione di shell interattiva. La modalità osqueryi è completamente autonoma e non richiede l'interazione con il demone Osquery-Osquery. Usando la modalità osqueryi, puoi eseguire interattivamente query SQL ed esplorare il sistema attuale in modo simile a una shell SQL.

NOTA: Osquery rispetta gli spazi utente e se esegui la shell come una normale modalità utente, non avrai accesso alle tabelle privilegiate.

Osqueryd: L'altro componente è osqueryd, il demone Osquery utilizzato per pianificare le query e registrare i cambiamenti di stato in background. Il demone funziona aggregando i risultati delle query eseguite in un intervallo di tempo specifico e genera log utilizzati per confrontare i cambiamenti di stato di ogni query.

Osqueryctl: Il terzo componente è Osqueryctl, uno script di supporto utilizzato per testare la configurazione della distribuzione. Puoi anche usarlo come gestore del servizio Osquery, che ti consente di avviare e interrompere il servizio.

Fuori dagli schemi, Osquery non è altro che un semplice strumento per interrogare informazioni sul sistema. Tuttavia, quando combini le query per creare dati ben ordinati e aggregati, diventa più di uno strumento di query.

Per iniziare, iniziamo con le basi per capire come funziona:

Il primo passo è ottenere aiuto con il comando:

sudo osqueryd --help

Questo comando mostrerà l'aiuto del demone Osquery, con un elenco di argomenti che puoi usare nella shell.

Il prossimo, e il modo più semplice per interagire con Osquery, è usare la sessione osqueryi. Ad esempio, se esegui il comando osqueryi senza un argomento, entrerai in una shell simile a SQL:

sudo osqueryi

All'interno della shell osqueryi, puoi eseguire comandi e sintassi SQL per selezionare informazioni specifiche sul sistema.

Per visualizzare la modalità di aiuto all'interno della shell osqueryi, utilizzare il comando:

osquery > .Aiuto

L'esecuzione di questo comando dovrebbe visualizzare la guida relativa alla sessione di Osquery.

Poiché Osquery è un mappatore di database relazionale per il tuo sistema, ha un elenco di tabelle che puoi utilizzare per selezionare informazioni dall'utilizzo di query SQLite.

NOTA: Le query Osquery sono basate su SQLite. Puoi fare riferimento alla sua documentazione se Osquery non fornisce informazioni sufficienti:

https://www.sqlite.organizzazione/indice.html

All'interno della shell osqueryi, usa il comando:

osquery > .tavoli

Questo comando elenca le tabelle disponibili contenenti informazioni di sistema.

Da lì, puoi selezionare le informazioni dagli schemi disponibili. Ad esempio, visualizza le informazioni sui resolver DNS.

SELEZIONA * DA dns_resolvers;

A seconda dello schema su cui si esegue la query, si otterrà un carico di informazioni e potrebbe essere necessario utilizzare una combinazione di query SQL per capirne il senso.

Puoi saperne di più sulle tabelle e sugli schemi di Osquery dalla seguente risorsa:

https://osquery.io/schema/4.6.0/

Una guida SQL di base

Osquery funziona utilizzando query di sintassi SQLite per raccogliere informazioni su un sistema. Non ho idea del perché Facebook abbia scelto questa strada, ma funziona.

Questo semplice tutorial discuterà le basi di SQLite per spiegare come puoi usarlo per interagire con Osquery.

NOTA: Questa non vuole in alcun modo essere una guida per SQL o linguaggi correlati. Per ulteriori guide specifiche per la lingua, fare riferimento alla documentazione principale.

Selezione di voci specifiche da una tabella

Utilizzando la sintassi SQLite di base, possiamo selezionare informazioni specifiche da una tabella utilizzando l'istruzione SELECT come mostrato:

SELEZIONA pid, nome, percorso DA processi;

Aggiunta di funzioni SQL

Osquery supporta anche le funzioni SQL, permettendoti di eseguire varie azioni con i dati raccolti dalle query.

Ad esempio, la funzione di conteggio può consentire di visualizzare il numero di utenti nel sistema.

SELEZIONA COUNT(*) FROM utenti;

Questo comando restituirà il numero totale di utenti nel sistema.

La possibilità per Osquery di utilizzare la sintassi SQL è un enorme vantaggio che può aiutarti a creare set di dati complessi che possono darti un'analisi più approfondita di un sistema. Crea anche un ponte che gli sviluppatori SQL che utilizzano motori come PostgreSQL, MySQL e altri possono utilizzare per adattarsi con facilità.

https://osquery.leggi i documenti.io/it/stabile/introduzione/sql/

Un divertente progetto collaterale

Quando esplori ulteriormente Osquery e lo sperimenti, scoprirai che è uno strumento completo e potente che semplifica la creazione di progetti specificamente sintonizzati per monitorare i tuoi sistemi.

A causa dello scopo di questo tutorial e per evitare di confondere i principianti, non approfondiremo progetti complessi. Detto questo, ecco alcuni strumenti che puoi creare usando Osquery:

https://osquery.leggi i documenti.io/it/stable/distribuzione/log-aggregation/
https://www.elastico.co/guide/it/beats/filebeat/7.10/filebeat-modulo-osquery.html
https://github.com/fleetdm/flotta

Conclusione

In questo tutorial, abbiamo esaminato le basi di Osquery, incluso come usarlo per raccogliere informazioni di sistema.

Sebbene non sia completa, questa guida ha lo scopo di fornire un'introduzione rapida e diretta a Osquery; non era affatto una guida di riferimento.

Sentiti libero di usare altre risorse per ottenere una comprensione più profonda dei vari concetti che abbiamo discusso in questo tutorial.

Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...
0 A.D. Tutorial
Tra i tanti giochi di strategia in circolazione, 0 A.D. riesce a distinguersi come un titolo completo e un gioco molto profondo e tattico nonostante s...
Tutorial Unity3D
Introduzione a Unity 3D Unity 3D è un potente motore di sviluppo di giochi. È multipiattaforma cioè ti permette di creare giochi per mobile, web, desk...