论文部分内容阅读
僵尸网络(Botnet)利用僵尸程序(Bots)传播、感染并控制大量的终端计算机,可以获取大量的信息资源和强大的分布式计算能力,因此逐渐成为攻击者手中最有效的攻击平台之一。攻击者和僵尸程序之间通过命令与控制信道形成一对多的控制关系,命令与控制机制使得僵尸网络具有高度的可控性及更强的灵活性、私密性,僵尸程序的行为取决于从命令与控制信道获取的控制命令信息,因此,掌握僵尸程序的控制命令及其控制机制对于僵尸网络的分析与防治具有重要的意义。利用约束求解、路径空间遍历等技术提取僵尸网络控制命令的方法存在复杂耗时、面临路径空间爆炸、无法处理混淆后的僵尸程序等缺点。本文在已有研究工作的基础上,对如何从二进制僵尸程序中发掘出其所在僵尸网络的控制命令这一课题进行了进一步研究,结合二进制动态分析技术,提出了一种利用污点传播信息和代码覆盖率特征,从僵尸程序的执行轨迹中识别出其命令控制逻辑,并基于命令控制逻辑信息提取僵尸网络控制命令集合的新方法。与原有方法相比,该方法具有时间开销小、不依赖于API、需要的先验知识少等优点,而且可以有效地避免加壳、代码混淆等技术对分析结果的干扰。本文选取了Zeus、Citadel、 Agobot、Ice Ⅸ等六种典型的僵尸程序的样本进行了实验,实验结果表明该方法能够快速有效地提取出僵尸网络的控制命令集合。此外,本文还对提取出的控制命令的应用进行了探索,提出了将僵尸网络的控制命令应用到僵尸程序行为分析中进行主动探测的新思路,指出了利用控制命令去主动触发僵尸程序执行以观测其行为的可行性,并对其实现方式和步骤进行了阐述;对利用控制命令来辅助构造主动探测数据包以支持僵尸主机的检测工作的思路,进行了分析和讨论。