Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

栏目: Python · 发布时间: 4年前

内容简介:今天给大家介绍的是一款名叫Beagle的开源工具,Beagle是一款事件响应与数字取证工具,它可以将安全日志与分析数据以图形化的形式呈现。Beagle是一款功能强大的图形化事件响应与数字取证安全分析工具,支持FireEye HX Triages、Windows EVTX文件、SysMon日志以及Windows内存源镜像等多种数据源。导出的图形化分析结果可以发送至类似Neo4J和DGraph这样的图形化数据库,或者直接以Python NetworkX对象存储在本地。

今天给大家介绍的是一款名叫Beagle的开源工具,Beagle是一款事件响应与数字取证工具,它可以将安全日志与分析数据以图形化的形式呈现。

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

Beagle介绍

Beagle是一款功能强大的图形化事件响应与数字取证安全分析工具,支持FireEye HX Triages、Windows EVTX文件、SysMon日志以及Windows内存源镜像等多种数据源。导出的图形化分析结果可以发送至类似Neo4J和DGraph这样的图形化数据库,或者直接以Python NetworkX对象存储在本地。

Beagle能够以 Python 库的形式使用,或者直接在Web接口中调用:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

库可以直接通过函数调用序列来调用:

>>>from beagle.datasources import SysmonEVTX
 
>>>graph = SysmonEVTX("malicious.evtx").to_graph()
>>>graph
<networkx.classes.multidigraph.MultiDiGraphat 0x12700ee10>

或严格按照图形处理过程中调用数据源的每一个分析步骤来进行调用:

>>>from beagle.backends import NetworkX
>>>from beagle.datasources import SysmonEVTX
>>>from beagle.transformers import SysmonTransformer
 
>>>datasource = SysmonEVTX("malicious.evtx")
 
#Transformers take a datasource, and transform each event
#into a tuple of one or more nodes.
>>>transformer = SysmonTransformer(datasource=datasource)
>>>nodes = transformer.run()
 
#Transformers output an array of nodes.
[
    (<SysMonProc>process_guid="{0ad3e319-0c16-59c8-0000-0010d47d0000}"),
    (<File>host="DESKTOP-2C3IQHO"full_path="C:\Windows\System32\services.exe"),
    ...
]
 
#Backends take the nodes, and transform them into graphs
>>>backend = NetworkX(nodes=nodes)
>>>G = backend.graph()
<networkx.classes.multidigraph.MultiDiGraphat 0x126b887f0>

图形化输出位于每一个分析进程的中间位置,可以帮助研究人员快速了解目标主机中的详细状态。

工具安装

Docker

Beagle能够直接以 Docker 文件来安装使用:

docker pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000yampelo/beagle

Python包

Beagle还能够以Python库的形式使用。完整的API文档:【 传送门

pip install pybeagle

注意:目前Beagle仅支持Python 3.6+。

安装完成后,使用下列命令安装Rekall:

pip install pybeagle[rekall]

工具配置

配置文件中的每一个参数都可以通过环境变量来设置和修改,格式如下:

BEAGLE__{SECTION}__{KEY}

比如说,你想在使用Docker镜像的时候修改VirusTotal API密钥,你就可以使用-e参数并设置BEAGLE__VIRUSTOTAL__API_KEY变量:

dockerrun -v "data/beagle":"/data/beagle" -p 8000:8000 -e"BEAGLE__VIRUSTOTAL__API_KEY=$API_KEY" beagle

环境变量和目录可以使用Docker组件来定义:

version:"3"
 
services:
    beagle:
        image: yampelo/beagle
        volumes:
            - /data/beagle:/data/beagle
        ports:
            - "8000:8000"
        environment:
            - BEAGLE__VIRUSTOTAL__API_KEY=$key$

Web接口

Beagle的Docker镜像还封装了Web接口,可以帮助我们将数据以图形化的形式呈现,或将图形化数据以文本数据呈现。

上传数据:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

浏览图形化数据:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

图形接口:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

数据节点:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

数据连线:

Beagle:一款功能强大的图形化事件响应与数字取证安全分析工具

Python库

我们可以根据自己的需要来使用Python库生成图形化数据,图形数据生成由下列三个步骤组成:

1、 DataSource类负责对事件进行单独解析;

2、 Transformer类负责接收输入数据,并将其转换为Node类;

3、 Backend类负责接收节点数组,并将其存入图形结构的特定位置;

Python包可以通过pip安装:

pip install pybeagle

创建图形化数据需要使用to_graph()函数:

from beagle.datasources import HXTriage
 
# Bydefault, using the to_graph() class uses NetworkX and the first transformer.
G =HXTriage('test.mans').to_graph()
<networkx.classes.multidigraph.MultiDiGraphat 0x12700ee10>

你可以定义需要使用的Backend,并将数据发送至DGraph:

from beagle.datasources import HXTriage
from beagle.backends import DGraph
from beagle.transformers import FireEyeHXTransformer
 
# Thedata will be sent to the DGraph instance configured in the
#configuration file
backend= HXTriage('test.mans').to_graph(backend=DGraph)
 
# Canalso specify the transformer
backend= HXTriage('test.mans').to_transformer(transformer=FireEyeHXTransformer).to_graph(backend=DGraph)

在调用to_graph或to_transformer方法时,你可以向这些类传递任何参数:

from beagle.datasources import HXTriage
from beagle.backends import Graphistry
 
#Send the graphistry, anonymize the data first, and return the URL
graphistry_url= HXTriage('test.mans').to_graph(backend=Graphistry, anonymize=True,render=False)

你还可以手动完成上述步骤:

>>>from beagle.backends import NetworkX
>>>from beagle.datasources import HXTriage
>>>from beagle.transformers import FireEyeHXTransformer
 
>>>datasource = HXTriage("test.mans")
>>>transformer = FireEyeHXTransformer(datasource=datasource)
>>>nodes = transformer.run()
>>>backend = NetworkX(nodes=nodes)
>>>G = backend.graph()

项目地址

Beagle:【 GitHub传送门

参考资料

1、 https://github.com/yampelo/beagle/blob/master/docs/rest_api.md

2、 https://github.com/yampelo/beagle/blob/master/docs/configuration.md

3、 https://github.com/yampelo/beagle/blob/master/docs/development.md

4、 https://github.com/yampelo/beagle/blob/master/docs/design_overview.md

* 参考来源: beagle ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

具体数学(英文版第2版)

具体数学(英文版第2版)

[美] Ronald L. Graham、Donald E. Knuth、Oren Patashnik / 机械工业出版社 / 2002-8 / 49.00元

This book introduces the mathematics that supports advanced computer Programming and the analysis of algorithms. The primary aim of its well-known authors is to provide a solid and relevant base of ma......一起来看看 《具体数学(英文版第2版)》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具