CN101924754A - 一种恶意代码控制端主动发现方法及装置 - Google Patents
一种恶意代码控制端主动发现方法及装置 Download PDFInfo
- Publication number
- CN101924754A CN101924754A CN2010102273240A CN201010227324A CN101924754A CN 101924754 A CN101924754 A CN 101924754A CN 2010102273240 A CN2010102273240 A CN 2010102273240A CN 201010227324 A CN201010227324 A CN 201010227324A CN 101924754 A CN101924754 A CN 101924754A
- Authority
- CN
- China
- Prior art keywords
- main frame
- control end
- scanning
- malicious code
- code control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种恶意代码控制端主动发现方法,包括:主机信息扫描步骤,用于在需要扫描的IP地址范围内,找出处于在线状态,操作系统为Windows,且具有开放端口的主机并确定其至少一个开放端口;控制端信息扫描步骤,与所述主机的开放端口建立网络连接,模拟已知的恶意代码控制端类型对应的被控端主机的网络行为,向所述主机发送数据,并对接收到的返回数据进行分析,若符合所述已知恶意代码控制端类型的特征,则认为所述主机中存在所述恶意代码控制端类型。采用本发明方法能够有效识别恶意代码控制端,适用于对因特网中的主机进行大规模扫描,对信息安全保障具有重大的现实意义。本发明还相应提供了一种恶意代码控制端主动发现装置。
Description
技术领域
本发明属于信息安全技术领域,尤其涉及一种在因特网中对恶意代码控制端进行主动发现及识别的方法及装置。
术语解释
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 reply),则认为目标主机在线,否则不在线。
另外,发送ICMP时间戳、ICMP子网掩码等方法也为主机状态扫描的现有技术方案。
2、端口推断法:针对目标主机的常见开放端口,通过端口状态扫描,判断其是否开放,如果开放,则认为主机在线,否则不在线。
所谓端口状态扫描,是指对目标主机的目标端口发送特定数据包,通过是否返回数据、返回数据的特点,来判断该端口是否开放端口,即是否处于打开监听(listening)状态。目前常用的端口状态扫描方法有:
1、TCP连接扫描:尝试与该端口通过三步握手方式建立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的在线主机,向其开放的端口建立网络连接,模拟被控制端的网络行为;将该主机返回的通信数据与控制端网络行为特征进行对比,根据对比结果判断主机中是否存在控制端、是哪种控制端,从而最终实现主动发现和识别控制端。
图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开始并发地执行。该主机所有端口扫描完成后,转入下一步。
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扫描检查端口是否开放,避免了其他几种方法的局限。
8、将TCP SYN扫描主机全端口集中成为系统中的一部分,整个扫描过程相对集中,根据程序执行的原理,将降低上下文切换的开销,从而提高系统速度。
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扫描,来检测其是否具有开放端口,并确定至少一个开放端口的。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种恶意代码控制端主动发现方法,其特征在于包括如下步骤:
主机信息扫描步骤,用于在需要扫描的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扫描,如果其中至少有一个端口处于打开状态,则认为该主机处于在线状态,否则认为该主机不在线。
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扫描,来检测其是否具有开放端口,并确定至少一个开放端口的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010227324 CN101924754B (zh) | 2010-07-15 | 2010-07-15 | 一种恶意代码控制端主动发现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010227324 CN101924754B (zh) | 2010-07-15 | 2010-07-15 | 一种恶意代码控制端主动发现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101924754A true CN101924754A (zh) | 2010-12-22 |
CN101924754B CN101924754B (zh) | 2013-07-31 |
Family
ID=43339398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010227324 Active CN101924754B (zh) | 2010-07-15 | 2010-07-15 | 一种恶意代码控制端主动发现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101924754B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103746826A (zh) * | 2013-10-29 | 2014-04-23 | 湖南蚁坊软件有限公司 | 一种网络中主机的操作系统的自动发现与识别的方法 |
CN103747025A (zh) * | 2013-10-29 | 2014-04-23 | 湖南蚁坊软件有限公司 | 一种网络中服务器软件的自动发现与识别的方法 |
CN104038475A (zh) * | 2014-05-09 | 2014-09-10 | 深圳市深信服电子科技有限公司 | P2p蠕虫检测的方法和装置 |
CN104301183A (zh) * | 2014-10-23 | 2015-01-21 | 北京知道创宇信息技术有限公司 | 基于ip段扫描的web容器检测方法和设备 |
CN105049542A (zh) * | 2015-05-29 | 2015-11-11 | 四川效率源信息安全技术有限责任公司 | 一种自动识别监控主机的方法 |
CN106162071A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 使用网络协议自动探测局域网内视频监控主机的方法 |
CN106487939A (zh) * | 2015-08-26 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种确定用户ip子网的方法和装置、一种电子设备 |
CN106713449A (zh) * | 2016-12-21 | 2017-05-24 | 中国电子科技网络信息安全有限公司 | 一种快速识别联网工控设备的方法 |
CN107172006A (zh) * | 2017-03-22 | 2017-09-15 | 深信服科技股份有限公司 | 检测无线网络恶意性的方法及装置 |
CN107430583A (zh) * | 2014-12-09 | 2017-12-01 | 克罗诺斯网络技术有限公司 | 操作系统指纹检测 |
CN110247904A (zh) * | 2019-06-04 | 2019-09-17 | 菜鸟智能物流控股有限公司 | 一种扫描方法和装置 |
CN110493083A (zh) * | 2019-08-27 | 2019-11-22 | 苏州八维通智慧科技有限公司 | 一种基于syn半连接数据包的闸机离线检测方法 |
CN112040480A (zh) * | 2020-10-12 | 2020-12-04 | 珠海市鸿瑞信息技术股份有限公司 | 基于5g通信的工业控制系统工业协议通信安全防控方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154900A1 (en) * | 2004-01-13 | 2005-07-14 | Networks Associates Technology, Inc. | Detecting malicious computer program activity using external program calls with dynamic rule sets |
US20070067841A1 (en) * | 2005-08-29 | 2007-03-22 | Yegneswaran Vinod T | Scalable monitor of malicious network traffic |
CN101127638A (zh) * | 2007-06-07 | 2008-02-20 | 飞塔信息科技(北京)有限公司 | 一种具有主动性的病毒自动防控系统和方法 |
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101350822A (zh) * | 2008-09-08 | 2009-01-21 | 南开大学 | 一种Internet恶意代码的发现和追踪方法 |
CN101588276A (zh) * | 2009-06-29 | 2009-11-25 | 成都市华为赛门铁克科技有限公司 | 一种检测僵尸网络的方法及其装置 |
US7694150B1 (en) * | 2004-06-22 | 2010-04-06 | Cisco Technology, Inc | System and methods for integration of behavioral and signature based security |
CN101707604A (zh) * | 2009-11-20 | 2010-05-12 | 杭州华三通信技术有限公司 | 一种防恶意攻击的方法、系统及装置 |
CN101714931A (zh) * | 2009-11-26 | 2010-05-26 | 成都市华为赛门铁克科技有限公司 | 一种未知恶意代码的预警方法、设备和系统 |
US20100169969A1 (en) * | 2008-12-25 | 2010-07-01 | Trusteer Ltd. | Functional patching/hooking detection and prevention |
-
2010
- 2010-07-15 CN CN 201010227324 patent/CN101924754B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154900A1 (en) * | 2004-01-13 | 2005-07-14 | Networks Associates Technology, Inc. | Detecting malicious computer program activity using external program calls with dynamic rule sets |
US7694150B1 (en) * | 2004-06-22 | 2010-04-06 | Cisco Technology, Inc | System and methods for integration of behavioral and signature based security |
US20070067841A1 (en) * | 2005-08-29 | 2007-03-22 | Yegneswaran Vinod T | Scalable monitor of malicious network traffic |
CN101127638A (zh) * | 2007-06-07 | 2008-02-20 | 飞塔信息科技(北京)有限公司 | 一种具有主动性的病毒自动防控系统和方法 |
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101350822A (zh) * | 2008-09-08 | 2009-01-21 | 南开大学 | 一种Internet恶意代码的发现和追踪方法 |
US20100169969A1 (en) * | 2008-12-25 | 2010-07-01 | Trusteer Ltd. | Functional patching/hooking detection and prevention |
CN101588276A (zh) * | 2009-06-29 | 2009-11-25 | 成都市华为赛门铁克科技有限公司 | 一种检测僵尸网络的方法及其装置 |
CN101707604A (zh) * | 2009-11-20 | 2010-05-12 | 杭州华三通信技术有限公司 | 一种防恶意攻击的方法、系统及装置 |
CN101714931A (zh) * | 2009-11-26 | 2010-05-26 | 成都市华为赛门铁克科技有限公司 | 一种未知恶意代码的预警方法、设备和系统 |
Non-Patent Citations (4)
Title |
---|
《中国计算机用户》 20050822 杜跃进等 《"僵尸"施暴网络》 第36-37页 1-10 , * |
张浩: "基于主动方式的恶意代码检测技术研究", 《CNKI中国优秀硕士学位论文库》 * |
杜跃进等: "《"僵尸"施暴网络》", 《中国计算机用户》 * |
袁春阳等: "《僵尸网络的类型、危害及防范措施》", 《现代电信科技》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747025A (zh) * | 2013-10-29 | 2014-04-23 | 湖南蚁坊软件有限公司 | 一种网络中服务器软件的自动发现与识别的方法 |
CN103746826A (zh) * | 2013-10-29 | 2014-04-23 | 湖南蚁坊软件有限公司 | 一种网络中主机的操作系统的自动发现与识别的方法 |
CN104038475B (zh) * | 2014-05-09 | 2017-10-03 | 深信服科技股份有限公司 | P2p蠕虫检测的方法和装置 |
CN104038475A (zh) * | 2014-05-09 | 2014-09-10 | 深圳市深信服电子科技有限公司 | P2p蠕虫检测的方法和装置 |
CN104301183A (zh) * | 2014-10-23 | 2015-01-21 | 北京知道创宇信息技术有限公司 | 基于ip段扫描的web容器检测方法和设备 |
CN107430583A (zh) * | 2014-12-09 | 2017-12-01 | 克罗诺斯网络技术有限公司 | 操作系统指纹检测 |
CN106162071A (zh) * | 2015-04-27 | 2016-11-23 | 四川效率源信息安全技术有限责任公司 | 使用网络协议自动探测局域网内视频监控主机的方法 |
CN105049542A (zh) * | 2015-05-29 | 2015-11-11 | 四川效率源信息安全技术有限责任公司 | 一种自动识别监控主机的方法 |
CN106487939B (zh) * | 2015-08-26 | 2019-10-29 | 阿里巴巴集团控股有限公司 | 一种确定用户ip子网的方法和装置、一种电子设备 |
CN106487939A (zh) * | 2015-08-26 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种确定用户ip子网的方法和装置、一种电子设备 |
CN106713449A (zh) * | 2016-12-21 | 2017-05-24 | 中国电子科技网络信息安全有限公司 | 一种快速识别联网工控设备的方法 |
CN107172006A (zh) * | 2017-03-22 | 2017-09-15 | 深信服科技股份有限公司 | 检测无线网络恶意性的方法及装置 |
CN107172006B (zh) * | 2017-03-22 | 2020-06-26 | 深信服科技股份有限公司 | 检测无线网络恶意性的方法及装置 |
CN110247904A (zh) * | 2019-06-04 | 2019-09-17 | 菜鸟智能物流控股有限公司 | 一种扫描方法和装置 |
CN110493083A (zh) * | 2019-08-27 | 2019-11-22 | 苏州八维通智慧科技有限公司 | 一种基于syn半连接数据包的闸机离线检测方法 |
CN110493083B (zh) * | 2019-08-27 | 2023-01-10 | 苏州八维通智慧科技有限公司 | 一种基于syn半连接数据包的闸机离线检测方法 |
CN112040480A (zh) * | 2020-10-12 | 2020-12-04 | 珠海市鸿瑞信息技术股份有限公司 | 基于5g通信的工业控制系统工业协议通信安全防控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101924754B (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101924754B (zh) | 一种恶意代码控制端主动发现方法及装置 | |
US7353539B2 (en) | Signal level propagation mechanism for distribution of a payload to vulnerable systems | |
CN103701825A (zh) | 面向移动智能终端IPv6协议及其应用的安全测试系统 | |
JP2013545196A (ja) | 通信ネットワークのノードで動作するオペレーティングシステムをフィンガープリント処理する方法及びシステム | |
CN101635713A (zh) | 一种防止局域网arp欺骗攻击的方法及系统 | |
WO2005114960A1 (en) | Method and apparatus for low-overhead service availability and performance moniroring | |
CN111988339A (zh) | 一种基于dikw模型的网络攻击路径发现、提取和关联的方法 | |
CN102970306A (zh) | 一种IPv6网络环境下的入侵检测系统 | |
CN114301676B (zh) | 一种电力监控系统的无损化资产探测方法、装置和存储介质 | |
CN111343176B (zh) | 一种网络攻击的反制装置、方法、存储介质及计算机设备 | |
JP2007228382A (ja) | トポロジ情報収集プログラム、トポロジ情報収集装置およびトポロジ情報収集方法 | |
CN111541670A (zh) | 一种新型动态蜜罐系统 | |
US10097418B2 (en) | Discovering network nodes | |
CN104461697A (zh) | 一种虚拟机批量在线ip地址自动设置系统及方法 | |
CN109428862A (zh) | 一种在局域网内检测arp攻击的方法和装置 | |
JP3892322B2 (ja) | 不正アクセス経路解析システム及び不正アクセス経路解析方法 | |
US10015179B2 (en) | Interrogating malware | |
CN108833410A (zh) | 一种针对HTTP Flood攻击的防护方法及系统 | |
CN113301592B (zh) | 一种路由器优化苹果手机上网体验的网络检测方法 | |
CN115604162A (zh) | 一种网络安全设备的检测方法 | |
CN109309679A (zh) | 一种基于tcp流状态的网络扫描检测方法及检测系统 | |
Hori et al. | A comprehensive security analysis checksheet for OpenFlow networks | |
CN113556396A (zh) | 一种通过p2p协议对比特币节点网络进行监测的方法 | |
CN112333174A (zh) | 一种反射型DDos的IP扫描探测系统 | |
KR101446280B1 (ko) | 인터미디어트 드라이버를 이용한 변종 악성코드 탐지 및 차단 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |