la guida

Osquery e analisi forense: come individuare malware sugli endpoint



Indirizzo copiato

Osquery consente di interrogare direttamente il sistema operativo con query SQL per individuare processi sospetti, connessioni anomale e meccanismi di persistenza. Un approccio utile nell’analisi forense, soprattutto quando antivirus e strumenti basati su firme non rilevano malware attivi

Pubblicato il 15 mag 2026

Sokol Kolgjini

Consulente atsec information security srl



Claude Mythos Preview
AI Questions Icon
Chiedi all'AI
Riassumi questo articolo
Approfondisci con altre fonti

Il presupposto che attraversa quasi tutta la sicurezza informatica è che per proteggere un sistema bisogna dotarlo di strumenti che sorveglino ciò che accade e intervengano quando rilevano qualcosa di anomalo. Su questa logica funzionano gli antivirus, i sistemi di intrusion detection, le piattaforme EDR (Endpoint Detection and Response) e sostanzialmente ogni prodotto commerciale che un’azienda acquista per difendere i propri asset. Il meccanismo di fondo è sempre lo stesso: il software confronta ciò che osserva con un catalogo di comportamenti o firme note, e quando trova una corrispondenza genera un alert. Un approccio consolidato, ma che porta con sé un punto cieco strutturale in quanto la qualità della protezione dipende interamente dalla qualità del catalogo.

È dove questo punto cieco diventa un problema concreto che il discorso si fa interessante. Quando si passa dalla protezione preventiva all’analisi forense, cioè a quel momento in cui un analista deve sedersi davanti a una macchina e stabilire se è stata compromessa, da chi e come, gli strumenti basati su firme smettono semplicemente di essere utili. Ci si trova davanti a macchine con suite antivirus attive e aggiornate che risultano “pulite” a ogni scansione mentre ospitano processi malevoli perfettamente funzionanti. Malware caricato direttamente in memoria RAM, invisibile a qualunque scansione basata su file. Eseguibili rinominati per imitare processi di sistema legittimi che nessuna firma ha ancora catalogato. Non si tratta di scenari teorici ma della condizione operativa standard di chi indaga su compromissioni reali.

Osquery e il limite degli strumenti basati su firme

Osquery parte da un presupposto completamente diverso, e per certi versi opposto. Invece di confrontare ciò che vede con un catalogo di cose note, trasforma l’intero sistema operativo in un database relazionale interrogabile con il linguaggio SQL standard, lo stesso che qualunque amministratore di database o sviluppatore già conosce. Processi in esecuzione, connessioni di rete, porte in ascolto, servizi attivi, chiavi di registro, task schedulati, hash dei file, utenti e moduli del kernel diventano tutti tabelle con colonne e righe su cui si possono eseguire query SQL. Questo permette a chi indaga di interrogare direttamente il sistema operativo e capire in tempo reale cosa sta accadendo al suo interno, senza doversi affidare ad applicazioni esterne.

Le origini di osquery

Osquery nasce nel 2014 all’interno di Facebook, dove il team di sicurezza affrontava un problema di scala che nessun prodotto commerciale dell’epoca risolveva in modo soddisfacente: monitorare decine di migliaia di server e workstation eterogenei con un unico strumento capace di restituire risposte coerenti indipendentemente dal sistema operativo sottostante. La soluzione che costruirono era così efficace che Facebook decise di rilasciarla come progetto open source. Nel giro di pochi anni il tool è passato da strumento interno di una singola azienda a infrastruttura adottata da realtà come Palantir, l’azienda americana che fornisce piattaforme di analisi dati all’intelligence e alle forze armate statunitensi. Palantir non solo lo utilizza in produzione sulle proprie flotte di endpoint ma ne pubblica apertamente le configurazioni su GitHub come riferimento per l’intera comunità.

Nel 2019 la gestione e lo sviluppo del progetto sono passati alla Linux Foundation, garantendone l’indipendenza da qualunque singolo vendor. Da allora il lavoro della comunità è proseguito con ritmo costante e l’ultima release stabile, la 5.22.1, è stata pubblicata a fine febbraio 2026. Oggi osquery è disponibile per Linux, macOS e Windows ed espone oltre duecento tabelle virtuali che coprono praticamente ogni aspetto misurabile di un sistema operativo:

  • processi in esecuzione,
  • connessioni di rete,
  • chiavi di registro,
  • certificati TLS.

Su questa base piattaforme come Fleet, un sistema open source di gestione centralizzata degli endpoint, hanno costruito interi ecosistemi di sicurezza a livello enterprise, permettendo di orchestrare osquery su migliaia di macchine contemporaneamente.

Le tre condizioni di un attacco informatico

