CN116418567A - 一种网络协议安全性测试系统 - Google Patents

一种网络协议安全性测试系统 Download PDF

Info

Publication number
CN116418567A
CN116418567A CN202310247160.5A CN202310247160A CN116418567A CN 116418567 A CN116418567 A CN 116418567A CN 202310247160 A CN202310247160 A CN 202310247160A CN 116418567 A CN116418567 A CN 116418567A
Authority
CN
China
Prior art keywords
data
protocol
test
module
network
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.)
Pending
Application number
CN202310247160.5A
Other languages
English (en)
Inventor
张奎
韩顺利
赵润泽
王统
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 41 Institute
Original Assignee
CETC 41 Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 41 Institute filed Critical CETC 41 Institute
Priority to CN202310247160.5A priority Critical patent/CN116418567A/zh
Publication of CN116418567A publication Critical patent/CN116418567A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明公开了一种网络协议安全性测试系统,包括软件组件和硬件组件,软件组件负责协议流程的编辑、测试数据的生成与检测、测试结果的分析与保存,硬件组件提供协议数据收发的通道;软件组件包括协议分析模块、协议编辑模块、测试序列生成模块、协议仿真模块、结果显示模块、硬件控制接口模块;硬件组件包括数据总线模块、流量发生模块、流量检测模块、网络接口模块。本发明所公开的测试系统使用转换条件描述协议的运行机制,支持多种仿真测试模式,提高测试分析的效率,并适用于不同类型协议的测试。协议形式化分析,支持标准协议和用户定制协议。通过改变条件参数构建不同的测试序列和测试集合,提高了测试的针对性和全面性。

Description

