免费智能真题库 > 历年试卷 > 信息安全工程师 > 2017年上半年 信息安全工程师 上午试卷 综合知识
  第10题      
  知识点:   测评技术类   系统安全   安全漏洞   黑盒测试   数据输入   信息系统安全   异常
  关键词:   安全测评   安全漏洞   黑盒测试   模糊测试   数据   信息系统安全   安全   测试   黑盒   漏洞   系统安全   信息系统        章/节:   网络信息安全科技信息获取       

 
信息系统安全测评方法中模糊测试时一种黑盒测试技术,它将大量的畸形数据输入到目标程序中,通过监测程序的异常来发现被测程序中可能存在的安全漏洞、关于模糊测试,一下说法错误的是()。
 
 
  A.  与白盒测试相比,具有更好的适用性
 
  B.  模糊测试是一种自动化的动态漏洞挖掘技术,不存在误报,也不需要人工进行大量的逆向分析工作
 
  C.  模糊测试不需要程序的源代码就可以发现问题
 
  D.  模糊测试受限于被测系统的内容实现细节和复杂度
 
 
 

   知识点讲解    
   · 测评技术类    · 系统安全    · 安全漏洞    · 黑盒测试    · 数据输入    · 信息系统安全    · 异常
 
       测评技术类
        测评技术类术语包括黑盒测试(Black Box Testing)、白盒测试(White Box Testing)、灰盒测试(Gray Box Testing)、渗透测试(Penetration Testing)、模糊测试(Fuzz Testing)。
 
       系统安全
        华为EulerOS通过了公安部信息安全技术操作系统安全技术要求四级认证。EulerOS能够提供可配置的加固策略、内核级OS安全能力等各种安全技术以防止入侵,保障客户的系统安全。
 
       安全漏洞
        对于网络安全漏洞,并没有一个全面、准确和统一的定义,一般可以理解为在硬件、软件和协议等的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。通俗描述性定义是存在于计算机网络系统中的、可能对系统中的组成和数据等造成损害的一切因素。
        通常,入侵者寻找网络存在的安全弱点,从缺口处无声无息地进入网络,因而开发黑客反击武器的思想是找出现行网络中的安全弱点,演示、测试这些安全漏洞,然后指出应如何堵住安全漏洞。
        当前,信息系统的安全性非常弱,主要体现在操作系统、计算机网络和数据库管理系统都存在安全隐患,这些安全隐患表现在以下方面:
        (1)物理安全性。凡是能够让非授权机器物理接入的地方都会存在潜在的安全问题,也就是能让接入用户做本不允许做的事情。
        (2)软件安全漏洞。“特权”软件中带有恶意的程序代码,从而可以导致其获得额外的权限。
        (3)不兼容使用安全漏洞。当系统管理员把软件和硬件捆绑在一起时,从安全的角度来看,可以认为系统将有可能产生严重安全隐患。所谓的不兼容性问题,即把两个毫无关系但有用的事物连接在一起,从而导致了安全漏洞。一旦系统建立和运行,这种问题很难被发现。
        (4)选择合适的安全策略。这是一种对安全概念的理解和直觉。完美的软件、受保护的硬件和兼容部件并不能保证正常而有效地工作,除非用户选择了适当的安全策略和打开了能增加其系统安全的部件。
 
       黑盒测试
        黑盒测试又称为数据驱动测试、基于规格的测试、输入输出测试或者功能测试。黑盒测试基于产品功能规格说明书,从用户角度针对产品特定的功能和特性进行验证活动,确认每个功能是否得到完整实现,用户能否正常使用这些功能。
        黑盒测试在不知道系统或组件内部结构的情况下进行,不考虑内部逻辑结构,着眼于程序外部结构,在软件接口处进行测试。黑盒测试主要具有如下功能:
        (1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测是否满足性能等特性要求。
        (2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件等)的完整性。
        (3)检测程序初始化和终止方面的错误。
        黑盒测试方法主要有等价类划分、边界值分析、决策表、因果图、错误推测和功能图法等测试方法,本节主要介绍等价类划分、边界值分析、决策表和元素分析法与错误推测法。
               等价类划分
               等价类是指某个输入域的子集合。在该子集合中,测试某等价类的代表值就等于对这一类其他值的测试,对于揭露程序的错误是等效的。因此,将输入的全部数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。
               等价类划分有两种情况,即有效等价类和无效等价类。
               (1)有效等价类。对于程序的规格说明来说,它是由合理的、有意义的输入数据构成的集合,利用它可检验程序是否实现了规格说明中所规定的功能和性能。
               (2)无效等价类。与有效等价类相反,它是由对程序的规格说明无意义、不合理的输入数据构成的集合。
               测试用例的设计不仅接收合理的数据,也能经受意外的不合理数据的考验,这样才能确保软件具有较高的可靠性。
               分析可能的输入情况,按照如下几条规则对等价类进行划分。
               (1)在输入条件规定了取值范围或值的个数的情况下,确立一个有效等价类和两个无效等价类。
               例如,若输入条件规定了x的取值为1~100的整数,则等价类划分有效等价类1≤x≤100,两个无效等价类分别为x<1或x>100。
               (2)按照数值集合划分。在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,确立一个有效等价类和一个无效等价类。
               例如,输入条件规定了x的取值为偶数,则有效等价类为x的值为偶数,无效等价类为x的值不为偶数的整数。
               (3)输入条件是一个布尔量的情况,确定一个有效等价类和一个无效等价类。
               (4)规定输入数据取一组值(假定n个),并且程序要在对每一个输入值分别处理的情况下,确立n个有效等价类和一个无效等价类。
               例如,分房方案中对教授、副教授、讲师、助教分别计分,则有效类为4个;无效类为1个。
               (5)按照限制条件或规则划分。在规定输入数据必须遵守的规则的情况下,确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
               例如,C程序设计语言的语法规定.每个语句应以“;”结束,则其有效类有1个,而无效类有若干个(如以“,”结束、以“:”结束、以空格结束等)。
               (6)在确知已划分的等价类中各元素在程序处理方式不同的情况下,再将该等价类进一步划分为更小的等价类。
               等价类划分后,形成等价类表,见下表。
               
               等价类表样式
               根据等价类表,确定测试用例。首先,为每一个等价类规定唯一编号;其次,设计新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;最后,设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止(通常,程序在执行一个错误后不继续检测其他错误,故每次只测一个无效类)。
               边界值分析
               软件测试实践中,大量的错误往往发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。例如,数组下标、循环控制变量等边界附近往往出现大量错误。因此,作为等价类划分方法的补充,边界值分析方法不是选择等价类的任意元素,而主要是针对各种边界情况设计测试用例。
               常见的边界值一般具有如下情况:
               (1)对16位的整数而言,32767和-32768是边界。
               (2)屏幕上的光标在最左上、最右下位置是边界。
               (3)报表的第一行和最后一行是边界。
               (4)数组元素的第一个和最后一个是边界。
               (5)循环的第0次、第1次和倒数第2次、最后一次是边界。
               边界值分析法应着重测试的情况,一般选取等价类划分的输入和输出的边界正好等于或刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
               边界值分析方法具有如下原则。
               (1)如果输入条件规定了值的范围,则应选取刚达到范围的边界值,以及刚刚超越边界的值作为测试的输入数据。
               (2)如果输入条件规定了值的个数,则用略低于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略高于最大值作为测试数据。
               (3)如果程序规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
               决策表
               决策表又称为判定表,用于分析多种逻辑条件下执行不同操作的技术。在程序设计发展的初期,决策表是程序编写的辅助工具。决策表可以把复杂的逻辑关系和多种条件的组合情况表达明确,与高级程序设计语言中的if-else、switch-case等分支结构语句类似,它将条件判断与执行的动作联系起来。但与程序语言中的控制语句不同的是,决策表能将多个独立的条件和多个动作联系清晰地表示出来。
               决策表的组成如下。
               (1)条件桩:列出了问题的所有条件。通常认为,列出的条件次序无关紧要。
               (2)动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
               (3)条件项:列出了针对条件桩的取值在所有可能情况下的真假值。
               (4)动作项:列出了在条件项的各种取值的有机关联情况下应该采取的动作。
               规则即任何条件组合的特定取值及其相应要执行的操作。在决策表中,贯穿条件项和动作项的列就是规则。显然,决策表中列出多少个条件取值,也就有多少个规则,条件项和动作项就有多少列。
               所有条件都是逻辑结果的决策表称为有限条件决策表。如果条件有多个值,则对应的决策表就叫做扩展条目决策表。决策表用来设计测试用例,条件解释为输入,动作解释为输出。
               决策表适合以下特征的应用程序:
               (1)if-then-else分支逻辑输出。
               (2)输入变量之间存在逻辑关系。
               (3)涉及输入变量子集的计算。
               (4)输入和输出之间存在因果关系。
               (5)很高的圈复杂度。
               构造决策表的步骤:
               ①确定规则的个数。
               有n个条件的决策表有2n个规则(每个条件取真、假值)。
               ②列出所有的条件桩和动作桩。
               ③填入条件项。
               ④填入动作项,得到初始决策表。
               ⑤简化决策表,合并相似规则。
               元素分析法与错误推测法
               元素分析法主要是对测试对象中的各个元素的属性、范围、特点等进行分析,通过对元素的分析,寻找出测试空间和缺陷空间,设计测试用例的方法。
               元素分析法的基本过程如下:
               (1)找出测试对象中的各个元素。
               (2)分析每个元素的特点和属性,确定测试空间与缺陷空间。
               (3)分析元素的组合情况。
               错误推测法是基于经验和直觉的推测,列举出程序中所有可能错误和容易发生错误的特殊情况,有针对性地设计测试用例。
               经验表明,一段程序中已发现的错误数目和尚未发现的错误数目成正比。程序中容易出错的情况如下所示:当输入数据为零时,或者输入或输出的数目允许变化(例如,被检索的或生成的表的项数),或者输入或输出的数目为0和1的情况(例如,表为空或只有一项)等,都较容易发生错误。又如,在单元测试时曾列出许多在模块中常见的错误,以前产品测试中曾经发现的错误等,这些就是经验的总结。
               错误推测法是根据测试人员的经验来确定测试的范围和程度,主要采用如下技术:
               (1)有关软件的设计方法和实现技术。
               (2)有关前期测试阶段结果的知识。
               (3)根据测试类似或相关系统的经验,了解在以前的这些系统中曾在哪些地方出现过缺陷。
               (4)典型的产生错误的情况,如被零除错误等。
               (5)通用的测试经验规则。
 
       数据输入
        数据输入是指取得原始数据,然后记录、编码和编辑,从而转换成实用形式的过程。数据输入经常称为数据处理的一个瓶颈。如何快速准确的输入数据,仍然是一个很重要的问题。
        数据输入的方法有两种,一种是传统手工方法,一种是源数据自动化的方法。传统的数据输入方法依赖于计算机的终端用户由源文件获得数据,这些源文件如采购单、工资考勤表、销售订货表等。这些源文件积累成批送给数据处理人员,进行输入。这些数据周期性地送进计算机系统。现在由于手工的处理方法要求很多操作,成本高,而且出错率高,正逐渐被“源数据自动化”所代替。数据自动化已有很多方法,但达到全自动化者可以说没有。通常借助于几种自动输入设备,如POS业务终端,自动柜员机(ATM),光字识别器(OCR)等等。
 
       信息系统安全
               信息系统安全的概念
               信息系统安全指信息系统及其所存储、传输和处理的信息的保密性、完整性和可用性的表征,一般包括保障计算机及其相关的和配套的设备、设施(含网络)的安全,运行环境的安全,保障信息的安全,以保障信息系统功能的正常发挥,维护信息系统的安全运行。
               信息系统安全的侧重点会随着信息系统使用者的需求不同而发生变化,例如:
               .个人用户最关心的信息系统安全问题是如何保证涉及个人隐私的问题。企业用户看重的是如何保证涉及商业利益的数据的安全。
               .从网络运行和管理者角度说,最关心的信息系统安全问题是如何保护和控制其他人对本地网络信息进行访问、读写等操作。
               .对安全保密部门和国家行政部门来说,最关心的信息系统安全问题是如何对非法的、有害的或涉及国家机密的信息进行有效过滤和防堵,避免非法泄露。
               .从社会教育和意识形态角度来说,最关心的则是如何杜绝和控制网络上的不健康内容。有害的黄色内容会对社会的稳定和人类的发展造成不良影响。
               信息系统安全的属性
               信息系统安全的属性主要包括:
               .保密性:是应用系统的信息不被泄露给非授权的用户、实体或过程,或供其利用的特性,即防止信息泄漏给非授权个人或实体,信息只为授权用户使用的特性。保密性建立在可用性基础之上,是保障应用系统信息安全的重要手段。应用系统常用的保密技术如下:
               最小授权原则:对信息的访问权限仅授权给需要从事业务的用户使用。
               防暴露:防止有用信息以各种途径暴露或传播出去。
               信息加密:用加密算法对信息进行加密处理,非法用户无法对信息进行解密从而无法读懂有效信息。
               物理保密:利用各种物理方法,如限制、隔离、掩蔽和控制等措施,来保护信息不被泄露。
               .完整性:是信息未经授权不能进行改变的特性,即应用系统的信息在存储或传输过程中保持不被偶然或蓄意地删除、修改、伪造、乱序、重放和插入等破坏和丢失的特性。保障应用系统完整性的主要方法如下:
               协议:通过各种安全协议可以有效地检测出被复制的信息、被删除的字段、失效的字段和被修改的字段。
               纠错编码方法:由此完成检错和纠错功能。最简单和常用的纠错编码方法是奇偶校验法。
               密码校验和方法:是抗篡改和传输失败的重要手段。
               数字签名:用于保障信息的真实性。
               公证:请求系统管理或中介机构证明信息的真实性。
               .可用性:是应用系统信息可被授权实体访问并按需求使用的特性,即信息服务在需要时,允许授权用户或实体使用的特性,或者是网络部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性。可用性一般用系统正常使用时间和整个工作时间之比来度量。可用性还应该满足以下要求:身份识别与确认、访问控制、业务流控制、路由选择控制和审计跟踪。
               .不可抵赖性:也称作不可否认性,在应用系统的信息交互过程中,确信参与者的真实同一性,即所有参与者都不可能否认或抵赖曾经完成的操作和承诺。利用信息源证据可以防止发信方不真实地否认已发送信息,利用递交接收证据可以防止收信方事后否认已经接收的信息。
               信息系统安全管理体系
               信息系统安全管理是对一个组织机构中信息系统的生存周期全过程实施符合安全等级责任要求的管理。
               不同安全等级的安全管理机构可按下列顺序逐步建立自己的信息系统安全组织机构管理体系:
               .配备安全管理人员。
               .建立安全职能部门。
               .成立安全领导小组。
               .主要负责人出任领导。
               .建立信息安全保密管理部门。
               信息系统安全管理体系参见《GB/T 20269~2006信息安全技术信息系统安全管理要求》,该标准把信息系统安全管理分为八大类,每个类分为若干族,针对每个族设置了相应的管理要素。八大类分别为:政策和制度、机构和人员管理、风险管理、环境和资源管理、运行和维护管理、业务持续性管理、监督和检查管理、生存周期管理。
               信息系统安全技术体系参见《GB/T 20271—2006信息安全技术信息系统通用安全技术要求》,该标准把信息系统安全技术分为:
               .物理安全:包括环境安全、设备安全和记录介质安全。
               .运行安全:包括风险分析、信息系统安全性检测分析、信息系统安全监控、安全审计、信息系统边界安全防护、备份与故障恢复、恶意代码防护、信息系统的应急处理、可信计算和可信连接技术。
               .数据安全:包括身份鉴别、用户标识与鉴别、用户主体绑定、抗抵赖、自主访问控制、标记、强制访问控制、数据完整性保护、用户数据保密性保护、数据流控制、可信路径和密码支持。
 
       异常
        异常是一种形式的异常控制流,它一部分是由硬件实现的,一部分是由操作系统实现的。因为它们有一部分是由硬件实现的,所以具体细节将随系统的不同而有所不同。然而,对于每个系统而言,基本的思想都是相同的。
        异常(exception)就是控制流中的突变,用来响应处理器状态中的某些变化。异常可以分为四类:中断(interrupt)、陷阱(trap)、故障(fault)和中止(abort)。下表对这些类别的属性做了小结。
        
        异常的类别
        (1)陷阱。陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
        用户程序经常需要向内核请求服务,例如读一个文件、创建一个新的进程、加载一个新的程序或者中止当前进程。为了允许对这些内核服务的受控的访问,处理器提供了一条特殊的syscall指令,当用户程序想要请求服务n时,可以执行这条指令。执行syscall指令会导致一个到异常处理程序的陷阱,这个处理程序对参数解码,并调用适当的内核程序。
        (2)故障。故障由错误情况引起,它可能被故障处理程序修正。当一个故障发生时,处理器将控制转移给故障处理程序。如果处理程序能够修正这个错误情况,它就将控制返回到故障指令,从而重新执行它。否则,处理程序返回到内核中的abort例程,abort例程会中止引起故障的应用程序。
        (3)中止。中止是不可恢复的致命错误造成的结果,典型的是一些硬件错误,例如DRAM或者SRAM位被损坏时发生的奇偶错误。中止处理程序从不将控制返回给应用程序。处理程序将控制返回给一个abort例程,该例程会中止这个应用程序。
   题号导航      2017年上半年 信息安全工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第10题    在手机中做本题