Per capire cosa osquery permette concretamente di individuare, bisogna prima capire come funziona un attacco. Chi si occupa di sicurezza offensiva conosce bene le tre condizioni che qualunque attacco informatico deve necessariamente soddisfare:

  • La prima è che l’attaccante ha bisogno di un servizio, cioè di un processo attivo in esecuzione sulla macchina della vittima. Senza un programma che giri in background non ha alcun punto d’appoggio da cui operare.
  • La seconda è che quel servizio ha bisogno di una connessione di rete per comunicare con l’esterno. Nella maggior parte degli attacchi moderni non è il malware a mettersi in ascolto, ma è lui stesso a stabilire una connessione in uscita verso il server di comando e controllo dell’aggressore, una tecnica nota come reverse shell che permette di aggirare i firewall configurati per bloccare le connessioni in ingresso. In entrambi i casi, se si individua e si interrompe quella connessione il controllo remoto cessa.
  • La terza è la persistenza, l’attaccante deve fare in modo che il suo malware si riavvii automaticamente a ogni riaccensione della macchina, nascondendo le istruzioni di avvio nelle chiavi di registro, nelle cartelle di startup o nei task schedulati. Altrimenti un semplice riavvio lo taglia fuori.

Queste tre condizioni non sono aggirabili e un analista deve quindi “smontare” l’attacco nelle sue componenti obbligate, interrogando il sistema per scovare servizi anomali, connessioni sospette e meccanismi di persistenza nascosti.

Ora che sappiamo cosa cercare, andiamo a vedere come usare osquery per condurre un’indagine forense su una macchina compromessa, partendo proprio da queste tre condizioni.

Cercare i servizi sospetti

Il primo passo consiste nel cercare il servizio anomalo. Quando un attaccante compromette una macchina installa un processo che gira in background per mantenerne il controllo, e quel processo compare necessariamente nell’elenco dei servizi del sistema operativo, per quanto cerchi di nasconderlo. Con osquery basta una singola query per estrarre la lista completa di tutti i servizi presenti, comprensiva di nome, tipo di avvio, percorso dell’eseguibile e account utente con cui vengono eseguiti.

Il risultato sarà una lista lunga dato che un sistema operativo in condizioni normali esegue decine di servizi legittimi e la vera competenza dell’analista sta nel distinguere ciò che deve esserci da ciò che non dovrebbe. Le anomalie da cercare sono di due tipi.

  • La prima è la presenza di servizi associati a software che nessuno ha installato o che non ha ragione di trovarsi su quella macchina. Un processo legato a un’applicazione di videoconferenza su un server che non ne ha mai avuta una, ad esempio se nessuno lo ha installato intenzionalmente, la domanda su come ci sia arrivato ha quasi sempre una sola risposta.
  • La seconda, più subdola, riguarda i nomi dei processi. Gli attaccanti sanno che un analista potrebbe ispezionare la lista dei servizi e per questo rinominano i propri eseguibili in modo che assomiglino ai processi legittimi del sistema operativo, cambiando o eliminando una singola lettera: spoolsrv.exe al posto del legittimo spoolsv.exe, svch0st.exe al posto di svchost.exe. Variazioni minime che in una lista di centinaia di voci passano facilmente inosservate. Quando un nome sembra familiare ma non è esattamente quello che dovrebbe essere, la verifica è immediata perché basta copiarlo e cercarlo su un motore di ricerca per scoprire se è associato a malware noto.

Tracciare le connessioni di rete

Una volta identificati eventuali servizi sospetti, la domanda successiva riguarda la connessione di rete. Un servizio malevolo che non comunica con l’esterno è di fatto inerte. Se l’attaccante sta controllando la macchina, deve esistere un processo che in questo momento mantiene una connessione attiva verso un indirizzo remoto o è in ascolto su una porta. Osquery permette di far emergere esattamente questa relazione incrociando in una singola query la tabella dei processi attivi con quella delle porte in ascolto.

Il risultato è una mappa di tutto ciò che sulla macchina sta comunicando con il mondo esterno: per ogni voce mostra il nome del processo, la porta su cui opera e l’indirizzo IP a cui è connesso. La maggior parte delle voci sarà costituita da servizi di sistema e browser che generano fisiologicamente traffico di rete. Quello che l’analista cerca è il “corpo estraneo”: un processo che non ha ragione di comunicare con l’esterno, magari con uno di quei nomi leggermente storpiati visti nel passo precedente. Quando quel processo compare associato a un indirizzo IP remoto e a una porta specifica, si è trovato il collegamento diretto tra la macchina compromessa e l’infrastruttura di comando e controllo.

Su macchine con molti servizi attivi e diversi browser aperti questa query può restituire una quantità di risultati difficile da interpretare. In questi casi osquery permette di affinare l’indagine con una variante più mirata che incrocia i processi con i socket aperti, restituendo per ogni connessione attiva:

  • il protocollo utilizzato,
  • l’indirizzo locale e quello remoto,
  • le porte specifiche su entrambi i lati.

