Web服务测试技术综述
- 格式:pdf
- 大小:270.69 KB
- 文档页数:6
1引言Benchmark作为一种评价方式,在计算机领域有着长期的应用。
Benchmark,一般译成基准或标杆,按牛津百科全书的解释,Benchmark是指测试人员在岩石、混凝土立柱等上面刻下的标记,用以测量相对高度等,也称(供比较参照之用)样板或参照点。
Benchmark测试的着眼点是测试结果的可比性,即按照统一的测试规范(testspecification)对被测试系统进行测试,测试结果之间具有可比性,并可再现测试结果。
1.1应用领域Benchmark测试在计算机领域中最广泛和最成功的应用是性能测试,主要测试响应时间、传输速率和吞吐量等。
此外,它也用于功能、可操作性和数据处理开发易用性等方面的测试[1]。
按照Benchmark的思想,它还可以有更广泛的用途,但目前性能以外有影响的Benchmark测试很少。
Benchmark测试有些偏重于硬件,有些偏重于软件,还有些注重整个系统。
在硬件方面广泛应用于评价CPU、内存、I/O接口和外围设备的性能,主要测试两个方面性能指标:一是硬件传输数据的带宽,称为带宽基准测试(Bandwidthbenchmark);二是数据传输的延迟,称为延迟基准测试(Latencybenchmark)。
在软件方面,它用于评价操作系统、数据库和中间件以及应用软件的数据处理能力。
1.2作用Benchmark测试对生产商和用户都很有价值。
对生产厂商的作用是为产品进行市场宣传和发现系统的瓶颈;对用户的作用是指导产品的选择。
Benchmark测试最具吸引力的特点就是一个好的Benchmark测试对于某一领域的技术发展有积极的导向作用,它会引导生产厂商采用新技术改进产品。
选择Benchmark测试时需要有明确的目的,当用于产品宣传时,就应该选用权威机构的Benchmark测试,并且结果得到其认可。
而用于指导产品选择的Benchmark测试,则需要清楚Benchmark测试的结果是否与应用的特性有密切的关系。
小型微型计算机系统Journal of Chinese Computer Systems 2015年3月第3期Vol.36No.32015收稿日期:2013-11-25收修改稿日期:2014-06-01基金项目:国家自然科学基金项目(90818021,61472448)资助.熊琦,男,1983年生,博士,副研究员,研究方向为工控信息安全;彭勇,男,1974年生,博士研究生,副研究员,研究方向为隐患分析;伊胜伟,男,1977年生,博士,助理研究员,研究方向为工控风险评估;戴忠华,男,1979年生,博士研究生,助理研究员,研究方向为网络与信息安全;王婷,女,1986年生,硕士,实习研究员,研究方向为信息安全.工控网络协议Fuzzing 测试技术研究综述熊琦,彭勇,伊胜伟,戴忠华,王婷(中国信息安全测评中心,北京100085)E-mail :xiongq@itsec.gov.cn摘要:随着信息化和工业化的深度融合,控制系统在工业生产过程中得到了越来越广泛的应用,很多研究者开始针对工控系统,特别是具有控制功能的工控网络协议的安全性展开研究,漏洞分析则是其中较为活跃的领域之一.由于工控网络协议具有专用性和面向控制的特点,通常在封闭环境下运行,无法直接应用传统Fuzzing 测试技术进行网络协议的漏洞挖掘.本文阐述了工控网络协议的特点以及Fuzzing 测试的困难,讨论并比较了现有各种Fuzzing 测试技术应用于工控网络协议的优缺点,提出工控网络协议的专用Fuzzing 测试工具的设计准则,最后展望了工控网络协议Fuzzing 测试技术的未来研究方向.关键词:工业控制系统;工控网络协议;漏洞挖掘;模糊测试中图分类号:TP393文献标识码:A文章编号:1000-1220(2015)03-0497-06Survey on the Fuzzing Technology in Industrial Network ProtocolsXIONG Qi ,PENG Yong ,YI Sheng-wei ,DAI Zhong-hua ,WANG Ting(China Information Technology Security Evaluation Center ,Beijing 100085,China )Abstract :with the deep integration of informatization and industrialization ,the Industrial Control system (ICS )becomes more and more popular in the industrial production ,a great amount of researchers start to focus their research interest on the security of industrial network protocols and vulnerability detecting becomes one of the hot points in this field.Due to the specific features of ICS ,like process control o-riented and proprietary ,traditional Fuzzing technology cannot be directly applied to vulnerability detecting for industrial network proto-cols ,which runs in the closed envirnment.This paper described the features of industrial network protocols first ,then investigated the fea-tures of industrial control protocols and the difficulties of Fuzzing test on them ,discussed the current research achievements presented in this field ,introduced the design guidelines of general Fuzzing tools for industrial control protocols.Finally ,the further research direction of this field is discussed in detail.Key words :industrial control system ;industrial network protocol ;vulnerability detecting ;fuzzing test1引言自从2010年伊朗核电站“震网”病毒事件[1,2]爆发以来,作为国家关键基础设施的重要组成部分,工业控制系统(In-dustrial Control System ,ICS )安全逐渐成为网络安全领域的研究热点.ICS 主要包括数据采集与监控(Supervisory Control and Data Acquisition ,SCADA )系统、分布式控制系统(Distribu-ted Control System ,DCS )、可编程逻辑控制器(Programmable Logical Controller ,PLC )、远程终端单元(Remote Terminal Unit ,RTU )等,其通信方式主要包括工程师站、操作员站等上位机与PLC 等工控设备之间的通信、工控设备与生产装置之间的通信以及上位机与OPC 、数据库等服务器之间的通信,所采用的协议包括以太网和总线通信方式,总线协议主要使用RS232和RS485接口,采用硬接线作为通信介质,基于串行协议,适合于低速率、间歇性数据通信;工业以太网采用RJ45接口,使用双绞线作为传输介质,基于TCP /IP 协议栈,适合于进行生产过程数据传输,具有速率快、兼容性好的特点.ICS 目前已广泛应用于石油石化、交通控制、电力设施、制造业以及核工业等各工业领域,用于数据采集、远程控制、生产过程控制,对提升企业的生产和管理水平,实现工业生产自动化、绿色化,实现节能降耗、减排、增产增效和可持续发展发挥了重要的作用.传统ICS 由于相对封闭和专用,在设计上较少考虑安全问题,防护能力薄弱.随着工业化和信息化的深度融合,越来越多的工控设备集成以太网通信功能与ERP 甚至互联网连接,在提高数据共享效率,改进企业管理水平的同时也引入了黑客、病毒、木马等安全风险,一旦受攻击容易导致产品质量下降、生产过程破坏、环境污染等严重后果,对社会稳定造成重大威胁.与传统面向数据传输的网络协议相比,工控网络协议具有更强的控制功能[3],通过发送特殊功能码的指令,能够控制PLC 等物理设备的启停,甚至上传恶意程序,或者影响控制中心的生产过程监测视图.因此,研究工控网络特别是工业以太网协议的脆弱性成为工控系统信息安全的首要内容.工业以太网与总线协议的部署方式、应用场合和传输速率具有较大的差异,为了明确研究范围,根据美国仪器仪表协会提出的ISA99参考模型[4,5],可将ICS整理为如图1所示的5个层次:1)第4层—企业系统层.企业系统层包括组织机构管理工业生产所需业务相关活动的功能,使用的都是传统的IT技术.2)第3层—运行管理层.运行管理层负责管理生产所需的工作流,它包括运行/系统管理、具体生产调度管理、可靠性保障等.3)第2层—监测控制层.监测控制层包括监测和控制物理过程的功能,它包括操作员人机接口、监测控制功能、过程历史数据收集和存储等功能.4)第1层—本地或基本控制层.本地或基本控制层主要包括传感和操作物理过程的功能,典型设备包括DCS、PLC、RTU等.5)第0层—过程层.过程层是实际的物理过程.在这一层中包括各种不同类型的生产设施,典型设备包括直接连接到过程和过程设备的传感器和执行器等.在工业控制系统参考模型中,过程层属于物理空间,它同各工业控制行业直接相关.图1工业控制系统分层参考模型Fig.1Hieratical model of industrial control system本文所讨论的工控网络协议,限定于图1第1层中的PLC、DCS等控制设备与2、3、4层次组件之间通信所使用的通信协议,通常基于TCP/IP协议封装,与交换机、路由器等通用网络设备兼容,其中最具代表性的包括:用于电力行业配电网主-从站通信的IEC60870-101/104协议、IEC61850[6]、主-从设备通信协议DNP3和主站间通信协议ICCP;用于石油石化行业参数采集的Modbus TCP、Profinet协议族;用于管道数据传输的Ethernet/IP;用于轨道交通的MMS协议;用于协议转换和数据共享的OPC协议等.工控系统的协议种类繁多,不同厂商对协议有不同的扩展和实现方式,而很多设备由组态软件进行控制,组态软件都是由厂商定制,自成体系,比如:西门子全系列工业控制产品就使用Profinet协议族,罗克韦尔专注于EIP,三菱则使用私有协议,相互之间不兼容.鉴于工控以太网协议的特殊性,传统基于Fuzzing的设备测试方法无法直接应用,需要进行针对性的修改.本文在介绍工控网络协议特点的基础上,综述了基于Fuzzing的工控网络协议的测试方法.论文其余部分组织安排如下:第2部分介绍了工控网络协议特点,引出了第3部将传统Fuzzing技术应用到工控网络协议存在的困难;第4部分介绍了工控网络协议Fuzzing在测试框架、协议解析方式、测试用例生成、异常检测和定位、测试性能评估等方面研究的国内外相关工作;第5部分总结现有的研究工作,提出了工控网络协议专用测试框架设计方面应该遵循的一些准则,对工控网络协议Fuzzing测试的研究方向进行了展望.2传统Fuzzing测试技术介绍Fuzzing是一种通过构造能够使得软件崩溃的畸形输入来发现系统中存在缺陷的安全测试方法,通常被用来检测网络协议、文件、Active控件中存在于输入验证和应用逻辑中的缺陷,其自动化程度高、适应性广的特点使其成为漏洞挖掘领域较为有效的方法之一.1989年,美国威斯康辛大学的Barton Miller教授正式提出Fuzzing技术[7],通过随机地生成非结构化的输入来挖掘UNIX程序中的漏洞.此后,Fuzzing成为了信息安全中较为活跃的研究领域之一,研究者们通过构造更具结构性的输入来改进Fuzzing测试的效率.1999年,芬兰Oulu大学的研究团队开发了PROTOS测试套件[8],通过对网络协议的解析,创建模型并生成相应的Fuzzing测试;此后,出现了第一个基于块的Fuzzing测试器SPIKE[9],协议的描述被表示为一列数据块,使用SPIKE的Fuzz[10]函数库生成随机数据对块进行填充,生成测试数据.此外,中科大的张美超等人对测试用例生成方式进行优化,提出了基于漏洞库的Fuzzing测试框架[38];中科院的张玉清教授等人对FTP等协议客户端[39]进行了模糊测试.一般来说,除测试用例执行外,Fuzzing测试包括协议解析、测试用例生成、异常捕获和定位三个步骤;协议解析是通过公开资料或者对网络数据流量的分析,理解待测协议的层次、包字段结构、会话过程等信息,为后续测试用例的生成打下基础;测试用例生成依据上阶段整理出来的字段结构,采用变异的方式生成畸形测试用例,发送给待测对象;异常捕获和定位的目的是通过多种探测手段发现由测试用例触发的异常,保存异常相关数据信息,为后续异常的定位和重现提供依据,其流程如图2所示.图2Fuzzing通用测试流程Fig.2General workflow of fuzzing test按照测试用例的生成方式,Fuzzing可以分为两类:1)基于生成的Fuzzing.这种方法基于与有效输入结构和协议状态相关的生成规则进行建模,构造模糊输入.最简单的基于生成的模糊测试器使用随机的方式构造长度字符串(包含随机字节)的模糊输入[7].有些基于生成的模糊测试工具,例如Sulley[11]和Peach[12]也集成了基于块的特性.最新的基于生成的模糊测试器,例如EXE[13],通过编码的方式来产生成功概率高的测试用例.基于生成的Fuzzing需要用户对协议格式有非常深的了解,并需要大量的人工参与.2)基于突变的Fuzzing.这种方法通过在已有数据样本中插入畸形字节以及(或者)变换字节来修改正常输入,制造模糊输入.一些现代的突变Fuzzing测试器基于输入层的描述构894小型微型计算机系统2015年造其模糊决策(例如:Peach的突变[12]).其他突变测试器,例如通用目标模糊测试器(GPF)[14]不需要任何先验知识,仅仅使用简单的启发式来猜测域边界,并进行对输入进行突变.CFG模糊测试器[15]对其进行了折衷,通过使用推论算法从足够规模的网络流量中推导协议的近似生成模型,然后使用变异算法来生成突变的输入.该方法对变异的初始值有着很强的依赖性,不同的初始值会造成代码覆盖率差异很大,从而会产生截然不同的测试效果.此外,根据Fuzzing测试器的部署方式,可以分为内联和普通方式.目前绝大多数现有的Fuzzing测试器均属于普通范畴,将自身作为客户端,测试作为服务器端的对象;内联,如QueMod[16],则采用中间人的方式,将自身部署在服务器和客户端之间,对截获的包进行分析,估计协议帧的有效区域,并分别进行变异,实时生成畸形报文,发送给测试对象,同时接受返回结果,判断对象的状态,决定下一步变异策略.两者之间的区别在于,内联Fuzzing测试器能够实现对Server和Cli-ent端的双向测试,普通Fuzzing测试器只能对Server端进行测试.3使用传统Fuzzing测试工控协议的困难由于工控网络协议的特殊性,直接使用传统Fuzzing测试器在协议解析、异常捕获以及部署方式上存在以下几方面困难:3.1工控协议解析根据信息公开的程度,工控网络协议大致可以分为两种:(1)私有协议,例如Harris-5000以及Conitel-2020设备的协议,这些协议资料不公开或者只在有限范围内半公开,数据包和字段的含义未知,协议会话过程功能不清晰;(2)公有协议,例如:Modbus TCP、DNP3[17]等,协议资料公开,标准化程度较高.对于公有的控制协议,虽然可以使用现有Fuzzing技术进行测试,但由于工控协议面向控制,高度结构化,控制字段数量较多,使得需要构造大量的变异器,测试效率不高.对于私有的控制协议,需要先弄清楚协议的结构才能进行模糊测试.一般来说,有两种思路:(1)对协议栈的代码进行逆向分析,整理出重要的数据结构和工作流程;(2)抓取协议会话数据包,根据历史流量来推测协议语义.对于运行环境较为封闭的工控设备来说,内嵌协议栈组件无法导出,很难对其进行逆向分析.相比之下,采用基于数据流量的协议解析方法更实际.然而,工控设备具有时间敏感、面向会话的特点,使得部署需要大规模网络流量输入的Fuzzing测试工具不现实.3.2工控协议异常捕获和定位目前在网络协议Fuzzing测试中常用的异常检测手段主要有返回信息分析、调试器及日志跟踪3种方法:1)对于返回信息分析,主要通过分析请求发送后得到的返回信息判断目标是否出错,其优点是处理简单,但由于某些工控协议栈进程具有自修复和守护能力,在发生异常后网络进程会自动重启,如果请求收发频率不够高,将无法捕获发生的异常;2)对于调试器跟踪,主要通过监视服务器进程,在进程出错时抓取进程异常信息,但由于工控设备难以安装第三方监测软件,因而该方法只适用于上位机协议测试,无法应用在工控设备上;3)对于日志跟踪,主要通过解析日志记录,判断测试对象是否发生异常,但由于工控设备属嵌入式系统,计算、存储和网络访问均受到严格的制约,在工控设备上难以实现对异常事件的日志记录和审计,因而该方法也只适用于上位机程序协议栈.3.3Fuzzing测试工具的部署方式目前,对于传统IT系统,C/S模式中Client端漏洞利用较困难[18],价值不高,因而传统网络协议Fuzzing测试技术主要针对Server端软件,较少涉及Client端.但对于工控系统来说,上位机通常作为Client端,对作为Server端的物理设备进行数据采集同时对操作员提供监视控制功能,其网络协议栈存在的漏洞可能导致重要数据传输实时性和可用性丧失,产生上位机视图显示错误等故障,导致丧失视图(LoV,Lost of View),影响操作员的正常决策,甚至破坏生产控制过程运行,根据国际著名工控漏洞库Delphi的统计结果[41],主要位于上位机协议栈的LOV型工控漏洞占比高达68%,因此只能测试Server端的协议Fuzzing测试工具不能满足工控协议安全性测试的需求.4现有工控网络协议Fuzzing测试的相关工作虽然专门针对工控协议设计的Fuzzing工具尚未出现,随着网络攻防的阵地逐渐从网络空间朝着网络物理空间扩展,包括工控系统在内的国家关键基础设施信息安全受到越来越多的关注,一些Fuzzing工具也开始支持工控网络协议,最具代表性的有以下两类:4.1开源Fuzzing项目2007年黑帽大会上,专门为Sulley设计的ICCP(包括TP-KT和COTP)、Modbus和DNP3模糊测试模块(例程)被美国TippingPoint公司的信息安全研究员Devarajan发布出来[19],可用来检测上述工控网络协议在非授权命令执行、非授权数据传输、可能的拒绝服务等方面存在的安全漏洞.美国Digitalbond公司[20]的研究员McCorkle和BillyRios 以Modbus TCP为例,使用工具Scapy截获完整通信会话(包括所有请求和有效的返回信息),开启上位机软件的日志记录功能,并对请求的返回信息进行随机变异,使用伪造CRC 校验码和计数值的方式保持协议状态,通过日志分析发现上位机在处理畸形返回数据时发生的错误.德国奥格斯堡应用技术大学的Roland Koch等人推出了ProFuzz[21],一种在Python版本Scapy fuzzer[22]基础上开发的Fuzzing工具,兼容Sulley的fuzz模块,专门针对Profinet协议族进行模糊测试,目前支持包括告警帧随机afr(Alarm Frame Random)、告警帧排序afo(Alarm Frames Ordered)在内的五种协议类型.同时,该成果的部分内容也被集成到开源入侵检测软件Snort[23]中,用于对Profinet系列协议进行预处理.Wurldtech公司的Eric J.Byres研究员提出了BlackPeer 测试框架[24],该框架由代码生成器、测试用例生成器和执行9943期熊琦等:工控网络协议Fuzzing测试技术研究综述器三部分组成,输入由扩展BNF 逻辑定义的测试用例期望,能够更好地描述测试用例的上下文依赖关系,在给定变量初始化文件的前提下,会生成递归定义的测试用例语法描述,根据交互语义对协议PDU 进行变异,生成有序的测试用例序列PTS ,然后在配置文件约束下执行测试用例序列,捕获异常并记录结果,流程如图3所示,Wurldtech 公司利用该框架对两款PLC 设备的Modbus TCP 协议栈进行了5000次测试,发现了六十多类错误.图3BlackPeer 测试用例的生成和执行Fig.3BlackPeer test cases generation and execution 4.2商业Fuzzing 项目SecuriTeam 在其beSTORM 模糊测试工具中整合了DNP3协议[15],成功发现了Wireshark[25]DNP3模块的拒绝服务攻击漏洞,验证了工具的有效性;2007年,美国能源部下属的Digital Bond 公司则开发了ICCPSic [26],一种商业的ICCP 协议测试套件;Mu Dynamic 公司提供了Mu 测试套件[27],使用结构化语法分析的方法来生成畸形测试数据,目前支持包括IEC61850、Modbus TCP 和DNP3在内的工控网络协议,并可通过其附带的Studio Fuzz 功能分析PCAP 包,重构会话流程,实现对未知协议的扩展;Wurldtech 公司推出了Achilles 模糊测试平台[28],基于专家经验生成最可能造成对象协议栈崩溃的畸形测试数据,已经实现对包括MODBUS 、DNP3、ICCP 、MMS 和Ethernet /IP 在内的多种工控协议的支持;Codenomicon 公司在PROTOS 项目[8]的基础上推出了Defensics 模糊测试套件[29],兼容ModbusTCP 协议.这些研究成果大都基于原有Fuzzing 框架进行扩展,缺乏针对性的功能设计,仅仅覆盖结构公开的工控网络协议,或者仅仅支持以手工标注的方式支持私有协议,对测试人员的要求较高.在同等情况下,对ICCP 、Ethernet /IP 等结构及会话较为复杂协议进行Fuzzing 测试比Modbus TCP 、DNP3等简单协议耗时高一个数量级以上[30].此外,工控协议种类多的特点,现有Fuzzing 测试工具支持的数量极为有限,且在框架上基本沿用原有的方式,几乎不对Client 端进行测试,适用范围受到制约,因此急需面向工控协议特点设计专用Fuzzing 测试框架.5工控专用Fuzzing 测试框架的设计准则基于工控网络协议的特点,结合已有工控协议Fuzzing 测试的研究成果,从模糊测试的步骤和部署方式来看,工控网络协议专用Fuzzing 测试框架应该遵循以下几点准则:5.1支持对私有工控协议的测试由于大量工控协议结构不公开,对私有工控协议[31]的支持成为工控协议Fuzzing 测试框架的首要需求,由于PLC 等核心工控设备的可执行代码难以导出,基于二进制逆向分析的“Tainted Data ”方法难以部署,主要采用基于网络流量的“Network Trace ”方法.根据分析技术的差异,基于“Network Trace ”的私有工控协议的模糊测试思路可以分为以下两种[32]方式:5.1.1离线分析首先梳理协议的结构和内容,生成协议模型,即先将私有协议变成公有协议,这种方法主要适用于使用容易理解的ASCII 语言,对协议数据包头进行区域描述的工控网络协议,如Modbus 等.首先采用类型匹配,将不同的网络流量数据文件(PCAP )中同类型的报文序列提取出来,作为一个报文组,然后对该报文组合进行多序列比对,将不变域和可变域分离出来,生成初步的报文域划分,再对报文区域进行识别,进一步得到的ANSI 字符串域,生成较为准确的报文格式,再使用基于生成的方法产生测试数据,具体过程如图4所示.图4基于离线分析的模糊测试Fig.4Fuzzing test based on offline analysis5.1.2在线分析不进行离线分析,只是通过智能算法[33]对工控网络协议的结构进行在线学习[34-36],具体流程如图5所示.其中具有代表性的有Marshall A.Beddoe 等人设计的PI 协议解析器,通过引入生物信息学的思想,在线提取包结构中的常量,生成协议结构描述;此外,Dartmouth 学院的Sergey Bratus 设计了Lz-fuz 协议分析器,使用Lempel-Ziv 算法维护令牌表,对于每个数据包,提取并记录其中的最长不变子串,周期性地更新表记录,实时标注包的数据区域,生成并逐步完善协议的语义结构.图5基于在线分析的模糊测试Fig.5Fuzzing test based on online analysis方法(1)虽然生成的测试用例质量较高,但需要积累相当数量的历史网络数据流量作为原始样本,且初始阶段需要耗费大量的人力,对协议分析经验要求较高且实时性差.相比之下,方法(2)虽然在测试初期生成的模型较为粗糙,需要耗005小型微型计算机系统2015年费大量计算资源,但随着学习过程的不断深入,模型也会逐步成熟,测试用例的质量也会不断提升.5.2不依赖本地调试进行异常捕获和定位作为工控系统的核心组件,PLC 等物理设备运行环境封闭且存储计算资源受限,无法通过附加调试组件的方式记录异常事件并保存日志,只能依赖其他方式进行检测,较为可行的方法包括:(1)基于网络流量的异常检测.使用心跳机制,以间歇性“发包—响应”的形式探测目标是否出错,同时结合异常隔离机制,在每传输一组测试用例后通过发送心跳包的方式检测对象是否发生异常,如果超过一定的时间阈值未收到回复包,则认为测试对象发生了异常,需采取逐步隔离[27]的方式,如图6所示,从该组用例中找出触发异常的单个测试用例,并保存异常产生的流量数据,以便进一步分析.此外,对于构建于TCP 之上的工控网络协议,捕获用于重建连接的TCP RST 和非正常重复出现的SYN 请求也可以用来发现测试对象的网络异常.图6基于心跳检测的故障隔离技术Fig.6Fault isolating technology basedon heart-beat detecting(2)使用基于I /O 的异常检测.PLC 设备在正常运行时会不断与下层生产过程进行数据I /O 交互,如果工艺处理机制受到协议栈影响发生异常,会波及到下层I /O 信号.该方法需要使用具有D /A 或者A /D 转换功能的接口卡,将工控设备的I /O 输出线外接到工控机上,同时在平台上运行流程仿真程序,部署监测程序不断轮询I /O 口的信号交互情况,当发生异常时一方面发送消息给Fuzzing 测试端以便保存场景信息,另一方面本地保存I /O 异常情况和流程断点以便进一步分析,如图7所示.图7基于I /O 的异常检测技术Fig.7Anomaly detecting technologybased on I /O of PLC5.3具有对网络协议进行双向测试的能力由于工控系统要支持双向网络协议测试,且对工控私有网络协议客户端而言,由于其会话时间较短、时间敏感性强,对要求大量历史数据流量的传统Fuzzing 测试工具基本免疫,可行的方法之一是采取内联的部署方式,通过ARP 欺骗[40],将Fuzzing 测试工具插入到服务器和客户端之间,使用重放的方式对截获的网络数据包进行突变,产生畸形数据,如图8所示.图8工控网络协议的双向模糊测试Fig.8Fuzzing test for industrial network protocol in bidirectional5.4具备实时异常重启能力对于OPC 等[37]多层次、结构复杂的工控网络协议来说,执行一次Fuzzing 测试往往耗时较长,一旦发现异常导致测试对象崩溃,无法继续测试过程,需要重启测试对象,重新开始,如果测试用例的选择机制不支持断点续传,则容易陷入死循环,导致测试覆盖率差.为了避免这一问题,通常有两种方法.1)对于上位机软件,可采用监测环境启动,一旦发生故障则自动保存断点,重新启动测试对象进程,同时通知Fuzz-ing 测试端恢复断点,继续原来的测试过程,如使用Xen 等带监测功能的虚拟化环境;2)对于物理设备,由于运行环境封闭,无法在监测环境中直接部署,则可采用电源控制的方式,在设备发生崩溃的时,保存测试进度,通过硬件控制将测试对象断电并再加电,重启对象,完成剩余的测试用例,而不需要重新开始,提高测试效率.6总结及展望Fuzzing 测试技术经过多年的发展,为网络协议安全性分析提供了有效的工具.随着网络技术在工控领域得到了广泛的应用,传统Fuzzing 测试技术由于在设计上面向传统网络协议,在异常捕获、定位和分析上存在一定的局限性,无法满足具有典型行业和专用特点的工控网络设备的测试要求.本文深入分析了工控网络协议的特点,分析使用现有fuzzing 测试器进行工控网络协议测试存在的困难,对现有工控网络协议Fuzzing 测试领域的成果进行了综述,总结其优缺点,基于分析结果提出了工控协议专用Fuzzing 测试器应该遵循的设计准则.在未来的研究中,将结合本文提出的观点,对现有的开源Fuzzing 测试器进行扩展,实现专用的工控系统模糊测试框架.References :[1]The repository of security incidents [EB /OL ].June 2012.http ://www.securityincidents.net /index.php /products /indepth /risi annu-alreport /,Accessed ,2013:31.[2]Farwell J P ,Rohozinski R.Stuxnet and the future of cyber war [J ].Survival ,2011,53(1):23-40.[3]Edmonds J.Security analysis of multilayer protocols in SCADA net-works [D ].Department of Computer Science ,University of Tulsa ,Tulsa ,Oklahoma ,2006.[4]Peng Yong ,Jiang Chang-qing ,Xie Feng.Research progress of the se-1053期熊琦等:工控网络协议Fuzzing 测试技术研究综述。
用户体验质量的模型与评价方法综述一、本文概述随着信息技术的迅猛发展,互联网产品与服务日益融入人们的日常生活,用户体验质量(User Experience Quality,简称UEQ)逐渐成为决定产品竞争力的关键因素。
本文旨在综述用户体验质量的模型与评价方法,以期帮助产品开发者、设计师和研究人员更好地理解、评估和提升产品的用户体验。
本文首先将对用户体验质量的概念进行界定,阐述其重要性及在产品设计中的地位。
接着,将系统回顾和分析现有的用户体验质量模型,包括情感反应、交互性、可用性、视觉设计等多个维度,以及这些模型在不同类型产品中的应用情况。
在此基础上,本文将探讨各种用户体验评价方法,包括问卷调查、用户访谈、眼动追踪、生理测量等,并分析其优缺点和适用范围。
本文还将讨论未来用户体验质量模型与评价方法的发展趋势,如基于大数据和技术的个性化评价、跨平台和多模态交互体验评价等,以期为相关领域的研究和实践提供有益的参考和启示。
二、用户体验质量模型用户体验质量(User Experience Quality,简称UEQ)是评估产品或服务在用户使用过程中整体满意度的关键指标。
为了有效地衡量UEQ,研究者们提出了多种模型和方法。
这些模型大多围绕几个核心维度构建,如可用性、可访问性、吸引力、满意度等。
可用性模型:该模型主要关注产品或服务的易用性,即用户能否轻松完成预期任务。
其核心指标包括效率(完成任务所需的时间和努力程度)、错误率(使用过程中的误操作频率)和满意度(用户对易用性的主观感受)。
满意度模型:满意度是衡量用户体验质量的关键指标之一。
该模型通常考虑产品或服务与用户需求和期望的匹配程度。
满意度可以通过问卷调查、用户反馈等方式收集,并通过统计分析方法量化和评估。
吸引力模型:吸引力主要关注产品或服务在视觉、听觉等感官层面上的吸引力。
该模型通常涉及美学、设计风格和用户体验等因素。
吸引力的评估可以通过用户调研、专家评审等方式进行。
中文摘要:随着网络技术的日益成熟,网络已经深入到生活的每一个角落,包括教育、购物、咨询、办公等等许多领域.在网络迅速发展的今天,网页技术的应用也越来越广泛.网页技术的应用对于教育行业来说优势更加的明显。
教育行业可以通过网络进行学生和教职工的管理、组织学生在线考试、在网站上发布学校相关信息等活动。
这样不仅能增加学校管理的透明度,还提高了学校的管理水平。
在线考试还能充分的利用学校的现有资源,大大减轻教师的工作量,把老师从出卷、阅卷等一些繁重中做中解脱出来。
本文重点论述了由于网络的存在扩大了学校的服务范围,为学校的管理提供了更多的条件。
对此做出了详细的调查,可行性研究和分析。
系统采用了B/S结构,在网络上建立学校自己的教育网站。
系统开发经历了系统分析、系统设计和系统实施三个阶段.从设计方案的提出,经过详细的调查,分析了方案的可行性和必要性,通过详细的系统设计,力图提高系统的集成性和快捷性;并在系统实施阶段收集了大量的实验数据,以便测试阶段系统的准确性和稳定性。
系统整体是基于浏览器/服务器,前台应用JSP技术,后台采用SQL Server2000作为数据库与前台连接。
关键词:网络教育在线考试B/S结构JSP技术AbstractWith the increasingly sophisticated network technologies,the network had penetrated every corner of life,including education, shopping, advice,office and so many fields. Today,therapid development of the network,the application of web technology more and more widely.Web technology advantage for the education industry is more evident. Education sector through a network of students and faculty management, student organizations,online examinations, in the website information and other school activities。
it技术维护年终个人工作总结2024年随着时光荏苒,不觉间____已经过去。
作为公司中的一名运维工程师,在领导的关怀与同事的协助下,本人圆满完成了肩负的各项工作任务。
在履行职责的过程中,本人始终秉持服务至上的原则。
为了在未来的工作中不断进取和完善,现将个人____工作成果予以梳理总结:一、工作回顾(一)工作内容1. 按照公司发展需求,承担公司网络应用系统的开发、网站建设以及服务器安装、配置与维护工作,并负责用户帐号及权限的管理。
2. 负责公司网络和计算机软件的维护,包括软件安装、调试以及问题解决,网络资源权限分配,并提供必要的技术支持。
(二)工作完成情况1. 完成了公司网站筹备工作,包括资料收集与建站流程制定,确保在需求启动时能够迅速完成网站建设。
2. 针对公司资产管理系统,完成了用户需求收集和整理,并与多家软件供应商沟通,选用了适合的资产管理模块。
3. 对公司OA系统进行了日常维护,调整论坛板块,及时更新新闻内容,提升员工对公司动态的了解和思想觉悟。
有效管理OA系统帐号,确保帐号权限的合理分配和新老员工的及时增删。
4. 面对日常的电脑软硬件、邮件、网络及打印机维护需求,本人积极响应,确保公司近____台电脑的正常运行,尤其在处理常见故障如硬件、系统、网络和软件问题时,做到快速解决,最大程度地降低故障率。
5. 安装防病毒软件于每台电脑上,预防病毒传播,定期升级软件和更新系统补丁,保障网络安全。
6. 对租赁产业进行网络布线,提供网络及计算机技术支持,助力资产部租赁业务。
7. 协助安全主管整理安全回执表,并上传至OA系统供相关部门查阅。
二、不足与改进过去一年,本人严谨态度,勤奋工作,力求在本职岗位上发挥最大效能。
通过反思,我发现自身存在以下不足:1. 对现代网络技术发展的理解不够全面,新技术掌握速度有待提高。
2. 面对突发故障时,未能有效区分轻重缓急,科学安排时间,影响了问题处理的效率。
3. 公司网络IP设置缺乏系统规划,导致偶发IP冲突和网络中断。
作者简介:彭文斌(1976-),男,广东陆丰人,广州市商贸职业学校讲师,研究方向为计算机网络。
基于识别内容的分布式W eb 服务器技术研究彭文斌(广州市商贸职业学校,广东广州510163)摘要:DWSS 是目前最前沿的Web 服务器性能提升技术之一。
当系统的性能不能满足需求时,DWSS 通过增加系统中服务器数目的办法改善系统性能,因而具有灵活的扩展性,而且保护了原有投资。
负载平衡是DWSS 的关键技术,其目的在于将用户请求均衡地分发给系统中的多个服务器来处理而提高系统吞吐率,缩短用户响应时间。
实现负载平衡的方案很多,CARD-DWSS 方法是其中的一种。
详细介绍了CARD 方法以及改进的TB-CARD 方法,并对其进行了改进后的数据分析,总结了其优点。
关键词:CARD ;TB-CARD ;网管技术;服务器技术;WEB 中图分类号:TP393.05文献标识码:A文章编号:1672-7800(2009)03-0123-021CARD 方法简介分布在LAN 或者WAN 上的多台Web 服务器主机通过自组织方式或者由专门的设备负责组织调度的方式进行协同工作,而组成一个Web 站点,共同分担用户对该站点的Web 请求负荷,这样的系统,我们称之为分布式Web 服务器系统(Dis -tributed Web Server System ,以下简称DWSS )。
DWSS 是目前最前沿的Web 服务器性能提升技术之一。
当系统的性能不能满足需求时,DWSS 通过增加系统中服务器数目的办法改善系统性能,因而具有灵活的扩展性,而且保护了原有投资。
负载平衡是DWSS 的关键技术,其目的在于将用户请求均衡地分发给系统中的多个服务器来处理而提高系统吞吐率,缩短用户响应时间。
实现负载平衡的方案很多,“识别内容的请求分发(以下简称CARD ,基于CARD 的DWSS 简称CARD-DWSS )”方法是其中的一种。
除了CARD 方法之外,目前提出的其它DWSS 负载平衡方案都只是考虑多个服务器的CPU 负载均衡,而没有服务器端的其它资源利用问题,比如没有考虑Cache 的命中率。
第一章互联网软件开发过程概述1、Web开发过程的五个阶段:(1)规划:目的是生成工程计划。
工程计划包括:确定日程表、确定工程的高级时间期限和每个阶段的最后期限、明确工程目标、Web应用的目标、开发方法、工程任务分配、工程设想和风险。
(2)设计:目的对于网站的外观、网站结构、站点定位、Web应用要完成的任务以及必要的数据资料,必须经过用户的认可。
同时确定站点设计准则和技术特征。
(3)建设和测试:目的是开发符合工程设计规划的高质量的Web应用。
主要任务:确定开发规则、创建页面、测试准备、制作网页、技术设计、测试、纠正错误(4)投入使用:目标是把全面测试过的Web应用发布到运营服务器上。
文件安装完毕,小组投入测试工作,保障正常运行。
(5)运行及后续经管:保障站点内容及时更新并保障其正常平稳运行。
2、界标:在阶段转换时出现的判断点也称其为“界标”,因为她们标志一个阶段的完成。
在这些判断点上,工程小组和客户一起讨论工程设计技术方案、设计状况和风险,指出小组没有解决的问题,并修改工程规划以确保原来的目标的实现。
客户的责任是负责判断工程小组是否可以开始下一步工作。
比如进入下一循环或者下一阶段,这通常被称为客户在这一“界标”上“终止”工作。
3、调度:调度是在开发过程中一种对人员、资源、应用风格以及开发技术手段进行平衡的活动。
电子商务模型:通常访问者从产品目录中选择了一种产品后,就把该产品放入虚拟的购物车中,这样就可以继续选购其他产品。
购物结束时,迅速检查一下购物车中的产品,然后提供送货地址和信用卡信息。
4、工程规划:整个Web开发过程中最重要的阶段。
这个阶段中需要了解工程要做什么?如何做?什么时间做?等等。
还必须确定工程的目标、Web应用的目的、目标用户、工程范围、用户重点和实现工程的最佳技术方案,最后创建出工程计划任。
5、工程规划包括:至少包括以下四部分:(1)目标——归纳总结在“确定工程目标”和“确定Web应用目标”中明确下来的目标,另外,还要明确商业术语中的关键词语。
ActiveX技术综述本文结合目前Internet(WEB)技术发展动向,简略介绍了Microsoft提出的ActiveX 技术的内容,阐述了ActiveX技术与WEB站点建设和桌面程序开发的关系,以及利用Visual C++和Visual Basic开发ActiveX部件的步骤和方法,并给出了在WEB网页中使用ActiveX部件的例子。
1. A ctiveX概要1.1. ActiveX的定义ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集。
它与具体的编程语言无关。
作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。
同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。
1.2. ActiveX的内容ActiveX既包含服务器端技术,也包含客户端技术。
其主要内容是:* ActiveX控制(ActiveX Control);用于向WEB页面、Microsoft Word等支持ActiveX的容器(Container)中插入COM对象。
* ActiveX文档(ActiveX Document);用于在WEB Browser或者其它支持ActiveX 的容器中浏览复合文档(非HTML文档),例如Microsoft Word文档,Microsoft Excel 文档或者用户自定义的文档等。
* ActiveX脚本描述(ActiveX Scripting);用于从客户端或者服务器端操纵ActiveX 控制和Java程序,传递数据,协调它们之间的操作。
* ActiveX服务器框架(ActiveX Server Framework);提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等。
* 在Internet Explorer中内置Java虚拟机(Java Virtual Machine),从而使Java Applet能够在Internet Explorer上运行,并可以与ActiveX控制通过脚本描述语言进行通信。
第31卷第1期2010年1月微 计 算 机 应 用MICROCOMPUTERAPPLICATIONSVol131No11Jay12010
Web服务测试技术综述3冯细光 刘建勋(湖南科技大学知识处理与网络化制造湖南省普通高校重点实验室 湘潭 411201)(南京大学计算机软件新技术国家重点实验室 南京 210000)
摘要:面向服务的体系结构(SOA)已成为基于Web的分布式系统的主要发展趋势。Web服务作为实现SOA的一种形式,已得到广泛的关注与应用。由于Web服务为基于开放和通用的协议与平台,其服务质量与可信等均可能存在问题,这将会阻碍Web服务的发展。Web服务进行充分测试可保证Web服务的质量,然而由于Web服务所具有的特点,传统的软件测试技术方法不再适用于Web服务的测试,所以对Web服务测试方法和技术的研究成为当务之急。本文在SOA体系结构基础上,讨论了Web服务测试的难点和Web服务测试的基本方法,分析了目前Web服务测试的研究现状。最后,展望了未来可能的研究方向。关键词:面向服务体系架构(SOA) Web服务 Web服务测试
ReviewonWebServiceTestingTechnologiesFENGXiguang,LIUJianxun(KeyLaboratoryofKnowledgeProcessingandNetworkedManufacture,HunanUniversity
ofScienceandTechnology,Xiangtan,411201,China)(StateKeyLaboratoryofNovelComputerSoftwareTechnology,NanjingUniversity,Nanjing,210000,China)
Abstract:ServiceOrientedArchitecture(SOA)hasbecomethemajortrendfordevelopingWeb-baseddistributedsystemsrecently1AsaformofSOA,Webserviceshaveappliedmoreandmorewidely1However,thequalityofWebservicepresentsabarriertowideningtheapplicationofWebservices1Therefore,itisnecessarytotestWebserviceinordertoensurethequalityofWebservice1Duetotheu2niquecharacteristicsofWebservices,traditionalsoftwaretestingtechniquesarenolongersuitableforWebservicetesting,soitisneces2sarytostudyWebservicetestingmethodsandtechnologies1ThispapertalksaboutthedifficultyoftestingWebservicebasedonSOAandthebasicWebservicetestingmethods1ItalsoanalyzestherelatedresearcharticlesontestingWebservices1Atlast,itconcludestheshortagesofthecurrentresearchmethodsandtechnologiesandpointoutsomefutureresearchdirectionsontestingWebservices1Keywords:SOA,Webservice,Webservicetesting
1 引言SOA已成为基于Web分布式系统的主要发展趋势。Web服务采用SOA体系架构,引入了一种新的Web应用开发、部署和集成的模式,是实现各种异构平台上应用间的互操作的主要技术。目前,Web服务已经受到了广泛的应用,无论是平台供应商、解决方案供应商、技术供应商,还是服务提供商都纷纷在自己的平台、解决方案中加入Web服务。在这样的形势下,Web服务的质量成为了最为关注的问题。一旦某一Web
本文于2009-08-31收到。3本文得到国家自然科学基金(编号:90818004)、湖南省科技计划项目(编号:2007GK3054)和南京大学计算机软件新技术国家重点实验开放
基金的资助。 微 计 算 机 应 用 2010年
服务存在严重的质量问题,将可能给使用者造成不可估量的损失与危害,因此,需要对Web服务的质量进行评估。对Web服务质量评估的一个有效方法为测试。但是传统的软件测试方法与技术难以适应Web服务的测试的需求,这主要体现在几个方面:①Web服务在发布之前很难对其实际的运行场景进行预测;②Web
服务基于接口进行设计与实现,对用户不提供源代码,只能进行黑盒测试;③Web服务的应用通常涉及到服务提供者、代理者和使用者三种角色,他们都需要参与到测试中来;④多个Web服务可以在运行时动态的组合成一个新的Web服务,需要对合成服务进行集成测试。目前,国内外已经开始对Web服务测试进行研究并取得了一些初步的研究成果。本文研究了Web服务测试所面临的主要问题,总结和分析了现有的Web
服务测试研究方法与技术,并对未来可能的研究方向进行了初步的探讨。
2 Web服务基本概念Web服务是一个通过URL识别的软件应用程序,其界面与绑定使用XML文档定义、描述和发现,使用基于Internet协议上的消息传递方式与其他应用程序直接交互。Web服务是一种全新的技术架构,其主要的核心技术包括:简单对象访问协议(SOAP)、Web服务描述语言(WSDL)和统一描述、发现和集成协议(UDDI)。
SOAP
[1]是调用Web服务的协议,提供了应用程序和Web服务之间的通信手段。WSDL是描述
Web服务的格式,Web服务采用WSDL[2]语言来描述。UDDI[3]提供了一个开放平台独立的技术框架,来使
企业之间能在互联网上找到对方的服务,定义它们在Internet上的交互活动,以及这些信息的共享方式。
3 Web服务测试的难点与基本方法311 Web服务测试的难点由于Web服务的动态特征和分布式特点,任何人都可以在任何时间、任何地点发布、注册和请求Web
服务,因此给Web服务测试带来了很多挑战。Web服务测试研究的难点主要集中在以下几个方面。(1)在Web服务测试过程中,首先遇到的问题就是怎么产生测试案例。传统方法采用手工输入测试案
例进行测试是非常耗时的,因此必须自动化的产生测试案例。但是由于Web服务提供的WSDL文档只包括一些基本的参数信息,很难只根据这些信息产生有效的测试数据,因此,自动化产生测试案例是一个主要的难点。(2)由于Web服务是一个封装的软件,需要构建Web服务客户端来进行测试。每一次的Web服务测试
都需要进行Web服务的调用,因此,当执行的测试案例数量庞大的时候,就会存在大量的Web服务调用,这就必然会导致网络负载的增加,从而引起测试时间延长、测试效率降低等现象。因此,怎样提高测试效率也是测试的一个难点。(3)由于单个的Web服务不能满足日益变化的业务需求,因此,需要把单个的Web服务组合在一起形
成一个新的Web服务来满足客户的需要。这种组合的Web服务具有多样性、分布性与动态性等特征,这给测试带来了新的挑战。(4)由于Web服务所支持的业务经常需要改变,Web服务也需要经常快速的升级或修改。但是服务使
用者并不知道服务已经发生了改变,一般情况下都采用回归测试。然而,手工的回归测试方法越来越不能满足Web服务的动态变化的需求,因此,需要进行自动化的回归测试。而怎样进行自动化的回归测试也成为了一个难点。(5)测试进行到什么时候才算是进行了一次充分的测试,因此怎样分析测试的覆盖率来判断是否对
Web服务进行了充分的测试也是一个难点。(6)在SOA的体系架构下,Web服务通常会涉及到服务提供者、服务代理和服务请求者这三种角色,他
们应共同的参与到测试过程中来,但是由于他们之间的分布式协作的特性使得测试的组合和管理变得更加困难[4]。
22 1期 冯细光等:Web服务测试技术综述
(7)Web服务都是以WSDL文档进行发布,这一做法增加了Web服务的安全隐患,加大了系统被攻击
的机会。因此,对Web服务进行测试还需考虑安全性问题。312 Web服务测试的基本方法由于Web服务涉及到服务提供者,服务中介者和服务客户端,因此他们都需要参与到测试中来。服务提供者拥有服务实现的源代码,可以进行黑盒和白盒的充分测试。但是在服务提供者方进行的测试不能真实反映实际的运行情况,比如,网络负载,客户端的数量等等。因此需要在服务中介者和服务客户端进行进一步的测试,特别是在服务客户端。服务客户端是Web服务的直接使用者,在客户端进行测试对整个Web
服务质量评估是非常重要的。因此测试也主要基于客户端进行。Web服务测试的基本方法如下:
(1)功能测试。Web服务测试的基础是功能测试。Web服务功能测试就是判断对正确的用户请求能否
做出正确的响应。跟传统的功能测试不一样,由于服务消费者不拥有Web服务实现的源代码,因此需构建客户端程序进行黑盒测试。它发送SOAP请求消息调用Web服务,把返回的信息和期望的结果进行比较,
验证Web服务的功能。目前,有很多针对Web服务功能测试的方法,大部分的方法主要是通过变化的输入的数据进行测试,例如,SamerHanna[5]提出了基于缺陷技术的方法来测试Web服务的功能,进一步验证Web服务的鲁棒性。它利用输入参数的边界值,无效等价类划分,违反输入参数的说明规则来产生测试数据,利用这些产生的测试数据进行功能测试,分析测试结果。(2)负载测试。除了对Web服务进行基本的功能测试之外,还需要进行性能测试,测试Web服务性能
的一个比较好的方法就是对Web服务进行负载测试。通过模拟多个虚拟的客户端在同一时间段内进行Web服务调用来测试Web服务能够处理的最大请求数和分析请求返回的响应时间来判断Web服务的性能。(3)回归测试。由于Web服务所支持的业务经常需要改变,所以Web服务也必须快速的调整,比如升
级,修改等。然而服务使用者并不知道服务已经进行了修改,因此这些修改的部分也必须经过快速的验证。除了新增功能的正确性,还必须保证每一个修改的部分不会影响原有的功能。一个通常的做法就是进行回归测试。而回归测试的一个关键问题就是怎样减少进行回归测试的次数,当越来越多的测试案例增加到测试案例组的时候,如果选择所有现存的测试案例进行回归测试,将会非常耗时。文献[6,7]提出了一个安全回归测试选择(RTS)方法来选择测试案例。安全回归测试技术能够在不降低测试完整性的情况下减少回归测试的次数,提高回归测试的效率。