发明内容
本发明的目的是在网络上模拟发送出用户所需要的各类网络数据,模拟发送任意的网络报文,现场定义发送的报文,完全满足安全系统对网络数据内容上无尽变化的需求。
各类的网络数据的模拟是指:各层的网络数据的模拟,包括链路层、网络层、传输层和应用层、所有协议字段的数据模拟包括协议变量、通讯过程的模拟、每个通讯过程的循环次数控制、时间控制和数据变化控制和数据的模拟工作方式的所有数据。链路层包括以太层、网络层包括IP层、通讯层包括TCP、UDP和ICMP、应用层包括HTTP、SMTP、POP3、DNS、TELNET和FTP。
系统组成结构:
系统由报文模拟引擎单元、通讯代理单元、显示控制中心单元、数据库组成:
各个部分的功能为:
报文模拟引擎单元:接收控制中心的命令和报文定义文件,实时接收分析网络报文数据,完成报文的模拟、发送和数据记录;
通讯代理单元:完成控制中心和引擎的数据交换,使一个控制中心可以远程控制多个引擎的工作、结果分析;
显示控制中心单元:完成报文定义文件的定制、下发,引擎工作状态的控制,日志的读取和分析。每个控制中心可以控制100个模拟引擎的工作;
数据库:存放引擎的日志数据,用于对模拟发送的数据结果进行分析、处理和报表生成。
报文模拟引擎单元运行结构
系统总体结构通过对报文描述语言的解释,分析当前工作状态和接收的报文,模拟发送新的报文数据。
报文描述语言单元:完成需要模拟的报文的所有定义。报文模拟状态单元:每个报文模拟过程的当前状态,根据这个状态,决定下一个需要模拟的报文,如初始状态发送SYN报文、接着发送SYN_ACK报文、再发送ACK报文完成一个TCP的三次握手过程;
报文模拟控制程序单元:完成每一个报文的模拟、每一个报文的接收和分析、维护每一个模拟过程的数据变化、以及其他所有的控制;
数据输入模块单元:完成网络数据的读取;
数据输出模块单元:完成网络数据的输出。
系统工作模式
系统支持三种工作方式:
客户端工作方式:模拟客户访问端数据,完成对一个服务器的访问。
服务端工作方式:模拟一个网络服务器的工作,完成对客户访问的服务数据的模拟。
双向端工作方式:单台系统发送双向的网络数据,可以模拟复杂得网络环境数据。
采用报文描述语言,完成网络数据的模拟,主要特点为:
完全的报文模拟:对一个单一的网络报文,系统可以模拟链路层(以太层)、网络层(IP层)、通讯层(TCP、UDP、ICMP等)、应用层(HTTP、SMTP、POP3、DNS、TELNET、FTP等)的所有数据,这样,系统就可以模拟任何复杂的网络环境中的数据;通讯过程模拟:系统可以模拟完整的通讯流数据,如一个HTTP的访问过程、一个邮件的收发过程、一个ping访问的过程。多种工作模式:系统为了满足各类系统的需求,支持3种工作模式:服务端(模拟网络服务器,接收客户端的访问)、客户端(模拟客户端数据,访问网络服务器)、双向端(单机模拟双向网络访问的数据)。描述语言:系统最大的特点,就是模拟报文的可定义性,系统通过报文描述语言,可以定义系统所生成的所有通讯过程的报文数据、访问过程,如地址、用户名称、访问页面、邮件。
具体实现方式
实施例1
系统组成结构(见图1)
系统由报文模拟引擎单元、通讯代理单元、显示控制中心单元、数据库组成:
各个部分的功能为:
报文模拟引擎单元:接收控制中心的命令和报文定义文件,实时接收分析网络报文数据,完成报文的模拟、发送和数据记录。
通讯代理单元:完成控制中心和引擎的数据交换,使一个控制中心可以远程控制多个引擎的工作、结果分析。
显示控制中心单元:完成报文定义文件的定制、下发,引擎工作状态的控制,日志的读取和分析。每个控制中心可以控制100个模拟引擎的工作。
数据库:存放引擎的日志数据,用于对模拟发送的数据结果进行分析、处理和报表生成。
报文模拟引擎单元结构(见图2)
系统总体结构通过对报文描述语言的解释,分析当前工作状态和接收的报文,模拟发送新的报文数据。
报文描述语言单元:完成需要模拟的报文的所有定义。
报文模拟状态单元:每个报文模拟过程的当前状态,根据这个状态,决定下一个需要模拟的报文,如初始状态发送SYN报文、接着发送SYN_ACK报文、再发送ACK报文完成一个TCP的三次握手过程。
报文模拟控制程序单元:完成每一个报文的模拟、每一个报文的接收和分析、维护每一个模拟过程的数据变化、以及其他所有的控制等等。
数据输入模块单元:完成网络数据的读取。
数据输出模块单元:完成网络数据的输出。
系统工作模式
系统支持三种工作方式:
客户端工作方式:模拟客户访问端数据,完成对一个服务器的访问。(见图3)
服务端工作方式:模拟一个网络服务器的工作,完成对客户访问的服务数据的模拟。(见图4)
双向端工作方式:单台系统发送双向的网络数据,可以模拟复杂得网络环境数据。(见图5)
下面为一个双向网络报文模拟数据的定义描述文件:
http测试 http dmac=10-20-30-40-50-60
dip=192.168.4.23
smac=10-20-30-40-50-61
sip=192.168.4.42
http_play=/sign1,clock.cpp
http_play=/sign2,clock.h
http_play=/sign3,banner.gif
http_play=/sign4,ttttttt
http_play=/sign5,taiwan.jpg
http_content=test!!!!!!!!
next=http_play,1
num=500
inc=dip,1
dec=sport,10
stop=10
delay=6,60
action=all
其中的定义含义为:
1 系统以双向方式工作(action=all),即单个系统模拟网络通讯双方发送的所有数据。其他选择为:server、client。
2 通讯的源mac地址为:10-20-30-40-50-61,源IP地址为:192.168.4.42。
3 通讯的目的mac地址为:10-20-30-40-50-60,目的IP地址为:192.168.4.23。
4 通讯的协议为http协议。
5 http通讯的url请求和应答文件的数据对(play类型变量)分别为:url为sign1时,返回文件clock.cpp的内容;url为sign2时,返回文件clock.h的内容…。
6 如果url内容不在上述范围内,返回内容为:test!!!!!!!!!。
7 这个发送循环的循环次数为500次。
8 每次循环,使用下一个http_play变量的内容。
9 每次循环,目的IP地址加1,源端口加10。
10 每次发送到第10个报文时,停止本循环发送,转入下一循环的发送。
11 每次发送到第6个报文时,系统延时等待60秒后,才继续发送。
12 其余未指定的变量,按照系统的默认值。有些需要变化的数值,如报文长度、TCP标志、TCP确认号等,在每个报文的模拟过程中,自动完成。
实施例2
为一个服务端网络报文模拟数据的定义描述文件:
http测试 http dmac=10-20-30-40-50-60
dip=192.168.4.23
smac=10-20-30-40-50-61
sip=192.168.4.42
http_play=/sign1,clock.cpp
http_play=/sign2,clock.h
http_play=/sign3,banner.gif
http_play=/sign4,ttttttt
http_play=/sign5,taiwan.jpg
http_content=test!!!!!!!!
inc=dip,1
dec=sport,10
action=server
其中的定义含义为:
1系统以服务端方式工作(action=server),即系统模拟网络http服务器,接收客户端的数据访问,发送相应的页面文件数据。
2其他设置同例1。
4 num、next、stop、delay定义在此无意义。
实施例3
为一个客户端网络报文模拟数据的定义描述文件:
http测试 http dmac=10-20-30-40-50-60
dip=192.168.4.23
http_play=/sign1,clock.cpp
http_play=/sign2,clock.h
http_play=/sign3,banner.gif
http_play=/sign4,ttttttt
http_play=/sign5,taiwan.jpg
http_content=test!!!!!!!!
num=500
inc=dip,1
dec=sport,10
action=client
其中的定义含义为:
1 系统以客户端方式工作(action=client),即系统模拟用户网页浏览器,向www服务器发送数据请求,并接收返回的页面文件数据。
2 其他设置同例1。
3 作为客户端,不需要定义源IP和MAC地址,只要接收报文的IP和MAC地址是服务端的地址(定义文件中的目的IP和MAC地址),就回应访问请求。
4 stop、delay定义在此无意义。