CN103324573A - 一种基于GUI协议状态机建模的Peach平台扩展方法 - Google Patents
一种基于GUI协议状态机建模的Peach平台扩展方法 Download PDFInfo
- Publication number
- CN103324573A CN103324573A CN2013102746638A CN201310274663A CN103324573A CN 103324573 A CN103324573 A CN 103324573A CN 2013102746638 A CN2013102746638 A CN 2013102746638A CN 201310274663 A CN201310274663 A CN 201310274663A CN 103324573 A CN103324573 A CN 103324573A
- Authority
- CN
- China
- Prior art keywords
- state machine
- pitfile
- protocol
- peach
- scxml
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种扩展Peach平台中基于模型测试的方法,该方法:描述协议状态机的图形用户界面以及建模过程;图形格式的协议状态机到SCXML格式的状态机之间的转换;SCXML格式的状态机到Peach内部PitFile状态机之间的转换。本发明分离了协议测试过程中不同性质的工作:创造性的研究工作由协议安全专家完成,繁琐的PitFile语法学习以及机械的PitFile文件编写工作由计算机实现,从而极大的提高了协议安全专家的工作效率。此外,由于本方法采用SCXML作为中间文件关联图形用户界面与PitFile,因此具有很强的扩展性,该方法简单有效,便于实施操作。
Description
技术领域
本发明涉及计算机技术领域,特别是指基于协议模型的网络协议测试方法。
背景技术
网络安全问题目前已经得到人们的充分重视,协议健壮性测试是保证网络软件质量的有效措施。如何以最小的开销发现隐藏在网络软件中的缺陷是网络安全领域的一个重要研究方向。通常情况下,网络协议规范定义两方面的内容:报文内部的格式规范和报文之间的时序规范。因此,协议的健壮性测试也是基于这两方面展开的,而且目前主要集中于报文内部格式规范的测试,基于报文时序规范(即协议状态机)的测试刚处于起步阶段。
在网络健壮性测试领域中,有多款测试工具或平台,例如Scapy、AppScan、Nessus、Spike和Peach等。其中,Scapy用于测试底层协议;AppScan用于测试Web应用;Nessus用于回归测试已知的软件缺陷;Spike虽然可以挖掘软件的″0-day″缺陷,但是其代码逻辑与测试数据紧耦合在一起,不容易扩展;Peach目前是协议测试领域中最活跃的一个社区,而且很多学术研究成果扩展了它现有的功能。
Peach不仅可以对报文格式规范进行测试,而且已经初步支持基于协议状态机的测试,测试人员通过Peach内部支持的PitFile文件可以达到各种测试目的。然而,PitFile的语法是一种基于XML的语言,用其描述的协议状态机不够直观,此外协议安全专家需要将部分精力放在学习繁琐的语法细节上,而不是网络协议状态机的描述上,增加了工作负担而且容易出错。
本发明的出发点是实现协议测试中不同性质工作的分离:创造性的研究工作由协议安全专家完成,繁琐的PitFile语法学习以及机械的PitFile文件编写工作由计算机实现。即为协议安全专家提供方便的图形界面建模工具,避免学习繁琐的语法知识编写PtiFile文件,从而将精力集中于协议状态机的描述以及基于状态机的测试上。由于Peach发展较快,其2.3.7版是基于Python开发的,而3.0.133版则是基于C#开发的,PitFile的功能与标签含义改动也较大,本发明是针对3.0.133版本,特此说明。
发明内容
有鉴于此,本发明在于提供一种基于GUI协议状态机建模的Peach平台扩展方法,以减轻协议安全专家学习繁琐语法并编写PitFile文件的工作,从而将精力集中在协议状态机描述和测试任务的需求上。此外,提供了″所见即所得″的图形用户界面,用户可以更方便地编辑协议状态机以及各个状态的约束条件和属性,在直观方便工作的同时,也降低了由于直接编写PitFile而出错的可能性。
为解决上述问题,本发明提供一种基于GUI协议状态机建模的Peach平台扩展方法,其特征在于,包括:提供用于描述有限状态机的图形用户界面,该界面定义了状态之间迁移的触发条件以及各个状态的约束和属性等;触发条件是指收到或发出的特定报文,每个报文存储成单独的xml文件,文件名是报文名称,文件内容与wireshark风格类似,支持嵌套和并列结构;提供界面展现的状态机到SCXML语法描述状态机之间的转换算法;提供SCXML描述状态机和XML格式网络报文到Peach内部PitFile描述状态机的转换算法。
根据用户在图形界面下描述的协议状态机以及各状态的约束和属性,自动生成等价的PitFile文件。协议安全专家可以用生成的PitFile文件直接在Peach平台上对网络软件进行基于模型的测试,从而避免了直接编写PitFile文件的繁琐工作,减少了调试PitFile的时间和出错机会。
基于GUI协议状态机建模功能的实现可以在现有开源工程(例如Oryx)的基础上修改,也可以利用C#或Java等控件实现,只要满足拖拽和连线等基本功能即可。当完成协议状态机的编辑后,点击保存按钮,后台程序将依次调用两个核心引擎:convert_gui_to_scxml和convert_scxml_to_pitfile,从而生成基于SCXML的中间文件和最终的PitFile文件。点击测试按钮,本发明直接将PitFile加载到Peach平台上对待测网络软件进行基于模型的测试。
convert_gui_to_scxml引擎实现图形界面状态机到SCXML状态机转换功能。首先,该引擎依次遍历界面的每个状态,生成对应的<state>标签;其次,对每个状态迁移线添加到对应的<transition>标签中,如果需要对特殊字段赋值则添加到<assign>标签中;最后对全局的属性或参数,赋值到<data-set>标签下。
convert_scxml_to_pitfile引擎实现SCXML状态机和XML报文到PitFile状态机的等价转换。首先,将每个XML报文内容转化成PitFile中对应的<DataModel>标签;其次,在PitFile中生成<StateModel>标签,并将SCXML中的各个<state>转化成对应的<State>;再次,将SCXML中的event和target属性转化为PitFile的<Action>标签;最后,添加<Test>标签,即定义测试过程的具体参数。
本发明的方法可有效地降低协议安全专家使用Peach进行基于模型测试的难度,避免了学习PitFile语法的琐碎细节,从而将精力集中在协议状态机模型的描述上,减轻了工作负担。此外,由于本方法提供了直观的状态机描述界面,并且自动生成等价的PitFile文件,从而减少了直接书写PitFile的调试时间并降低了引入错误的机会。该方法实现了创造性工作与机械性工作的相分离,因此简单有效,便于实施操作。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1协议建模界面;
图2SCXML基本格式;
图3PitFile基本格式;
图4GUI格式的ISAKMP协议状态机;
图5XML格式的ISAKMP协议IPSAAck报文;
图6SCXML格式的ISAKMP协议状态机;
图7PitFile格式的ISAKMP协议状态机;
具体实施方式
为清楚说明本发明的技术方案,下面给出具体地使用实例并结合附图详细说明。
本发明假设协议状态的迁移都是确定的,即确定的输入或输出报文对应确定的状态迁移,不存在状态间的概率跳转问题。在此,以ISAKMP(Internet Security Association and Key Management Protocol)协议为例说明本发明的具体使用步骤:
步骤1:参考ISAKMP的协议规范并搭建相应的测试环境,使得网络实体之间能够基于ISAKMP协议进行正常地通信。
步骤2:在网络实体进行正常通信时,用wireshark捕获其通信流量,并将每一个报文保存成xml格式的文件,具体格式规范参考图5所示。
步骤3:使用基于GUI的图形界面对ISAKMP协议状态机进行建模,具体规则如下:
√以初始状态作为协议状态机的起始点
√每当收到或发出一个报文时,创建一个新的状态,并在右侧区域编辑该状态属性,例如名称、约束条件等。
√用迁移线连接两个状态,并指明迁移的触发条件,即发送或接收到的具体报文,同时上传报文内容到程序内部。
√当状态机描述完成时,点击保存,生成对应的SCXML文件和PitFile文件。
步骤4:点击测试按钮,将PitFile文件加载到Peach平台,直接对待测的网络软件进行测试。
步骤5:如果需要使用某个以前编辑过的协议状态机,直接打开对应的SXCML文件就可以在以前的基础上继续编辑并测试。
对于本发明所阐述的方法,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.基于GUI协议状态机建模的Peach平台扩展方法,其特征在于,包括:提供用于描述协议状态机的图形用户界面,该界面定义了状态迁移的触发条件以及每个状态的约束和属性等;触发条件是指收到或发出的特定报文,每个报文存储成单独的XML文件,文件名是报文名称,文件内容与wireshark风格类似,支持嵌套和并列结构;提供图形格式的状态机到SCXML语法描述状态机的转换算法;提供SCXML描述状态机和XML描述网络报文到Peach内部PitFile状态机的转换算法。
根据用户在图形界面下描述的协议状态机以及各状态的约束和属性,自动生成等价的PitFile文件。协议安全专家可以用生成的PitFile文件直接在Peach平台上对网络软件进行基于模型的测试,从而避免了直接编写PitFile文件的繁琐工作。
2.根据权利要求1所述的方法,其特征在于,所描述的协议模型为确定型有限状态机,即在特定条件下每个状态的跳转是确定的,而不是概率有限状态机。
3.根据权利要求1所述的方法,其特征在于,还包括:图形用户界面可以基于软件开发平台自带的控件(例如Visual Studio或Java控件),也可以基于建模的开源项目(例如Oryx),只要具备拖拽和连线的功能即可。
4.根据权利要求1所述的方法,其特征在于,还包括:图形界面到SCXML转换与SCXML到PitFile的转换是独立的过程,这就使得本发明只对后一过程做修改就可以轻易支持其他基于模型测试的平台,例如Nessus的NASL脚本等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102746638A CN103324573A (zh) | 2013-07-02 | 2013-07-02 | 一种基于GUI协议状态机建模的Peach平台扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102746638A CN103324573A (zh) | 2013-07-02 | 2013-07-02 | 一种基于GUI协议状态机建模的Peach平台扩展方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103324573A true CN103324573A (zh) | 2013-09-25 |
Family
ID=49193332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102746638A Pending CN103324573A (zh) | 2013-07-02 | 2013-07-02 | 一种基于GUI协议状态机建模的Peach平台扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324573A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133684A (zh) * | 2014-08-04 | 2014-11-05 | 浪潮通用软件有限公司 | 一种基于状态机的用户图形界面状态控制方法 |
CN104517056A (zh) * | 2014-12-09 | 2015-04-15 | 北京邮电大学 | 一种扩展Peach平台同时测试多个网络报文字段的方法 |
CN105447389A (zh) * | 2015-11-11 | 2016-03-30 | 北京邮电大学 | 基于Peach平台的漏洞定位与快速重现 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564489A (zh) * | 2004-04-19 | 2005-01-12 | 中兴通讯股份有限公司 | 一种通信***有限状态机的测试方法 |
CN1708017A (zh) * | 2004-06-04 | 2005-12-14 | 安捷伦科技有限公司 | 协议仿真器 |
CN1812347A (zh) * | 2005-01-24 | 2006-08-02 | 华为技术有限公司 | 基于模型转换的协议正确性验证和测试方法 |
CN101950271A (zh) * | 2010-10-22 | 2011-01-19 | 中国人民解放军理工大学 | 一种基于建模技术的软件安全性测试方法 |
CN101968769A (zh) * | 2010-10-22 | 2011-02-09 | 中国人民解放军理工大学 | 一种基于行为模型的软件安全性测试用例生成方法 |
CN102014016A (zh) * | 2010-08-31 | 2011-04-13 | 北京邮电大学 | 一种网络协议缺陷测试***及方法 |
CN102404767A (zh) * | 2011-11-17 | 2012-04-04 | 西安电子科技大学 | 基于随机性测试的wsn协议安全性测试体系结构 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及*** |
DE102012217705A1 (de) * | 2011-09-29 | 2013-04-04 | Siemens Aktiengesellschaft | Verfahren, Vorrichtung und System zur Durchführung von Fuzz- Testing |
-
2013
- 2013-07-02 CN CN2013102746638A patent/CN103324573A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564489A (zh) * | 2004-04-19 | 2005-01-12 | 中兴通讯股份有限公司 | 一种通信***有限状态机的测试方法 |
CN1708017A (zh) * | 2004-06-04 | 2005-12-14 | 安捷伦科技有限公司 | 协议仿真器 |
CN1812347A (zh) * | 2005-01-24 | 2006-08-02 | 华为技术有限公司 | 基于模型转换的协议正确性验证和测试方法 |
CN102014016A (zh) * | 2010-08-31 | 2011-04-13 | 北京邮电大学 | 一种网络协议缺陷测试***及方法 |
CN101950271A (zh) * | 2010-10-22 | 2011-01-19 | 中国人民解放军理工大学 | 一种基于建模技术的软件安全性测试方法 |
CN101968769A (zh) * | 2010-10-22 | 2011-02-09 | 中国人民解放军理工大学 | 一种基于行为模型的软件安全性测试用例生成方法 |
DE102012217705A1 (de) * | 2011-09-29 | 2013-04-04 | Siemens Aktiengesellschaft | Verfahren, Vorrichtung und System zur Durchführung von Fuzz- Testing |
CN102404767A (zh) * | 2011-11-17 | 2012-04-04 | 西安电子科技大学 | 基于随机性测试的wsn协议安全性测试体系结构 |
CN102647414A (zh) * | 2012-03-30 | 2012-08-22 | 华为技术有限公司 | 协议解析方法、设备及*** |
Non-Patent Citations (1)
Title |
---|
赵丽娟,温巧燕,张华: "基于Peach的协议测试设计与实现", 《中国科技论文在线》, 3 January 2011 (2011-01-03), pages 1 - 6 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133684A (zh) * | 2014-08-04 | 2014-11-05 | 浪潮通用软件有限公司 | 一种基于状态机的用户图形界面状态控制方法 |
CN104517056A (zh) * | 2014-12-09 | 2015-04-15 | 北京邮电大学 | 一种扩展Peach平台同时测试多个网络报文字段的方法 |
CN105447389A (zh) * | 2015-11-11 | 2016-03-30 | 北京邮电大学 | 基于Peach平台的漏洞定位与快速重现 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198009B (zh) | 一种通用测试方法、***及相应装置 | |
CN106371813B (zh) | 一种基于Simulink的电动汽车电机控制器软件生成方法 | |
CN102622234B (zh) | 一种自动化测试用例的开发***及开发方法 | |
CN102156673B (zh) | 面向测试用例描述的gui自动化测试***及其测试方法 | |
CN102375778B (zh) | 实现数字信号处理器自动测试的方法及*** | |
CN104679488A (zh) | 一种流程定制开发平台及流程定制开发方法 | |
CN102866944B (zh) | 一种压力测试***及方法 | |
Picco | Software engineering and wireless sensor networks: Happy marriage or consensual divorce? | |
CN102662644B (zh) | 一种使用流程图生成测试案例的方法 | |
CN110389898A (zh) | 测试策略的获取方法、装置、终端及计算机可读存储介质 | |
CN102014016A (zh) | 一种网络协议缺陷测试***及方法 | |
CN103777944A (zh) | 一种基于Eclipse的MIPS平台集成开发环境及其实现方法 | |
CN103605660B (zh) | 一种变电站配置描述文件的图形化处理方法 | |
CN103544100A (zh) | 便携数据处理设备应用程序的测试方法、***和客户端 | |
CN102567201A (zh) | 跨模型的图形用户界面测试脚本自动修复方法 | |
CN101673198A (zh) | 一种验证uml模型中动态行为与时序契约的一致性的方法 | |
CN103353857A (zh) | 一种变电站综合监测单元的通信测试方法 | |
CN103324573A (zh) | 一种基于GUI协议状态机建模的Peach平台扩展方法 | |
CN107577709B (zh) | 一种信息***资源模型的图形化管理方法 | |
CN100437513C (zh) | 实现自动测试的方法与*** | |
CN105205039A (zh) | 一种可定制的scd文件校验方法 | |
CN105760300A (zh) | 一种stk/utk业务的自动化测试方法及测试*** | |
CN103699478A (zh) | 一种测试案例生成***和方法 | |
CN102750143A (zh) | 基于matlab com组件调用的dsp开发方法 | |
CN105988863A (zh) | 一种处理事件的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130925 |