首页> 中国专利> 僵尸网络命令和控制协议的获取方法及装置

僵尸网络命令和控制协议的获取方法及装置

摘要

本发明的实施例公开了一种僵尸网络命令和控制协议的获取方法及装置,涉及信息技术领域,提升了僵尸网络命令和控制协议的获取效率,降低了获取僵尸网络命令和控制协议过程的成本。所述方法包括:首先获取僵尸网络程序执行过程中的执行轨迹信息,然后从所述执行轨迹信息中确定目标循环体,所述目标循环体为僵尸网络命令和控制协议所在的循环体,最后根据所述目标循环体获取僵尸网络命令和控制协议。

著录项

  • 公开/公告号CN103905391A

    专利类型发明专利

  • 公开/公告日2014-07-02

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;南开大学;

    申请/专利号CN201210576206.X

  • 申请日2012-12-26

  • 分类号H04L29/06;

  • 代理机构北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 518000 中国广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-17 00:25:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-30

    授权

    授权

  • 2015-04-22

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20121226

    实质审查的生效

  • 2014-07-02

    公开

    公开

说明书

技术领域

本发明涉及信息技术领域,特别涉及一种僵尸网络命令和控制协议的获取 方法及装置。

背景技术

随着互联网的快速发展,网络使用的普及率也越来越高,这就使得用于窃 取计算机用户财产、获取用户隐私、控制系统资源的各类僵尸网络程序逐渐增 多,造成用户使用互联网的安全性越来越低。僵尸网络命令和控制协议,是僵 尸网络程序能够正常运行的保障。获取僵尸网络命令和控制协议,是防御僵尸 网络程序的关键,

现有僵尸网络命令和控制协议的获取方式主要包括动态分析获取方式和静 态分析获取方式。动态分析获取方式是通过统计分析僵尸网络程序的数据包特 征,来阻断僵尸网络的通信,然而由于动态分析获取方式无法对僵尸网络程序 的全部数据包特征进行分析,造成该动态分析获取方式无法获取到所有僵尸网 络命令和控制协议;静态分析获取方式则是通过人工从僵尸网络的恶意代码样 本中获取僵尸网络命令与控制协议,由于静态分析获取方式是通过人工操作完 成的,因此静态分析获取方式获取僵尸网络命令与控制协议的效率较低,成本 较高。

发明内容

本发明提供一种僵尸网络命令和控制协议的获取方法及装置,可以获取到 僵尸网络程序中的所有僵尸网络命令和控制协议,并且提升了僵尸网络命令和 控制协议的获取效率,降低了获取僵尸网络命令和控制协议过程的成本。

本发明实施例采用的技术方案为:

一种僵尸网络命令和控制协议的获取方法,包括:

获取僵尸网络程序执行过程中的执行轨迹信息;

从所述执行轨迹信息中确定目标循环体,所述目标循环体为僵尸网络命令 和控制协议所在的循环体;

根据所述目标循环体获取僵尸网络命令和控制协议。

一种僵尸网络命令和控制协议的获取装置,包括:

获取单元,用于获取僵尸网络程序执行过程中的执行轨迹信息;

确定单元,用于从所述获取单元获取的执行轨迹信息中确定目标循环体, 所述目标循环体为僵尸网络命令和控制协议所在的循环体;

所述获取单元,还用于根据所述确定单元确定的所述目标循环体获取僵尸 网络命令和控制协议。

本发明实施例提供的僵尸网络命令和控制协议的获取方法及装置,与现有 技术中通过统计分析僵尸网络程序的数据包特征,来阻断僵尸网络的通信的动 态分析获取方式,以及与通过人工从僵尸网络的恶意代码样本中获取僵尸网络 命令与控制协议的静态分析获取方式相比,根据僵尸网络程序执行过程中执行 轨迹信息内的循环特征,可以获取到僵尸网络程序中的所有僵尸网络命令和控 制协议,并且提升了僵尸网络命令和控制协议的获取效率,降低了获取僵尸网 络命令和控制协议过程的成本。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种僵尸网络命令和控制协议的获取方法流程 图;

图2为本发明实施例提供的另一种僵尸网络命令和控制协议的获取方法流 程图;

