一种恶意代码控制端主动发现方法及装置的制作方法

文档序号:7754247阅读:376来源:国知局
专利名称:一种恶意代码控制端主动发现方法及装置的制作方法
技术领域
本发明属于信息安全技术领域,尤其涉及一种在因特网中对恶意代码控制端进行 主动发现及识别的方法及装置。术语解释ICMP 全称 Internet Control Message Protocol,中译因特网控制报文协议,是 网络协议的一种,用于在主机之间传输控制信息。ICMP帧有多种类型,本文中提到的ICMP 回显请求、ICMP回显回应、ICMP时间戳、ICMP子网掩码均为不同类型的ICMP帧。TCP 全称Transmission Control Protocol,中译传输控制协议,是网络协议的一 种,用于在主机之间建立网络连接。TCP连接的建立过程分为三步,俗称三步握手过程。每 个TCP帧中均有多种标志位,本文中提到的SYN、ACK、RST、FIN、NULL均为不同的标志位,TCP SYN帧即为SYN标志位被置位的TCP帧,其余类似。IP地址因特网中用于标识主机的一种编址方式。在本文范围内,可以认为一个 IP地址即指一台主机。端口 主机使用网络收发数据时,为本地不同进程分配的出入口标识号。端口号范 围为0到65535。端口的状态可能为打开,也可能为关闭。
背景技术
在信息安全领域,对恶意代码进行监控和查杀的技术主要是针对被感染的个人计 算机中恶意代码的防范、检测、监控、捕获、分析、清除、还原等技术。对以木马为主的一部分 恶意代码,被感染计算机只是恶意代码被控制端(以下简称“被控制端”)主机;而攻击者通 过恶意代码控制端(以下简称“控制端”)主机对被控制端发起恶意指令。为了进一步保障 互联网和个人计算机的安全,国家必须即时掌握当前因特网中控制端主机的信息,并对控 制端的具体类型予以识别。当前,国内外尚无对控制端主机进行大规模主动发现和识别的 可行技术。我们在对控制端进行主动发现和识别时,首先需要对控制端主机进行初步筛选, 作为控制端主机,首先要满足以下条件已经连接到因特网上,并保持长在线;开放了一个 或多个TCP端口,并处于监听状态;系统环境为Windows操作系统。因此,我们首先通过主机状态扫描、端口状态扫描、操作系统指纹检测三项技术, 将满足上述三个条件的主机筛选出来。所谓主机状态扫描,是指通过向目标主机的IP地址发送特定数据包,通过是否返 回数据、返回数据的特点,来判断目标主机是否处于在线状态。目前常用的主机状态扫描方 法有两种1、ICMP回显法发送ICMP回显请求(ICMP echo request),如果之后收到目标发 来的ICMP回显应答(ICMP echo r印ly),则认为目标主机在线,否则不在线。另外,发送ICMP时间戳、ICMP子网掩码等方法也为主机状态扫描的现有技术方案。
4
2、端口推断法针对目标主机的常见开放端口,通过端口状态扫描,判断其是否开 放,如果开放,则认为主机在线,否则不在线。所谓端口状态扫描,是指对目标主机的目标端口发送特定数据包,通过是否返回 数据、返回数据的特点,来判断该端口是否开放端口,即是否处于打开监听(listening)状 态。目前常用的端口状态扫描方法有UTCP连接扫描尝试与该端口通过三步握手方式建立TCP会话连接,如果建立成 功,则认为端口开放,否则端口未开放。2、TCP SYN扫描向该端口发送TCP SYN帧,如果返回TCP ACK+SYN帧,则认为端 口开放,否则端口未开放。3、TCP FIN扫描向该端口发送TCP FIN帧,如果在一段时间内没有收到返回帧, 则认为端口开放,否则端口未开放。4、TCP NULL扫描向该端口发送TCP NULL帧,如果在一段时间内没有收到返回 帧,则认为端口开放,否则端口未开放。所谓操作系统指纹扫描,是指根据接收到的数据包中某些字段的取值含义,来判 断目标主机所运行的操作系统类型的技术。这一技术的准确性的基础是不同的操作系统对 网络通信协议的实现存在细节上的差异。这些细节包括ICMP、TCP协议中各种字段在不同 情景下的取值。上述现有主机信息扫描方案的缺点如下1、现有方案都是针对单一主机或小范围主机扫描,未考虑大范围扫描的实际需 求,因此没有对扫描的效率进行特别的考量和优化。如果使用现有技术来对数目庞大的因 特网主机及其所有端口进行扫描,其时间开销将是巨大的,因而其结果输出已不再具有现
眉、ο2、现有方案都是针对单一主机或小范围主机扫描,未考虑大规模批量扫描任务对 执行扫描任务的本地环境的系统资源造成的压力。事实上,建立连接需要占据本地主机一 定的内存资源,发送数据包需要占据本地网络一定的带宽资源,当进行大规模批量的扫描 时,这些资源很容易耗尽,从而导致没有足够的资源接收数据并进行判断,这就导致最终结 果与实际结果出现偏差。任务量越大,这种偏差就越大。3、ICMP回显法的缺点设置了防火墙、安全防护软件或进行了专门配置的主机, 对ICMP回显请求将不产生ICMP回显应答,即此时ICMP回显法得到的结果是错误的。4、端口推断法的缺点对于进行了专门配置的主机,常见开放端口不一定处于打 开监听状态,即以此来判断主机是否在线,将对这类在线主机产生漏判。5,TCP连接扫描的缺点建立TCP连接需要经过三步握手通信,这需要一定的时间 开销。此外,每个连接都需要占据一定的本地内存。6、TCP FIN扫描、TCP NULL扫描的缺点发送TCP FIN帧或TCP NULL帧后,是通 过在一段时间后依然无返回帧才能判断端口打开,因此时间开销较大。此外,由于Windows 操作系统对网络协议的实现细节与标准规范有所不同,这两种方法对Windows主机失效。7、在现有方案中,三种扫描技术是三个独立的功能。当进行操作系统指纹扫描时, 依然需要重新发送ICMP帧或TCP帧,然后根据返回的帧进行判断,而无法使用其他扫描过 程中接收到的帧。