一种网络协议安全性测试系统
技术领域
本发明涉及网络安全性测试领域,特别涉及一种网络协议安全性测试系统。
背景技术
网络协议是进行通信的双方必须共同遵守的一组规则,是连接在网络上的所有设备(计算机、交换机、路由器、防火墙等)之间通信规则的集合,定义了通信时传输的信息必须使用的格式以及这些格式的含义。因此,网络协议最终体现为在网络上传输的数据包的格式。目前常见的网络协议包括IP(Internet Protocol)、TCP(Transmission ControlProtocol)、UDP(User Datagram Protocol)等。
近年来,随着计算机网络技术不断发展,各种新的网络协议层出不穷。网络协议在协议模型搭建、协议结构设计、协议的实现以及验证等方面,都可能存在漏洞。这些漏洞可能被攻击者利用,使协议实体在运行中偏离规范的要求,也可能导致攻击者在未被授权的情况下访问协议实体所在的网络或设备并实施破坏。网络协议安全性测试的目标是检测协议能否抵御各种已知或未知的网络攻击,从而判断协议的安全性能。因此,通过测试发掘潜在的协议安全漏洞,及早发现网络协议存在的漏洞,有助于降低网络安全方面的风险,并有效降低后期保障和维护的成本。
针对上述问题,目前存在的解决方案主要包括:
(1)由开发人员进行白盒测试来检查协议可能存在的问题,由于网络协议本身的复杂性,白盒测试往往无法兼顾测试的质量和测试的效率。
(2)由测试人员进行黑盒测试,测试人员根据协议规范创建测试例,最后根据测试结果判断是否存在问题。测试具有一定的盲目性,难以构造出全面的测试例。
(3)为特定协议设计专用的测试系统,需要由专业人员对测试情况进行分析和处理,难以实现批量化和自动化测试,影响测试的效率。
(4)通用的测试系统仅支持常见的标准协议的测试,不兼容非标准协议。在编辑协议方面,对于非标准协议缺乏灵活的处理方法。在协议仿真方面,无法在现有平台上,为非标准协议创建测试流程、生测试数据。
发明内容
为解决上述技术问题,本发明提供了一种网络协议安全性测试系统,以达到提高分析测试的全面性、提高测试的效率、实现测试过程的复用,提高测试的自动化程度的目的。
为达到上述目的,本发明的技术方案如下:
一种网络协议安全性测试系统,包括软件组件和硬件组件,软件组件负责协议流程的编辑、测试数据的生成与检测、测试结果的分析与保存,硬件组件提供协议数据收发的通道;软件组件和硬件组件通过数据总线模块连接进行通讯,软件组件控制硬件组件的运行实现测试功能;
所述软件组件包括协议分析模块、协议编辑模块、测试序列生成模块、协议仿真模块、结果显示模块、硬件控制接口模块;
所述协议分析模块对协议以及协议实体进行形式化分析,将协议的属性和转换机制表示成若干个节点以及节点之间的转移行为的集合;
所述协议编辑模块使用协议分析模块的分析结果对协议的运行机制进行建模,通过构建协议有向图,图形化展示协议在运行过程中的状态转移路径;
所述测试序列生成模块分析协议有向图组成的测试场景集合,提取每条边的状态转换条件参数,采用深度优先遍历算法对协议有向图进行遍历,生成测试用例集合;
所述协议仿真模块对输入的测试序列进行测试,输出每个测试序列的测试结果;
所述结果显示模块记录并汇总测试过程信息,形成测试报告数据,供用户分析查找问题;
所述硬件控制接口模块在软件组件和硬件组件之间建立数据传输的通道;
所述硬件组件包括数据总线模块、流量发生模块、流量检测模块、网络接口模块。
上述方案中,所述协议编辑模块通过节点和转换条件构建协议有向图,对协议进行可视化描述;使用节点描述协议运行的所有状态,使用有向边描述促使状态发生的转换条件。
上述方案中,所述协议编辑模块采用可视化的、拖拽的描述方式建立协议有向图,具体步骤包括:
(1)添加参与测试的网络协议实体,并配置协议实体的协议实体属性即config参数;
(2)设置测试启动的先决条件,包括测试端口状态可用性检测、链路状态的检测、通路的检测信息;
(3)根据协议规范的描述,添加相应的节点,编辑node属性;
(4)根据协议规范的描述,使用有向边连接相应的节点,并编辑有向边的属性即link参数。
上述方案中,所述协议仿真模块包括数据捕获子模块、数据存储子模块、数据检测子模块、网络协议攻击构建子模块、数据生成子模块和数据发送子模块;
所述数据捕获子模块:采用定时查询机制,调用硬件控制接口获取来自网络的测试数据,并对测试数据进行筛选;
所述数据存储子模块:接收来自数据捕获子模块的数据,将数据存储在数据列表中,并添加时间戳,该数据被标记为接收的数据;测试数据被存储在测试队列中,供后续分析使用;
所述数据检测子模块:采用定时查询的方式从数据捕获子模块中提取协议数据,根据测试序列的内容,对数据的格式和内容进行检测;处理保存在数据存储子模块中的数据队列,提取数据,按照当前测试阶段的exchange属性进行匹配;如果匹配成功,则表明测试将进入下一个阶段;如果匹配不成功,则继续从数据队列中提取数据并检测,直到出现特殊情况才停止检测;
所述网络协议攻击构建子模块:结合面向对象思想的封装和继承特性,把协议所面临的每种攻击的参数封装成独特的攻击对象,把攻击目标、攻击操作参数作为对象的成员,得到的描述结果为:attack=<enable,basic_attr,target,act>;测试系统将协议分析模块生成的protocol和网络协议攻击构建子模块生成的attack相结合,共同作为数据生成子模块的输入,从而创建满足不同测试场景的测试例;在协议仿真过程中,测试系统对attack进行配置从而执行不同的攻击测试;
所述数据生成子模块:根据exchange属性并结合网络协议攻击构建子模块的输出,创建测试数据,这些测试数据包含参与测试的协议实体的地址信息,可在网络上正常传输;
所述数据发送子模块:调用硬件控制接口,把数据生成子模块创建的测试数据传输给硬件组件,从而向被测协议实体发送协议数据。
上述方案中,所述协议仿真模块使用定时轮询机制检测由于安全测试所带来的异常,在测试例的执行过程中,测试系统发送用于探测协议实体协议运行状态的定时轮询数据包,从而及时发现由于发送测试数据而导致的异常;具体方式是:在协议状态到达某个节点后,根据设置的参数启动属于该节点的定时轮询数据包检测功能,如果协议实体在指定时间内不回复,或者定时轮询数据包的应答内容不符合内置安全属性的要求,则表明被测试设备的协议出现异常,给出提示,并保存应答的数据和当前的状态信息供分析原因使用。
上述方案中,所述协议仿真模块在执行仿真测试时,根据协议实体属性config中mode参数的配置,测试系统在协议仿真时能进行执行不同的测试流程;
当mode=client/server时,测试系统和被测协议实体按照测试序列指定的内容进行交互,由exchange中的type参数决定双方所扮演的角色,并判断测试系统当前应该执行请求操纵还是响应操作;
当mode=observer时,针对每个测试序列,测试系统从数据队列中提取接收的数据,与测试节点的exchange参数进行对比,如果该数据是有效数据,则保存数据到数据队列并将数据标记为接收的数据;然后继续从数据队列中提取接收的数据,并对比下一个节点,直到所有节点对比完毕。
进一步的技术方案中,当测试系统执行请求操作时,根据exchange中的stream参数创建测试数据,将数据保存到数据队列中,并将该数据标记为发送的数据,最后调用数据发送子模块将数据发送出去;
当测试系统执行响应操作时,从数据队列中提取接收的数据,依据exchange中的stream参数,逐个分析匹配;如果匹配到数据,则将该数据保存到数据队列中,并将该数据标记为接收的数据;在数据匹配判断后进行超时判断,如果超时,则停止对该测试队列的处理;如果未超时,则继续匹配下一个接收的数据,直到找到有效的数据或者超时。
上述方案中,所述软件组件通过流量检测模块获取参与测试的协议实体发送的测试数据,记录每个测试数据接收的时间,对数据进行转换、存储,提供给后续测试模块使用;软件组件生成的一条或者多条测试用例数据,通过流量发生模块,注入被测协议实体所在的网络。
上述方案中,所述流量发生模块包括发送状态机和发送电路,其中发送电路包括流量控制电路、发送RAM和封包电路;
发送状态机的状态包括启动状态和停止状态,它是流量发生模块的核心,控制整个流量发送的过程;所述流量控制电路保存发送控制参数,参数包括数据的发送模式和发送速度;发送RAM存储由软件组件创建的测试数据,供封包电路读出各种测试数据;封包电路将数据打包成能够在网络上传输的数据格式,供网络接口模块使用;流量检测模块获取目标协议实体发送的网络协议数据包,根据过滤条件,对数据进行处理,保存符合条件的数据,供给软件组件使用。
上述方案中,所述流量检测模块包括接收状态机、过滤存储电路、DDR接口电路以及DDR内存;
所述接收状态机是流量检测模块的核心,控制流量检测模块的执行;
所述过滤存储电路根据过滤参数对数据进行比较,保存符合要求的数据到DDR内存中;过滤参数包括源IP地址、目的IP地址、协议号、源端口、目的端口;
网络测试数据经过网络接口模块进入硬件组件,这些数据首先被缓存到DDR内存中;硬件组件通过过滤存储电路以及DDR接口电路实现对DDR内存的读写操作。
通过上述技术方案,本发明提供的一种网络协议安全性测试系统具有如下有益效果:
(1)本发明使用有向图描述协议的状态转换机制,动态展示协议的运行过程;对协议的运行机制进行建模,图形化展示协议在运行过程中的状态转移路径;在发现问题时,能通过拖拽等可视化的方式,完善协议状态和各种转换条件,从而快速实现对协议功能的完善。
(2)创建的协议有向图组成了一个测试场景集合,每一条有向路径都表示一个独特的测试场景。通过分析测试场景集合,提取每条边的状态转换条件参数,采用深度优先遍历算法对协议有向图进行遍历,生成测试用例集合。能根据需要选择执行部分测试序列或者执行全部测试序列,也能对测试用例的执行顺序进行调整,从而执行满足特定场景的测试。
(3)对协议进行形式化分析,将协议属性和转移动作汇总成若干个节点以及节点之间的转移行为的集合。采用深度优先遍历算法对协议有向图进行遍历,生成测试用例集合,然后通过对测试用例集合进行处理得到测试序列集合,确保测试的全面性。
(4)结合面向对象思想的封装和继承特性,把协议所面临的每种攻击的参数封装成独特的攻击对象,把攻击目标、攻击操作等相关参数作为对象的成员。通过改变测试参数,能构建各种不同的测试场景,同时也便于添加新的攻击测试类型,进一步提高测试的全面性。
(5)在协议仿真过程中,为每个状态发生指定发起者和响应者,将测试系统的工作模式分为客户端/服务器模式和观察者模式。能够灵活改变测试方式,执行针对某种特定状态以及特定对象的测试,提高测试的针对性。
(6)能导出设计的协议数据格式到存储介质中,也能导入前期设计的数据格式,便于设计的重用;每个协议消息以独立文件的形式存在,能构建内置协议消息集合,便于协议消息集合的扩展和更新。能将测试序列以文件形式存储到硬件,供下次测试调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的一种网络协议安全性测试系统示意图。
图2为协议仿真模块结构示意图;
图3为协议仿真测试流程示意图;
图4为客户端/服务器模式仿真测试流程示意图;
图5为监听模式仿真测试流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明针对传统网络协议安全性测试领域缺乏统一的测试系统的问题,综合协议一致性测试和协议安全性测试的特点,提出了一种网络协议安全性测试系统。系统采用图形化方式展示协议的运行机制,采用形式化方式对协议实体的动作和协议所面临的安全问题进行描述。如果不施加各种攻击动作,则能根据协议一致性测试理论对协议可能存在的漏洞进行检测;如果施加各种攻击动作,则通过把这些攻击动作作为协议的正常输入,实现在协议运行过程中模拟各种攻击行为,从而对协议的安全性进行测试。
如图1所示,测试系统包括软件组件和硬件组件,软件组件负责协议流程的编辑、测试数据的生成与检测、测试结果的分析与保存,硬件组件提供协议数据收发的通道;软件组件和硬件组件通过数据总线模块连接进行通讯,软件组件控制硬件组件的运行实现测试功能。
一、软件组件
软件组件包括协议分析模块、协议编辑模块、测试序列生成模块、协议仿真模块、结果显示模块、硬件控制接口模块。
1.协议分析模块
协议分析模块对协议以及协议实体进行形式化分析,将协议的属性和转换机制表示成若干个节点以及节点之间的转移行为的集合,该集合的描述如下所示:
(1)节点
node(i)=<num,name,describe>,表示协议的第i个状态,1≤i≤n,n表示协议状态的数量。其中,num表示节点的序号,1≤num≤n;name是一个字符串,表示节点的名称;describe是一个字符串,是对节点的简要描述。
(2)有向边
link(i,j)={node(i),node(j),action},表示从节点node(i)到node(j)的连接,描述从状态i到状态j跃迁所需要的条件。其中,1≤i≤n,1≤j≤n,i!=j,n表示协议状态的数量。
action={exchange_1,exchange_2,……,exchange_m},是协议实体之间交互的集合。exchange_m表示从状态i跃迁到状态j需要执行的第m次交互。在任意一个时刻,仅执行其中一个交互动作。
exchange=<role,type,stream>,表示协议实体之间的一次交互,其中:
role是一个枚举类型,表示实施当前交互操作的协议实体。它有两种取值,分别是tester(测试系统)、DUT(被测对象)。
type是一个枚举类型,表示该交互操作对于role来说,是主动发起的,还是被动应答的。它有两种取值,分别是sponsor(发起者),respondent(应答者)。
stream=<layer_1,layer_2,layer_3,……,layer_m>,描述了协议数据的结构,表示在交互中,一个协议实体向另一个协议实体发送的协议数据由m层数据构成。采用分层的方式存储协议数据的内容,每一层采用动态数组的方式存储下一层的内容,便于数据的添加和删除。
layer=<field_1,field_2,field_3,……,field_m>,描述某一层协议数据的结构,表示该层由m个字段组成。
field=<name,length,defaultvalue>,表示协议中一个字段的基本结构。其中,name是一个字符串,表示字段的名称;length是一个整数值,表示字段的长度;defaultvalue是一个动态数组,描述该字段存储的默认值。
对于标准网络协议和私有用户协议,测试系统能使用上述方式进行描述,并能够存储到xml模板中,供以后调用和分析。
(3)通过遍历有向图,测试系统得到由节点和有向边组成的协议运行流程,这些运行流程能描述为:protocol={link(1,2),link(2,3),……}。
(4)设置协议实体的属性,该属性可以描述为:config=<tester_name,DUT_name,tester_addr,DUT_addr,mode>。tester_name是一个字符串,描述作为协议实体的测试系统的名称。DUT_name是一个字符串,描述作为协议实体的被测对象的名称。mode是一个枚举类型,表示测试系统的工作模式,有两种取值,分别是client/server(客户端/服务器模式),observer(观察者模式)。
2、协议编辑模块
根据形式化分析的结果,在协议编辑模块中,为参与测试的协议实体分配测试角色,即DUT、tester。在编辑协议时,根据协议规格的描述,指定导致每个状态发生变化的发起者和响应者。发起者和响应者对应于上述的DUT或者Tester。
协议编辑模块使用协议分析模块的分析结果对协议的运行机制进行建模,图形化展示协议在运行过程中的状态转移路径。通过分析协议有向图,用户能发现存在的漏洞,从而针对性地对协议进行改进。协议编辑模块定义了两个元素构建协议有向图对协议进行可视化描述,这两个元素分别是节点和转换条件。
使用节点描述协议运行的所有状态,将协议运行过程中的每个状态映射为有向图中的一个节点。在任何一个时刻,协议实体只能处于其中一个状态。
使用有向边描述促使状态发生的转换条件。为实现状态的改变,两个节点之间可能要进行多次交互,交互是通过收发符合协议规范的协议数据实现的。因此,转换条件中包含一个或者多个协议数据。每个协议数据由多个协议消息组合而成,能根据协议规范的描述,编辑协议消息中每个字段的长度和数据,为消息填充具体的内容。在协议编辑模块中,能导出设计的协议数据格式到存储介质中,也能导入前期设计的数据格式,便于设计的重用;每个协议消息以独立文件的形式存在,能构建内置协议消息集合,便于协议消息集合的扩展和更新;能够将每个协议头存储为xml、json等可视化的描述格式,便于理解协议的格式和内容;能够对这些文件进行加密存储,加解密过程完全由软件控制,使用者无法知晓消息的具体定义,保护协议消息中的敏感信息。
根据协议规范的描述,通过编辑有向边,还可以编辑的转换条件包括:
(1)发包规则,包括定时发包(按照一定时间间隔发送数据包,需要设定发包的时间间隔,以毫秒为单位)、数据重放(多次发送某些符合过滤条件的协议数据,过滤条件包括协议类型、字段的值等,需要设置重放的次数以及以毫秒为单位的重放的时间间隔);采用数据重放规则,能进行数据重放测试以及DDOS攻击测试;
(2)收包规则,包括超时重传(在指定的时间内未收到响应,则重新发送之前的协议数据,指定的时间以秒为单位)、延时等待(在指定时间内未收到响应,则多等待指定的一段时间,该时间以秒为单位);
(3)定时轮询机制:定时发送检测类协议数据,检测对端协议实体的状态。
结合协议分析模块的分析结果,协议编辑模块采用可视化的、拖拽的描述方式建立协议有向图,具体步骤操作包括:
(1)添加参与测试的网络协议实体,并配置协议实体的协议实体属性即config参数;
(2)设置测试启动的先决条件,包括测试端口状态可用性检测、链路状态的检测、通路的检测等信息;
(3)根据协议规范的描述,添加相应的节点,编辑node属性;
(4)根据协议规范的描述,使用有向边连接相应的节点,并编辑有向边的属性即link参数。
3、测试序列生成模块
为了增加测试的覆盖率,需要对协议的所有状态进行测试,从而有效发现在不同状态时,协议存在的安全漏洞。
协议编辑模块创建的协议有向图组成了一个测试场景集合,每一条有向路径都表示一个独特的测试场景。测试序列生成模块分析测试场景集合,提取每条边的状态转换条件参数,采用深度优先遍历算法对协议有向图进行遍历,生成测试用例集合。
测试用例集合包含大量不同的测试用例,每个测试用例均描述不同的测试场景。在测试用例集合中包括测试用例模板和测试用例实例。根据协议编辑模块中的协议格式创建的是测试用例模板。
测试用例实例是根据配置的变化规则对初始测试用例数据进行变化得到的。首先,按照协议消息格式的描述,根据设置的变化规则,为待测试的字段创建与所述字段对应的字段值,然后,对每个所述字段分别对应的字段值进行一一处理,得到与所述初始测试用例对应的所有测试用例。所述字段值,分为正常字段值和异常字段值。所述变化规则包括递增、递减、随机、按照时间变化、指定特定范围的数据。每实施一次变化规则,就为每个待测试的字段指定一个特定值,从而形成一个独特的测试用例。
上述最终测试用例的集合构成了测试序列。能根据需要选择执行部分测试序列或者执行全部测试序列,也能对测试用例的执行顺序进行调整,从而执行满足特定场景的测试。能将测试序列以文件形式存储到硬件,供下次测试调用。
4.协议仿真模块
协议仿真模块由数据捕获子模块、数据存储子模块、数据检测子模块、网络协议攻击构建子模块、数据生成子模块和数据发送子模块组成,如图2所示。协议仿真模块的输入是一个或者多个测试序列,输出是每个测试序列的测试结果。
数据捕获子模块:采用定时查询机制,调用硬件控制接口获取来自网络的测试数据,并对测试数据进行筛选。筛选条件包括协议实体的属性(网络地址)、协议匹配(过滤出被测协议的数据)以及设定的正则表达式。
数据存储子模块:接收来自数据捕获子模块的数据,将数据存储在数据列表中,并添加时间戳,该数据被标记为接收的数据。测试数据被存储在测试队列中,供后续分析使用。采用先入先出方式存储测试用例的数据,以便于在发现异常情况时进行问题的分析和定位。
数据检测子模块:采用定时查询的方式从数据捕获子模块中提取协议数据,获取的协议数据包括从第一个节点开始到测试结束的所有测试数据。根据测试序列的内容,对数据的格式和内容进行检测。处理保存在数据存储子模块中的数据队列,提取数据,按照当前测试阶段的exchange属性进行匹配。如果匹配成功,则表明测试将进入下一个阶段。如果匹配不成功,则继续从数据队列中提取数据并检测,直到出现特殊情况(超时、用户停止检测等)才停止检测。
网络协议攻击构建子模块:结合面向对象思想的封装和继承特性,把协议所面临的每种攻击的参数封装成独特的攻击对象,把攻击目标、攻击操作等相关参数作为对象的成员,得到的描述结果为:attack=<enable,basic_attr,target,act>。测试系统将协议分析模块生成的protocol和网络协议攻击构建子模块生成的attack相结合,共同作为测试例生成模块的输入,从而创建满足不同测试场景的测试例。在协议仿真过程中,测试系统对attack进行配置从而执行不同的攻击测试。attack的参数如下:
(1)enable,是否是能网络协议攻击构建子模块。enable是一个布尔值,如果选择true,则根据模块配置的参数对测试例的数据进行修改,否则,将不改变测试例数据的内容。
(2)basic_attr表示该攻击对象的基本属性,描述为:basic_attr=<no,name,decribe>,其中,no表示该攻击对象的序号,no≥1;name为字符串,表示该攻击对象的名称;decribe为字符串,表示对该攻击对象的描述性信息。
(3)target=<protocol,content>,描述该攻击所针对的目标的相关信息,protocol与content参数相结合确定最终的攻击目标,即在满足protcol的基础上也满足content指定的内容,则可以确认为最终的攻击目标。
(3.1)protocol=<name,describe>,表示此攻击所针对的具体协议。name是一个字符串,表示协议的名称,该名称在系统中是唯一的;describe是一个字符串,是对该协议的描述性说明。
(3.2)content=<deststream|destfields>,描述被攻击的协议实体的数据,分别协议数据整体的角度和协议数据中字段的角度进行测试。在每次测试过程中,选择其中一项构建攻击测试数据。
deststream=<offset,streamdata>,表示一段数据。offset是一个16bit的整数,表示从协议数据首部开始的偏移量。streamdata是一个存放单字节数据的数组,表示为实施攻击而准备的数据。
destfields=<sn’,destfield_1,destfield_2,……,destfield_n>,表示被攻击的字段的集合。
其中:
sn’=<sn_1,sn_2,……,sn_n>,是sn序号的集合,记录所有被选中的destfield的sn。sn’是一个字符串,每个sn序号之间用标点符号“,”隔开。
destfield=<sn,targetdata>,表示为协议的第sn个字段设计的数据。sn表示字段的序号,targetdata表示设置的新数据,0<=sn<=字段总数量。
(4)act=<handle,effect>,表示攻击测试实施的操作和可能的影响。
(4.1)handle描述攻击行为所实施执行的操作。这些操作包括:协议数据重放、协议数据篡改、协议会话乱序等。Handle操作的数据来源是target中的content,操作的对象是target中的protocol。
(4.2)effect表示实施攻击后协议实体的状态。effect是一个枚举值,描述对协议实体进行攻击能够对被攻击的协议实体带来的影响。effect的取值包括协议交互正常、协议交互超时、协议交互中断、协议交互重启等。
数据生成子模块:根据exchange属性并结合网络协议攻击构建子模块的输出,创建测试数据,这些数据包含参与测试的协议实体的地址信息,可以在网络上正常传输。
数据发送子模块:调用硬件控制接口,把数据生成子模块创建的测试数据传输给硬件组件,从而向被测协议实体发送协议数据。
协议仿真模块通过协议实体的交互,检测协议运行是否符合规范预期,以及是否存在其他安全性问题。每次交互时,先根据转换条件生成测试数据,然后使用攻击模型对测试数据进行处理,从而形成该测试例的安全性测试例,在测试中实现异常报警、异常报文检测。协议仿真模块通过执行大量的测试序列,完成安全性测试。
启动协议仿真测试后,首先检测测试启动的先决条件,只有当检测通过后,测试才能正式启动,否则将给出报警信息,并记入后台日志中。先决条件包括测试端口状态可用性检测、链路状态的检测、通路的检测等。其次,将检测测试序列的有效性,当检测link中的数据时,如果存在无效参数,则给出提示,在图形界面上点亮表示相关转换条件的有向边,并停止测试。
协议仿真测试测试流程如图3所示。协议仿真测试模块根据测试序列的顺序,依次进行测试。根据使用测试序列中的测试用例构造测试数据,向被测协议实体发送数据,或者对来自被测协议实体的测试数据进行响应。每次测试前,用户能选择一个或者多个测试序列进行测试。在每个测试序列的执行过程中,当检测接收的测试数据时,提取测试数据,解析该数据,提取概要信息,然后将概要信息作为测试数据的摘要保存到数据队列中。当发送测试数据时,数据生成子模块创建测试数据,数据发送子模块发送测试数据,并将测试数据以及数据的概要信息保存到数据队列中。数据的概要信息包括网络地址、使用的协议类型、接收时的时间戳和发送的时间戳等信息。
协议仿真测试过程中,测试系统根据exchange参数,使用数据发送子模块向被测协议实体发送测试数据,或者从数据存储子模块中提取接收的协议数据,并与转换条件中的参数进行比对。如果发现存在违反exchange属性的数据,则根据转换条件停止测试或者继续等待数据。如果测试中请求和应答的比对结果表明,当前交互符合exchange属性的要求,则继续向前执行,直到测试出错或者测试结束。
协议仿真模块使用定时轮询机制检测由于安全测试所带来的异常。在测试例的执行过程中,测试系统发送用于探测协议实体协议运行状态的定时轮询数据包,从而及时发现由于发送测试数据而导致的异常。具体方式是:在协议状态到达某个节点后,根据设置的参数启动属于该节点的定时轮询数据包检测功能,如果协议实体在指定时间内不回复,或者定时轮询数据包的应答内容不符合内置安全属性的要求,则表明被测试设备的协议出现异常,给出提示,并保存应答的数据和当前的状态信息供分析原因使用。
在协议仿真测试过程中,如果在测试过程中发现异常,则停止测试,并在有向图中标注发生异常的节点和有向边。测试系统不但保存近期收发的所有数据包,还保存在每个节点的属性和节点之间的转换条件,并按照测试的先后顺序对所有数据和属性进行分类。
测试中发现的异常,可能是由单个测试数据引起的,也可能是多个测试数据的组合导致的。为了准确定位,测试系统保存近期所有发送和接收的测试数据以及每次测试中的测试参数,包括安全属性参数、攻击模型参数等。通过对这些参数和数据进行综合的回溯分析,确定产生异常的报文和攻击模型参数。
根据协议实体属性config中mode参数的配置,测试系统在协议仿真时能进行执行不同的测试流程。当mode=client/server时,仿真测试流程如图4所示。在该模式下,测试系统和被测协议实体按照测试序列指定的内容进行交互,由exchange中的type参数决定双方所扮演的角色,并判断测试系统当前应该执行请求操纵还是响应操作。
当测试系统执行请求操作时,根据exchange中的stream参数创建测试数据,将数据保存到数据队列中,并将该数据标记为发送的数据,最后调用数据发送子模块将数据发送出去。
当测试系统执行响应操作时,从数据队列中提取接收的数据,依据exchange中的stream参数,逐个分析匹配。如果匹配到数据,则将该数据保存到数据队列中,并将该数据标记为接收的数据。在数据匹配判断后进行超时判断,如果超时,则停止对该测试队列的处理。如果未超时,则继续匹配下一个接收的数据,直到找到有效的数据或者超时。
当mode=observer时,仿真测试流程如图5所示。在该模式下,针对每个测试序列,测试系统从数据队列中提取接收的数据,与测试节点的exchange参数进行对比,如果该数据是有效数据,则保存数据到数据队列并将数据标记为接收的数据。然后继续从数据队列中提取接收的数据,并对比下一个节点,直到所有节点对比完毕。
为了单独测试协议的某些状态,能将测试分为单状态测试和多状态测试。在单状态安全测试模式下,利用转换规则,通过正常的交互使得协议快速到达某个状态,然后在该状态下实施各种安全性测试。该模式能够应用于逐步检测每个协议状态是否存在安全漏洞的局部性测试。在多状态安全测试模式下,测试系统同时启动多个转换条件中的攻击模型,检测协议的运行状态。多状态安全测试模式能够应用于检测协议运行过程中抗攻击能力的系统性测试。
为了定位异常情况,首先根据转换条件中的参数,通过正常的报文交互,将参与测试的设备恢复至初始状态,之后采用单状态模式逐步定位;若未发现异常,则逐个施加出现异常时的攻击模型,依次进行测试;以此类推,直到确定出现异常的攻击模型。
为排除之前测试的干扰,在每次测试前,先将测试设备恢复到初始状态,并根据转换条件中的参数,发送特定的交互数据,使协议实体恢复至初始状态。并通过定时轮询机制检测其恢复情况,并将恢复的结果反映在有向图中。
测试系统有四个测试端口,能够同时对四个协议实体进行测试。
5、结果显示模块
结果显示模块展示测试过程信息,供用户分析查找问题。记录并汇总测试过程信息,形成测试报告数据。测试过程信息包括测试执行的过程、双方交互的数据、配置属性、测试用例的主要属性、协议攻击设置等信息,给出可能的原因,最终生成包含所有测试信息的安全性测试报告。
展示的主要信息包括:
●协议实体信息config=<tester_name,DUT_name,tester_addr,DUT_addr,mode>;
●协议交互信息link(i,j)以及该link的exchange和attack信息;
●当前执行的测试用例的总数量;
●当前执行的测试用例中测试成功的测试用例数量;
●当前执行的测试用例中测试失败的测试用例数量;
●当前执行的所有测试用例的概要信息,包括状态跃迁顺序,协议实体地址,协议类型;
●当选择某个测试用例时,将显示该测试用例的详细解码信息和十六进制原始数据。
6、硬件控制接口模块
硬件控制接口模块在软件和硬件之间建立数据传输的通道,它包括驱动子模块和接口控制子模块。驱动子模块是根据硬件特性设计的数据接口,它把接口控制子模块传输的数据传输给硬件,从而控制硬件的工作。接口控制子模块调用驱动子模块,从硬件中读取数据以及向硬件传递数据。协议仿真模块通过调用硬件控制接口模块向硬件下发数据或者从硬件中读取数据。
二、硬件组件
硬件组件由多个模块组成,包括数据总线模块、流量发生模块、流量检测模块、网络接口模块。软件组件通过流量检测模块获取参与测试的协议实体发送的测试数据,记录每个测试数据接收的时间,对数据进行转换、存储,提供给后续测试模块使用;软件组件生成的一条或者多条测试用例数据,通过流量发生模块,注入被测协议实体所在的网络。
1、数据总线模块,采用VHDL语言设计,使用FPGA模拟标准CPCI总线的通信机制,在硬件组件和软件组件之间传输数据。
2、流量发生模块,包括发送状态机和发送电路,其中发送电路包括流量控制电路、发送RAM和封包电路。
发送状态机的状态包括启动状态和停止状态等,它是流量发生模块的核心,控制整个流量发送的过程。流量控制电路保存发送控制参数,参数包括数据的发送模式和发送速度。发送RAM存储由软件组件创建的测试数据,供封包电路读出各种测试数据。封包电路将数据打包成能够在网络上传输的数据格式,供网络接口模块使用。流量检测模块获取目标协议实体发送的网络协议数据包,根据过滤条件,对数据进行处理,保存符合条件的数据,供给软件组件使用。
3、流量检测模块,包括接收状态机、过滤存储电路、DDR接口电路以及DDR内存。
接收状态机是流量检测模块的核心,控制流量检测模块的执行。
过滤存储电路根据过滤参数对数据进行比较,保存符合要求的数据到DDR内存中。过滤参数包括源IP地址、目的IP地址、协议号、源端口、目的端口。
网络测试数据经过网络接口模块进入硬件组件,这些数据首先被缓存到DDR内存中。硬件组件通过过滤存储电路以及DDR接口电路实现对DDR内存的读写操作。
4、网络接口模块,包括两组千兆网络收发器和SFP端口。网络接口模块是测试系统对外的接口,连接测试系统与被测试协议实体,实现协议数据的接收、测试用例数据包的发送;网络接口模块连接外部的收发设备,与之相连的设备可以是有线网络设备,也可以是无线网络设备。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种网络协议安全性测试系统,其特征在于,包括软件组件和硬件组件,软件组件负责协议流程的编辑、测试数据的生成与检测、测试结果的分析与保存,硬件组件提供协议数据收发的通道;软件组件和硬件组件通过数据总线模块连接进行通讯,软件组件控制硬件组件的运行实现测试功能;
所述软件组件包括协议分析模块、协议编辑模块、测试序列生成模块、协议仿真模块、结果显示模块、硬件控制接口模块;
所述协议分析模块对协议以及协议实体进行形式化分析,将协议的属性和转换机制表示成若干个节点以及节点之间的转移行为的集合;
所述协议编辑模块使用协议分析模块的分析结果对协议的运行机制进行建模,通过构建协议有向图,图形化展示协议在运行过程中的状态转移路径;
所述测试序列生成模块分析协议有向图组成的测试场景集合,提取每条边的状态转换条件参数,采用深度优先遍历算法对协议有向图进行遍历,生成测试用例集合;
所述协议仿真模块对输入的测试序列进行测试,输出每个测试序列的测试结果;
所述结果显示模块记录并汇总测试过程信息,形成测试报告数据,供用户分析查找问题;
所述硬件控制接口模块在软件组件和硬件组件之间建立数据传输的通道;
所述硬件组件包括数据总线模块、流量发生模块、流量检测模块、网络接口模块。
2.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述协议编辑模块通过节点和转换条件构建协议有向图,对协议进行可视化描述;使用节点描述协议运行的所有状态,使用有向边描述促使状态发生的转换条件。
3.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述协议编辑模块采用可视化的、拖拽的描述方式建立协议有向图,具体步骤包括:
(1)添加参与测试的网络协议实体,并配置协议实体的协议实体属性即config参数;
(2)设置测试启动的先决条件,包括测试端口状态可用性检测、链路状态的检测、通路的检测信息;
(3)根据协议规范的描述,添加相应的节点,编辑node属性;
(4)根据协议规范的描述,使用有向边连接相应的节点,并编辑有向边的属性即link参数。
4.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述协议仿真模块包括数据捕获子模块、数据存储子模块、数据检测子模块、网络协议攻击构建子模块、数据生成子模块和数据发送子模块;
所述数据捕获子模块:采用定时查询机制,调用硬件控制接口获取来自网络的测试数据,并对测试数据进行筛选;
所述数据存储子模块:接收来自数据捕获子模块的数据,将数据存储在数据列表中,并添加时间戳,该数据被标记为接收的数据;测试数据被存储在测试队列中,供后续分析使用;
所述数据检测子模块:采用定时查询的方式从数据捕获子模块中提取协议数据,根据测试序列的内容,对数据的格式和内容进行检测;处理保存在数据存储子模块中的数据队列,提取数据,按照当前测试阶段的exchange属性进行匹配;如果匹配成功,则表明测试将进入下一个阶段;如果匹配不成功,则继续从数据队列中提取数据并检测,直到出现特殊情况才停止检测;
所述网络协议攻击构建子模块:结合面向对象思想的封装和继承特性,把协议所面临的每种攻击的参数封装成独特的攻击对象,把攻击目标、攻击操作参数作为对象的成员,得到的描述结果为:attack=<enable,basic_attr,target,act>;测试系统将协议分析模块生成的protocol和网络协议攻击构建子模块生成的attack相结合,共同作为数据生成子模块的输入,从而创建满足不同测试场景的测试例;在协议仿真过程中,测试系统对attack进行配置从而执行不同的攻击测试;
所述数据生成子模块:根据exchange属性并结合网络协议攻击构建子模块的输出,创建测试数据,这些测试数据包含参与测试的协议实体的地址信息,可在网络上正常传输;
所述数据发送子模块:调用硬件控制接口,把数据生成子模块创建的测试数据传输给硬件组件,从而向被测协议实体发送协议数据。
5.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述协议仿真模块使用定时轮询机制检测由于安全测试所带来的异常,在测试例的执行过程中,测试系统发送用于探测协议实体协议运行状态的定时轮询数据包,从而及时发现由于发送测试数据而导致的异常;具体方式是:在协议状态到达某个节点后,根据设置的参数启动属于该节点的定时轮询数据包检测功能,如果协议实体在指定时间内不回复,或者定时轮询数据包的应答内容不符合内置安全属性的要求,则表明被测试设备的协议出现异常,给出提示,并保存应答的数据和当前的状态信息供分析原因使用。
6.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述协议仿真模块在执行仿真测试时,根据协议实体属性config中mode参数的配置,测试系统在协议仿真时能进行执行不同的测试流程;
当mode=client/server时,测试系统和被测协议实体按照测试序列指定的内容进行交互,由exchange中的type参数决定双方所扮演的角色,并判断测试系统当前应该执行请求操纵还是响应操作;
当mode=observer时,针对每个测试序列,测试系统从数据队列中提取接收的数据,与测试节点的exchange参数进行对比,如果该数据是有效数据,则保存数据到数据队列并将数据标记为接收的数据;然后继续从数据队列中提取接收的数据,并对比下一个节点,直到所有节点对比完毕。
7.根据权利要求6所述的一种网络协议安全性测试系统,其特征在于,当测试系统执行请求操作时,根据exchange中的stream参数创建测试数据,将数据保存到数据队列中,并将该数据标记为发送的数据,最后调用数据发送子模块将数据发送出去;
当测试系统执行响应操作时,从数据队列中提取接收的数据,依据exchange中的stream参数,逐个分析匹配;如果匹配到数据,则将该数据保存到数据队列中,并将该数据标记为接收的数据;在数据匹配判断后进行超时判断,如果超时,则停止对该测试队列的处理;如果未超时,则继续匹配下一个接收的数据,直到找到有效的数据或者超时。
8.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述软件组件通过流量检测模块获取参与测试的协议实体发送的测试数据,记录每个测试数据接收的时间,对数据进行转换、存储,提供给后续测试模块使用;软件组件生成的一条或者多条测试用例数据,通过流量发生模块,注入被测协议实体所在的网络。
9.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述流量发生模块包括发送状态机和发送电路,其中发送电路包括流量控制电路、发送RAM和封包电路;
发送状态机的状态包括启动状态和停止状态,它是流量发生模块的核心,控制整个流量发送的过程;所述流量控制电路保存发送控制参数,参数包括数据的发送模式和发送速度;发送RAM存储由软件组件创建的测试数据,供封包电路读出各种测试数据;封包电路将数据打包成能够在网络上传输的数据格式,供网络接口模块使用;流量检测模块获取目标协议实体发送的网络协议数据包,根据过滤条件,对数据进行处理,保存符合条件的数据,供给软件组件使用。
10.根据权利要求1所述的一种网络协议安全性测试系统,其特征在于,所述流量检测模块包括接收状态机、过滤存储电路、DDR接口电路以及DDR内存;
所述接收状态机是流量检测模块的核心,控制流量检测模块的执行;
所述过滤存储电路根据过滤参数对数据进行比较,保存符合要求的数据到DDR内存中;
过滤参数包括源IP地址、目的IP地址、协议号、源端口、目的端口;
网络测试数据经过网络接口模块进入硬件组件,这些数据首先被缓存到DDR内存中;硬件组件通过过滤存储电路以及DDR接口电路实现对DDR内存的读写操作。
CN202310247160.5A 2023-03-15 2023-03-15 一种网络协议安全性测试系统 Pending CN116418567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310247160.5A CN116418567A (zh) 2023-03-15 2023-03-15 一种网络协议安全性测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310247160.5A CN116418567A (zh) 2023-03-15 2023-03-15 一种网络协议安全性测试系统

