CN102624574A - 一种对协议实现进行安全测试的方法及装置 - Google Patents

一种对协议实现进行安全测试的方法及装置 Download PDF

Info

Publication number
CN102624574A
CN102624574A CN201110030260XA CN201110030260A CN102624574A CN 102624574 A CN102624574 A CN 102624574A CN 201110030260X A CN201110030260X A CN 201110030260XA CN 201110030260 A CN201110030260 A CN 201110030260A CN 102624574 A CN102624574 A CN 102624574A
Authority
CN
China
Prior art keywords
protos
protocol
protocol status
status model
model
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
Application number
CN201110030260XA
Other languages
English (en)
Other versions
CN102624574B (zh
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to CN201110030260.XA priority Critical patent/CN102624574B/zh
Publication of CN102624574A publication Critical patent/CN102624574A/zh
Application granted granted Critical
Publication of CN102624574B publication Critical patent/CN102624574B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明实施例提供了一种对协议实现进行安全测试的方法,该方法包括:将协议实现所基于的协议规范映射为第一协议状态模型;向第一协议状态模型引入与安全故障相对应的非法状态以形成第二协议状态模型;利用断言来表征第一协议状态模型和/或第二协议状态模型的测试目的;对第二协议状态模型执行变异操作从而生成变异的协议状态模型;根据断言对变异的协议状态模型执行模型检测,以生成由变异的协议状态模型中违反断言的反例映射得到的测试套件;及,利用测试套件对协议实现进行模糊测试,以检测协议实现中存在的安全漏洞。本发明实施例还提供了一种相应的测试装置。采用本发明实施例能以高效及低成本实现协议安全测试。

Description

一种对协议实现进行安全测试的方法及装置
技术领域
本发明涉及信息安全(Information Security)技术领域,特别涉及一种对协议实现进行安全测试的方法及装置。
背景技术
计算机信息安全技术是一门由密码应用技术、信息安全技术、数据灾难与数据恢复技术、操作系统维护技术等组成的计算机综合应用学科。其中,信息安全技术主要用于防止系统漏洞、防止外部黑客入侵、防御病毒破坏和对可疑访问进行有效控制等。
随着互联网(Internet)的发展,各种计算机系统中都迫切需要加强其信息安全技术。以信息通信技术(ICT,Information Communication Technology)系统为例。ICT作为一种向客户提供的服务,是信息技术(IT,Information Technology)与通信技术(CT,Communication Technology)的结合和交融,通信业、电子信息产业、互联网、传媒业都将融合在ICT的范围内,进而能为客户提供一站式的ICT整体服务,包括:集成服务、外包服务、专业服务、知识服务以及软件开发服务等。但是,随着ICT系统的发展,保护ICT系统的基础结构的要求也在显著提高。比如:不同项目利益相关者(如:合资企业、联盟伙伴、外包服务)之间连接性的提高、智能装置的连接性的提高、外部连接性的增强、快速增长的网络入侵事件以及出现更多的智能黑客和恶意软件等情况,都导致了ICT系统的基础结构遭受攻击以及威胁的可能性的显著提高。因此,就非常有必要加强ICT系统的信息安全技术,以针对安全漏洞和/或自发故障来保证ICT系统的基础结构的通信安全。
在信息安全技术中,很重要的一个课题就是对协议实现所基于的协议进行安全测试。现存的几种协议安全测试方法包括:形式化验证(Informal Verification)、白盒(White-box)测试和黑盒(Black-box)测试等等。其中,由于形式化验证和白盒测试需要作为待测实现(IUT,Implementation Under Test)的计算机程序的源代码(Source Code),因此,此种方法可适用的场景非常有限;而另一方面,黑盒测试基于协议的外部描述,即:协议规范(Specifications),其实现并不需要计算机程序的源代码,进而黑盒测试的实现可以与协议实现的计算机程序开发相互独立,其测试结果可以应用于协议规范的所有实现情况,因此,黑盒测试可以广泛应用于各种场景下的安全测试。但是,黑盒测试的实现成本非常高,也非常耗时,且难以优化和改进。
因此,目前在信息安全技术领域中,亟待开发一种协议安全测试技术,其不需要协议实现的计算机程序的源代码,并且具有较高的执行效率以及较低的实现成本。
发明内容
为解决上述技术问题,本发明实施例提出了一种对协议实现进行安全测试方法及装置,其不需要待测的协议实现的计算机程序的源代码即能实现协议的安全测试,且具有较高的执行效率以及较低的实现成本。
本发明实施例提出了一种对协议实现进行安全测试的方法,该方法包括:
将协议实现所基于的协议规范映射为第一协议状态模型;
向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现出现的安全故障相对应;
利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目的;
对所述第二协议状态模型执行变异操作,从而生成变异的协议状态模型;
根据所述断言对所述变异的协议状态模型执行模型检测,以生成至少一个测试套件,以及
利用所述一个或多个测试套件对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述测试套件对应的安全漏洞。
本发明实施例还提出了一种对协议实现进行安全测试的装置,该装置包括:
第一映射模块,用于将协议实现所基于的协议规范映射为第一协议状态模型;
非法状态模块,用于向所述第一映射模块得到的所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态对应于所述协议实现出现的安全故障;
断言模块,用于利用断言来表征来自所述非法状态模块的所述第二协议状态模型和/或来自所述第一映射模块的所述第一协议状态模型的测试目的;
变异模块,用于对来自所述非法状态模块的所述第二协议状态模型执行变异操作,从而生成变异的协议状态模型;
检测模块,用于利用所述断言模块得到的断言对所述变异模块生成的所述变异的协议状态模型执行模型检测,以生成一个或多个测试套件,所述一个或多个测试套件由所述变异的协议状态模型中违反所述断言的一个或多个反例映射得到;及,
测试模块,用于利用所述检测模块得到的一个或多个测试套件对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述一个或多个测试套件对应的安全漏洞。
采用本发明实施例提供的方法及装置能够以较高的执行效率以及较低的实现成本实现协议安全测试,且无需待测的协议实现的源代码。
附图说明
下面将通过参照附图详细描述本发明的示例性实施例,使本领域的普通技术人员更清楚本发明的上述及其它特征和优点,附图中:
图1为依据本发明实施例的方法流程示意图;
图2为本发明方法一具体实例的实现流程示意图;
图3为图2所示实例中的初始协议状态模型示意图;
图4为图3所示初始协议状态模型中引入了非法状态之后的示意图;
图5为对图3所示初始协议状态模型进行变异操作之后所得到的变异的协议状态模型示意图;及,
图6为依据本发明实施例的装置组成结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
本发明实施例提出了一种对协议实现(Protocol Implementation)进行安全测试的方法。当对一协议实现进行测试时,该方法的处理流程如图1所示包括如下步骤:
步骤101:将此协议实现所基于的协议规范映射为第一协议状态模型(也可称为初始协议状态模型)。
步骤102:向此第一协议状态模型引入非法状态以形成第二协议状态模型。
步骤103:利用断言来表征此第二协议状态模型和/或第一协议状态模型的测试目的。
步骤104:对此第二协议状态模型执行变异操作(mutation operation),从而生成变异的协议状态模型。
步骤105:对此变异的协议状态模型执行模型检测,以生成至少一个测试套件。
步骤106:利用此测试套件对此协议实现进行模糊测试,以检测此协议实现中是否存在该测试套件对应的安全漏洞。
在本实施例中,步骤104通过对第二协议状态模型执行变异操作可以向该协议状态模型注入安全故障。
在本实施例中,步骤105通过对第二协议状态模型执行变异操作,可以获得此变异的协议状态模型中违反上述断言的一个或多个反例,并将此一个或多个反例被映射为一个或多个测试套件。其中,反例与测试套件之间的映射关系可以为一对一,多对一,一对多或者多对多的。优选的,一个反例映射为一个测试套件。
协议实现的开发可能基于某种协议规范,尤其是涉及多个分布式的计算实体之间的连接、通信和数据传输的协议实现,它们所实现的功能要符合特定协议的标准化规定。一个协议规范描述了协议实现所能实现的各种功能行为和通信的句法/语义,其中,同一功能行为可以具体实现为源代码不同的各种协议实现,也就是说协议规范并不规定具体实现中协议实现的源代码,因此协议规范可以作为黑盒测试的参考。
本发明实施例向协议安全测试领域引入了基于模型的形式化方法,以识别基于各种协议的IUT中的安全漏洞,其关注于黑盒测试且依赖于协议规范描述的功能行为和通信的语义/句法,而不需要了解IUT的源代码和详细的内部结构同时利用了模糊测试、变异分析和模型测试的优点,互相弥补它们的缺点,并以形式化方法来实施IUT的协议安全测试。因此,很容易实施,实现成本较低,且能以较高效率自动化的检测1UT中潜在的安全漏洞。
以下对上述各个步骤的具体实现加以详细说明。
一、关于步骤101
在本发明实施例中,协议状态模型可以为有限状态机(FSM,Finite State Machine)(也称为有限自动机),如:参数化的扩展有限状态机(PEFSM,Parameterized Extended Finite State Machine),此协议状态模型也可以为其它类型的模型,比如:输入/输出标号转移系统(IOLTS,Input Output Label TransitionSystem)。本发明实施例对于协议状态模型的具体类型并不限定,任何可以描述协议状态及其转移的模型均属上述协议状态模型的范畴。
假定将协议规范映射为PEFSM。此PEFSM包括六元组(6-tuples),可表示为(S,s0,∑,Γ,δ,λ)。这里,S代表PEFSM的状态集合(即协议规范所规定的所有状态的集合);s0∈S代表协议的初始状态;对于所有状态都由向量
Figure BDA0000045657780000041
来代表包括缺省初始值在内的内部变量的有限集合,∑代表输入报文集合,每一输入报文
Figure BDA0000045657780000042
包含其字段的向量(即参数向量)
Figure BDA0000045657780000043
Γ代表输出报文集合,每一输出报文
Figure BDA0000045657780000044
包含其字段的向量(即参数向量)
Figure BDA0000045657780000045
δ:S×∑→S代表转移函数,其定义了收到一输入报文
Figure BDA0000045657780000046
之后所要转移到的目标状态;及,λ:S×∑→Γ代表输出函数,其定义了收到一输入报文
Figure BDA0000045657780000047
之后的输出报文
Figure BDA0000045657780000048
在一个PEFSM中,一次转移t包括:一组监视条件(可表达为:“if statement”)和一个动作此动作为针对变量向量和输入/输出参数的操作。如果监视条件都被满足,就可以执行此转移,并且此动作也已基于当前变量向量的值和输入参数而被执行,进而使PEFSM从当前状态转移到下一个状态。
根据协议规范中的定义,可以确定IUT可能存在的状态、各个状态之间的转移、以及相应的输入报文和输出报文,然后根据所确定的这些状态、转移及输入报文和输出报文,通过上述方法,可以将IUT所基于的协议规范形式化为相应的PEFSM。
二、关于步骤102
在本发明实施例中,可以向协议状态模型引入一个或多个非法状态,此非法状态也可被称为故障状态或“虫洞(wormhole)”,此非法状态对应于IUT出现的安全故障(包括:系统性故障或协议规范中未定义的状态)。由于,协议规范中不包括使IUT处于意外的错误状态的安全故障的定义,通过引入额外的非法状态可以将安全故障组件引入协议状态模型,以实现安全测试。本实施例中,非法状态可以仅为单一的非法状态,也可以为多个非法状态。
其中,当仅引入单一的非法状态时,此单一的非法状态针对所有类型的安全故障;当引入多个非法状态时,每一非法状态针对特定类型的安全故障,此时,需要了解特定类型的安全故障的详细信息。
三、关于步骤103
在本发明实施例中,IUT可能出现的安全故障也可称为需要被覆盖的安全要求,这些安全故障可被定义为时序逻辑的断言(Predicate),即利用时序逻辑的断言来表征协议安全模型的测试目的。这里,时序逻辑可以为线性时序逻辑(LTL,Linear Temporal Logic)或者计算树逻辑(CTL,Computation Tree Logic)等等,本发明实施例对所采用的具体的时序逻辑不做限定。
具体的,将安全故障定义为时序逻辑的断言的方法可以包括如下几项中的任一者或任意组合:
1)基于给定的测试目的来定义断言;
2)根据安全测试领域的知识来定义断言;及,
3)从初始协议状态模型(即步骤101得到的第一协议状态模型)中反射出断言;比如:针对协议状态模型中的每一次转移,相应生成LTL断言或CTL断言。
在进行安全测试时,IUT可能出现的安全故障可能有一个或多个(通常有多个),则根据这些安全故障而得到的断言就可以有一个或多个。
本领域技术人员可以知道,断言是一种逻辑判断,由原子命题或复合命题通过逻辑算子(如与、或、非)连接而成,其处理结果代表所要判断的条件为真(true)或假(false),比如:一断言可以为一单参函数,此函数带有一整型参数,argument,如果此参数为正数(positive),则此函数的返回值为真。
四、关于步骤104
在本发明实施例中,步骤104与前述的步骤103可以并行执行,不必区分这两个步骤的执行先后顺序。
具体的,可利用变异算子(mutation operator)来对协议状态模型执行变异操作,这里,所利用的变异算子可以包括:操作数引用算子(Operand Reference Operator)、表达否定算子(Expression Negation Operator)和变量否定算子(VariableNegation Operator)等算子中的任一者或任意组合。本发明实施例并不限定具体采用何种变异算子,只要是能应用于安全测试的变异算子都属本发明实施例所述的变异算子范畴。
其中,操作数引用算子用于将一次转移、一个监视条件或一个动作改变为其它值;表达否定算子用于否定一次转移、一个监视条件或一个动作;及,变量否定算子用于将一个变量的值由合法值修改为非法值。这里,所谓合法值指的是在协议规范所规定的取值范围之内的值,而所谓非法值为不在协议规范所规定的取值范围之内的值。
优选的,针对协议状态模型中的每一个转移以及每一个(涉及到模型内部变量的)逻辑运算都要利用变异算子来执行变异操作,从而更全面的检测安全漏洞。其中,针对一个转移所执行的变异操作包括:对此转移本身的变异操作、和/或对此转移对应的输入/输出报文的字段的变异操作、和/或对与此转移相关的内部变量的变异操作等等。这里,可利用操作数引用算子或表达否定算子来对一个转移本身执行变异操作,可利用变量否定算子对输入/输出报文的字段和逻辑运算中的变量执行变异操作。这样,每当利用一个变异算子执行了一次变异操作,就能生成一个与初始协议状态模型(即步骤101映射得到的第一协议状态模型)不同的变异的协议状态模型,这些变异的协议状态模型将在后续步骤中用于执行模型检测。
五、关于步骤105
具体的,要利用步骤103得到的断言来对步骤104得到的每一个变异的协议状态模型进行模型检测。其中,将上述断言和变异的协议状态模型作为模型检测器的输入,由此模型检测器进行模型检测并生成一个或多个反例(counterexample)。这里,反例就是指违反上述断言的测试用例,其可以以转移路径的形式从模型检测器输出,所谓转移路径指的是从协议状态模型的初始状态到一个出现断言被违背的状态之间的一个或多个转移构成的路径。
在本发明实施例中,所使用的模型检测器可以基于(但不限于)新符号模型验证器(NuSMV,NewSymbolic Model Verifier)、简单Promela(一种逻辑语言)解释器(SPIN,Simple Promela Interpreter)、符号分析实验室(SAL,SymbolicAnalysis Laboratory)等语言,并且其采用的模型检测方法可以为但不限于:显式模型检测(explicit model checking)、符号化模型检测(symbolic model checking)或有界模型检测(bounded model checking)等等。在将变异的协议状态模型输入模型检测器之前,如果模型检测器不能识别此协议状态模型的表示方法,可使用NuSMV或协议原语言(PROMELA,Protocol Meta Language)等语言将此变异的协议状态模型翻译为标号迁移系统(Labelled Transition System),以供模型检测器处理。
经过模型检测而生成的一个或多个反例可以被映射为一个或多个测试套件(testing suite),以进行后续的模糊测试。优选的,每一个反例都被映射为一个测试套件。具体的,如前面所述,依据变异的协议状态模型,一个反例对应一个转移路径,此转移路径上存在一系列的输入报文/输出报文。因此,可以将此反例映射到一测试套件,在此测试套件中,此反例可以表示为一报文序列,此报文序列包括:按顺序排列的可在此反例所对应的转移路径上存在的所有的输入报文和相应的输出报文。也就是说,测试套件中包括:一系列用于激发IUT的输入报文和作为IUT的预期响应的相应的输出报文。
进一步的,在本步骤中,模型检测器可使用上述被违反的断言来识别在模糊测试中应被填入模糊数据的输入报文的字段,并可进一步获取这些要被填入模糊数据的报文字段的取值范围、合法值和冲突值。对于与步骤104中得到的经过变异操作的转移相对应的任一报文,其中被模型检测器识别到的要被填入模糊数据的字段可以被标记为“fuzzing”。
进一步的,还可以利用所获取的这些报文字段的取值范围、合法值和冲突值来减少要模糊测试中要被测试的缺陷值的数据量,即:对所识别到的应被填入模糊数据的报文字段进行优化处理,以去除其中冗余的报文字段。这里,本发明实施例可采用现有技术中的各种方法来对这些报文字段进行优化处理,本文不再详述。
进一步的,为了提高测试效率,还可以对步骤104中生成的测试套件进行优化处理,以去除其中冗余的测试套件(即:去除冗余的反例)。比如:可在执行模型检测之前执行断言化简处理,此时,可以分析断言的作用范围及其安全/逻辑的含义,根据分析结果删除可被其它断言涵盖的冗余的断言;或者,可在执行模型检测时删除冗余的测试套件,如:如果某一短的反例(即测试路径)为一长的反例的前缀,则此短的反例就为冗余的,需要删除此短的反例所映射为的测试套件。这里,本发明实施例可以采用现有技术中的各种方法来对测试套件进行优化处理,在此就不再一一详述。
六、关于步骤106
具体的,利用测试套件来对IUT进行模糊测试的方法可以包括:
1)向IUT依次发送测试套件中的一个或多个测试报文。这里,所谓测试报文就是指前述的测试套件对应的输入报文;及,
2)接收来自IUT的各个响应报文;每收到一个响应报文即检查此响应报文是否与测试套件中相应的期望的输出报文是否一致;如果检查出某响应报文与期望的输出报文不一致或者IUT处于非正常状态,则可判断IUT存在相应的安全漏洞。
其中,如果在步骤104中模型检测器使用上述被违反的断言来识别在模糊测试中应被填入模糊数据的输入报文的字段,则本步骤中,在发送测试报文之前,进一步向所识别到的输入报文的字段中注入模糊数据。假定模型检测器将所识别到的要被填入模糊数据的字段标识为“fuzzing”,则本步骤中,如果一测试报文中的字段被标记为“fuzzing”,则说明此测试报文需要被注入模糊数据,此时,可以对此测试报文中被标记为“fuzzing”的字段进行变异处理(即:注入模糊数据),以生成用于模糊测试的变异报文。这里,对此种字段进行的变异处理可以包括:使用违反对应断言的测试实例来替代原来的字段、或者将违反对应断言的测试实例注入此字段、或者删除此字段,所述违反对应断言的测试实例可以为:不属合法取值范围之内的非法值或冲突值、随机生成的值、预定义的值或以其它方式生成的值。
当上述被注入模糊数据的测试报文被发往IUT之后,可以通过发送探测报文或手动检查等方式来检查IUT的状态。如果IUT处于非正常状态,如:出现系统性故障、未知的状态、宕机、程序崩溃、或者对测试套件中一输入报文不再响应等等,则可发现安全漏洞并且当前的测试套件(其被注入了违反对应断言的测试实例)就可被作为用于发现安全漏洞的滥用脚本(misusing script)。
在本发明实施例中,上述步骤104至步骤106可采用如下两种方式来执行:
1、批处理方式(Bach mode),即:先批量生成所有的测试套件,再执行模糊测试。
具体的,重复执行步骤104至步骤105,直到针对所有变异的协议状态模型的测试套件都已生成,然后执行步骤106以针对所生成的所有测试套件逐个进行模糊测试。这里,利用一个变异算子针对协议状态模型中一个转移进行变异操作将生成一个变异的协议状态模型,当所有变异算子和转移的组合都被已被用来生成变异的协议状态模型,则可确定以生成了所有变异的协议状态模型。
2、交互方式(Interactive mode),即:测试套件的生成(步骤104的变异分析和步骤105的模型检测)和步骤106的模糊测试交错进行。
具体的,每当在步骤104中通过执行变异操作而得到了一个变异的协议状态模型、且在步骤105中对此变异的协议状态模型进行模型检测而生成了一个或多个反例时,在步骤106中使用每一个反例所映射到的测试套件来进行模糊测试。
本领域技术人员可以知道:协议安全测试是为了检测在向IUT输入协议规范未定义的输入报文时IUT的不可预测的行为。在另一方面,协议一致性测试为了确定IUT是否为符合其协议规范的规定的技术,协议一致性测试的主要目的是为了验证协议规范所规定的功能/行为是否已经被IUT正确的实现,这样,在模糊测试中,当给出协议规范所定义的输入报文时,IUT应反馈协议规范所定义的正确输出报文。因此,协议一致性测试关注于协议规范所定义的输入报文。
进一步的,在执行上述步骤101至步骤106来完成对IUT的协议安全测试的基础之上,还可对IUT执行协议一致性测试,此协议一致性测试可以集成为协议安全测试的一部分,此协议一致性测试,包括:对上述断言执行变异操作,以生成变异的断言;利用此变异的断言对第一协议状态模型执行模型检测,以生成用于一致性测试的一个或多个测试套件;及,利用所述用于一致性测试的一个或多个测试套件对协议实现进行一致性测试以发现其中与协议规范不一致的漏洞。具体的,在协议一致性测试中,可利用步骤101中得到的初始协议状态模型,并对步骤103中得到的一个或多个断言进行变异操作,然后通过模型检测以得到测试套件,然后利用该测试套件可对对IUT进行一致性测试以发现IUT中与协议规范不一致的漏洞。其中,与前述步骤104的变异操作不同的是,协议一致性测试中的变异操作是针对步骤103中得到的每一断言而执行的而不是针对协议状态模型;而与前述步骤105的模型检测不同的是,协议一致性测试中的模型检测是利用变异的断言针对初始协议状态模型执行的而不是针对变异的协议状态模型执行的。
在上述本发明实施例中,协议规范被形式化为一协议状态模型,其可被称为形式化规范S;以此形式化规范S为基础可以自动生成用于模糊测试的测试套件,此测试套件也可称为测试路径集T,其中,一测试路径为一个有缺陷的输入报文和相应的期望的输出报文的序列,此有缺陷的输入报文指的是其字段被注入模糊数据(也称为缺陷数据)的输入报文;此测试路径集T将被输入IUT,再由IUT响应输出报文,通过将这些输出报文将与测试路径集T中的期望的输出报文进行比较来检测IUT中是否存在与测试路径集T相对应的安全漏洞。这种方法也能够为IUT提供在给定的形式化规范模型和故障情况下的故障覆盖率。
本发明实施例提供了一种基于模型的形式化协议安全测试方法,通过引入变异分析和模型检测技术到模糊测试来检测由各种协议的IUT的未知缺陷而引发的安全漏洞。以下为依据此协议安全测试方法的本发明一具体实例。
图2为本发明实施例所提供的协议安全测试方法一具体实例的实现流程示意图,包括如下步骤:
步骤201:将IUT所基于的协议规范映射为第一PEFSM(也称为初始PEFSM)。
具体的,为了使用户可以较容易的将协议规范转换为相应的PEFSM,可以采用图形化的用户界面(UI)(比如:状态和迁移图等)和基于可扩展标记语言(XML)的状态迁移语言(如:状态图的可扩展标记语言(SCXML,State ChartXML)等)来描述协议的各个状态、相应的转移和输入/输出报文。
图3示出了本实例中的初始PEFSM示意图。如图3所示,s0,s1,s2为原始的协议状态,s0为初始状态,状态之间的转移被标记为ik/Ok,其中,ik代表包含字段向量
Figure BDA0000045657780000091
的输入报文,并触发此转移,Ok代表包含字段向量
Figure BDA0000045657780000092
的输出报文,之后,此PEFSM将转移到新的状态。并且,在向量
Figure BDA0000045657780000093
中有一个TYPE域,其代表输入报文的类型。这里,ik,0≤k≤4,TYPE=tk,比如:对于输入报文i0,其TYPE域的值为t0
步骤202:向步骤201得到的初始PEFSM引入非法状态以形成第二PEFSM,从而向初始PEFSM引入与安全故障相关的组件。
在本实例中,将非法状态引入到初始PEFSM的方法为:
1)向初始PEFSM中加入一个非法状态(也称为“虫洞”状态)来模型化未知的IUT的系统性故障和明显未在协议规范中定义的未定义状态;并且,针对此非法状态,所有的内部变量
Figure BDA0000045657780000094
和输入报文的字段都将被设置为故障值(即:不属协议规范所定义的合法取值范围的值)。例如:假定内部变量Vi的合法取值范围为0~16,则此内部变量在非法状态中的值将被设为小于0或者大于16;再举一例:输入报文ik的TYPE字段将被设为
Figure BDA0000045657780000095
Figure BDA0000045657780000096
0≤k≤4。
2)此非法状态具有一个外出的转移,此外出的转移可以被标记为“重置(reset)”,并且指向PEFSM中的初始状态s0。此被标记为“reset”的转移代表复位操作,此复位操作将重启IUT并能使相应的PEFSM从系统性故障或未定义状态恢复到初始状态s0。由于,非法状态并不属于协议规范的原始定义内容,因此,并没有进入非法状态的转移,即:不能从初始PEFSM中的合法状态转移到此非法状态。
使用上述方法向初始PEFSM引入非法状态之后得到的第二PEFSM如图4所示。在图4中,一个额外的非法状态被引入到图3所示的初始PEFSM中,此非法状态仅具有一个向初始状态s0的转移,此转移被标记为“reset”,并且没有任何初始PEFSM中的合法状态能转移到此非法状态。
步骤203:根据此IUT可能出现的故障,利用断言来表征初始PEFSM和/或第二PEFSM的测试目的。
在本实例中,计算树逻辑(CTL)或线性时序逻辑(LTL)被用做断言,该断言用于根据不同安全测试要求来表征具体的测试目的,以下举出几种利用CTL断言来表征测试目的的例子。
1)根据协议的诸如身份验证(authentication)、授权(authorization)等安全要求,可以定义相应的测试目的。比如:根据协议规范定义:s1为身份验证状态,s0为初始状态,此协议的函数可以仅仅在验证合法之后提供,则此测试目标可以被定义为如下断言:
AXs0=s1
这里,A表示“总是(always)”,X代表下一个(Next),此时,AXs0=s1代表:在PEFSM中,s0的下一状态必须总是为s1
2)根据安全测试的领域知识,也可以定义通用的安全测试目的。
比如:假定额外的“虫洞(wormhole)”状态(即:非法状态)被引入到初始PEFSM中来代表系统性故障或未定义状态,则对于一个正确的IUT而言,初始PEFSM中的各个状态将不会转移到此“虫洞”状态;此时,令si代表初始PEFSM中的各个状态,其中,i=0,1,…,则以下断言可以被用做一个通用的测试目的:
!AG(si→wormhole)
这里,A代表“总是(always)”,G代表“全局的(globally)”,布尔符号!代表否定,则!AG(si→wormhole)声明了:任意状态si将全局的且总是不存在向“虫洞”状态的转移。
3)为了涵盖初始PEFSM中各个状态中的潜在缺陷,进一步的可以自动从初始PEFSM中反射出CTL断言以作为测试目的。以下举出几种从初始PEFSM中反射出CTL断言的方法实例,但本发明实施例中从初始PEFSM中反射出断言的方法并不限于此。
a.对于初始PEFSM中的每一对状态si和sj(不包括非法状态),如果它们之间没有转移,则反射出两个断言:
!AG(si→sj)和!AG(sj→si)
以上两个断言明确声明了在状态si和sj之间无任何转移存在。
b.对于初始PEFSM中的转移si→sj,如果在初始PEFSM中没有转移sj→si存在,则反射出一个断言:
!AG(sj→si)
以上断言明确声明了在初始PEFSM中不存在转移si→sj的反向转移sj→si
c.对于初始PEFSM中的转移si→sj,可以反射出一个断言:
AG(si→sj)
以上断言明确声明了初始PEFSM中存在一个合法转移si→sj
d.除了上述针对状态和转移的断言,也可以生成针对内部变量
Figure BDA0000045657780000101
输入报文的字段
Figure BDA0000045657780000102
以及动作
Figure BDA0000045657780000111
的断言。
例如:输入报文ik(0≤k≤4)的TYPE字段的合法值为t0、t1、t2、t3、t4,其它取值即为非法值,则以下断言可以被用作测试目的:
AG(ik.TYPE=t0∨t1∨t2∨t3∨t4)
以上断言声明了任意输入报文ik的值将全局的且总是为t0、t1、t2、t3和t4中的任一个。这里,仅以两个运算符AX和AG为例,在实际应用中,其它时序逻辑运算符AF、AU、EX、EF、EG和EU也可被用来定义作为测试目的的断言;其中,F代表“未来(future)”,U代表“直到(until)”,E代表“存在(exist)”。
步骤204:通过对引入了非法状态的第二PEFSM执行变异操作来向此第二PEFSM注入安全故障,从而生成变异的PEFSM。
在本实例中,使用三个变异算子来执行变异操作:操作数引用算子(Operand Reference Operator)、表达否定算子(Expression Negation Operator)和变量否定算子(Variable Negation Operator)。其中,操作数引用算子和表达否定算子是针对转移的,变量否定算子是针对内部变量和输入/输出报文字段的
针对转移si→sj所执行的变异操作可以包括如下几种:
1)使用操作数引用算子对此转移si→sj执行变异操作,产生变异的转移sk→sj(k≠i)或者转移si→sk(k≠j)。
2)使用表达否定算子对此转移si→sj执行变异操作,将把此转移si→sj从初始PEFSM中删除。
3)使用变量否定算子对此转移si→sj的内部变量或输入报文的字段执行变异操作,将把此内部变量或输入报文的字段的值由合法值改为非法值。
这样,针对第二PEFSM中的每一个转移si→sj,将使用操作数引用算子、表达否定算子和变量否定算子来对此转移及其内部变量和输入/输出报文的字段执行变异操作,其中,每使用一个变异算子(操作数引用算子、表达否定算子或变量否定算子)执行了一次变异操作将产生一个变异的PEFSM,此变异的PEFSM中仅包括一个安全故障且与初始PEFSM不同。例如:如果使用操作引用算子对图4所示的PEFSM中的转移s2→s0(此转移为图3所示的初始PEFSM中的转移)执行变异操作,以使此转移s2→s0被变异为转移s2→s非法状态,则图4所示第二PEFSM将被变异为如下图5所示的变异的PEFSM。
步骤205:对此变异的PEFSM执行模型检测,以生成此变异的PEFSM中违反步骤203中生成的断言的一个或多个反例,此一个或多个反例被映射为用于进行模糊测试的测试套件。
在本实例中,采用NuSMV模型检测器作为产生模糊测试的测试套件的模型引擎,上述步骤205具体包括:
1)步骤204得到的变异的PEFSM通过NuSMV语言被翻译成NuSMV模型,NuSMV赋值约束(NuSMVASSIGN constraint)被用来表征PEFSM中的状态转移。本实例中的一个变异的PEFSM可被翻译成如下的NuSMV模型:
MODULE main
VAR
state:{s0,s1,s2,wormhole};
input :{I0,I1,I2,I3,I4,reset};
TYPE    :
Figure BDA0000045657780000121
output  :{null O0,O1,O2,O3,O4};
ASSIGN
init(state):=s0
next(state):=
case
state=s0&input=I0:s0
state=s0&input=I1:s1
state=s1&input=I2:s2
state=s2&input=I3:s2
state=s2&input=I4:wormhole;
state=wormhole:s0
1:state;
esac;
init(output):=null;
next(output):=
case
input=I0:O0
input=I1:O1
input=I2:O2
input=I3:O3
input=I4:O4
input=reset:null;
1:null;
esac;
init(input):={I0,I1};
next(input):=
case
state=s0&input={I0,I1};
state=s0&input=I1:I1
state=s1&input=I2:{I3,I4};
state=s2&input=I3:{I3,I4};
state=s2&input=I4:reset;
state=wormhole&input=reset:{I0,I1};
1:null;
esac;
init(TYPE):=null;
next(TYPE):=
case
state=s0&input=I0:t0
state=s0&input=I1:t1
state=s1&input=I2:t2
state=s2&input=I3:t3
state=s2&input=I4:t4
state = wormhole : t ‾ ;
1:null;
esac;
2)NuSMV模型检测器对步骤204生成的变异的PEFSM和步骤203生成的用于表征测试目的的断言执行模型检测,以发现变异的PEFSM中的违反断言的测试用例(也称为反例)。比如:NuSMV模型检测器发现变异的PEFSM违反断言!AG(si→wormhole)和AG(ik.TYPE=t0∨t1∨t2∨t3∨t4),则生成相应的反例。
3)将所得到的反例映射为用于模糊测试的测试套件。
具体的,由于所生成的反例对应一个转移路径,所以在本实例中反例被表示为在此转移路径上存在的输入/输出报文的标记,这里,将这些标记映射为相应的输入/输出报文,这些输入/输出报文构成测试套件中的一个报文序列。其中,将来自于经过变异操作的转移的输入报文的所有字段标记为“fuzzing”;如果被违反的断言可以更准确的识别输入报文的哪些字段与此断言违反相关,则这些字段将被标记为“fuzzing”;如果反例和/或变异的PEFSM可以给出造成断言违反的非法值,则模糊测试可以直接使用这些非法值来进行测试,即:在模糊测试中在相应的输入报文的字段填入此非法值。
进一步的,为了改善效率,可在执行模型检测之前和/或执行模型检测之后对测试套件执行优化处理,以消除其中冗余的测试套件。
步骤206:利用步骤205得到的测试套件对IUT进行模糊测试,以检测此IUT中是否存在对应的安全漏洞。
具体的,针对一个测试套件,协议安全测试将按如下方式执行:
1)针对输入报文中被标记为“fuzzing”的字段,将预定义的测试值或步骤205中所述造成断言违反的非法值注入此输入报文的字段来构成一个用于模糊测试的变异报文。
2)依次发送测试套件中的每一个输入报文到IUT。
3)接收来自IUT的响应报文,每收到一个响应报文,即将此响应报文与测试套件中相应的期望的输出报文做比较,检查此响应报文是否与测试套件中相应的输出报文是否一致,如果检查出此响应报文与此期望的输出报文不一致,则可判断IUT出现了相应的安全故障。
4)在上述测试报文发送和比较结束之后,发送正常的探测报文至IUT以检查IUT是否处于系统性故障或未定义的状态。如果发现IUT非正常,则可发现安全漏洞,并且当前的被注入了特定测试实例的测试套件就为可被作为用于用来发现安全漏洞的滥用脚本。
在本实例中,步骤204至206采用交互方式执行,即:每当在步骤204中通过执行变异操作而得到了一个变异的协议状态模型、且在步骤205中对此变异的协议状态模型进行模型检测可生成一个测试套件,则在步骤206中使用此测试套件,通过向其中指定报文的指定字段注入不同的非法值来进行模糊测试。因此,当利用当前测试套件执行完模糊测试之后,将返回步骤204来生成下一测试套件并执行模糊测试,此过程将重复执行直到所有可能的测试套件均已生成并已被测试过。
基于上述协议安全测试方法,本发明实施例还提出了一种对协议实现进行安全测试装置。如图6所示,该装置包括:
第一映射模块601,用于将协议实现所基于的协议规范映射为第一协议状态模型;
非法状态模块602,用于向第一映射模块601得到第一协议状态模型引入非法状态以形成第二协议状态模型;在此第二协议状态模型中,此非法状态对应于协议实现出现的安全故障;
断言模块603,用于利用断言来表征来自非法状态模块602的第二协议状态模型和/或来自第一映射模块601的第一协议状态模型的测试目的;
变异模块604,用于对来自非法状态模块602的第二协议状态模型执行变异操作,从而生成变异的协议状态模型;
检测模块605,用于利用断言模块603得到的断言对变异模块604生成的变异的协议状态模型执行模型检测,以生成至少一个测试套件;及,
测试模块606,用于利用检测模块605得到的至少一个测试套件对此协议实现进行模糊测试,以检测此协议实现中是否存在与所述测试套件对应的安全漏洞。
本实施例中,检测模块605具体用于通过模型检测,将变异的协议状态模型中违反上述断言的一个或多个反例映射为至少一个测试套件。具体的,映射时,反例与测试套件可以是一对一、一对多、多对一或者多对多的对应关系。优选的,检测模块605将一个反例映射为一个测试套件,且且该一个反例对应所述变异的协议状态模型中的一条转移路径,该转移路径由一个或多个转移构成,且该转移路径上存在一个或多个输入报文及其对应的一个或多个输出报文,该一个反例映射为的测试套件包括该转移路径上存在的所述一个或多个输入报文及其对应的一个或多个输出报文。
优选的,为了全面覆盖安全漏洞,检测模块605将每一个反例都映射为一个测试套件。进一步,该装置还可以包括优化模块607,用于对上述测试套件进行优化,以去除冗余的测试套件,从而可以提高模糊测试的效率。
具体的,第一映射模块601具体用于采用形式化的方法将所述协议实现所基于的协议规范映射为所述第一协议状态模型。
具体的,第一映射模块601具体用于采用形式化的方法将所述协议实现所基于的协议规范映射为PEFSM或者IOLTS。
本实施例中,断言模块603例如可以包括以下子模块之一或其任意组合:第一断言子模块,用于基于给定的测试目的定义断言;第二断言子模块,用于根据安全测试领域的知识定义断言;以及,第三断言子模块,用于从所述第一协议状态模型中反射出断言。
本实施例中,变异模块604具体用于利用变异算子对第二协议状态模型中的至少一个转移和/或至少一个逻辑运算执行变异操作。
具体的,变异模块604例如包括以下子模块之一或其任意组合:第一变异子模块,用于对所述第二协议状态模型中的至少一个转移的本身执行变异操作;第二变异子模块,用于对所述第二协议状态模型中的至少一个转移对应的输入报文和/或输出报文的字段执行变异操作;第三变异子模块,用于对所述第二协议状态模型中的至少一个转移相关的内部变量执行变异操作;第四变异子模块,用于对所述第二协议状态模型中的至少一个逻辑运算中的内部变量执行变异操作。
本实施例中,测试模块606例如包括:发送子模块,用于向所述协议实现依次发送该测试套件中的输入报文;接收子模块,用于接收来自所述协议实现的响应报文;第一判断子模块,用于在所收到的任一响应报文与该测试套件中对应的输出报文不一致时,确定所述协议实现存在与该输入报文对应的安全漏洞。
本实例中,测试模块606例如可以包括上述发送子模块、接收子模块以及第二判断子模块,该第二判断子模块用于在所述协议实现处于非正常状态时确定所述协议实现存在与该输入报文对应的安全漏洞。
本实施例中,测试模块606例如还可以包括上述发送子模块、接收子模块、第一判断子模块和第二判断子模块。
本实施例中,该装置进一步还可以包括报文输入模块。该报文输入模块包括:确定子模块,用于利用被违反的断言确定应向所述测试套件中注入模糊数据的输入报文的字段;以及注入子模块,用于向确定的输入报文的字段中注入模糊数据。
具体的,变异模块604、检测模块605和测试模块606之间的可采用两种工作方式:
一、批处理方式
当变异模块604已生成所有的变异的协议状态模型并且检测模块605已通过执行模型检测而得到针对所有的变异的协议状态模块的所有测试套件后,测试模块606再以批处理的方式利用所有测试套件进行模糊测试。
二、交互处理方式
每当变异模块604生成一个变异的协议状态模块并且检测模块605对此变异的协议状态模型执行模型检测而得到针对此变异的协议状态模型的一个或多个测试套件,测试模块606即利用针对此变异的协议状态模型的一个或多个测试套件进行模糊测试。
可选的,断言模块603在得到表征测试目的的断言之后,可进一步优化这些断言,以去除其中冗余的断言。
可选的,上述装置还可对协议实现进行协议一致性测试。此时,变异模块604可进一步对断言模块603得到的断言执行变异操作,以生成变异的断言;检测模块605可进一步利用变异模块604生成的变异的断言对第一映射模块601得到的第一协议状态模型执行模型检测,以得到用于一致性测试的一个或多个测试套件;及,测试模块606可进一步利用检测模块605得到的用于一致性测试的一个或多个测试套件对此协议实现进行一致性测试以发现其中与协议规范不一致的漏洞。
本实施例提供的装置可以执行上述方法实施例中所提供的方法实施例。因此,上述各个模块实现其功能的具体方法在前述各个实施例中均已详述,这里不再重复。
此外,上述协议安全测试装置可以实现为硬件设备,也可以以软件的方式实现为虚拟装置,该虚拟装置可运行在一计算机设备中以实现协议安全测试。
在本发明实施例中,基于协议规范的形式化方法在协议安全测试中起着重要的作用,协议规范可被用来指导用于自动检查IUT的安全故障的反例的自动生成,因此,能显著减轻利用反例的协议安全测试的工作量,进而能显著提高协议安全测试的效率,并且本发明实施例所提出的技术方案易于实现且与协议的具体实现相互独立,具有较强的可实施性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种对协议实现进行安全测试的方法,所述方法包括:
将协议实现所基于的协议规范映射为第一协议状态模型;
向所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态与所述协议实现出现的安全故障相对应;
利用断言来表征所述第一协议状态模型和/或第二协议状态模型的测试目的;
对所述第二协议状态模型执行变异操作,从而生成变异的协议状态模型;
根据所述断言对所述变异的协议状态模型执行模型检测,以生成至少一个测试套件;以及,
利用所述测试套件对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述测试套件对应的安全漏洞。
2.根据权利要求1所述的方法,其中,所述将协议实现所基于的协议规范映射为第一协议状态模型,包括:
采用形式化的方法将所述协议实现所基于的协议规范映射为所述第一协议状态模型。
3.根据权利要求2所述的方法,其中,所述第一协议状态模型为参数化的扩展有限状态机PEFSM或者输入/输出标号转移系统IOLTS。
4.根据权利要求1所述的方法,其中,所述利用断言来表征的所述第一协议状态模型和/或所述第二协议状态模型的测试目的,包括:
基于给定的测试目的定义断言;和/或,
根据安全测试领域的知识定义断言;和/或,
从所述第一协议状态模型中反射出断言。
5.根据权利要求1所述的方法,其中,所述对所述第二协议状态模型执行变异操作,包括:
利用变异算子对所述第二协议状态模型中的至少一个转移和/或至少一个逻辑运算执行变异操作。
6.根据权利要求5所述的方法,其中,
所述利用变异算子对所述第二协议状态模型中的至少一个转移执行变异操作,包括以下之一或其任意组合:对所述至少一个转移本身执行变异操作,对所述至少一个转移对应的输入报文和/或输出报文的字段执行变异操作,对与所述至少一个转移相关的内部变量执行变异操作;和/或,
所述利用变异算子对所述第二协议状态模型中的至少一个逻辑运算执行变异操作,包括:对所述一个逻辑运算中的内部变量执行变异操作。
7.根据权利要求1至6中任一项所述的方法,其中,所述根据所述断言对所述变异的协议状态模型执行模型检测,包括:
将所述变异的协议状态模型中违反所述断言的一个或多个反例映射为所述至少一个测试套件。
8.根据权利要求7所述的方法,其中,
所述一个或多个反例中的每一个反例被映射为一个测试套件;所述一个或者多个反例中的一个反例对应所述变异的协议状态模型中的一条转移路径,该转移路径由一个或多个转移构成,且该转移路径上存在一个或多个输入报文及其对应的一个或多个输出报文,该一个反例映射为的测试套件包括该转移路径上存在的所述一个或多个输入报文及其对应的一个或多个输出报文;以及,
所述利用所述测试套件对所述协议实现进行模糊测试,包括:针对每一测试套件,执行如下处理:
向所述协议实现依次发送该测试套件中的输入报文;及,
接收来自所述协议实现的响应报文,如果所收到的任一响应报文与该测试套件中对应的输出报文不一致,或者,如果所述协议实现处于非正常状态,则确定所述协议实现存在与该输入报文对应的安全漏洞。
9.根据权利要求8所述的方法,其中,在所述向所述协议实现依次发送该测试套件中的输入报文之前,所述方法进一步包括:
利用被违反的断言确定应向所述测试套件中注入模糊数据的输入报文的字段;
向确定的输入报文的字段中注入模糊数据。
10.根据权利要求1至6中任一项所述的方法,在所述利用所述测试套件对所述协议实现进行模糊测试之前,所述方法进一步包括:对所述测试套件进行优化处理,以去除冗余的测试套件。
11.一种对协议实现进行安全测试的装置,所述装置包括:
第一映射模块,用于将协议实现所基于的协议规范映射为第一协议状态模型;
非法状态模块,用于向所述第一映射模块得到的所述第一协议状态模型引入非法状态以形成第二协议状态模型;其中,所述非法状态对应于所述协议实现出现的安全故障;
断言模块,用于利用断言来表征来自所述非法状态模块的所述第二协议状态模型和/或来自所述第一映射模块的所述第一协议状态模型的测试目的;
变异模块,用于对来自所述非法状态模块的所述第二协议状态模型执行变异操作,从而生成变异的协议状态模型;
检测模块,用于利用所述断言模块得到的断言对所述变异模块生成的所述变异的协议状态模型执行模型检测,以生成至少一个测试套件;及,
测试模块,用于利用所述检测模块得到的所述测试套件对所述协议实现进行模糊测试,以检测所述协议实现中是否存在与所述测试套件对应的安全漏洞。
12.根据权利要求11所述的装置,其中,所述第一映射模块,具体用于采用形式化的方法将所述协议实现所基于的协议规范映射为第一协议状态模型,且所述第一协议状态模型为参数化的扩展有限状态机PEFSM或者输入/输出标号转移系统IOLTS。
13.根据权利要求11所述的装置,其中,所述断言模块包括以下子模块之一或其任意组合:
第一断言子模块,用于基于给定的测试目的定义断言;第二断言子模块,用于根据安全测试领域的知识定义断言;以及,第三断言子模块,用于从所述第一协议状态模型中反射出断言。
14.根据权利要求11所述的装置,其中,所述变异模块包括以下子模块之一或其任意组合:
第一变异子模块,用于对所述第二协议状态模型中的至少一个转移的本身执行变异操作;
第二变异子模块,用于对所述第二协议状态模型中的至少一个转移对应的输入报文和/或输出报文的字段执行变异操作;
第三变异子模块,用于对所述第二协议状态模型中的至少一个转移相关的内部变量执行变异操作;
第四变异子模块,用于对所述第二协议状态模型中的至少一个逻辑运算中的内部变量执行变异操作。
15.根据权利要求11所述的装置,其中,所述检测模块,具体用于将所述变异的协议状态模型中违反所述断言的一个或者多个反例映射为所述至少一个测试套件,其中一个反例被映射为一个测试套件,且该一个反例对应所述变异的协议状态模型中的一条转移路径,该转移路径由一个或多个转移构成,且该转移路径上存在一个或多个输入报文及其对应的一个或多个输出报文,该一个反例映射为的测试套件包括该转移路径上存在的所述一个或多个输入报文及其对应的一个或多个输出报文。
16.根据权利要求11至15中任一项所述的装置,其中,所述装置进一步包括:
所述优化模块,用于对所述测试套件进行优化,以去除冗余的测试套件。
CN201110030260.XA 2011-01-27 2011-01-27 一种对协议实现进行安全测试的方法及装置 Expired - Fee Related CN102624574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110030260.XA CN102624574B (zh) 2011-01-27 2011-01-27 一种对协议实现进行安全测试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110030260.XA CN102624574B (zh) 2011-01-27 2011-01-27 一种对协议实现进行安全测试的方法及装置

