应用层协议自动化测试方法及装置的制作方法

文档序号:7719226阅读:209来源:国知局

专利名称::应用层协议自动化测试方法及装置的制作方法
技术领域
:本发明涉及测试
技术领域
,特别涉及一种应用层协议自动化测试方法及装置。
背景技术
:随着网络的普及,网络安全问题日益成为关注的焦点。网络攻击、病毒文件传播、垃圾邮件泛滥等这些基于应用层内容的攻击,严重影响了正常业务的开展。运营商、企业用户等迫切需要相应的设备进行防御以减小损失,于是各种网关设备如防火墙、病毒网关、邮件网关等应运而生。这些网关设备一般均需要经过测试后才可以运行在网络中用以维护网络的安全。传统的测试方法需要搭建真实的服务器和客户端,并通过人为地观察数据通过被测设备(即各种网关设备)后的测试结果(即服务器或客户端接收到的数据内容),来判断对该被测设备进行的测试是否成功。目前市场上针对应用层内容对被测设备进行测试的测试工具不多,且价格昂贵。测试工具主要包括基于硬件的专业测试仪表和基于软件的抓包回放工具。现有技术中将专业测试仪表的两个端口直接与被测设备相连,对被测设备进行测试。专业测试仪表对通过被测设备的应用层内容的测试方法主要是用于测试被测设备的吞吐量或者新建连接等指标的性能。采用基于硬件的专业测试仪表对被测设备进行测试的技术方案的缺点是由于该专业测试仪表的内部程序不能灵活改变,在该专业测试仪表出厂时,已被定制好,所以该专业测试仪表支持的应用层协议类型比较少,应用层交互报文比较简单,从而不能方便的移植到其他应用环境中;客户端和服务端交互报文的序列仅为一问一答方式,不能灵活地配置交互报文的序列;需要人为检查被测设备对报文处理的正确性。现有技术中基于抓包回放工具的测试方法如下首先,利用抓包软件获取实际网络中的应用层流量,即应用层报文,并保存为抓包文件格式的抓包文件;然后,通过抓包回放工具读取抓包文件,并修改该抓包文件中的IP地址等参数以通过被测设备重放抓取的实际网络中的应用层报文;最后,由人工检测经过被测设备处理后的应用层报文的结果。这种方法产生的流量内容依赖于抓包文件中的原始的应用层流量内容。在实现本发明的过程中,发明人发现,采用基于抓包回放工具对被测设备进行测试时,虽然可以解决上述硬件的专业测试仪表进行测试时支持的应用层协议类型少,不能灵活地配置交互报文的序列的问题,即可以获取实际网络中的应用层流量,简单地产生测试所需要的应用层报文。但是,该应用层报文仅仅是来自正常工作中的网络下的正确报文格式的应用层报文,不具备抓取客户端或者服务端处于非正常状态下产生的错误报文格式的应用层报文的功能,而错误报文格式的应用层报文也是破坏网络安全的报文,因此该测试仍然不够全面,且不能实现自动化测试。
发明内容本发明实施例提供一种应用层协议自动化测试方法及装置,以实现对安全网关设备全面、详尽的自动化测试。本发明实施例提供了一种应用层协议自动化测试方法,包括解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;根据所述模式文件中的报文检查规则检测所述处理后的报文内容。本发明实施例还提供了一种应用层协议自动化测试装置,包括解析模块,用于解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;发送模块,用于根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收模块,用于接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;检测模块,用于根据所述模式文件中的报文检查规则检测所述处理后的报文内容。由以上技术方案可知,本发明实施例的应用层协议自动化测试方法及装置,通过设置的模式文件可以构造出支持多种应用层协议的应用层报文,模拟出真实的应用层协议交互过程,无需搭建真实的应用层服务器;从配置的模式文件中构造出的应用层报文可以是错误报文格式的报文,使得测试更加全面;通过设置的报文检查规则,可以对应用层报文进行细粒度的检查,使得测试更加详尽;并且,由于可以通过宿主主机将处理后的报文内容与预先定义的报文检查规则进行自动匹配检查,无需人工操作,实现了自动化测试方式。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明应用层协议自动化测试方法第一实施例的流程示意图图2为本发明应用层协议自动化测试方法第二实施例的流程示意图图3为本发明应用层协议自动化测试装置第一实施例的结构示意图图4为本发明应用层协议自动化测试装置第二实施例的结构示意图,具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了更清楚的阐述本发明实施例,首先对本发明实施例所述的测试方法所能适用的被测设备进行简单介绍,本发明实施例的被测设备可以是新一代的安全网关——统一威胁管理(UnifiedThreatManagement,简称UTM)设备,UTM是一种基于内容的攻击检测网关,能够深度感知报文内容并检测流经其上的数据流量,对恶意报文进行丢弃以阻断攻击,对滥用报文进行限流以保护网络带宽资源,具备网络防火墙、网络入侵检测/防御和网关防病毒等功能。对于UTM设备,需要关注其对超文本传输协议(HyperTextTransferProtocol,简称HTTP),简单邮件传输协议(SimpleMailTransferProtocol,简称SMTP),邮局协议(PostOfficeProtocol,简称P0P3)等基本应用层协议的内容检测。当客户端和服务端之间的应用层报文通过UTM设备时,根据UTM设备上配置的策略和应用层报文的内容,UTM设备会产生如下动作放行报文;阻断、丢弃报文并向客户端推送警告页面;对报文打上处理标签后放行;对报文删除指定内容后放行等。因此,对于UTM设备进行测试的内容主要包括检查UTM设备处理应用层报文后的结果,例如客户端发送请求报文以后,对客户端通过该UTM设备接收到的对端数据的检查(如接收服务端推送的页面经UTM处理后的结果的检查);以及服务端接收到的由客户端发送的应用层报文的检查(如经过UTM进行阻断,标签,宣告等操作后的报文)等。图1为本发明应用层协议自动化测试方法第一实施例的流程示意图。如图1所示,包括步骤101、解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容。该模式文件为用户自定义的一个文件,其中包括有报文内容、报文控制逻辑、报文检查规则等信息。选择一台主机(该主机的操作系统可以为Linux)作为产生应用层报文的宿主,本发明实施例中简称为宿主主机。该宿主主机对模式文件进行解析,根据其中的报文控制逻辑生成报文发送控制序列,用来控制由宿主主机根据报文内容生成的应用层报文的发送速率、时间间隔等。步骤102、根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文。具体的,在宿主主机中,可以设置两张网卡,并在两张网卡间建立一条外部通路,这样,两张网卡中的一张可以作为发送端口,另一张作为接收端口。根据步骤101生成的报文发送控制序列,可以通过发送端口发送包括报文内容的应用层报文。步骤103、接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获取处理后的报文内容。通过发送端口发出的应用层报文经由一台被测设备进行处理,该被测设备包括被测试的安全网关设备,被测设备对该应用层报文进行处理后,会发送至宿主主机的接收端口,即宿主主机的接收端口接收到经由被测设备处理后的报文内容。步骤104、根据所述模式文件中的报文检查规则检测所述处理后的报文内容。宿主主机接收到经由被测设备处理后的应用层报文,获得处理后的报文内容,会和从模式文件中解析得到的报文检查规则进行匹配,即根据报文检查规则来检查之前发送到被测设备中的应用层报文是否被正确处理后返回到宿主主机上。本实施例提供的应用层协议自动化测试方法,通过模式文件的自定义和单台宿主主机可以模拟出真实的应用层协议交互过程,无需搭建真实的应用层服务器,方便测试环境的移植;且由于可以通过宿主主机将处理后的报文内容与预先定义的报文检查规则进行匹配,因此实现了自动化测试方式,无需人工操作。图2为本发明应用层协议自动化测试方法第二实施例的流程示意图。下面将以HTTP协议为例,介绍应用层协议自动化测试的基本方法。如图2所示,包括步骤201、初始化宿主主机上的虚拟路由,以使所述宿主主机上的两张物理网卡之间能够经由所述被测设备进行通信,进入步骤202。其中,该虚拟路由是由一台产生应用层报文的Li皿x操作系统的宿主主机上安装至少2张物理网卡而实现的。常规的Li皿x操作系统不支持两张物理网卡之间通过外部网络进行通信,为了实现虚拟客户端和服务端的通信流量经过外部被测设备,需要使Linux操作系统支持虚拟路由器,具体的,可以通过对宿主主机内核进行补丁,使其支持虚拟路由转发(VirtualRoutingForwarding,简称VRF)功能,这样一张物理网卡作为客户端,另一张物理网卡作为服务端,实现客户端和服务端产生的应用层报文能够通过外部网络的被测设备以后到达对端。步骤202、宿主主机获取模式文件,进入步骤203。该宿主主机获取该模式文件的方式可以有多种,例如可以是预先在宿主主机上预置模式文件,或者该宿主主机从远程数据库中读取到模式文件,这两种情况下,该模式文件均可以为提前编写好的适用于多种应用层协议的多种不同的模式文件;或者接收由一控制设备编辑的模式文件,即可以为该宿主主机共同配置一台控制设备,专门用来编辑模式文件,可以随时编辑、修改、删除,可以灵活地自定义客户端和服务端交互的应用层报文的报文内容和各个应用层报文间的逻辑关系。具体的,该模式文件中保存的信息有定制客户端和服务端交互的应用层报文的报文内容和各个应用层报文间的逻辑关系。例如,根据HTTP应用层协议的RFC标准,定制的模式文件需要包含HTTP交互的报文头部和报文内容;同时为了实现应用层报文交互的逻辑关系,采用XML格式的模式文件来描述整个HTTP应用层协议的交互过程。具体地,模式文件以〈package〉……〈/package〉表示交互的一个应用层报文,"package"标签内部包含报文的序号、方向、头部、内容等信息。各个元素的说明可以参照下面表格中提供的内容元素内容内容说明格式说明package数据报文报文序号、方向、模版,头部、内容、逻辑属性〈packageorder=〃1〃type=〃1〃templatemethod="Get"〉ordsr报文序号大于1的正整数order=〃1"6<table>tableseeoriginaldocumentpage7</column></row><table>步骤204、根据报文序列,生成报文发送控制序列,用来控制由宿主主机根据报文内容生成的应用层报文的发送速率、时间间隔等。步骤205、根据所述报文发送控制序列,通过发送端口发送包括从所述模式文件中解析得到的所述报文内容的应用层报文。步骤206、通过接收端口接收经由被测设备处理后的应用层报文,并获取处理后的报文内容。具体的,在宿主主机中可以将一张网卡作为虚拟化客户端,另一张网卡作为虚拟化服务端,客户端和服务端均具备收发报文功能,本实施例中的发送端口对应客户端,接收端口对应服务端。步骤207、根据所述模式文件中的报文检查规则对所述处理后的报文内容进行检所述模式文件中包括报文内容、报文控制逻辑和报文检查规则。其中,所述模式文件中的报文检查规则例如是细粒度检查策略。模式文件中定义的对某个应用层报文的检查规则,以在邮件标题中添加删除说明规则为例,模式文件中的报文检查规则定义如下〈integrity>〈elm〉〈id>6〈/id>〈type〉2〈/type〉〈keyword>test@hacker.com〈/keyword>〈notification>Theemailmessagehasbeendeletedbecauseitisnotcomplywithourcontentsecuritypolicy,〈/notification>"Intergrity"标签中的元素表示对经过外部的被测设备处理后的应用层报文的检查规则为细粒度检查,默认为判断发送/接收是否一致。"elm"为检查规则标签,一对elm标签中间表示一条检查规则,在一段模式文件中,可以添加多个检查规则;"id"标签表示检查对象的字段;"type"标签表示处理动作类型,包括该报文是由客户端发送到服务端的报文,还是由服务端发送到客户端的报文;"keyword"标签表示需要匹配的关键词;"notification"标签表示处理动作的说明。宿主主机可以根据检查对象和处理动作,检查邮件内容中匹配关键词为"test恥acker.com"的邮件是否添加了删除说明。当检测到邮件的删除说明,表明被测设备对邮件的处理正确,测试结果为通过。步骤208、输出包含有检查结果的日志文件。当宿主主机完成自动化检测后,可以将检查结果,例如"通过"或"失败",输出到某一用户可见的设备上,从而,用户可以根据检查结果,直观地判断该被测设备(安全网关设备)是否可以通过测试。本实施例提供的应用层协议自动化测试方法,利用宿主主机上的两张物理网卡分别模拟应用层协议交互的客户端和服务端,并结合设置的模式文件,可以使得该宿主主机符合各种应用层协议的基本交互过程,从而使得该宿主主机能够支持多种应用层协议的自动化测试,并且可以扩展可实现的应用层协议,实现自动化测试环境的高度可移植性;该自动化测试方案还能够根据模式文件定制的报文检查规则,对接收到的报文内容进行细粒度检查,并生成包括检查结果的一测试报告,生成日志文件以方便对结果进行观察;该自定义的模式文件还可以通过定制异常应用层报文,使得被测设备可以有效地对异常应用报文进行检测。图3为本发明应用层协议自动化测试装置第一实施例的结构示意图。如图3所示,该应用层协议自动化测试装置包括解析模块31、发送模块32、接收模块33和检测模块34。其中解析模块31,用于解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;发送模块32,用于根据解析模块31中生成的所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收模块33,用于通过该接收模块33接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;检测模块34,用于根据解析模块31解析得到的所述模式文件中的报文检查规则检测从接收模块33接收到的所述处理后的报文内容。本实施例提供的应用层协议自动化测试装置可以为上述方法实施例中所描述的宿主主机,该应用层协议自动化测试装置实现应用层协议自动化测试方法的具体描述详见上述方法实施例,在此不再赘述。本实施例提供的应用层协议自动化测试装置,通过模式文件的自定义和单台宿主主机可以模拟出真实的应用层协议交互过程,无需搭建真实的应用层服务器,方便测试环境的移植;且由于可以通过宿主主机将处理后的报文内容与预先定义的报文检查规则进行匹配,因此实现了自动化测试方式,无需人工操作。图4为本发明应用层协议自动化测试装置第二实施例的结构示意图。如图4所示,其中解析模块41、发送模块42、接收模块43和检测模块44的具体功能描述如上述应用层协议自动化测试装置第一实施例即图3中所述,在此不再赘述。此外,该应用层协议自动化测试装置中还可以包括设置模块45,用于设置模式文件。具体的,所述设置模块45可以直接在宿主主机上自定义模式文件,也可以从远程数据库中获取所述模式文件,还可以接收由一控制设备编辑的所述模式文件后设置于该宿主主机中。日志输出模块48,用于输出包含有检测结果的日志文件。具体的,当检测模块44根据所述模式文件中的报文检查规则检测所述处理后的报文内容后,由日志输出模块48输出检测结果。虚拟路由模块49,用于初始化宿主主机上的虚拟路由,以使该应用层协议自动化测试装置上的两个物理网卡之间能够经由所述被测设备进行通信。本实施例提供的应用层协议自动化测试装置可以为上述方法实施例中所描述的宿主主机,该应用层协议自动化测试装置实现应用层协议自动化测试方法的具体描述详见上述方法实施例,在此不再赘述。本实施例提供的应用层协议自动化测试装置,利用宿主主机上的两张物理网卡分别模拟应用层协议交互的客户端和服务端,并结合设置的模式文件,可以使得该宿主主机符合各种应用层协议的基本交互过程,从而使得该宿主主机能够支持多种应用层协议的自动化测试,并且可以扩展可实现的应用层协议,实现自动化测试环境的高度可移植性;该自动化测试方案还能够根据模式文件定制的报文检查规则,对接收到的报文内容进行细粒度检查,并生成包括检查结果的一测试报告,生成日志文件以方便对结果进行观察;该自定义的模式文件还可以通过定制异常应用层报文,使得被测设备可以有效地对异常应用报文进行检测。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。10权利要求一种应用层协议自动化测试方法,其特征在于,包括解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;根据所述模式文件中的报文检查规则检测所述处理后的报文内容。2.根据权利要求1所述的应用层协议自动化测试方法,其特征在于,还包括获取所述模式文件。3.根据权利要求2所述的应用层协议自动化测试方法,其特征在于,所述获取所述模式文件包括预先设置所述模式文件;或从远程数据库中获取所述模式文件;或接收由一控制设备编辑的所述模式文件。4.根据权利要求1、2或3所述的应用层协议自动化测试方法,其特征在于,还包括输出包含有检测结果的日志文件。5.根据权利要求1、2或3所述的应用层协议自动化测试方法,其特征在于,在所述发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文之前,还包括初始化能够经由所述被测设备进行通信的虚拟路由。6.—种应用层协议自动化测试装置,其特征在于,包括解析模块,用于解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;发送模块,用于根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收模块,用于接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;检测模块,用于根据所述模式文件中的报文检查规则检测所述处理后的报文内容。7.根据权利要求6所述的应用层协议自动化测试装置,其特征在于,还包括设置模块,用于设置所述模式文件。8.根据权利要求6或7所述的应用层协议自动化测试装置,其特征在于,还包括日志输出模块,用于输出包含有检查结果的日志文件。9.根据权利要求6或7所述的应用层协议自动化测试装置,其特征在于,还包括虚拟路由模块,用于初始化能够经由所述被测设备进行通信的虚拟路由。全文摘要本发明实施例涉及一种应用层协议自动化测试方法及装置。其中,方法包括解析模式文件,并根据所述模式文件中的报文控制逻辑生成报文发送控制序列,所述报文发送控制序列用于控制所述模式文件中的报文内容;根据所述报文发送控制序列,发送包含有从所述模式文件中解析得到的所述报文内容的应用层报文;接收经由被测设备处理后的应用层报文,并从所述处理后的应用层报文中获得处理后的报文内容;根据所述模式文件中的报文检查规则检测所述处理后的报文内容。本发明实施例的应用层协议自动化测试方法及装置,实现对安全网关设备进行全面的自动化测试。文档编号H04L12/26GK101707608SQ20091022568公开日2010年5月12日申请日期2009年11月27日优先权日2009年11月27日发明者高翔申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1