Publications (1)

Publication Number Publication Date
CN116418567A true CN116418567A (zh) 2023-07-11

Family

ID=87055684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310247160.5A Pending CN116418567A (zh) 2023-03-15 2023-03-15 一种网络协议安全性测试系统

Country Status (1)

Country Link
CN (1) CN116418567A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118879A (zh) * 2023-10-23 2023-11-24 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118879A (zh) * 2023-10-23 2023-11-24 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质
CN117118879B (zh) * 2023-10-23 2024-01-26 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN110505111B (zh) 基于流量重放的工控协议模糊测试方法
CN110401581B (zh) 基于流量追溯的工控协议模糊测试用例生成方法
Vollmer et al. Cyber-physical system security with deceptive virtual hosts for industrial control networks
US11395189B2 (en) State machine handling at a proxy node in an Ethernet-based fronthaul network
CN112714047A (zh) 基于工控协议流量的测试方法、装置、设备及存储介质
CN112995152B (zh) 一种风险端口检测方法、装置、设备和介质
WO2016202066A1 (zh) 信息获取方法、客户端设备和服务端设备
CN111447089A (zh) 终端资产识别方法和装置,及计算机可读存储介质
CN116418567A (zh) 一种网络协议安全性测试系统
CN112804263A (zh) 一种面向物联网的漏洞扫描方法、系统及设备
WO2017213998A1 (en) In-band asymmetric protocol simulator
CN115150377A (zh) 一种模拟接口调用及处理方法和装置
US11621908B2 (en) Methods, systems and computer readable media for stateless service traffic generation
Zhang et al. Hypertester: high-performance network testing driven by programmable switches
CN110691097A (zh) 一种基于hpfeeds协议的工控蜜罐的系统及其工作方法
Xiao et al. Integrated tcp/ip protocol software testing for vulnerability detection
CN115412512B (zh) 一种基于IPv6的多云跨网互通方法及装置
Shah et al. Implementation and performance analysis of firewall on open vSwitch
CN114328216A (zh) 一种漏洞挖掘的方法和装置
US20080002675A1 (en) Automated Connectivity Testing
CN114071467A (zh) 一种基于4g移动网络模拟环境的靶场系统
Ridge et al. A rigorous approach to networking: TCP, from implementation to protocol to service
Toll et al. IoTreeplay: Synchronous Distributed Traffic Replay in IoT Environments
Albadri Development of a network packet sniffing tool for internet protocol generations
CN114040408B (zh) 一种基于4g移动网络模拟环境的靶场系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination