Per mantenere questo tutorial conciso, non ci immergeremo in profondità nel "cosa" e "come" della pila di alci. Invece, discuteremo rapidamente e direttamente come usarlo con Osquery. Supponiamo inoltre che tu abbia una conoscenza pratica di SQL-the fornita nonostante).
Cos'è Osquery?
Sviluppato da Facebook, Osquery è uno strumento open source multipiattaforma utilizzata per interrogare e monitorare i sistemi utilizzando query basate su SQL.
Osquery può interagire con il sistema e raccogliere informazioni dettagliate come utilizzo della memoria, processi di esecuzione, moduli del kernel caricato, eventi hardware, connessioni di rete, ecc. Lo strumento funziona su tutti i sistemi, tra cui 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 sui sistemi Debian
L'installazione di Osquery su Debian Systems è molto semplice e sebbene non sia disponibile nei principali repository di Debian, aggiungendo che è piuttosto semplice.
Diamo un'occhiata al primo metodo che puoi utilizzare per installare Osquery su Debian:
Il primo e più semplice passo è 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 di cui sopra poiché i pacchetti DEB hanno pochissime dipendenze dalla maggior parte delle distribuzioni Debian. Tuttavia, se si desidera aggiungere ad Apt, usa il metodo successivo.
Immettere i seguenti comandi per installare Osquery dai repository.
EXPORT OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Sudo Apt-Key Adv --Keyserver HKP: // keyserver.Ubuntu.com: 80-recv-chiavi $ osquery_key
sudo add-apt-repository 'deb [arch = amd64] https: // pkg.Osquery.io/deb deb main '
Sudo Apt-get Aggiornamento
sudo apt-get installa osquery
Come usare Osquery su Debian 10
Prima di immergerti in profondità nella costruzione di script automatizzati e di lavorare con lo stack di Elk, discutiamo di un semplice utilizzo 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 è del tutto autonoma e non richiede l'interazione con il demone Osquery-osquery. Utilizzando la modalità Osqueryi, è possibile eseguire le query SQL in modo interattivo ed esplorare il sistema corrente simile a una shell SQL.
NOTA: Osquery rispetta gli spazi utente e se si esegue la shell come modalità utente normale, non avrai accesso a tabelle privilegiate.
Osqueryd: L'altro componente è Osqueryd, il demone Osquery utilizzato per programmare le domande e registrare le modifiche allo stato in background. Il demone funziona aggregando i risultati delle query eseguiti in un periodo di tempo specifico e genera registri utilizzati per confrontare le modifiche allo stato di ogni query.
Osqueryctl: Il terzo componente è OsQueryCtl, uno script helper utilizzato per testare la configurazione di distribuzione. Puoi anche usarlo come responsabile del servizio Osquery, permettendoti di iniziare e fermare il servizio.
Out Out Of On Of Box, Osquery non è altro che un semplice strumento per interrogare informazioni sul sistema. Tuttavia, quando si combinano le query per creare dati ben ordinati e aggregati, diventa più di uno strumento di query.
Per ottenere Rollin ', iniziamo con le basi per capire come funziona:
Il primo passo è ottenere aiuto con il comando:
sudo Osqueryd - -help
Questo comando visualizzerà l'aiuto del demone Osquery, con un elenco di argomenti che puoi utilizzare nella shell.
Il prossimo e il modo più semplice per interagire con Osquery è utilizzare la sessione di Osqueryi. Ad esempio, se si esegue il comando Osqueryi senza un argomento, ti lascerai cadere in una shell simile a SQL:
Sudo Osqueryi
All'interno della shell di Osqueryi, è possibile eseguire comandi e sintassi SQL per selezionare informazioni specifiche sul sistema.
Per visualizzare la modalità di aiuto all'interno della shell di Osqueryi, utilizzare il comando:
Osquery> .aiuto
L'esecuzione di questo comando dovrebbe visualizzare la guida per quanto riguarda la sessione di Osquery.
Poiché Osquery è un mapper di database relazionale per il sistema, ha un elenco di tabelle che è possibile utilizzare per selezionare le informazioni dall'uso di query SQLite.
NOTA: Le query di Osquery sono basate su SQLite. È possibile fare riferimento alla sua documentazione se Osquery non fornisce informazioni sufficienti:
https: // www.sqlite.org/indice.html
All'interno della shell di 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, visualizzare le informazioni sui risolutori DNS.
Seleziona * da dns_resolvers;
A seconda dello schema che richiedi, otterrai un carico di informazioni e potrebbe essere necessario utilizzare una combinazione di query SQL per dargli un senso.
Puoi saperne di più sulle tabelle e sugli schemi di Osquery dalla seguente risorsa:
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 questo percorso, ma funziona.
Questo semplice tutorial discuterà delle basi SQLite per spiegare come puoi usarlo per interagire con Osquery.
NOTA: Questo non intende in alcun modo essere una guida per SQL o lingue correlate. Per ulteriori guide specifiche del linguaggio, consultare la documentazione primaria.
Selezione di voci specifiche da una tabella
Utilizzando la sintassi SQLite di base, possiamo selezionare informazioni specifiche da una tabella utilizzando l'istruzione Seleziona come mostrato:
Seleziona PID, nome, percorso dai processi;
Aggiunta di funzioni SQL
Osquery supporta anche le funzioni SQL, consentendo 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 (*) dagli utenti;
Questo comando restituirà il numero totale di utenti nel sistema.
La capacità di Osquery di utilizzare la sintassi SQL è un enorme vantaggio che può aiutarti a creare set di dati complessi che possano darti un'analisi più approfondita di un sistema. Crea anche un ponte che gli sviluppatori SQL utilizzano motori come PostgreSQL, MySQL e altri possono usare per adattarsi con facilità.
https: // osquery.PRIEDTHOCS.IO/EN/STABLE/INTRODUZIONE/SQL/
Un progetto divertente, laterale
Quando esplori ulteriormente Osquery e sperimentalo, scoprirai che è uno strumento completo e potente che semplifica la creazione di progetti specificamente sintonizzati per monitorare i sistemi.
A causa dell'ambito di questo tutorial ed evitare di confondere i principianti, non approfondiremo progetti complessi. Ciò menzionato, ecco alcuni strumenti che puoi creare usando Osquery:
https: // osquery.PRIEDTHOCS.io/en/stable/distribuzione/log-aggregazione/
https: // www.elastico.CO/GUIDA/EN/BEATS/FILEBEAT/7.10/filebeat-module-osquery.html
https: // github.com/floetdm/flotta
Conclusione
In questo tutorial, abbiamo esaminato le basi di Osquery, incluso come usarlo per raccogliere informazioni sul sistema.
Sebbene non completa, questa guida si è proposta per fornirti un'introduzione rapida e diretta a Osquery; Non era affatto una guida di riferimento.
Sentiti libero di utilizzare altre risorse per ottenere una comprensione più profonda dei vari concetti che abbiamo discusso in questo tutorial.