
Automazione e Scalabilità degli Strumenti di Digital Forensics
Nota: Turbinia non svilupperà più nuove funzionalità ed è in modalità manutenzione. Gli utenti dovrebbero dare un'occhiata a OpenRelik.
Turbinia è un framework open-source per distribuire, gestire ed eseguire carichi di lavoro forensi distribuiti. È pensato per automatizzare l'esecuzione di strumenti forensi comuni (ad esempio Plaso, TSK, strings, ecc.) per aiutare con l'elaborazione delle prove nel Cloud, scalando l'elaborazione di grandi quantità di prove e riducendo i tempi di risposta parallelizzando l'elaborazione dove possibile.
Turbinia è composto da diversi componenti per il client, il server e i worker. Questi componenti possono essere eseguiti nel Cloud, su macchine locali o in modo ibrido. Il client Turbinia invia richieste per elaborare prove al server Turbinia. Il server Turbinia crea job logici da queste richieste in arrivo, che creano e schedulano task di elaborazione forense da eseguire sui worker. Le prove da elaborare vengono suddivise dai job quando possibile, e molti task possono essere creati per elaborare le prove in parallelo. Uno o più worker vengono eseguiti continuamente per elaborare i task dal server. Ogni nuova prova creata o scoperta dai task viene reimmessa in Turbinia per ulteriore elaborazione.
La comunicazione dal client al server è attualmente effettuata tramite messaggistica Kombu. L'implementazione dei worker utilizza Celery per la schedulazione dei task.
La documentazione principale di Turbinia si trova qui. Puoi anche scoprire di più sull'architettura e come funziona qui.
Turbinia è attualmente in versione Alpha.
C'è una guida all'installazione qui.
I passaggi di base per far funzionare il tutto dopo l'installazione e la configurazione iniziali sono:
turbiniactl serverturbiniactl api_server se si utilizza Celeryturbiniactl celeryworkerturbinia-client tramite pip install turbinia-clientturbinia-client submit ${evidencetype}turbinia-client statusturbinia-client può essere utilizzato per interagire con Turbinia tramite il componente server API, e qui c'è l'utilizzo di base:
$ turbinia-client -h
Usage: turbinia-client [OPTIONS] COMMAND [ARGS]...
Turbinia API command-line tool (turbinia-client).
*** ***
* *
*** ******
* *
** * * ** ,*
******* * ********
* * *
* * *
%%%%%%
%%%%%%
%%%%%%%%%%%%%%% %%%%%%
%%%%%%%%%%%%%%%%%%%%% %%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ** *******
%% %% ***************
%% (%%%%%%%%%%%%%%%%%%% ***** **
%%%%% %%%%%%%%%%%%%%%
%%%%%%%%%% %% ** ***
%%% %% %% %%% %%%%,
%%% %%% %%% %%%%% %%% %%% %% %%% %%% %%% (%%
%%% %%% %%% %%% %% %%/ %% %%% %%% %%% %%%%%%%%
%%% %%% %%% %%% %%% %%% %% %%% %%% %%% %%% %%%
%%% %%%%% %%% %%%%% %% %%% %% %%% %%%%%
This command-line tool interacts with Turbinia's API server.
You can specify the API server location in ~/.turbinia_api_config.json
Options:
-c, --config_instance TEXT A Turbinia instance configuration name.
[default: (dynamic)]
-p, --config_path TEXT Path to the .turbinia_api_config.json file..
[default: (dynamic)]
-h, --help Show this message and exit.
Commands:
config Get Turbinia configuration.
evidence Get or upload Turbinia evidence.
jobs Get a list of enabled Turbinia jobs.
result Get Turbinia request or task results.
status Get Turbinia request or task status.
submit Submit new requests to the Turbinia API server.
Consulta la documentazione di turbinia-client pagina per una guida dettagliata.
Puoi anche interagire con Turbinia direttamente da Python utilizzando la libreria API. Forniamo alcuni esempi qui.
Questo non è un prodotto ufficiale Google (sperimentale o altro), è solo codice che risulta essere di proprietà di Google.