图3为本发明实施例提供的一种僵尸网络命令和控制协议的获取装置结构 示意图;

图4为本发明实施例提供的另一种僵尸网络命令和控制协议的获取装置结 构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作 详细说明。

本发明实施例提供一种僵尸网络命令和控制协议的获取方法,如图1所示, 所述方法包括:

101、获取僵尸网络程序执行过程中的执行轨迹信息。

其中,执行轨迹信息具体可以为僵尸网络程序执行过的每一条CPU(Central  Processing Unit,中央处理器)指令、CPU的执行状态等信息。

102、从所述执行轨迹信息中确定目标循环体。

其中,所述目标循环体为僵尸网络命令和控制协议所在的循环体。

103、根据所述目标循环体获取僵尸网络命令和控制协议。

本发明实施例提供的一种僵尸网络命令和控制协议的获取方法,与现有技 术中通过统计分析僵尸网络程序的数据包特征,来阻断僵尸网络的通信的动态 分析获取方式,以及与通过人工从僵尸网络的恶意代码样本中获取僵尸网络命 令与控制协议的静态分析获取方式相比,根据僵尸网络程序执行过程中执行轨 迹信息内的循环特征,可以获取到僵尸网络程序中的所有僵尸网络命令和控制 协议,并且提升了僵尸网络命令和控制协议的获取效率,降低了获取僵尸网络 命令和控制协议过程的成本。

进一步地,本发明实施例提供了另一种僵尸网络命令和控制协议的获取方 法,如图2所示,所述方法包括如下步骤:

201、获取僵尸网络程序执行过程中的执行轨迹信息。

其中,执行轨迹信息具体可以为僵尸网络程序执行过的每一条CPU(Central  Processing Unit,中央处理器)指令、CPU的执行状态等各种信息。

202、将所述执行轨迹信息中所属线程相同的信息划分为同一执行轨迹块。

具体地,由于执行轨迹信息中包含多个线程执行过程的执行信息,因此可 以将执行轨迹信息中所属线程相同的CPU指令对应的信息划分为同一执行轨迹 块。

203、获取所述执行轨迹块中的循环体。

具体地,首先获取所述执行轨迹块中恶意代码块的跳转指令,若所述跳转 指令的跳转目的地址小于所述跳转指令的地址,则获取所述跳转目的地址和所 述跳转指令的地址之间的代码,并确认所述代码为所述循环体。

其中,文件中存储的恶意代码被映射到的内存区域被定义为恶意代码区域, 不属于恶意代码区域的内存区域定义为系统代码区域。将内存划分为两个区域 后,内存中的所有指令根据其所在内存区域的地址也被划分成两类,属于恶意 代码区域的指令和属于系统代码区域的指令,再根据指令所属的内存区域的不 同,将执行轨迹块划分为恶意代码块和系统代码块。每个执行轨迹块包含了一 个线程的详细执行信息,如指令的地址、汇编代码、指令长度、操作数、CPU的 状态等。

对于本发明实施例,由于执行轨迹块中没有系统函数信息,在执行轨迹块 执行过程中,恶意代码块向系统代码块的控制流转移过程是通过函数调用实现 的,并且僵尸网络命令和控制协议只包含在恶意代码块中,因此可以对系统代 码块进行化简,用函数名、参数、返回值等抽象的函数调用信息替换系统代码 块的详细执行过程,从而可以降低函数调用过程的复杂度。

204、从所述执行轨迹块的循环体中确定所述目标循环体。

具体地,若所述循环体同时符合第一特征和第二特征,则确定所述循环体 为所述目标循环体,所述第一特征为所述循环体中调用了可疑函数,所述第二 特征为被调用的所述可疑函数的不同返回结果指示所述僵尸网络程序执行不同 的执行轨迹块。

其中,本发明实施例中的可疑函数具体可以为比较函数,可疑函数是僵尸 网络程序实现命令和控制协议时常用到的函数,僵尸网络程序在接收到命令和 控制协议后,需要调用可疑函数对命令和控制协议进行分析,从而执行与命令 和控制协议对应的执行轨迹块。

