beagle是一个事件响应和数字取证工具,它将数据源和日志转换为图形
pybeagle的Python项目详细描述
比格犬
beagle是一个事件响应和数字取证工具,可以将数据源和日志转换为图形。支持的数据源包括FireEye HX Triages、Windows EVTX文件、Sysmon日志和原始Windows内存映像。生成的图形可以发送到neo4j或dgraph等图形数据库,也可以作为python beagle可以直接用作python库,也可以通过提供的web界面使用。 库可以用作函数调用序列。 或者通过严格调用数据源的每个中间步骤来绘制流程。 图表以个人活动为中心处理,主要是帮助分析人员调查主机上的活动,而不是主机之间的活动。 beagle可用作docker文件: 它也可以作为图书馆使用。完整的API文档可在https://beagle-graphs.readthedocs.io rel="nofollow">https://beagle graphs.readthedocs.io上获得
注意:当前仅支持Python3.6+。 Rekall不会自动安装。要安装rekall,请执行以下命令: 可以使用以下格式的环境变量修改配置文件中的任何条目:。例如,要更改使用Docker映像时使用的virustotal API键,可以使用 使用docker compose可以轻松定义环境变量和目录 Beagle的Docker图片提供了一个Web界面,可以将数据转换为图形,并使用它们来调查数据。 上载表单环绕图形创建过程,并自动使用 创建的任何图形都存储在配置中 也可以将注释添加到任何图形中,以更好地帮助描述它。 每个数据源将自动从提供的参数中提取元数据。查看数据源的现有图表时,元数据和注释稍后将可见。 单击侧栏上的一个数据源将呈现该数据源的所有已分析图形的表。 图中的节点显示特定字段的前15个字符。例如,对于流程节点,这将是流程名称。 边缘只显示边缘类型。 单击一个节点或边将聚焦该节点并显示其信息。在右侧栏的"节点信息"面板中。 双击节点将拉入任何相邻节点。相邻节点是通过边连接到单击的节点的任何节点。如果没有要拉入的邻居,则在图中看不到任何更改。 在节点上单击一次长时间将隐藏它,使其不显示在图形中,也不显示依赖于它的任何边。 右键单击一个节点会显示一个上下文菜单,允许您运行图形变换器。变换器是接受图形状态并返回新状态的函数。 两个非常有用的变异器是: 回溯节点非常有用,类似于在日志文件中执行根本原因感染。 展开节点的子体可以立即查看由于该节点而发生的所有事情。此操作将显示以选定节点为根的子图。 有时,节点或边可能与当前事件无关,可以打开或关闭边和节点类型。切换类型后,该类型的节点或边将从可见图形中移除。 关闭节点类型可防止在使用变异器或拉入邻居时使用该节点类型。 图中的任何动作都是立即可逆的!使用"撤消/重做"按钮可以还原执行的任何操作。重置按钮将图形状态设置为加载时的状态,从而为您保存刷新。 使用上述操作更改图形的当前状态时,您可能还希望在不同的透视图中查看可见节点和边的当前集。图形屏幕顶部的选项卡允许您将数据转换为各种视图: 每个透视图都支持通过单击节点来聚焦节点。 图形生成过程可以使用python库以编程方式执行。图形生成过程由三个步骤组成: python包可以通过pip安装: 创建一个图需要将这些链接在一起。您可以使用 它也可以在每一步显式地完成。使用函数调用,您还可以定义要使用的后端,例如,将数据发送到dgraph 当调用 您还可以手动调用上述过程中的每个步骤,访问中间输出 如果要手动调用每个步骤,则需要确保 每个数据源都定义了与之兼容的转换器的列表,可以通过 默认情况下,边不会压缩,这意味着如果进程节点 对于这种类型的操作(在本例中编写),您可以将所有5000条边压缩为一条边,方法是向后端类传递 默认情况下,Web界面将合并边缘。安装
关于比格犬
networkx
对象保存在本地。
<;/居中>;
安装
码头工人
docker pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000 yampelo/beagle
python包
pip install pybeagle
pip install pybeagle[rekall]
配置
-e
参数并设置beagle\u virustotal\u API键
变量:docker run -v "data/beagle":"/data/beagle" -p 8000:8000 -e "BEAGLE__VIRUSTOTAL__API_KEY=$API_KEY" beagle
version: "3"
services:
beagle:
image: yampelo/beagle
volumes:
- /data/beagle:/data/beagle
ports:
- "8000:8000"
environment:
- BEAGLE__VIRUSTOTAL__API_KEY=$key$
Web界面
上传数据
<;居中>;
<;/居中>;
networkx
作为后端。根据数据源所需的参数,表单将提示文件上载或文本输入。例如:storage
部分的dir
键下定义的文件夹中。可以通过设置环境变量来修改此设置。浏览现有图表
<;/居中>;
检查节点和边
聚焦于节点
<;居中>;
<;/居中>;
聚焦于边缘
<;居中>;
<;/居中>;
扩大邻国
<;居中>;
<;/居中>;
隐藏节点
<;/居中>;
运行变异器
回溯节点
<;/居中>;
展开节点子体
<;/居中>;
切换节点和边类型
<;/居中>;
撤消/重做操作并重置
<;/居中>;
图形透视不可译
<;/居中>;
python库
数据源
类逐个分析并生成事件。transformer
类接受这些输入并将它们转换为各种节点
类,如进程
后端
类获取节点数组,将它们放入图形结构中,并将它们发送到所需的位置。pipinstallpybeagle
to_graph()
函数完成此操作。frombeagle.datasourcesimportHXTriage# By default, using the to_graph() class uses NetworkX and the first transformer.G=HXTriage('test.mans').to_graph()<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
>>>frombeagle.datasourcesimportSysmonEVTX>>>graph=SysmonEVTX("malicious.evtx").to_graph()>>>graph<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
0
to_graph
或to_transformer
方法时,可以向这些类传递任何参数:>>>frombeagle.datasourcesimportSysmonEVTX>>>graph=SysmonEVTX("malicious.evtx").to_graph()>>>graph<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
1
>>>frombeagle.datasourcesimportSysmonEVTX>>>graph=SysmonEVTX("malicious.evtx").to_graph()>>>graph<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
2
transformer
类实例与提供的数据源
类的输出兼容。访问该列表。transformers
属性:>>>frombeagle.datasourcesimportSysmonEVTX>>>graph=SysmonEVTX("malicious.evtx").to_graph()>>>graph<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
3
控制边生成
u
写入文件节点v
5000次,则这些节点之间将有5000条边。有时,尤其是在试图可视化数据时,这可能会使分析师不知所措。consolidate\u edges=true
参数,例如:>>>frombeagle.datasourcesimportSysmonEVTX>>>graph=SysmonEVTX("malicious.evtx").to_graph()>>>graph<networkx.classes.multidigraph.MultiDiGraphat0x12700ee10>
4
文档
推荐PyPI第三方库