Il filtro sugli indirizzi remoti esclude automaticamente il traffico locale e lascia visibili solo le connessioni verso l’esterno, riducendo drasticamente il rumore di fondo.

Individuare persistenza e processi “fantasma”

Il terzo passo affronta la persistenza. Un attaccante che riesce a installare un servizio e a stabilire una connessione ha ottenuto il controllo della macchina, ma quel controllo dura fino al prossimo riavvio. Quando il sistema si spegne tutti i processi vengono terminati, e al riavvio successivo il malware non riparte a meno che qualcuno non abbia detto al sistema operativo di farlo. I nascondigli sono essenzialmente due.

  • Il primo è l’elenco dei programmi configurati per partire automaticamente all’accensione. Conterrà decine di voci legittime come driver, servizi di sistema, applicazioni che l’utente ha scelto di avviare automaticamente e in mezzo a queste l’analista cerca ciò che non dovrebbe esserci: percorsi che puntano a cartelle insolite o nomi di file che non corrispondono a software conosciuto.
  • Il secondo sono le operazioni pianificate del sistema operativo, che permettono di schedulare l’esecuzione di programmi a orari specifici o a intervalli regolari. Rappresentano un punto di ancoraggio ideale per un attaccante perché raramente vengono ispezionate durante le normali operazioni di manutenzione. Anche qui il principio è lo stesso: scorrere le voci alla ricerca di task che puntano a eseguibili sconosciuti o posizionati in directory dove normalmente non dovrebbe trovarsi nulla di eseguibile. Se tra gli elementi di avvio o tra i task schedulati compare qualcosa di sospetto, l’analista ha trovato il meccanismo che l’attaccante usa per sopravvivere ai riavvii, e disabilitarlo significa spezzare la catena di persistenza.

C’è un controllo ulteriore che riguarda gli attaccanti più sofisticati: quelli che non si limitano a nascondere il malware nei meccanismi di avvio ma lo caricano esclusivamente in memoria RAM, eliminando ogni traccia dal disco. Con osquery smascherarla è questione di una singola query: si chiede al sistema di mostrare tutti i processi in esecuzione per i quali non esiste un file corrispondente sul disco. In un sistema sano questa query non dovrebbe restituire risultati, o al massimo qualche processo di sistema noto per comportarsi così. Qualunque altra voce è un segnale d’allarme forte in quanto un processo che gira in memoria senza controparte sul disco è nella quasi totalità dei casi malware che sta attivamente cercando di nascondersi.

Passare dalla scoperta alla bonifica

Quando l’indagine ha prodotto risultati concreti e l’analista ha identificato uno o più processi sospetti, si passa alla fase di neutralizzazione. La gran parte degli attacchi che colpiscono utenti e piccole organizzazioni non impiega strumenti sofisticati sviluppati su misura ma malware relativamente comuni, spesso scaricati da repository criminali e utilizzati senza nemmeno modificarne il nome, il che significa che il primo passo della bonifica consiste nel prendere il nome del processo sospetto emerso dalle query precedenti e cercarlo su un motore di ricerca o sottoporlo a una piattaforma di threat intelligence per verificare se è associato a malware noto.

Una volta confermata la natura malevola del processo il passaggio successivo è terminarlo immediatamente tramite il Task Manager su Windows o il comando kill su Linux e macOS, dopodiché occorre raggiungere il percorso del file eseguibile che osquery ha mostrato nella colonna path e cancellarlo fisicamente dal disco per impedirne qualunque riavvio.

Osquery come metodo di analisi forense

Quello che abbiamo visto in questo articolo è un metodo prima ancora che uno strumento. Le tre condizioni di un attacco, servizio, connessione e persistenza, non cambiano al variare della sofisticazione del malware, e osquery permette di verificarle tutte con query semplici e ripetibili su qualunque sistema operativo. In un panorama in cui gli attacchi diventano ogni anno più complessi e gli strumenti basati su firme faticano a tenere il passo, avere la capacità di interrogare direttamente una macchina e leggere quello che sta succedendo resta il vantaggio più concreto che un analista possa avere.

L’evoluzione naturale di questo approccio passa per l’intelligenza artificiale in quanto un modello addestrato a riconoscere pattern anomali può fare in secondi quello che a un occhio umano richiede ore, dalla ricerca di nomi di processo storpiati alla correlazione di migliaia di connessioni di rete con indicatori di compromissione noti. L’integrazione dell’AI in strumenti come osquery è già in corso, e renderà questo tipo di analisi accessibile anche a chi oggi non ha le competenze per condurla manualmente.

guest

0 Commenti
Più recenti
Più votati
Inline Feedback
Vedi tutti i commenti

Articoli correlati

0
Lascia un commento, la tua opinione conta.x