Publications (2)

Publication Number Publication Date
CN102624574A true CN102624574A (zh) 2012-08-01
CN102624574B CN102624574B (zh) 2015-07-01

Family

ID=46564265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110030260.XA Expired - Fee Related CN102624574B (zh) 2011-01-27 2011-01-27 一种对协议实现进行安全测试的方法及装置

Country Status (1)

Country Link
CN (1) CN102624574B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
CN104391788A (zh) * 2014-11-07 2015-03-04 北京交控科技有限公司 一种基于状态模型的安全通信协议测试方法及系统
CN107579871A (zh) * 2017-07-24 2018-01-12 清华大学 基于模型检测的分布式测试脚本的生成方法与生成系统
CN107666415A (zh) * 2017-09-07 2018-02-06 北京京东尚科信息技术有限公司 Fc‑ae‑1553 协议桥的优化方法和装置
CN108011743A (zh) * 2017-07-28 2018-05-08 北京经纬恒润科技有限公司 一种故障注入的方法及装置
CN108400978A (zh) * 2018-02-07 2018-08-14 深圳壹账通智能科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN110365678A (zh) * 2019-07-15 2019-10-22 北京工业大学 一种基于反样本的工控网络协议漏洞挖掘方法
CN110752966A (zh) * 2019-10-08 2020-02-04 南京南瑞继保电气有限公司 网络协议安全测试方法及装置、电子设备及存储介质
CN111628900A (zh) * 2019-02-28 2020-09-04 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN115174143A (zh) * 2022-05-30 2022-10-11 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法
CN115174441A (zh) * 2022-09-06 2022-10-11 中国汽车技术研究中心有限公司 基于状态机的tcp模糊测试方法、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060268724A1 (en) * 2005-05-24 2006-11-30 Ravindra Viswanath Using Open Vera Assertions to verify designs
CN101388807A (zh) * 2008-05-22 2009-03-18 清华大学 基于报文变异的协议鲁棒性测试生成方法
CN101859274A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种进行模糊测试的方法及系统
CN101872323A (zh) * 2009-04-22 2010-10-27 曾凡平 一种基于虚拟机的故障注入测试方法
US20100287535A1 (en) * 2009-05-08 2010-11-11 Electronics And Telecommunications Research Institute System and method for testing software reliability using fault injection
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060268724A1 (en) * 2005-05-24 2006-11-30 Ravindra Viswanath Using Open Vera Assertions to verify designs
CN101388807A (zh) * 2008-05-22 2009-03-18 清华大学 基于报文变异的协议鲁棒性测试生成方法
CN101859274A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种进行模糊测试的方法及系统
CN101872323A (zh) * 2009-04-22 2010-10-27 曾凡平 一种基于虚拟机的故障注入测试方法
US20100287535A1 (en) * 2009-05-08 2010-11-11 Electronics And Telecommunications Research Institute System and method for testing software reliability using fault injection
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王乐春,龚正虎,陈建荣: "基于错误注入技术的协议实现鲁棒性测试体系结构", 《计算机工程与应用》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812729B (zh) * 2014-02-19 2017-02-08 北京理工大学 一种网络协议模糊测试方法和装置
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
CN104391788A (zh) * 2014-11-07 2015-03-04 北京交控科技有限公司 一种基于状态模型的安全通信协议测试方法及系统
CN107579871B (zh) * 2017-07-24 2020-05-01 清华大学 基于模型检测的分布式测试脚本的生成方法与生成系统
CN107579871A (zh) * 2017-07-24 2018-01-12 清华大学 基于模型检测的分布式测试脚本的生成方法与生成系统
CN108011743A (zh) * 2017-07-28 2018-05-08 北京经纬恒润科技有限公司 一种故障注入的方法及装置
CN108011743B (zh) * 2017-07-28 2020-09-29 北京经纬恒润科技有限公司 一种故障注入的方法及装置
CN107666415B (zh) * 2017-09-07 2020-11-03 北京京东尚科信息技术有限公司 Fc-ae-1553协议桥的优化方法和装置
CN107666415A (zh) * 2017-09-07 2018-02-06 北京京东尚科信息技术有限公司 Fc‑ae‑1553 协议桥的优化方法和装置
CN108400978A (zh) * 2018-02-07 2018-08-14 深圳壹账通智能科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN108400978B (zh) * 2018-02-07 2021-08-06 深圳壹账通智能科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN111628900A (zh) * 2019-02-28 2020-09-04 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN111628900B (zh) * 2019-02-28 2023-08-29 西门子股份公司 基于网络协议的模糊测试方法、装置和计算机可读介质
CN110365678A (zh) * 2019-07-15 2019-10-22 北京工业大学 一种基于反样本的工控网络协议漏洞挖掘方法
CN110752966A (zh) * 2019-10-08 2020-02-04 南京南瑞继保电气有限公司 网络协议安全测试方法及装置、电子设备及存储介质
CN115174143A (zh) * 2022-05-30 2022-10-11 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法
CN115174143B (zh) * 2022-05-30 2024-01-26 西南交通大学 一种基于安全协议的网络空间安全可信性验证方法
CN115174441A (zh) * 2022-09-06 2022-10-11 中国汽车技术研究中心有限公司 基于状态机的tcp模糊测试方法、设备和存储介质

