La sicurezza dovrebbe essere sempre uno dei motivi principali per cui cerchiamo soluzioni integrali sia internamente che esternamente a livello di hardware, servizi, processi e degli utenti stessi. Indubbiamente negli ambienti Linux possiamo avvalerci delle varie soluzioni che vengono sviluppate per migliorare la sicurezza dei nostri sistemi ed è per questo motivo che Solvetic spiegherà uno speciale chiamato OSQuery e potremo capire come grazie ad esso un più viene aggiunto un livello di sicurezza al nostro sistema e come amministratori o gruppo IT saremo un po' più fiduciosi, ma senza mai rinunciare ai tradizionali consigli di sicurezza.
Cos'è OSQuery?OSQuery è stato sviluppato come framework di strumentazione per il sistema operativo ed è disponibile per Windows, OS X (macOS), Linux e FreeBSD. OSQuery dispone di strumenti pratici ma completi che sono responsabili dell'esecuzione di varie scansioni del sistema operativo di basso livello e del monitoraggio delle prestazioni e di ciascun processo in modo completo.
OSQuery si avvale di un semplice plugin e di un'API di estensione per implementare tabelle SQL, ma esiste già una raccolta di tabelle pronte per l'uso, alcune di queste tabelle sono disponibili solo per un sistema speciale, ad esempio nel caso di Linux vedremo solo la tabella kernel_modules.
Per capire come funziona OSQuery, questo strumento espone il sistema operativo come un database relazionale ad alte prestazioni in modo che, grazie a questa esposizione, le query SQL possano essere scritte per esplorare i dati del sistema operativo in un modo molto più approfondito. Quando si utilizza OSQuery, le tabelle SQL sono rappresentate come concetti astratti simili a processi in esecuzione, moduli del kernel caricati, connessioni di rete aperte, eventi hardware, hash di file o altro.
Funzionalità di OSQuery
Tra le diverse funzionalità di OSQuery troviamo:
- Ha un demone di monitoraggio host distribuito ad alte prestazioni, ma a basso impatto, chiamato osqueryd, grazie al quale sarà possibile pianificare le query da eseguire sull'intera infrastruttura montata nell'organizzazione.
- Il registro generato da osqueryd può essere integrato nei registri interni grazie ad un'architettura a plugin in modo da avere sempre a disposizione migliori opzioni di sicurezza.
- Ha una console di query interattiva, chiamata osqueryi, che è un'interfaccia SQL sviluppata per testare nuove query ed esplorare a fondo il sistema operativo, questa console ha tutti i vantaggi del linguaggio SQL completo e ha centinaia di tabelle integrate che saranno vitali per l'incidente risposta, diagnostica dei problemi a livello di operazioni di sistema e altro ancora.
- OSQuery è una piattaforma multipiattaforma, indipendentemente dal fatto che questa applicazione utilizzi le API del sistema operativo di basso livello, siamo in grado di creare e utilizzare OSQuery su sistemi Windows, macOS, Ubuntu, CentOS e altre distribuzioni Linux a livello aziendale. .
- OSQuery ha pacchetti nativi per tutti i sistemi operativi compatibili, ci sono anche strumenti e molta documentazione sulla creazione di pacchetti con cui abbiamo risorse per la loro amministrazione.
- La base di codice OSQuery è composta da componenti modulari ad alte prestazioni che utilizzano API pubbliche per espandere i propri vantaggi.
Ora vedremo come installare OSQuery su Linux.
1. Installa OSQuery su Linux
Passo 1
OSQuery può essere installato dal repository ufficiale utilizzando gli strumenti di gestione dei pacchetti apt, yum o dnf a seconda della distribuzione utilizzata in questo modo:
In ambienti Debian o Ubuntu
export OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $ OSQUERY_KEY sudo add-apt-repository 'deb [arch = amd64] deb64] debit mainio.deb https://pkg/deb /debquery 'sudo apt update sudo apt install osquery
Negli ambienti Fedora
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery dnf config-manager --add-repo --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm. repo sudo dnf config-manager --set-enabled osquery-s3-rpm sudo dnf install osquery
Negli ambienti CentOS 7Per gli ambienti CentOS 7, che utilizzeremo in questo tutorial, eseguiremo ciascuna delle seguenti righe:
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo sudo yum -config-manager --enable osquery-s3-rpm sudo yum install osquery
Passo 2
Ma per CentOS 7 abbiamo la possibilità di installare l'RPM "auto-repo-add" o aggiungere la destinazione del repository. Questi RPM funzionano su qualsiasi Linux x86-64 con un'installazione di base dell'anno 2011 e prima eseguiamo quanto segue:
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
Passaggio 3
Quindi eseguiamo l'installazione di OSQuery in questo modo.
sudo yum install osquery
Passaggio 4
Inseriamo la lettera y per confermare il download e l'installazione di OSQuery in CentOS 7. Ad un certo punto dell'installazione dobbiamo autorizzare l'installazione della chiave GPG:
Passaggio 5
Inseriamo la lettera s per confermarlo e vedremo che OSQuery è installato correttamente in CentOS 7.
2. Usa OSQuery per analizzare Linux
Passo 1
Una volta che OSQuery è installato correttamente in CentOS 7, avvieremo la shell osqueryi per avviare le query sullo stato del sistema operativo, per questo eseguiamo:
osqueryi
Passo 2
Per ottenere un riepilogo delle informazioni del nostro sistema operativo Linux, eseguiremo il seguente comando:
SELEZIONA * DA system_info;Passaggio 3
Nei risultati vedremo dettagli come:
- Nome host
- indirizzo IP
- Tipo di CPU utilizzato
- UUID e altro
Passaggio 4
Se vogliamo ottenere un elenco di tutti gli utenti sul sistema Linux, eseguiremo la seguente query OSQuery:
SELEZIONA * DA utenti;
Passaggio 5
Per ottenere un elenco di tutti i moduli del kernel Linux e il loro rispettivo stato, eseguiamo quanto segue.
SELECT * FROM kernel_modules;
Passaggio 6
Se è necessario accedere all'elenco di tutti i pacchetti RPM installati in CentOS, RHEL e Fedora, eseguiremo la seguente query:
.all rpm_packages;
Passaggio 7
Per accedere alle informazioni su come eseguire i processi su Linux, sarà utile la seguente query:
SELECT DISTINCT processi.nome, porte_ascolto.porta, processi.pid DA porte_ascolto UNISCI processi USING (pid) WHERE porte_ascolto.address = '0.0.0.0';Passaggio 8
Per elencare tutte le tabelle implementate eseguiamo:
.tavoli
Passaggio 9
Per elencare lo schema (colonne, tipi) di una tabella specifica eseguiamo una delle seguenti righe:
.schema nome_tabella pragma info_tabella (nome_tabella);
Passaggio 10
Per visualizzare l'aiuto generale eseguiremo quanto segue:
.aiuto
Passaggio 11
Per uscire da OSQuery eseguiamo:
.UscitaCon OSQuery sarà possibile accedere a informazioni dettagliate su molti parametri di sistema per migliorare le attività di amministrazione e avere sempre grandi funzionalità.