前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Turbinia:一款自动化云端并行数字取证工具

Turbinia:一款自动化云端并行数字取证工具

作者头像
C4rpeDime
发布2020-01-20 11:50:14
6360
发布2020-01-20 11:50:14
举报
文章被收录于专栏:黑白安全黑白安全

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

Turbinia:一款自动化云端并行数字取证工具
Turbinia:一款自动化云端并行数字取证工具

工作机制

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

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

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

Virtualenv环境下的工具安装

创建Virtualenv实例

创建并激活Virtualenv:

代码语言:javascript
复制
virtualenv turbinia-env && . turbinia-env/bin/activate

在完成所有操作步骤之前不要退出Virtualenv。

构建与配置

安装Turbinia:

代码语言:javascript
复制
git clone https://github.com/google/turbinia.git
pip install --upgrade pip
pip install -r turbinia/requirements.txt

安装Plaso:

代码语言:javascript
复制
curl -o plaso-requirements.txt https://raw.githubusercontent.com/log2timeline/plaso/master/requirements.txt
pip install -r plaso-requirements.txt

更新Python路径:

代码语言:javascript
复制
cd turbinia; export PYTHONPATH=$PYTHONPATH:`pwd`; cd –
cd turbinia; echo "export PYTHONPATH=$PYTHONPATH" >> ~/.bashrc ;cd -

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

代码语言:javascript
复制
/etc/turbinia/turbinia.conf
sudomkdir /etc/turbinia
cp<localgitpath>/turbinia/config/turbinia_config.py/etc/turbinia/turbinia.conf
代码语言:javascript
复制
/home/$USER/.turbiniarc
cp<localgitpath>/turbinia/config/turbinia_config.py /home/$USER/.turbiniarc
代码语言:javascript
复制
<localgitpath>/turbinia/config/turbinia_config.py

部署云函数:【传送门】 

工具使用

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

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

代码语言:javascript
复制
turbiniactl server

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

代码语言:javascript
复制
turbiniactl psqworker

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

代码语言:javascript
复制
turbiniactl ${evidencetype}

4、 使用下列命令检查任务运行状态:

代码语言:javascript
复制
turbiniactl status

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

代码语言:javascript
复制
$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类型任务的示例代码:

代码语言:javascript
复制
$./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

参考文档

1、 工具安装 2、 工作机制 3、 贡献代码 4、 开发新任务 5、 疑难解答 6、 调试常见错误

参考来源:maaaaz

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-055,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工作机制
  • Virtualenv环境下的工具安装
    • 创建Virtualenv实例
      • 构建与配置
      • 工具使用
        • 参考文档
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档