Also Published As

Publication number Publication date
CN102624574B (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
CN102624574B (zh) 一种对协议实现进行安全测试的方法及装置
CN103036730B (zh) 一种对协议实现进行安全测试的方法及装置
Felderer et al. Model‐based security testing: a taxonomy and systematic classification
Wang et al. Charting the attack surface of trigger-action IoT platforms
Trinh et al. S3: A symbolic string solver for vulnerability detection in web applications
Alhanahnah et al. Scalable analysis of interaction threats in iot systems
Zonouz et al. Detecting industrial control malware using automated PLC code analytics
Hooimeijer et al. A decision procedure for subset constraints over regular languages
Le Goues et al. Genprog: A generic method for automatic software repair
US20130339930A1 (en) Model-based test code generation for software testing
US8572747B2 (en) Policy-driven detection and verification of methods such as sanitizers and validators
Alkhalaf et al. Viewpoints: differential string analysis for discovering client-and server-side input validation inconsistencies
Jing et al. Model-based conformance testing for android
Ma et al. Model checking based security policy verification and validation
Caso et al. Enabledness-based program abstractions for behavior validation
Reger Automata based monitoring and mining of execution traces
Homaei et al. Athena: A framework to automatically generate security test oracle via extracting policies from source code and intended software behaviour
Amankwah et al. Bug detection in Java code: An extensive evaluation of static analysis tools using Juliet Test Suites
Calvagna et al. Automated conformance testing of Java virtual machines
Yang et al. Information gain of black-box testing
Bhurke et al. Methods of Formal Analysis for ICS Protocols and HART-IP CPN modelling
Wang et al. An empirical study on real bug fixes from solidity smart contract projects
CN101833505B (zh) 一种软件系统安全缺陷检测方法
Büchler et al. Model inference and security testing in the spacios project
Aiguier et al. Exhaustive test sets for algebraic specifications

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150701

Termination date: 20180127

CF01 Termination of patent right due to non-payment of annual fee