1、2013年下半年软件水平考试(中级)软件评测师下午(应用技术)试题真题试卷及答案与解析 一、试题一( 15分) 0 阅读下列说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由 C语言编写的程序,按要求回答问题。 int XOR(char*filename, unsigned long key) FILE*input=NULL, output=NULL; 1 char*outfilename=NULL; int len=strlen(filename); unsigned char
2、buffer; if(filename1en一 2= ) (filename1en一 1=C) 2, 3 outfilename=new charlen+1; 4 strcpy(outfilename, filename); outfilenamelen一 2= 0; else /S outfilename=new charlen+5; strcpy(outfilename, filename); strncat(outfilename, “ C”, 2); input=fopen(filename, “rb”); if(input=NULL) 6 cout”Error opening fil
3、e”filenameendl; 7 deleteoutfilename; outfilename=NULL; return 1; output=fopen(outfilename, ”wb”); if(output=NULL) 8 cout”Error creating output file”outfilenameendl; 9 deleteoutfilename; outfllename=NULL; return 1; while(!feof(input) 1 0 if(fread( return 1; else /14 buffer=key; fwrite(平均数据量 8KB请求,即 D
4、=10KBs。 则:通信吞吐量 P=100108=8000KB s 10 【正确答案】 设计如下测试: (1)intClientSubmitScore: 100-, strStudentlD: 20130002,则该 SQL变为: UPDATE StudentScore SET score=100 一一 WHERE StudentID=20130002; (2)intClientSubmitScore: 100, strStudentlD: 20130002: DROP TABLE StudentScore-,则该 SQL语句变为: UPDATE StudentScore SET score=
5、100 WHERE StudentID=20130002; DROP TABLE StudentScore一 ; 从测试用例所拼接处的 SQL可以看出,该 SQL语句不安全,容易造成 SQL注入。 防止 SQL注入的方法主要有:拼接 SQL之前对特殊符号进行转义,使其不作为SQL语句的功能符号。 【试题解析】 本问题考查 Web应用安全性方面的 SQL注入, SQL注入是 Web应用安全性测试的重要方面。 许多 Web应用系统采用某 种数据库,接收用户从 Web页面中输入,完成展示相关存储的数据 (如检查用户登录信息 )、将输入数据存储到数据库 (如用户输入表单中数据域并点击提交后,系统将信息
6、存入数据库 )等操作。在有些情况下,将用户输入的数据和设计好的 SQL框架拼接后提交给数据库执行,就可能存在用户输入的数据并非设计的正确格式,从而给恶意用户提供了破坏的机会。即 SQL注入。恶意用户输入不期望的数据,拼接后提交给数据库执行,造成可能使用其他用户身份、查看其他用户的私密信息,还可能修改数据库的结构,甚至是删除应用的数据库表等严重后果。因此需要在测试 阶段进行认真严格的测试。 本系统实现时,对成绩更新所用的如下 8QL语句: “UPDATE StudentScore SET score=”+intClientSubmitScore+”WHERE Stuent_ID= “+StrSt
7、udentID+”; ” 采用拼接字符串方式,无法防止 SQL注入。例如 intClientSubmitScore: 100-,strStudentID: 20130002,则该 SQL变为: UPDATE StudentScore SET score=100一一 WHERE StuentID=20130002; 一是 SQL中注释符号,其后的内容为注释,这样上述语句中一之后的内容变为注释,只要 StudentScore表中所有的记录的 score都变为 100,而没有受到WHERE子句后的学号限制。 再比如 intClientSubmitScore: 100, strStudentID: 2
8、0130002ora=a,则该SQL变为: UPDATE StudentScore SET score。 100 WHERE StuentID=20130002ora=a; 因为 a=a条件总是成立,因此, SQL执行结果包括学生成绩表中所有行的score都更新为 100分。 更为严重的情况下,用户输入 DROP等功能性命令,会造成数据库表的永久删除等严重后果,如 strStudentID: 20130002; DROP TABLE StudentScore-,则该 SQL语句变为: UPDATE StudentScore SET score=100 WHERE StuentID=201300
9、02;DROP TABLE StudentScore-; 防止 SQL注入的方法主要有:拼接 SQL之前对特殊符号进行转义或者等价方式,使其不作为 SQL语句的功能符号。验证所有输入数据能从输入层面防止 SQL注入。 SQL注入在使用 SSL的应用中仍然存在,甚至是防火墙也无法防止 SQL注入。因此,在测试 Web应用时,需要认真仔细设计测试用例,采用 Web漏洞扫描工具等进行检查,以保证不存在 SQL注入机会。 四、试题四( 15分) 11 【正确答案】 对于故障恢复与容灾备份措施,应从以下三个方面进行测试 : 故障恢复:测试整个 ERP系统是否存在单点故障;任何一台设备失效时,能否按照预定
10、义的规则实现快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接。 数据备份: ERP系统关键业务是否具备必要的双机热备或磁盘镜像等热备份机制;对于整个 ERP业务,是否提供外部存储器备份和恢复机制,保证系统能够根据备份策略恢复到指定时间的状态。 容灾备份: ERP系统是否建立异地容灾备份中心,当主中心发生灾难性事件时,可由备份中心接管所有业务;备份中心是否有足够的带宽确保与主中心的数据同步 ,是否有足够处理能力来接管主中心的业务,能否确保快速可靠地与主中心的应用切换。 【试题解析】 针对故障恢复与容灾备份措施的安全性测试一般包括故障恢复、数据备份与容灾备份三个测试点,其包含的基本
11、测试内容为: 故障恢复:整个系统是否存在单点故障;对于关键应用系统,当任何一台设备失效时,能否按照预定义的规则实现快速切换;是否采用磁盘镜像技术,实现主机系统到磁盘系统的高速连接; 数据备份:对于关键业务,是否具备必要的双机热备或磁盘镜像等热备份机制;对于所有业务,是否提供外部存储器备份和恢复 机制,保证系统能够根据备份策略恢复到指定时间的状态; 容灾备份:是否建立异地容灾备份中心,当主中心发生灾难性事件时,可由备份中心接管所有业务;备份中心是否有足够的带宽确保与主中心的数据同步,是否有足够处理能力来接管主中心的业务,能否确保快速可靠地与主中心的应用切换。 12 【正确答案】 敏感数据加密保护
12、和数据库访问方式的测试内容为: 敏感数据的加密保护:由于 ERP系统的用户权限和口令存储在数据库中,因此需要测试相应敏感数据是否采用加密算法进行加密保护。 数据库访问方式测试 :是否为不同应用系统或业务设置不同的专门用户用于数据库访问,应杜绝在代码中使用超级用户及默认密码对数据库进行访问。 【试题解析】 根据本题说明, ERP系统的用户权限和口令信息存储在数据库中,因此需要测试相应敏感数据是否采用加密算法进行加密保护;而数据库中还需要存储 ERP系统之外的其他系统业务数据,因此应为不同应用系统或业务设置不同的专门用户用于数据库访问,且应杜绝在代码中使用超级用户及默认密码对数据库进行访问。 13
13、 【正确答案】 安全防护策略是软件系统对抗攻击的主要手段,常见的安全防护策略有以下 四种: 安全日志:安全日志用于记录非法用户的登录名称、操作时间及内容等信息,以便发现问题并提出解决措施;安全日志仅记录相关信息,不对非法行为做出主动反应,属于被动防护的策略; 入侵检测系统:入侵检测系统是一种主动的网络安全防护措施,从系统内部或各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击,通常入侵检测系统还应对入侵行为做出紧急响应; 漏洞扫描:漏洞扫描是对软件系统及网络系统进行与安全相关的检测,以找出安全隐患和可被黑客利用的漏洞; 隔离防护:隔离防护是将系 统中的安全部分与非安全部分进行隔离的措施,
14、主要的技术手段有防火墙和隔离网闸等,其中防火墙主要用于内网和外网的逻辑隔离,而网闸则主要用于实现内网和外网的物理隔离。 图 4-1中明确标识出的安全防护策略机制为防火墙和入侵检测系统。 (可选择防火墙或入侵检测系统中的任一机制描述相应安全测试的测试点 ) 针对防火墙的测试点: (1)是否支持交换和路由两种工作模式; (2)是否支持对 FTP、 HTTP、 SMTP等服务类型的访问控制; (3)是否考虑防火墙的冗余设计; (4)是否 支持对日志的统计分析功能,日志是否可存储在本地或网络数据库中; (5)对防火墙或受保护内网的非法攻击,是否提供多种告警方式和多种级别的告警。 针对入侵检测系统的测试
15、点: 能否在检测到入侵事件时,自动执行切断服务、记录入侵过程、报警等动作; 是否支持攻击特征信息的集中式发布和攻击取证信息的分布式上载; 能否提供多种方式对监视引擎和检测特征进行定期更新; 内置的网络能否使用状态监控工具或网络监听工具。 【试题解析】 安全防护策略是软件系统对抗来自外 网或内网的主动攻击的主要手段,常见的安全防护策略包括安全日志、入侵检测、隔离防护与漏洞扫描等,本题首先要求考生对常见安全防护策略的有基本的理解,了解其基本原理与主要措施。 图 4-1中明确标识出的安全防护策略机制为防火墙和入侵检测系统,考生可自主选择其中一种,描述对其进行安全性测试时需要完成的测试点。 五、试题五
16、( 15分) 14 【正确答案】 软件可靠性是在规定的条件下,在规定的时间内,软件不引起系统失效的概率。影响软件可靠性的主要因素包括:运行剖面、软件规模:软件内部结构、软件的开发方法和开发环境、 软件的可靠性投入等。 15 【正确答案】 失效概率是软件从运行开始到某一时刻 t为止,出现失效的概率; 可靠度是软件系统在规定的条件下,规定的时间内不发生失效的概率; 平均无失效时间指软件运行后,到下一次出现失效的平均时间。 16 【正确答案】 不符合可靠度要求。 软件可靠度 R(t)和软件失效概率之间的关系为 R(t)=1F(t)。 R(1000)=1一F(1000)=10 0012=0 9988=
17、99 88, 99 88 99 99,因此不符合设计软件可靠度要求。 【试 题解析】 软件可靠性 (software reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供给定的服务,软件产品所必须具备的功能。软件可靠性不但与软件存在的缺陷和 (或 )差错有关,而且与系统输入和系统使用有关。软件可靠性的概率度量称软件可靠度。 现代软件工程认为,质量形成于过程,过程的因素是影响软件可靠性的 主要
18、因素。从软件开发的角度,影响软件可靠性的因素有软件规模、运行剖面、软件内部结构、软件可靠性管理、软件可靠性测试与投入、软件可靠性设计技术、软件开发方法与软件开发环境等。一般地,软件规模越大,其可靠性问题就越多。 失效概率是软件从运行开始到某一时刻 t为止,出现失效的概率; 可靠度是软件系统在规定的条件下,规定的时间内不发生失效的概率; 平均无失效时间指软件运行后,到下一次出现失效的平均时间。 软件可靠度 R(t)与软件失效概率之间的关系为 R(t)=1-F(t),题目中 t=1 000,F(t)=0 0012,因此 R(t)=1一 0 0012=0 9988,显然不符合该嵌入式软件设计要求的 0 9999无失效概率。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1