发明内容
本发明要解决的技术问题是针对现有技术中存在的缺陷,提供一种恶意代码控制 端主动发现方法及装置,以实现在因特网中对恶意代码控制端进行有效发现。为解决上述技术问题,本发明恶意代码控制端主动发现方法包括如下步骤主机信息扫描步骤,用于在需要扫描的IP地址范围内,找出处于在线状态,操作 系统为Windows,且具有开放端口的主机并确定其至少一个开放端口 ;然后对所述各主机 分别执行控制端信息扫描步骤;控制端信息扫描步骤,用于对预先确定的一些已知恶意代码控制端类型分别执行 下述操作与所述主机的开放端口建立网络连接,模拟所述已知恶意代码控制端类型对应的 被控端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所 述已知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。进一步地,所述主机信息扫描步骤包括主机状态扫描步骤,用于在所述需要扫描的IP地址范围内,确定处于在线状态的 主机;操作系统指纹检测步骤,用于在所述处于在线状态的主机中,确定操作系统为 Windows的主机;端口状态扫描步骤,用于检测所述处于在线状态且操作系统为Windows的主机是 否具有开放端口,并确定其至少一个开放端口。更进一步地,主机状态扫描步骤包括步骤1、在所述需要扫描的IP地址范围内,对每个IP地址,执行步骤2到步骤5 ;步骤2、使用ICMP回显扫描法判断主机是否在线,如果在线,则认为该主机处于在 线状态;否则执行步骤3 ;步骤3、使用ICMP时间戳扫描法判断主机是否在线,如果在线,则认为该主机处于 在线状态,否则执行步骤4;步骤4、使用ICMP子网掩码扫描法判断主机是否在线,如果在线,则认为该主机处 于在线状态,否则执行步骤5;步骤5、选择一些常用开放端口进行TCP SYN扫描,如果其中至少有一个端口处于 打开状态,则认为该主机处于在线状态,否则认为该主机不在线。上述步骤3和4的顺序可以相互倒换。更进一步地,在所述操作系统指纹检测步骤中,是利用所述ICMP扫描或TCPSYN扫 描时收到的数据帧,进行操作系统指纹识别,来判断主机操作系统是否为Windows系统的。更进一步地,所述端口状态扫描步骤中,是通过对所述处于在线状态且操作系统 为Windows的主机的所有TCP端口进行TCP SYN扫描,来检测其是否具有开放端口,并确定 至少一个开放端口的。更进一步地,所述端口状态扫描步骤中,同时开启了两个进程,其中一个用于接收 数据,另一个用于发送数据,发送数据的速度可由用户进行配置。为解决上述技术问题,本发明恶意代码控制端主动发现装置包括
主机信息扫描模块,用于在需要扫描的IP地址范围内,找出处于在线状态,操作 系统为Windows,且具有开放端口的主机并确定其至少一个开放端口 ;然后将所述各主机 分别交由控制端信息扫描模块执行;控制端信息扫描模块,用于对预先确定的一些已知恶意代码控制端类型分别执行 下述操作与所述主机的开放端口建立网络连接,模拟所述已知恶意代码控制端类型对应的 被控端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所 述已知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。进一步地,所述主机信息扫描模块包括主机状态扫描模块,用于在所述需要扫描的IP地址范围内,确定处于在线状态的 主机;操作系统指纹检测模块,用于在所述处于在线状态的主机中,确定操作系统为 Windows的主机;端口状态扫描模块,用于检测所述处于在线状态且操作系统为Windows的主机是 否具有开放端口,并确定其至少一个开放端口。更进一步地,所述端口状态扫描模块是通过对所述处于在线状态且操作系统为 Windows的主机的所有TCP端口进行TCP SYN扫描,来检测其是否具有开放端口,并确定至 少一个开放端口的。本发明的有益效果为本发明首先通过对主机信息进行扫描,在给定的IP地址范围内筛选出处于在线 状态且操作系统为Windows的主机,并确定其开放端口,然后与这些在线且操作系统为 Windows的主机的开放端口建立TCP连接,并模拟常见的恶意代码控制端类型下被控制端 的行为方式,向所述在线且操作系统为Windows的主机发送数据,并对收到的返回数据进 行分析,如果如何该种常见的恶意代码控制端类型的特征,则认为该主机中存在该种常见 的控制端类型。采用本发明方案,避免了大量的时间开销,能够有效地对因特网中的恶意代 码控制端进行主动发现及识别,适用于对因特网中的主机进行大规模扫描,对信息安全保 障具有重大的现实意义。