对于循环体中是否调用了可疑函数,可以通过匹配循环体中函数调用指令 的目的地址和可疑函数的入口地址是否相同进行判断。如果函数调用指令的目 的地址和可疑函数的入口地址相同,则确认该循环体调用了可疑函数。

205、根据所述目标循环体获取僵尸网络命令和控制协议。

具体地,首先将所述目标循环体中调用的可疑函数的输入命令替换为预置 命令后,重新获取所述僵尸网络程序执行过程中的执行轨迹信息,然后从重新 获取到的执行轨迹信息中提取所述僵尸网络命令和控制协议。

其中,预置命令具体可以为随机数据,从而使得可疑函数的输入命令不是 正常的僵尸网络命令与控制协议,而是一个错误的命令。由于僵尸网络程序在 执行过程中,会将可疑函数的输入命令与僵尸网络程序中保存的所有僵尸网络 命令与控制协议进行比较,存在匹配的僵尸网络命令与控制协议后就执行该僵 尸网络命令与控制协议所对应的恶意行为,例如窃取密码、删除文件、发动网 络攻击等,因此当输入命令替换为预置的错误命令时,僵尸网络程序会将该错 误命令与僵尸网络程序中保存的全部僵尸网络命令与控制协议进行比较匹配, 从而使得所有僵尸网络命令与控制协议被完全记录在执行轨迹信息中。

对于本发明实施例,应用的场景可以为但不局限于以下形式,宙斯程序是 一种传染性极强的网络木马程序,获取宙斯程序的僵尸网络命令和控制协议包 括:首先获取宙斯程序在网络通信过程中的执行轨迹信息,可以如下表所示:

网络数据包的接收顺序 网络数据包的大小(字节) 1 504 2 171757 3 381 4 344 5 34511

然后根据执行轨迹信息包含23条不同线程的执行信息,将执行轨迹信息划分为 23个执行轨迹块,具体可以如下表所示:

以线程号为1024的执行轨迹块为例,1024线程的执行轨迹块中包含循环体372 个,如下表所示:

序号 开始地址 结束地址 循环次数 可疑函数 可疑函数的出现次数 1 0x26e85a1 0x26e85b7 1 0 2 0x26e877c 0x26e87a2 1 lstrcmpiw 24 3 0x26edda5 0x26eddab 1 0 4 0x26e5c5b 0x26e5c80 24 0 5 0x26e94cb 0x26e94d2 2 0 6 0x26f2e89 0x26f2ef0 1 0 7 0x26edda5 0x26eddab 1 0 8 0x26f2e21 0x26f2e47 3 0

表中列出了1024线程的执行轨迹块的部分循环体的信息,包括循环体的开始地 址和结束地址,循环体的执行次数,根据可疑函数列表判断的循环体是否包含 可疑函数,以及可疑函数的调用次数。从表中可知循环体2 (0x26e877c-0x26e87a2)调用了可疑函数lstrcmpiw,符合第一特征,然后分 析该循环体一共调用可疑函数24次,其中前23次可疑函数lstrcmpiw的返回 结果是非0,最后一次lstrcmpiw的返回结果是0,并且lstrcmpiw的返回结果 是0时,程序对应的执行轨迹块的地址为0x026f52da;lstrcmpiw的返回结果 是非0时,程序对应的执行轨迹块的地址为0x026e87a6,可见可疑函数 lstrcmpiw的返回结果指示程序执行不同的执行轨迹块。最后将lstrcmpiw的输 入参数替换为随机命令后,从宙斯程序执行过程中的执行轨迹信息提取僵尸网 络命令和控制协议,提取到的僵尸网络命令和控制协议可以如下表所示:

从而实现了对宙斯程序中所有僵尸网络命令和控制协议的获取。

需要说明的是,上述应用场景仅为事例性说明,不应构成对本发明实施例 的限制。

本发明实施例提供的另一种僵尸网络命令和控制协议的获取方法,与现有 技术中通过统计分析僵尸网络程序的数据包特征,来阻断僵尸网络的通信的动 态分析获取方式,以及与通过人工从僵尸网络的恶意代码样本中获取僵尸网络 命令与控制协议的静态分析获取方式相比,根据僵尸网络程序执行过程中执行 轨迹信息内的循环特征,可以获取到僵尸网络程序中的所有僵尸网络命令和控 制协议,并且提升了僵尸网络命令和控制协议的获取效率,降低了获取僵尸网 络命令和控制协议过程的成本。

