BSF 提供了一个离散事件模拟环境,用于实现和扩展点对点僵尸网络、调整其设置,并允许防御者评估监控技术和应对措施。
在僵尸网络运营者与防御者之间的军备竞赛中,运营者占据优势,因为防御者必须对运营者引入的行动和新威胁做出被动反应。僵尸网络模拟框架(BSF)通过创造公平的竞争环境来解决这一问题。它允许防御者通过开发和评估新的僵尸网络监控技术与应对措施,在这场军备竞赛中取得领先。这一点至关重要,因为在真实网络环境中进行实验会干扰其他研究人员,并可能惊动僵尸网络运营者。
BSF 支持对点对点僵尸网络进行逼真的模拟,以探索和研究监控机制与取缔尝试在部署到真实环境前的设计和影响。BSF 是一个离散事件僵尸网络模拟器,提供了一套高度可配置(且可定制)的僵尸网络特性,包括:
此外,BSF 还提供了一个交互式可视化模块,用于进一步研究模拟结果。BSF 旨在帮助研究人员和防御者研究在存在反监控机制的情况下不同监控机制的设计 [1,2,3]。此外,该工具允许用户探索和理解迄今为止所观察到的僵尸网络设计选择的影响。
BSF 包含模拟框架和可视化工具两部分。模拟框架本身构建于 OMNeT++ 之上。可视化工具基于 Dash 构建,以在您喜爱的浏览器中提供交互体验。
当前版本的 BSF 是使用 OMNeT++ 版本 5.4.1 构建和测试的。
有关 OMNeT++ 提供功能的安装指南、教程和参考资料,请参阅 OMNeT++ 文档。
为了可视化僵尸网络模拟,需要以下 Python 包:
pip install dash==1.2.0 # Dash 核心后端
pip install dash-daq==0.1.0 # DAQ 组件(新开源!)
pip install networkx
pip install natsort
pip install numpy
OMNeT++ 模拟基于在 .ini 文件中定义的配置。本仓库的 simulations 文件夹包含一组预定义的配置,位于 tests.ini 和 samples.ini 文件中。
要运行配置,您可以使用 OMNeT++ IDE 或命令行。由于 BSF 不使用 OMNeT++ 的任何图形功能,我们建议在 cmdenv(即仅使用控制台输出)中运行所有模拟。
要在 IDE 中运行模拟,需要设置一个运行配置。为此,右键单击 *.ini 文件,选择 Run As -> Run Configurations。然后按照下图所示设置配置文件:

现在只需点击“应用”并运行。模拟的输出将显示在 IDE 控制台中。
要从命令行运行,首先需要构建项目。导航到根文件夹并运行:
make MODE=release all
之后,导航到 simulations 文件夹并运行:
../BSF -r 0 -m -u Cmdenv -c SampleConfig_Crawler -n .. samples.ini
无论从 IDE 还是命令行运行模拟,您应该看到类似如下的输出:
** 事件 #577792 t=64831.46985369179 已过去: 4.21157s (0m 04s) 37% 完成 (37% 总进度)
速度: 事件/秒=180486 模拟秒/秒=14682 事件/模拟秒=12.293
消息: 已创建: 406512 当前存在: 2108 在 FES 中: 487
刚刚爬取: 在 88983.25891616358 处有 24 个节点
刚刚爬取: 在 92583.25891616358 处有 40 个节点
** 事件 #1050880 t=93607.74036896409 已过去: 6.28757s (0m 06s) 54% 完成 (54% 总进度)
速度: 事件/秒=227885 模拟秒/秒=13861.4 事件/模拟秒=16.4402
消息: 已创建: 729732 当前存在: 2106 在 FES 中: 630
刚刚爬取: 在 96183.25891616358 处有 108 个节点
刚刚爬取: 在 99783.25891616358 处有 286 个节点
刚刚爬取: 在 103383.25891616358 处有 570 个节点
以 ** 开头的块是 OMNeT++ 的标准输出,表示模拟的进度和统计信息。在所选配置中,爬虫额外输出了在每个爬取间隔发现节点数量的报告。虽然这没有太多信息,但我们将在下一节展示如何可视化僵尸网络和爬虫结果的输出。
可视化与模拟框架解耦,基于生成的图形和监控日志文件。我们还上传了一些示例数据,以便在不运行主框架的情况下探索可视化。
要可视化模拟结果,您需要导航到 visualization 文件夹并调用 app.py。之后打开您喜爱的浏览器,访问 *http://127.0.0.1:8050/*。这将显示一个示例配置的图形视图,如下所示:

屏幕右上角的下拉菜单允许您在不同配置的结果之间进行选择。屏幕底部有一个时间线,显示僵尸网络所有可用的快照。这允许可视化僵尸的活动和连接性的变化。此外,右侧菜单允许可视化爬虫或传感器收集的信息。下图展示了一个示例,其中爬虫的视图以绿色高亮显示。

此外,我们目前正在开发更高级的可视化功能,以帮助分析监控和取缔操作。
以下出版物展示了 BSF 的使用案例:
[3] Emmanouil Vasilomanolakis, Max Mühlhäuser, Jan Helge Wolf, Leon Böck, Shankar Karuppayah