本站小编为你精心准备了僵尸网络实验设计论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1实验环境构建
笔者结合南开大学信息安全专业实验室的软硬件环境和已有的实验方案,设计了僵尸网络分析实验环境,其基础架构如图1所示。在上述硬件环境的基础上,搭建了自动化、系统性的僵尸程序监控分析平台,其结构如图2所示。该分析平台运行在Ubuntu10.04/12.04操作系统下,主要由4个部分组成。(1)僵尸程序执行过程监控平台。该平台负责僵尸程序的运行监控、执行轨迹的捕获、污点传播分析、符号执行及约束求解等实验任务。该监控平台的主要部分是二进制代码分析平台BitBlaze,包括动态分析部分TEMU和静态分析部分VINE。(2)执行轨迹分析工具包。该工具包由Perl语言实现,完成对执行轨迹的分析实验,比如分析僵尸程序代码空间中的代码覆盖情况,分析僵尸程序执行过程中与系统交互情况等。(3)控制命令挖掘工具包。控制命令挖掘工具包也由Perl语言实现,通过和执行轨迹分析工具的结合,利用部分僵尸程序执行逻辑的先验知识,可以进行对僵尸网络未知控制命令进行挖掘,并在此基础上对僵尸网络的命令控制机制进行进一步的分析研究。(4)僵尸程序行为监控工具包。该工具包由文件系统监视软件FileMon和网络分析软件Wireshark等成熟的系统监控软件组成,工作在Windows系统的僵尸主机下,用于对僵尸程序的宏观行为进行跟踪和监控。
2实验步骤
(1)熟悉监控环境和分析平台的使用。熟悉监控环境的使用,并在其中运行僵尸程序,尝试和僵尸网络命令与控制服务器进行连接和通信;熟悉二进制代码分析平台BitBlaze的使用,学习利用其动态分析组件TEMU进行轨迹捕获、二进制代码插装的技术和方法,熟悉利用静态分析组件VINE进行二进制代码的执行轨迹反汇编及符号执行、约束求解等分析方法。(2)僵尸程序执行轨迹捕获。执行轨迹是僵尸程序路径空间中一条路径的执行过程的详细记录。在BitBlaze平台的TEMU中运行僵尸程序,监控其执行过程,并将从命令与控制信道中接收到的网络数据标记为污点,捕获得到僵尸程序的执行轨迹文件。可以分别捕获僵尸程序在与控制命令服务器无网络交互、有网络交互及接收到不同控制命令等情况的几组不同的执行轨迹,以便于进行对比分析,并用BitBlaze平台中的VINE将这些二进制的执行轨迹文件转换成汇编语言格式。(3)僵尸程序执行轨迹文件分析。对捕获到的执行轨迹文件进行处理和简化,然后编写程序对其进行分析:统计分析僵尸程序执行轨迹中的线程个数及线程号、污点传播过程等信息;分析僵尸程序代码空间中的代码覆盖情况,计算代码覆盖率并分析其特点;统计分析系统API调用情况;从执行轨迹文件构造僵尸程序的控制流图。通过分析,对执行轨迹的特点和僵尸程序的执行逻辑有更加清晰的认识。(4)僵尸网络控制命令提取。根据步骤(3)中的分析结果,结合僵尸程序的固有特点,从执行轨迹中定位到僵尸程序中对控制命令进行判断、处理的命令控制逻辑代码段。定位的方法可以结合参考文献[3]中提出的规律,也希望学生探索和发现新的特点和规则。然后,在可控环境中执行僵尸程序,当执行到命令控制逻辑代码段时,利用代码插装等二进制代码动态分析技术[13]提取出僵尸程序可执行的控制命令。(5)僵尸程序行为分析。在可控环境中再次运行僵尸程序,利用FileMon和Wireshark等软件对僵尸程序的行为进行跟踪监控。其一,在没有与命令控制服务器交互时,分析僵尸程序执行后会有怎样的行为表现,例如自删除、修改系统文件、修改注册表选项、试图连接命令与控制服务器等;其二,在和命令与控制服务器进行交互时,利用步骤(4)中提取出的僵尸网络命令,触发僵尸程序运行,再监控其会有怎样的行为,并总结控制命令与僵尸行为的对应关系。通过多次实验和观察,对僵尸程序的行为和特征进行归纳总结。(6)僵尸网络命令与控制机制的进一步思考和探索。思考上述从僵尸程序二进制文件中挖掘未知命令方法的优缺点,并探索新的改进方法。根据提取出的控制命令及其对应的行为,分析僵尸程序和命令与控制服务器通信的方式,从整体上对该僵尸网络的命令与控制机制进行认识和思考。在上述步骤中,步骤(3)“执行轨迹文件分析”和步骤(4)“控制命令的提取”涉及较多的专业知识和二进制代码分析技术,是本实验的难点。
3实例分析
在TEMU中运行Zeus僵尸程序,在和命令与控制服务器进行通信时,动态捕获了Zeus僵尸程序的3条执行轨迹,其中的线程数、汇编指令总数和系统API调用个数见表1.对3个执行轨迹进行分析,了解Zeus僵尸程序的执行逻辑,利用执行轨迹中的代码块覆盖率特征,从中定位到满足参考文献[3]中提出的覆盖率规律的代码块,其所在代码区域就是僵尸程序的命令控制逻辑代码段。根据此方法,可以定位到的代码段地址范围为0x26e877c—0x26e87a2,其中调用了系统比较函数lstrcmpiw来进行比较,它是一个循环结构(见图3)。将Zeus僵尸程序再次放在TEMU中运行。当僵尸程序运行到命令判定循环的入口地址0x26e877c时,开始监控是否调用判定函数lstrcmpiw。如果发生调用,则修改输入命令为随机数据,使程序进入判定循环。在判定过程中,通过获取用来和输入数据比较的参数,动态捕获了Zeus僵尸网络的25个控制命令。提取出控制命令以后,就可以用这些控制命令作为网络输入来触发Zeus僵尸程序,使其表现出相应的行为。掌握了僵尸网络的命令与控制机制以后,也可以尝试伪造Zeus命令与控制服务器并向僵尸主机发送bot_uninstall等命令来卸载、删除僵尸程序,瓦解僵尸网络。
4结束语
本文根据僵尸网络的特点,结合南开大学信息安全专业实验室的软件和硬件环境,设计了僵尸网络分析的实验教学平台,并提出了实验目的、方法和步骤。利用本实验平台,学生可以进行僵尸程序行为特征分析、僵尸网络命令与控制机制研究的实验。通过实验,学生可以更加深入理解僵尸网络的基本原理和行为特征,掌握僵尸网络分析的相关技术,进而进行僵尸网络分析与防治的新方法、新途径的探索。本实验环境为信息安全专业学生的实践动手能力和创新能力的培养提供了良好的实验条件。
作者:高敏芬蔡亚运单位:南开大学数学科学学院南开大学计算机与控制工程学院