图1为本发明恶意代码控制端主动发现方法流程示意图;图2为主机信息扫描步骤流程示意图;图3为控制端信息扫描步骤流程示意图;图4为本发明恶意代码控制端主动发现装置结构示意图。
具体实施例方式下面结合附图和具体实施方式
对本发明作进一步详细说明。本发明提出了恶意代码控制端主动发现的一种解决方案,即主动扫描因特网中 的主机,获取其在线状态、开放端口和操作系统类型;对操作系统为Windows的在线主机, 向其开放的端口建立网络连接,模拟被控制端的网络行为;将该主机返回的通信数据与控
7制端网络行为特征进行对比,根据对比结果判断主机中是否存在控制端、是哪种控制端,从 而最终实现主动发现和识别控制端。图1为本发明恶意代码控制端主动发现方法流程示意图,如果所示,本发明恶意 代码控制端发现方法具体包括主机信息扫描步骤和控制端信息扫描步骤。其中,主机信息扫描步骤用于在需要进行扫描的主机IP地址范围中,确定处于在 线状态且操作系统为Windows系统的主机及其开放端口 ;控制端信息扫描步骤用于通过与 主机信息扫描步骤确定的在线主机的开放端口建立网络连接,模拟被控制端的网络行为, 对接收到的来自该在线主机的数据进行分析,以确定该在线主机中是否存在恶意代码控制 端。主机信息扫描步骤依次包括主机状态扫描步骤,用于在需要进行扫描的主机IP 地址范围中,确定处于在线状态的主机;操作系统指纹检测步骤,用于在主机状态扫描步骤 确定的处于在线状态的主机中,确定操作系统为Windows系统的主机;端口状态扫描步骤, 用于确定处于在线状态且操作系统为Windows系统的主机的开放端口。控制端信息扫描步骤包括与主机信息扫描步骤确定的所述在线主机的开放端口 建立TCP连接;并确定一些已知的常见控制端类型,然后对各已知的常见控制端类型分别 执行以下步骤模拟在某常见的控制端类型下作为恶意代码被控制端的行为方式,向该在 线主机发送数据;对接收到的该在线主机的返回数据进行分析,判断是否符合该常见的控 制端类型的特征,符合则认为该在线主机中存在该类型的控制端。图2为主机信息扫描步骤流程示意图,如图所示,主机信息扫描步骤具体包括1、任务开始,获取需要进行扫描主机的IP地址范围,并由用户输入系统运行过程 中需要使用的一些配置参数。2、对每个IP地址,执行步骤3到步骤10。3、使用ICMP回显扫描判断主机是否在线,如果在线,执行步骤7 ;否则执行步骤4。4、使用ICMP时间戳扫描(扫描原理与ICMP回显类似)判断主机是否在线,如果 在线,执行步骤7 ;否则执行步骤5。步骤3和4的顺序可以相互倒换。5、使用ICMP子网掩码扫描(扫描原理与ICMP回显类似)判断主机是否在线,如 果在线,执行步骤7 ;否则执行步骤6。6、根据输入的配置参数,选择若干个常用开放端口,对这些端口进行TCP SYN扫 描,如果有一个以上的端口打开则判定主机在线,如果在线,执行步骤7,否则将这个IP地 址丢弃,执行步骤10。其中,常见开放端口可由用户进行配置。7、根据ICMP扫描或TCP SYN扫描时收到的数据帧,进行操作系统指纹识别,若判 断主机操作系统不是Windows,将这个IP地址丢弃,执行步骤10。8、对于操作系统为Windows的主机,对其所有TCP端口一次进行TCP SYN扫描。该 步骤中开启两个进程,其中一个用于收包,另一个用于发包;发包的速度受输入的配置参数 控制。9、对主机的任一端口,若扫描得知它是打开的,将IP地址与端口号传递给控制端 信息扫描部分,即步骤11开始并发地执行。该主机所有端口扫描完成后,转入下一步。
8
10、选择下一个IP地址,执行步骤3到10,如果所有IP地址已经执行完毕,则主机 信息扫描部分完成。本发明方法在进行主机信息扫描时,采用了步骤3-6等四个步骤来判定主机是否 在线,是为了尽量减少漏判发生。实际操作中,可以减去其中部分步骤,但这样的代价是对 主机在线状态进行判定时漏判几率增加。图3为控制端信息扫描步骤流程示意图,如图所示,控制端信息扫描步骤具体包 括11、开始控制端信息扫描,接收主机信息扫描步骤传来的主机IP地址与端口号, 并由用户输入系统运行过程中需要使用的一些配置参数。确定一些已知的常见控制端类 型,并对主机信息扫描步骤传来的各主机(下面也成为目标主机)IP地址分别执行下面的步骤。12、与目标主机的开放端口建立TCP连接。13、通过配置参数,开始对每种常见的控制端类型逐一执行步骤14到18。14、从存储控制端信息的数据库中获取其该种控制端类型对应的数据包荷载,根 据目标主机与端口号构造出模拟被控制端行为的数据包。15、将数据包发送给目标主机。16、等待直至接收到目标主机回应的数据包。17、从存储控制端判断规则的数据库中调用该控制端对应的判断规则,根据判断 规则对回应数据包进行判定,以判断是否存在此类型控制端,也就是对回应数据包进行分 析,判断其是否符合该种控制端类型的特征,如果符合则认为目标主机中存在该控制端类 型。如果存在,将其记录下来。对下一类型的常见控制端执行步骤(14)至(18),直至所有控制端类型都执行完 毕。将记录下来的结果输出,此部分扫描完成。采用本发明恶意代码控制端发现方法,具有如下优点1、通过三类ICMP扫描方法找出相当大一部分在线主机,这部分主机不再需要通 过端口扫描来判断是否在线,减少了扫描次数,进而减少了扫描所需时间。2、操作系统指纹扫描使用ICMP扫描、常见端口扫描的结果,减少了扫描次数,进 而减少了扫描所需时间。3,TCP全端口扫描的速度可通过输入参数动态配置,可根据环境达到最优,因而较 固定而通用的扫描速度更快。4、通过输入动态参数动态配置扫描速度,能有效控制发送数据包对系统资源特别 是网络带宽的占用,提高了整个扫描的准确性。5、通过双进程并行工作,一个专门负责收包,一个专门负责发包,一方面并行工作 提高了扫描速度,另一方面控制了收发数据包对系统资源特别是主机内存的占用,提高了 整个扫描的准确性。6、通过三种ICMP扫描、常见端口扫描的串行执行,提高了扫描结果的准确性。7、使用TCP SYN扫描检查端口是否开放,避免了其他几种方法的局限。8JfTCP SYN扫描主机全端口集中成为系统中的一部分,整个扫描过程相对集中,
9根据程序执行的原理,将降低上下文切换的开销,从而提高系统速度。9、通过模拟恶意代码被控制端的网络行为,实现了对控制端的自动扫描。10、通过对恶意代码控制端通信特征的对比,实现了对控制端的判断和识别。11、通过主机信息扫描与控制端信息扫描相结合,实现了对大范围网络中控制端 的发现与识别。下面给出一个具体实施例,对本发明方法做进一步具体说明,该实施例包括如下 步骤步骤10 用户输入需要扫描的IP地址范围、需要使用的常见端口的数目、发包速 度、收包等待时间。步骤11 对扫描范围内的每个IP地址,将其在线状态标记为不在线,系统类型标 记为 Windows。步骤12 先开启一个进程,用于接收数据包;再开启一个进程,用于发送数据包。 因此,步骤13、14与步骤15、16、17将在时间上并行地被执行。步骤13 针对扫描范围内的每一个IP地址,发包进程构造以其为目的IP地址的 ICMP回显请求帧数据包,按用户规定的时间间隔逐一发送。步骤14 在发送完所有数据包后,发包进程向收包进程发送特定消息,然后立即 退出。步骤15 在步骤13到步骤14的执行过程中,收包进程持续接收数据包。对每个 数据包,判断其类型是否为ICMP回显应答帧。如果是,进一步判断其源IP地址是否在扫描 范围内。如果在,则将这个IP地址的状态改为在线,执行步骤16。以上两步判断如果有一 步结果为否,则不再分析这个数据包,转为接收下一个数据包(步骤15)。步骤16 根据接收到的ICMP回显应答帧进行操作系统指纹识别,如果判断为非 Windows操作系统,将IP地址的操作系统类型标记为非Windows。否则不做任何修改。本 步骤结束后,跳到第15步,继续接收下一个数据包。步骤17 收包进程在收到发包进程的消息后,开始计时,当时间超过收包等待时 间,收包进程退出。开始执行步骤20。步骤20:再次开启一个进程,用于接收数据包;开启一个进程,用于发送数据包。 因此,步骤21、22与步骤23、24、25将在时间上并行地被执行。步骤21 针对扫描范围内的每一个状态为不在线的IP地址,发包进程构造以其为 目的IP地址的ICMP时间戳请求帧数据包,按用户规定的时间间隔逐一发送。步骤22 在发送完所有数据包后,发包进程向收包进程发送特定消息,然后立即 退出。步骤23 在步骤21到步骤22的执行过程中,收包进程持续接收数据包。对每个 数据包,判断其类型是否为ICMP时间戳应答帧。如果是,进一步判断其源IP地址是否在扫 描范围内。如果在,则将这个IP地址标注为在线,执行步骤24。以上两步判断如果有一步 结果为否,则不再分析这个数据包,转为接收下一个数据包(步骤23)。步骤24 根据接收到的ICMP时间戳应答帧进行操作系统指纹识别,如果判断为非 Windows操作系统,将IP地址的操作系统类型标记为非Windows。否则不做任何修改。本 步骤结束后,跳到第23步,继续接收下一个数据包。
步骤25 收包进程在收到发包进程的消息后,开始计时,当时间超过收包等待时 间,收包进程退出,开始执行步骤30。步骤30:再次开启一个进程,用于接收数据包;开启一个进程,用于发送数据包。 因此,步骤31、32与步骤33、34、35将在时间上并行地被执行。步骤31 针对扫描范围内的每一个状态为不在线的IP地址,发包进程构造以其为 目的IP地址的ICMP子网掩码请求帧数据包,按用户规定的时间间隔逐一发送。步骤32 在发送完所有数据包后,发包进程向收包进程发送特定消息,然后立即 退出。步骤33 在步骤31到步骤32的执行过程中,收包进程持续接收数据包。对每个 数据包,判断其类型是否为ICMP子网掩码应答帧。如果是,进一步判断其源IP地址是否在 扫描范围内。如果在,则将这个IP地址标注为在线,执行步骤34。以上两步判断如果有一 步结果为否,则不再分析这个数据包,转为接收下一个数据包(步骤33)。步骤34 根据接收到的ICMP子网掩码应答帧进行操作系统指纹识别,如果判断为 非Windows操作系统,将IP地址的操作系统类型标记为非Windows。否则不做任何修改。 本步骤结束后,跳到第33步,继续接收下一个数据包。步骤35 收包进程在收到发包进程的消息后,开始计时,当时间超过收包等待时 间,收包进程退出,开始执行步骤40。步骤40:再次开启一个进程,用于接收数据包;开启一个进程,用于发送数据包。 因此,步骤42、43与步骤44、45、46将在时间上并行地被执行。步骤41 根据用户输入的使用常见端口的数目,在配置文件中查找出最常见的这 么多个端口号。步骤42 针对扫描范围内的每一个状态为不在线的IP地址及第41步查找出来的 每一个端口号,发包进程构造以该IP地址为目的地址、该端口号为目的端口的TCP SYN数 据包,按用户规定的时间间隔逐一发送。步骤43 在发送完所有数据包后,发包进程向收包进程发送特定消息,然后立即 退出。步骤44 在步骤42到步骤43的执行过程中,收包进程持续接收数据包。对每个 数据包,判断其类型是否为TCP,且SYN和ACK位被置上。如果是,进一步判断其源IP地址 是否在扫描范围内,以及源端口号是否在第41步得到的端口号范围内。如果对某个(IP地 址,端口号)组合,上述判断是在,则将这个I P地址标注为在线,执行步骤45。以上三步判 断如果有一步结果为否,则不再分析这个数据包,转为接收下一个数据包(步骤44)。步骤45:根据接收到的TCP数据包进行操作系统指纹识别,如果判断为非Windows 操作系统,将IP地址的操作系统类型标记为非Windows。否则不做任何修改。本步骤结束 后,跳到第44步,继续接收下一个数据包。步骤46 收包进程在收到发包进程的消息后,开始计时,当时间超过收包等待时 间,收包进程退出,开始执行步骤50。步骤50 对扫描范围的IP地址进行筛选,挑选出其中在线状态为在线、操作系统 类型为Windows的IP地址,记录下来,作为下一步扫描的目标。步骤51 再次开启一个进程,用于接收数据包;开启一个进程,用于发送数据包。因此,步骤52、53与步骤54、55将在时间上并行地被执行。步骤52 针对第50步得到的每一个IP地址,发包进程分别构造以该IP地址为目 的地址、从1到65535为目的端口的65535个TCP SYN数据包,按用户规定的时间间隔逐一发送。步骤53 在发送完所有数据包后,发包进程向收包进程发送特定消息,然后立即 退出。步骤54 在步骤52到步骤53的执行过程中,收包进程持续接收数据包。对每个 数据包,判断其类型是否为TCP,且SYN和ACK位被置上。如果是,进一步判断其源IP地址 是否在第50步得到的I P地址范围内。如果对某个(IP地址,端口号)组合,上述判断是 在,则将这个(IP地址,端口号)组合存储到输出文件中。以上三步判断如果有一步结果为 否,则不再分析这个数据包,转为接收下一个数据包(步骤54)。步骤55 收包进程在收到发包进程的消息后,开始计时,当时间超过收包等待时 间,收包进程退出,开始执行步骤60。步骤60:读取步骤54产生的输出文件,产生需要扫描的(IP地址,端口号)组合 的列表。针对列表中的所有组合,分别执行步骤61到步骤69。全部执行完后,跳转到步骤 70。步骤61 对每种已知的控制端类型,分别执行步骤62到步骤69。步骤62 开启一个进程,用于接收数据包;开启一个进程,用于发送数据包。步骤63 发包进程与该IP地址及端口号通过TCP三步握手建立TCP连接。步骤64 发包进程从存储了控制端信息的数据库中读取控制端通信方法,以及专 门为这种控制端构造的(一个或多个)数据包,将数据包的目的地址填充为该IP地址、目 的端口填充为该端口号,发送数据包。步骤65 收包进程接收数据包。步骤67:根据第64步中从数据库读取的控制端通信方法,重复步骤64、65,直至通 信完成。发包进程与该(IP地址,端口号)之间断开TCP连接,然后发包进程退出。步骤68 收包进程从规则库中读取这种控制端的判断规则,解析规则得到一系列 判断方法,根据这些方法对接收到的数据包进行解析、模式匹配和判断,得到判断结果。步骤69 如果第66步判断为是,将结果记录到最终输出文件并输出至用户界面。 如果判断为否,不进行任何操作。之后,收包进程退出。跳转到步骤61,开始对下一种控制 端类型的判断。步骤70 读取第69步得到的最终输出文件,将结果进行统计并呈现到程序的用户 界面。图4为本发明恶意代码控制端主动发现装置结构示意图,如图所示,本发明恶意 代码控制端发现装置包括主机信息扫描模块和控制端信息扫描模块。其中,主机信息扫描模块用于在需要扫描的IP地址范围内,找出处于在线状态, 操作系统为Windows,且具有开放端口的主机并确定其至少一个开放端口 ;然后将这些主 机分别交由控制端信息扫描模块执行。控制端信息扫描模块用于对预先确定的一些已知恶意代码控制端类型分别执行 下述操作
与上述主机的开放端口建立网络连接,模拟已知恶意代码控制端类型对应的被控 端主机的网络行为,向该主机发送数据,并对接收到的返回数据进行分析,若符合已知恶意 代码控制端类型的特征,则认为该主机中存在该恶意代码控制端类型。主机信息扫描模块包括主机状态扫描模块,用于在需要进行扫描的IP地址范围 中,确定处于在线状态的主机;操作系统指纹检测模块,用于在主机状态扫描模块确定的处 于在线状态的主机中,确定操作系统为Windows系统的主机;端口状态扫描模块,用于检测 处于在线状态且操作系统为Windows的主机是否具有开放端口,并确定其至少一个开放端 口。端口状态扫描模块是通过对处于在线状态且操作系统为Windows系统的主机的所有 TCP端口进行TCP SYN扫描,来检测其是否具有开放端口,并确定至少一个开放端口的。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对 本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改 和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包 含这些改动和变型在内。
权利要求
一种恶意代码控制端主动发现方法,其特征在于包括如下步骤主机信息扫描步骤,用于在需要扫描的IP地址范围内,找出处于在线状态,操作系统为Windows,且具有开放端口的主机并确定其至少一个开放端口;然后对所述各主机分别执行控制端信息扫描步骤;控制端信息扫描步骤,用于对预先确定的一些已知恶意代码控制端类型分别执行下述操作与所述主机的开放端口建立网络连接,模拟所述已知恶意代码控制端类型对应的被控端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所述已知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。
2.根据权利要求1所述的恶意代码控制端主动发现方法,其特征在于,所述主机信息 扫描步骤包括主机状态扫描步骤,用于在所述需要扫描的IP地址范围内,确定处于在线状态的主机;操作系统指纹检测步骤,用于在所述处于在线状态的主机中,确定操作系统为Windows 的主机;端口状态扫描步骤,用于检测所述处于在线状态且操作系统为Windows的主机是否具 有开放端口,并确定其至少一个开放端口。
3.根据权利要求2所述的恶意代码控制端主动发现方法,其特征在于,所述主机状态 扫描步骤包括步骤1、在所述需要扫描的IP地址范围内,对每个IP地址,执行步骤2到步骤5 ;步骤2、使用ICMP回显扫描法判断主机是否在线,如果在线,则认为该主机处于在线状 态;否则执行步骤3 ;步骤3、使用ICMP时间戳扫描法判断主机是否在线,如果在线,则认为该主机处于在线 状态,否则执行步骤4;步骤4、使用ICMP子网掩码扫描法判断主机是否在线,如果在线,则认为该主机处于在 线状态,否则执行步骤5;步骤5、选择一些常用开放端口进行TCP SYN扫描,如果其中至少有一个端口处于打开 状态,则认为该主机处于在线状态,否则认为该主机不在线。
4.根据权利要求2所述的恶意代码控制端主动发现方法,其特征在于,所述主机状态 扫描步骤包括步骤1、在所述需要扫描的IP地址范围内,对每个IP地址,执行步骤2到步骤5 ;步骤2、使用ICMP回显扫描法判断主机是否在线,如果在线,则认为该主机处于在线状 态;否则执行步骤3;步骤3、使用ICMP子网掩码扫描法判断主机是否在线,如果在线,则认为该主机处于在 线状态,否则执行步骤4;步骤4、使用ICMP时间戳扫描法判断主机是否在线,如果在线,则认为该主机处于在线 状态,否则执行步骤5;步骤5、选择一些常用开放端口进行TCP SYN扫描,如果其中至少有一个端口处于打开 状态,则认为该主机处于在线状态,否则认为该主机不在线。2
5.根据权利要求3或4所述的恶意代码控制端主动发现方法,其特征在于所述操作系统指纹检测步骤中,是利用所述ICMP扫描或TCP SYN扫描时收到的数据 帧,进行操作系统指纹识别,来判断操作系统是否为Windows的。
6.根据权利要求2所述的恶意代码控制端主动发现方法,其特征在于所述端口状态扫描步骤中,是通过对所述处于在线状态且操作系统为Windows的主机 的所有TCP端口进行TCP SYN扫描,来检测其是否具有开放端口,并确定至少一个开放端口 的。
7.根据权利要求2至6中任一项所述的恶意代码控制端主动发现方法,其特征在于 所述端口状态扫描步骤中,同时开启了两个进程,其中一个用于接收数据,另一个用于发送数据。
8.—种恶意代码控制端主动发现装置,其特征在于包括主机信息扫描模块,用于在需要扫描的IP地址范围内,找出处于在线状态,操作系统 为Windows,且具有开放端口的主机并确定其至少一个开放端口 ;然后将所述各主机分别 交由控制端信息扫描模块执行;控制端信息扫描模块,用于对预先确定的一些已知恶意代码控制端类型分别执行下述 操作与所述主机的开放端口建立网络连接,模拟所述已知恶意代码控制端类型对应的被控 端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所述已 知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。
9.根据权利要求8所述的恶意代码控制端主动发现装置,其特征在于,所述主机信息 扫描模块包括主机状态扫描模块,用于在所述需要扫描的IP地址范围内,确定处于在线状态的主机;操作系统指纹检测模块,用于在所述处于在线状态的主机中,确定操作系统为Windows 的主机;端口状态扫描模块,用于检测所述处于在线状态且操作系统为Windows的主机是否具 有开放端口,并确定其至少一个开放端口。
10.根据权利要求9所述的恶意代码控制端主动发现装置,其特征在于所述端口状态扫描模块是通过对所述处于在线状态且操作系统为Windows的主机的 所有TCP端口进行TCP SYN扫描,来检测其是否具有开放端口,并确定至少一个开放端口 的。
全文摘要
本发明公开了一种恶意代码控制端主动发现方法,包括主机信息扫描步骤,用于在需要扫描的IP地址范围内,找出处于在线状态,操作系统为Windows,且具有开放端口的主机并确定其至少一个开放端口;控制端信息扫描步骤,与所述主机的开放端口建立网络连接,模拟已知的恶意代码控制端类型对应的被控端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所述已知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。采用本发明方法能够有效识别恶意代码控制端,适用于对因特网中的主机进行大规模扫描,对信息安全保障具有重大的现实意义。本发明还相应提供了一种恶意代码控制端主动发现装置。
文档编号H04L29/06GK101924754SQ20101022732
公开日2010年12月22日 申请日期2010年7月15日 优先权日2010年7月15日
发明者严寒冰, 孙波, 张冰, 朱春鸽, 李柏松, 杜跃进, 焦英楠, 袁春阳, 许俊峰, 黄彩洪 申请人:国家计算机网络与信息安全管理中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1