进一步地,作为对图1所示方法实施例的实现,本发明实施例还提供了一种 僵尸网络命令和控制协议的获取装置,用以实现图1所示的方法实施例,所述装 置的实体可以为终端设备,如图3所示,所述装置包括:获取单元31、确定单元 32。

获取单元31,可以用于获取僵尸网络程序执行过程中的执行轨迹信息。

确定单元32,可以用于从所述获取单元31获取的执行轨迹信息中确定目标 循环体,所述目标循环体为僵尸网络命令和控制协议所在的循环体。

所述获取单元31,还可以用于根据所述确定单元32确定的所述目标循环体 获取僵尸网络命令和控制协议。

再进一步地,作为对图2所示方法实施例的实现,本发明实施例还提供了另 一种僵尸网络命令和控制协议的获取装置,用以实现图2所示的方法实施例。所 述装置的实体可以为终端设备,如图4所示,所述装置包括:获取单元41、确定 单元42、分配单元43。

获取单元41,可以用于获取僵尸网络程序执行过程中的执行轨迹信息。

确定单元42,可以用于从所述获取单元41获取的执行轨迹信息中确定目标 循环体,所述目标循环体为僵尸网络命令和控制协议所在的循环体。

获取单元41,还可以用于根据所述确定单元42确定的所述目标循环体获取 僵尸网络命令和控制协议。

分配单元43,可以用于将所述获取单元41获取的执行轨迹信息中所属线程 相同的信息划分为同一执行轨迹块。

获取单元41,还可以用于获取所述执行轨迹块中的循环体。

确定单元42,可以用于从所述获取单元41获取的执行轨迹块的循环体中确 定所述目标循环体。

获取单元41,可以用于获取所述执行轨迹块中恶意代码块的跳转指令。

获取单元41,可以用于若所述跳转指令的跳转目的地址小于所述跳转指令 的地址,则获取所述跳转目的地址和所述跳转指令的地址之间的代码,并确认 所述代码为所述循环体。

确定单元42,可以用于若所述循环体同时符合第一特征和第二特征,则确 定所述循环体为所述目标循环体,所述第一特征为所述循环体中调用了可疑函 数,所述第二特征为被调用的所述可疑函数的不同返回结果指示所述僵尸网络 程序执行不同的执行轨迹块。

获取单元41可以包括:替换模块4101、获取模块4102、提取模块4103。

替换模块4101,可以用于将所述目标循环体中调用的可疑函数的输入命令 替换为预置命令。

获取模块4102,可以用于将所述目标循环体中调用的可疑函数的输入命令 替换为预置命令后,重新获取所述僵尸网络程序执行过程中的执行轨迹信息。

提取模块4103,可以用于从所述获取模块4102重新获取到的执行轨迹信息 中提取所述僵尸网络命令和控制协议。

需要说明的是,本发明实施例提供的僵尸网络命令和控制协议的获取装置 所涉及各功能单元的其他相应描述,可以参考图1和图2中对应的描述,本发明 实施例此处将不再赘述。

本发明实施例提供的僵尸网络命令和控制协议的获取装置,与现有技术中 通过统计分析僵尸网络程序的数据包特征,来阻断僵尸网络的通信的动态分析 获取方式,以及与通过人工从僵尸网络的恶意代码样本中获取僵尸网络命令与 控制协议的静态分析获取方式相比,根据僵尸网络程序执行过程中执行轨迹信 息内的循环特征,可以获取到僵尸网络程序中的所有僵尸网络命令和控制协议, 并且提升了僵尸网络命令和控制协议的获取效率,降低了获取僵尸网络命令和 控制协议过程的成本。

本发明实施例提供的僵尸网络命令和控制协议的获取装置可以实现上述提 供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。 本发明实施例提供的僵尸网络命令和控制协议的获取方法及装置可以适用于信 息技术领域,但不仅限于此。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号