freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

BSF:一款功能强大的僵尸网络模拟框架
2020-07-03 13:47:13

BSF是一款功能强大的僵尸网络模拟框架,BSF为安全研究人员提供了一个独立的模拟环境来实现和扩展对等僵尸网络,允许安全防御人员调整它们的设置,并对目标僵尸网络进行评估监视和制定安全策略。

框架概要

在僵尸主机与安全防御者双方之间的安全博弈,僵尸主机一直都占据了上风,因为防御者必须对僵尸主机展开的攻击行动和新型威胁做出反应。为了应对这种现实状况,僵尸网络模拟框架(BSF)便应运而生。它允许防御者通过开发和评估新的僵尸网络监控技术以及应对策略来在安全博弈中占据上风,这是至关重要的,因为在野外进行实验会干扰其他研究人员,而且还会引起僵尸网络的控制者的注意。

BSF允许点对点的僵尸网络进行逼真的模拟实验,以探索和研究针对目标僵尸网络的监控机制,并在其真正产生威胁之前设计出相应的应对机制。BSF是一款功能强大的僵尸网络模拟器,它提供了一组高度可配置(和可自定义)的僵尸网络功能,其中包括:

1、现实的攻击行为

2、可变的僵尸主机行为

3、监视机制(爬虫和传感器)

4、反监控机制

此外,BSF还提供了一个交互式的可视化模块来进一步研究仿真结果。BSF旨在使研究人员和防御者能够研究在存在反监控机制的情况下不同监控机制的设计。此外,该工具还允许用户去探索和了解迄今为止已被发现的僵尸网络所产生的恶意影响。

工具安装

BSF由仿真框架和可视化工具组成,仿真框架本身是建立在OMNeT ++之上的;可视化模块构建在Dash之上,它可以在您喜欢的浏览器中提供交互功能。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/tklab-tud/BSF.git

设置OMNeT ++

当前版本的BSF是在OMNeT ++ 5.4.1环境中构建和测试的。

有关OMNeT ++ 提供的功能,请参阅OMNeT ++文档以获得安装指南、教程和参考资料。

设置可视化组件

为了以可视化的形式进行僵尸网络模拟,我们还需要安装以下Python软件包:

pip install dash==1.2.0      # The core dash backend

pip install dash-daq==0.1.0  # DAQ components (newly open-sourced!)

pip install networkx

工具使用

OMNeT ++的模拟功能是基于.ini文件中的定义来配置的。这个代码库中的simulations文件夹包含了一组预定义的配置,位于tests.ini和sample.ini文件中。

要运行该配置,可以使用OMNeT ++ IDE工具或命令行工具来执行。由于BSF不使用OMNeT ++工具所提供的任何图形特性功能,因此,我们建议在cmdenv环境中运行所有的模拟实验,即只使用控制台输出数据。

在IDE中运行模拟实验

要在IDE中运行模拟实验,首先需要设置运行配置项。右键单击* .ini文件并选择Run As- > Run Configurations,接下来设置您的配置文件。

IDE运行配置设置演示

现在,点击应用并运行,模拟的输出数据将显示在IDE控制台中。

使用命令行工具运行仿真实验

要使用命令行工具运行仿真实验,我们需要首先构建项目,找到项目的根目录文件夹并运行下列命令:

make MODE=release all

然后找到项目内的simulations文件夹并运行:

../BSF -r 0 -m -u Cmdenv -c SampleConfig_Crawler -n .. samples.ini

输出模拟数据

无论通过IDE还是通过命令行工具运行模拟实验,我们都可以看到类似以下形式的数据输出:

** Event #577792   t=64831.46985369179   Elapsed: 4.21157s (0m 04s)  37% completed  (37% total)

     Speed:     ev/sec=180486   simsec/sec=14682   ev/simsec=12.293

     Messages:  created: 406512   present: 2108   in FES: 487

Just crawled: 24 nodes at 88983.25891616358

Just crawled: 40 nodes at 92583.25891616358

** Event #1050880   t=93607.74036896409   Elapsed: 6.28757s (0m 06s)  54% completed  (54% total)

     Speed:     ev/sec=227885   simsec/sec=13861.4   ev/simsec=16.4402

     Messages:  created: 729732   present: 2106   in FES: 630

Just crawled: 108 nodes at 96183.25891616358

Just crawled: 286 nodes at 99783.25891616358

Just crawled: 570 nodes at 103383.25891616358

以**开头的模块是OMNeT ++的标准输出,显示了模拟的进度和统计数据信息。在特定的配置中,爬虫程序有额外的输出数据,报告每次爬取期间发现的节点数量。虽然这并不能告诉我们太多信息,但是在下一节中,我们将告诉大家如何以可视化的形式展现僵尸网络的输出和爬虫程序的结果。

可视化结果

BSF的设计是将可视化模块与仿真框架分离的,基于生成的图形和监视日志文件之上工作。我们还上传了一些示例数据,以便在不运行主框架的情况下体验可视化功能。

为了以可视化的形式模拟分析结果,必须找到visualization文件夹并调用app.py文件。然后打开您喜欢的浏览器并输入网址http://127.0.0.1:8050/,这里可以为您提供一个示例配置的图形视图,如下所示:

屏幕右上方的下拉菜单允许您选择不同配置的结果。在屏幕的底部,你可以看到一个时间轴,指示所有可用的僵尸网络快照。它还可以允许我们实时查看僵尸网络的连接和活动变化。除此以外,右侧的菜单还允许将爬虫或传感器收集的信息以可视化的形式呈现出来。下图是一个示例,其中爬虫的视图以绿色突出显示。

此外,我们目前正在开发更高级的可视化功能,以帮助安全研究人员更好地进行僵尸网络分析。

项目地址

BSF: GitHub传送门】

参考资料

# 恶意软件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者