自动化云端并行数字取证工具

Turbinia是一款专门用于部署、管理和运行分布式取证任务流的开源框架。该工具可以自动化运行常见的数据取整处理工具,例如Plaso、TSK和strings等等,可帮助研究人员对云端环境以及大量账号下的数字证据进行处理,并尽可能地通过并行处理方式来减少响应时间。

工作机制
Turbinia由客户端、服务器端和业务处理端(Worker)这几种组件组成,这些组件可以在云端环境中运行,也可以在本地运行,或者在这两种混合环境下运行都可以。Turbinia客户端会向Turbinia服务器端发送取证数据的处理请求,服务器端会根据用户发送过来的请求创建逻辑任务,并为Worker创建取证处理计划任务。在允许的情况下,需要处理的取证分析任务会被拆分成多个工作任务,Turbinia会以并行的方式处理这些任务以节省时间开销,服务器端会同时使用一个或多个Worker来持续处理分析任务。任务创建或分配的任何取证数据都将会回传给Turbinia来进行进一步处理。

客户端与服务器端的通信可以由Google Cloud PubSub或Kombu消息组成。Worker实现和计划任务使用了PSQ(Google Cloud PubSub任务队列)或Celery。

更多关于Turbinia工作机制的内容,可以点击【这里】获取。

Virtualenv环境下的工具安装
创建Virtualenv实例
创建并激活Virtualenv:

virtualenv turbinia-env && . turbinia-env/bin/activate
在完成所有操作步骤之前不要退出Virtualenv。

构建与配置
安装Turbinia:

git clone https://github.com/google/turbinia.git

pip install --upgrade pip

pip install -r turbinia/requirements.txt

安装Plaso:

curl -o plaso-requirements.txt https://raw.githubusercontent.com/log2timeline/plaso/master/requirements.txt

pip install -r plaso-requirements.txt

更新Python路径:

cd turbinia; export PYTHONPATH=$PYTHONPATH:pwd; cd –

cd turbinia; echo “export PYTHONPATH=$PYTHONPATH” >> ~/.bashrc ;cd -

选择Turbinia配置文件存储路径:

/etc/turbinia/turbinia.conf

sudomkdir /etc/turbinia

cp<localgitpath>/turbinia/config/turbinia_config.py/etc/turbinia/turbinia.conf

    /home/$USER/.turbiniarc
    
    cp<localgitpath>/turbinia/config/turbinia_config.py /home/$USER/.turbiniarc


    <localgitpath>/turbinia/config/turbinia_config.py

工具使用
工具安装完成后,可以按照下列步骤进行取证处理:

1、 使用下列命令开启Turbinia服务器组件:

turbiniactl server
2、使用下列命令开启一个或多个Turbinia Worker:

turbiniactl psqworker
3、 使用下列命令控制Turbinia客户端发送取证任务:

turbiniactl ${evidencetype}
4、 使用下列命令检查任务运行状态:

turbiniactl status
turbiniactl命令可以用来开启不同的组件,下面给出的是基本使用方法:

$turbiniactl --help

usage:turbiniactl [-h] [-q] [-v] [-d] [-a] [-f] [-o OUTPUT_DIR] [-L LOG_FILE]

                   [-r REQUEST_ID] [-R] [-S][-C] [-V] [-D]

                   [-F FILTER_PATTERNS_FILE][-j JOBS_WHITELIST]

                   [-J JOBS_BLACKLIST] [-pPOLL_INTERVAL] [-t TASK] [-w]

                   <command> ...

 

optional arguments:

  -h, --help            show this help message and exit

  -q, --quiet           Show minimal output

  -v, --verbose         Show verbose output

  -d, --debug           Show debug output

  -a, --all_fields      Show all task status fields in output

  -f, --force_evidence  Force evidence processing request inpotentially

                        unsafe conditions

  -o OUTPUT_DIR, --output_dir OUTPUT_DIR

                        Directory path foroutput

  -L LOG_FILE, --log_file LOG_FILE

                        Log file

  -r REQUEST_ID, --request_id REQUEST_ID

                        Create new requestswith this Request ID

  -R, --run_local       Run completely locally without anyserver or other

                        infrastructure. Thiscan be used to run one-off Tasks

                        to process data locally.

  -S, --server          Run Turbinia Server indefinitely

  -C, --use_celery      Pass this flag when using Celery/Kombufor task

                        queuing and messaging(instead of Google PSQ/pubsub)

  -V, --version         Show the version

  -D, --dump_json       Dump JSON output of Turbinia Requestinstead of

                        sending it

  -F FILTER_PATTERNS_FILE,--filter_patterns_file FILTER_PATTERNS_FILE

                        A file containingnewline separated string patterns to

                        filter text basedevidence files with (in extended

                        grep regex format).This filtered output will be in

                        addition to thecomplete output

  -j JOBS_WHITELIST, --jobs_whitelistJOBS_WHITELIST

                        A whitelist for Jobsthat we will allow to run (note

                        that it will not forcethem to run).

  -J JOBS_BLACKLIST, --jobs_blacklistJOBS_BLACKLIST

                        A blacklist for Jobs we will not allow torun

  -p POLL_INTERVAL, --poll_intervalPOLL_INTERVAL

                        Number of seconds towait between polling for task

                        state info

  -t TASK, --task TASK  The name of a single Task to run locally(must be used

                        with --run_local.

  -w, --wait            Wait to exit until all tasks forthe given request

                        have completed

Commands:

  <command>

    rawdisk             Process RawDisk as Evidence

    googleclouddisk     Process Google Cloud Persistent Disk asEvidence

    googleclouddiskembedded

                        Process Google CloudPersistent Disk with an embedded

                        raw disk image asEvidence

    directory          Process a directory asEvidence

    listjobs            List all available jobs

    psqworker           Run PSQ worker

    celeryworker        Run Celery worker

    status              Get Turbinia Task status

server              Run Turbinia Server

默认情况下,当添加了新的需要处理的取证任务时,turbiniactl将以客户端的身份向Turbinia服务器发送任务请求,如果没有指定–server参数的话,它将会开启自己的Turbinia服务器进程。下面给出的是turbiniactl添加rawdisk类型任务的示例代码:

$./turbiniactl rawdisk -h

usage:turbiniactl rawdisk [-h] -l LOCAL_PATH [-s SOURCE] [-n NAME]

 

optional arguments:

  -h, --help            show this help message and exit

  -l LOCAL_PATH, --local_path LOCAL_PATH

                        Local path to theevidence

  -s SOURCE, --source SOURCE

                        Description of thesource of the evidence

  -n NAME, --name NAME  Descriptive name of the evidence

http://www.45zq.cn/portal/article/index/id/34.html
http://www.45zq.cn/portal/article/index/id/35.html
http://www.45zq.cn/portal/article/index/id/36.html
http://www.45zq.cn/portal/article/index/id/37.html
http://www.45zq.cn/portal/article/index/id/38.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值