CISSP认证考试(软件开发安全)模拟试卷1(题后含答案及解析)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CISSP认证考试(软件开发安全)模拟试卷1(题后含答案及解析) 题型有:1.
1.Data marts, databases, and data warehouses have distinct characteristics. Which of the following does not correctly describe a data warehouse?
A.It could increase the risk of privacy violations.
B.It is developed to carry out analysis.
C.It contains data from several different sources.
D.It is created and used for project-based tactical reasons.
正确答案:D
解析:D正确。

数据仓库(data warehouse)的创建和使用通常并不是因为基于项目的战术原因。

它描述的是数据集市(data mart)的特点,数据集市是短时间内项目为确定解决问题的战术方法的数据库(database)的一部分。

而创建数据仓库的目的是基于战略原因进行数据挖掘(data mining)和分析。

A不正确。

因为数据仓库可能会增加隐私侵犯的风险,这是由于数据是从几个不同的来源进行收集并存储在一个中央位置(仓库)。

尽管这种做法可以提供更加便捷的访问和控制方法——因为数据仓库位于同一个地方——但它也要求更加严格的安全防范。

如果某个入侵者进入了这个数据仓库,她便立刻能访问这个公司的所有信息。

B不正确。

因为这个说法是正确的。

创建数据仓库的目的通常是为了分析。

分析有助于战略决策的制定,例如,那些与业务趋势、欺骗活动或者营销效果相关的战略决策。

分析工作通常是通过数据挖掘活动进行的。

C不正确。

因为数据仓库的确包含若干个不同来源的信息。

数据从不同的数据库和其他数据点被提取出来,再传输到一个叫做数据仓库的中央数据存储位置,然后再进行归一化。

这样使得用户只需要查询一个单一的实体而不是访问和查询不同的数据源,并且这样也可以提高信息检索和数据分析的效率。

知识模块:软件开发安全
2.Database software should meet the requirements of what is known as the ACID test. Why should database software carry out atomic transactions, which is one requirement of the ACID test, when OLTP is used?
A.So that the rules for database integrity can be established
B.So that the database performs transactions as a single unit without interruption C.To ensure that rollbacks cannot take place
D.To prevent concurrent processes from interacting with each other
正确答案:B
解析:B正确。

在把数据库群集起来以提供高容错性和高性能时,便会用到联机事务处理(Online Transaction Processing,OLTP)。

联机事务处理提供了监测问题并在问题出现时处理问题的机制。

例如,如果某个进程停止运作,OLTP内的监控机制能够监测到这个问题并尝试重新启动这个进程。

如果这个进程无法重新启动,那么正在进行的这个事务将被回滚,以确保没有数据遭到破坏,或者仅
有部分事务发生了。

OLTP(实时地)记录所发生的事务,在分布式环境中这通常意味着需要更新多个数据库。

这种复杂性可能引入许多完整性威胁,因此,这个数据库软件应该具有被称为ACID测试的特点。

原子性(atomicity):把事务分成多个工作单元,并确保所有的修改要么全生效,要么全不生效。

要么变更被提交,要么数据库被回滚。

一致性(consistency):事务必须遵循专为该数据库制定的完整性规则,确保不同数据库中的所有数据都是一致的。

隔离性(isolation):事务孤立地执行直至完成,这个过程不会与其他事务进行交互。

修改的结果直到事务完成时才可用。

持久性(durability):一旦事务被证实在所有系统上都是精确的,那么它便会被提交,并且数据库不能被回滚。

”原子”这个术语指的是事务单元要么一起发生,要么一个都不执行,即“要么全有,要么全无”。

这样能够保证如果一个操作失败,其他操作也不会进行(从而破坏数据库中的数据)。

A不正确。

因为OLTP和ACID是执行而不是建立数据库安全策略中所规定的完整性规则。

一致性(consistency)代表的是ACID中的字母C,它与完整性规则的执行和可执行性有关。

具有一致性特点的数据库软件在执行事务时都遵循一个特定的完整性策略,从而确保不同数据库中的所有数据都是相同的。

C不正确。

因为原子性把事务分成多个工作单元,并确保所有的修改要么全生效,要么全不生效。

要么变更被提交,要么该数据库被回滚。

这意味着如果有什么地方运行地不对,该数据库会返回(回滚)到它最初的状态。

一旦事务正常运行之后,回滚便不可能发生,这就是ACID测试的持久性特点。

这个问题专门针对的是原子事务方法,而不是持久性。

D不正确。

因为原子事务无法解决正在执行数据库事务的进程的隔离问题,这是ACID测试的“隔离”组件。

保证一个正在进行事务的进程不能被另一进程中断或者修改是至关重要的。

这样是为了确保事务过程中被处理的数据的完整性、精确性和保密性。

知识模块:软件开发安全
3.Lisa has learned that most databases implement concurrency controls. What is concurrency, and why must it be controlled?
A.Processes running at different levels, which can negatively affect the integrity of the database if not properly controlled.
B.The ability to deduce new information from reviewing accessible data, which can allow an inference attack to take place.
C.Processes running simultaneously, which can negatively affect the integrity of the database if not properly controlled.
D.Storing data in more than one place within a database, which can negatively affect the integrity of the database if not properly controlled.
正确答案:C
解析:C正确。

数据库通常被许多不同的应用程序同时使用,并且许多用户会同时与数据库进行交互。

并发(concurrency)指不同进程(应用程序和用户)同时访问这个数据库。

如果对此不进行适当控制,这些进程可能会覆盖彼此的数据或者导致死锁。

并发问题的负面结果就是降低了数据库内数据的完整性。

数据库的完整性可以通过并发保护机制米提供。

一个并发控制被锁住,就可以防止用户访问和修改别人正在使用的数据。

A不正确。

因为并发指的是进程同时运行,而不是在不同的层级上运行。

当数据库被不同用户和(或)应用程序同时访问时,便会出现并发问题。

如果不进行正确地控制,两个用户则可以同时访问和修改同一数
据,这会给动态环境带来不利影响。

B不正确。

因为当处于较低安全级别的一个主体间接猜测出或推断出较高安全级别的数据时,通过审查可访问数据而推断新信息的能力就产生了。

这可以导致推理攻击(inference attack)。

它与并发无关。

并发涉及数据的完整性,而推理涉及数据的保密性。

D不正确。

因为将数据存储在多个地方不是并发问题。

当两个主体或应用程序尝试同时修改相同的数据时便会出现并发问题。

知识模块:软件开发安全
4.Robert has been asked to increase the overall efficiency of the sales database by implementing a procedure that structures data to minimize duplication and inconsistencies. What procedure is this?
A.Polymorphism
B.Normalization
C.Implementation of database views
D.Constructing schema
正确答案:B
解析:B正确。

归一化(normalization)是一个消除冗余、有效组织数据、降低数据操作过程中出现异常的可能性和提高数据库内数据一致性的过程。

它是一种确保数据库结构设计合理、避免一些损害数据完整性的不良特征(插入、更新和删除异常)的系统方法。

A不正确。

因为多态性(polymorphism)指的是不同的对象在给予相同输入时作出不同的反应。

以下是一个最简单的多态性例子:假设3个不同的对象都收到输入“Bob”一词,对象A处理这个输入后输出“43岁,白人,男性”;对象B输出“Sally的丈夫”;而对象C输出“用户组成员”。

每个对象收到相同的输入,但却会产生不同的输出。

C不正确。

因为数据库视图(database view)是逻辑访问控制,它的实现是为了允许一个组或者一个特定用户查看特定的信息,并同时限制另一个组查看该信息。

例如,数据库视图可以实现:允许中层经理查看他们部门的利润和费用,但无法查看整个公司的利润。

数据库视图并没有减少重复数据,相反。

它们操控着特定用户或组查看数据的方式。

D 不正确。

因为数据库系统的模式(schema)是指用正式语言描述的数据库的结构。

在关系数据库中,模式定义了表、字段、关系、视图、索引、过程、队列、数据库链接、目录等。

模式描述的是数据库和其结构,但并不描述将要进入该数据库内的数据。

这类似于一座房子的蓝图。

蓝图可以说明这座房子将会有4个房间、6扇门、12个窗口等,但无法描述将住在这个房子里的人。

知识模块:软件开发安全
5.Which of the following correctly best describes an object-oriented database?
A.When an application queries for data, it receives both the data and the procedure.
B.It is structured similarly to a mesh network for redundancy and fast data retrieval.
C.Subject must have knowledge of the well-defined access path in order to access data.
D.The relationships between data entities provide the framework for organizing data.
正确答案:A
解析:A正确。

在面向对象的数据库中,对象在需要时会被实例化,数据和程序(被调用的方式)则会在被请求时跟随对象。

这不同于关系数据库。

在关系数据库中,当从数据库中检索到数据时,应用程序将使用它自己的程序获取数据和处理数据。

B不正确。

因为网状网(mesh network)是一种物理拓扑结构,它与数据库没有任何关系。

网状网是由相互连接的、为所有网络上的节点提供多条路径的路由器和交换机组成的网络。

在全网状拓扑结构中,每个节点都直接与其他各个节点相连,这提供了很大程度的冗余。

在部分网状拓扑结构中,每个节点并不直接相连。

Internet便是一个部分网状拓扑结构的例子。

C不正确。

为了访问数据,就要访问分层数据库——不是面向对象的数据库——的主体必须知道访问路径。

在分层数据库模型中,记录(record)和字段(field)以逻辑树结构相互关联。

父母可以有一个孩子、多个孩子或者没孩子。

树形结构包含分支,每个分支包含大量数据字段。

为了访问数据,应用程序必须知道从哪个分支开始、须要穿越哪个层级的哪个路由才能获得数据。

D不正确。

因为数据实体之间的关系为关系数据库中数据的组织提供了框架。

关系数据库由一个二维表组成,每个表都含有独一无二的行、列和单元格。

每个单元格都包含一个代表给定行内一个特定属性的数值。

这些数据实体通过关联连在一起,而这种关系也为这些数据的组织提供了框架。

知识模块:软件开发安全
6.Fred has been told he needs to test a component of the new content management application under development to validate its data structure, logic, and boundary conditions. What type of testing should he carry out?
A.Acceptance testing
B.Regression testing
C.Integration testing
D.Unit testing
正确答案:D
解析:D正确。

单元测试(unit testing)指的是在一个受控的环境里对单一组件进行测试以验证数据结构、逻辑和边界条件。

在程序员开发了一个组件之后,会使用若干不同的值、在许多不同的情形中进行测试。

单元测试可以在开发的早期阶段开始,通常会贯穿整个开发阶段。

单元测试的优点之一就是能在开发周期的早期阶段发现问题,在哪个时候改变个体单元要更加容易,成本也更低。

A不正确。

因为接受测试(acceptance testing)的执行是为了确保代码符合客户的要求。

这个测试用于测试部分或全部应用程序,通常不用于测试单一组件。

B不正确。

因为回归测试(regression testing)指的是变化发生后对系统重新进行测试,以确保系统的功能、性能和保护措施。

从根本上讲,回归测试是为了识别由于程序变化而出现的、引起功能停止运行的故障。

开发人员在修复一个问题时不经意间又创建了一个新问题,或者在修复一个新问题时却破坏了旧问题的修复的情况很常见。

回归测试可能包括检查以前修复的故障以确保它们没有再次出现,以及重新运行以前的测试。

C不正确。

因为集成测试(integration testing)指的是验证组件是否能像设计说明中规定的那样一起运行。

在进行单元测试后,单个组件或者单元被组合在一起进行测试,以验证它们是否达到功能、性能、可靠性等方面的要求。

知识模块:软件开发安全
7.Which of the following is the best description of a component-based system development method?
A.Components periodically revisit previous stages to update and verify design requirements
B.Minimizes the use of arbitrary transfer control statements between components
C.Uses independent and standardized modules that are assembled into serviceable programs
D.Implemented in module-based scenarios requiring rapid adaptations to changing client requirements
正确答案:C
解析:C正确。

基于组件的开发(component-based development)涉及独立模块和标准化模块的使用。

每个标准模块都是由一个功能算法(functional algorithm)或指令集(instruction set)组成的,且提供彼此通信的接口。

基于组件的开发增加了程序的可重用性和可插拔功能,所以被广泛用于现代编程之中,这加强了程序的一致性,大大降低软件的维护成本。

这些模块的一个常见例子是在面向对象编程中频繁使用的“对象”(object)。

A不正确。

因为螺旋式系统开发方法(spiral method of system development)将周期性地回访前面的阶段以更新和验证设计要求。

螺旋式方法建立在瀑布方法之上。

它使用离散的开发阶段,将重点放在风险分析、原型和模拟之上。

螺旋式方法并没有明确规定组件的开发和测试。

B不正确。

因为结构化程序开发(structured programming development)使用逻辑块来实现使用程序化编程的系统设计。

结构化程序布局减少了类似GOTO这样的任意转换控制语句的使用,侧重于单一的入口和出口。

分层方法使得程序更容易被理解和在以后被修改。

D不正确。

因为极限编程(extreme programming)是一种一般在要求快速适应不断变化的客户需求情况下使用的方法。

极限编程非常重视使用客户反馈来评估项目成果和分析可能需要进一步关注的项目领域。

极限编程的编码原理摒弃了传统长期使用的编码重用计划,转而关注创建供当期任务使用的、简单的优化编码。

知识模块:软件开发安全
8.There are many types of viruses that hackers can use to damage systems. Which of the following is not a correct description of a polymorphic virus?
A.Intercepts antivirus’s call to the operating system for file and system information
B.Varies the sequence of its instructions using noise, a mutation engine, or random-number generator
C.Can use different encryption schemes requiring different decryption routines D.Produces multiple, varied copies of itself
正确答案:A
解析:A正确。

隧道病毒(tunneling virus)——不是多态病毒——试图把自己安装在防病毒程序中。

当防病毒程序对关键文件、文件大小和修改日期等进行健
康检查时,它会向操作系统发出收集这些信息的请求。

如果该病毒把自己放置于防病毒软件和操作系统之间,那么当防病毒程序发出获取这类信息的系统调用时,隧道病毒可以拦截这一调用,并用显示该系统未受病毒感染的信息来回应防病毒程序。

多态病毒也试图愚弄防病毒扫描器,但它是通过产生不同的、但可操作的、自身的副本来实现这一目的。

即使防病毒程序发现并破坏掉其中的一个或两个副本,其他副本仍然会活跃在系统内部。

B不正确。

因为多态病毒可以通过在其他有用的指令中加入噪音或者虚假指令以更改其指令序列。

多态病毒也可以使用一个变体引擎和一个随机数发生器改变其指令序列,从而希望不会被检测到。

原始功能保持不变,只是代码变化,从而使识别使用固定签名病毒的所有版本变得几乎不可能。

C不正确。

因为多态病毒可以使用不同的加密方案,而这些加密方案要求不同解密例程。

这就要求反病毒程序扫描若干个扫描字符串(string),每个扫描字符串负责扫描一个可能的解密方法,从而可以确定这种类型病毒的所有副本。

多态病毒编写者最常见的就是使用加密隐藏病毒的负载,然后在编码上添加一个解密方法。

一旦加密,这个编码就毫无意义了。

然而,一个被加密的病毒并不一定是一个多态病毒。

具有多态性的病毒,其加密和解密算法必须与其本身的每一个新版本一同发生变异。

D不正确。

因为多态病毒会产生多个、不同的自身副本,试图躲避防病毒软件的检测。

多态病毒具有改变它自身的代码的能力,使得这些病毒有成百上千个变体。

这些活动可以导致病毒扫描程序无法正确识别这些病毒,从而听之任之进行破坏。

知识模块:软件开发安全
9.Which of the following best describes the role of the Java Virtual Machine in the execution of Java applets?
A.Converts the source code into bytecode and blocks the sandbox
B.Converts the bytecode into machine-level code
C.Operates only on specific processors within specific operating systems
D.Develops the applets, which run in a user’s browser
正确答案:B
解析:B正确。

Java是一种面向对象的、与平台无关的编程语言。

它可以作为一个成熟的编程语言进行使用,既可以用于编写完整的程序,也可以用来编写叫做applet的简短程序(applet运行于用户的浏览器中)。

Java是一种与平台无关的语言,因为它创建中间代码,即并不专门针对处理器的字节码。

然后,Java 虚拟机(Java Vigual Machine,JVM)将字节码转换成特定系统上的处理器能够理解的机器代码。

A不正确。

因为Java虚拟机将字节码转换成机器代码,它并不将源代码转换为字节码一一这是Java编译器的工作。

JVM也会在一个环境里创建叫做沙箱(sandbox)的虚拟机。

这个虚拟机是一个封闭的环境,applet在其中执行它的活动。

applet通常通过一个请求Web页面的HTTP发送,这意味着applet 一经到达便立即执行。

如果applet的开发人员没有正确编程的话,该程序便会故意或者偶然地执行某些恶意活动。

所以这个沙箱严格限制applet对任何系统资源的访问。

JVM调解对系统资源的访问,从而确保applet代码规矩地呆在它自己的沙箱里执行。

C不正确。

因为Java是一种面向对象的、与平台无关的编程语言。

其他种类的语言被编译成供特定操作系统和处理器使用的对象代码。

这就是为什么一个特定的应用程序可以在Windows上运行而不能在Macintosh上运行的原因。

Intel处理器不需要理解为Alpha处理器编译的机器代码,反之亦然。

Java
是与平台无关的语言,因为它创建中间代码,即并不专门针对处理器的字节码。

D不正确。

因为Java虚拟机并不编写applet。

Java是一个成熟的编程语言,用来编写完整程序和叫做applet的简短程序,applet运行于用户的浏览器中。

程序员创建Java applet,并通过一个编译器运行它。

Java编译器把这个源代码转换成字节码。

然后,用户下载这个Java applet。

字节码被JVM转换成机器代码。

最终,这个applet会在调用时运行。

知识模块:软件开发安全
10.What type of database software integrity service guarantees that tuples are uniquely identified by primary key values?
A.Concurrent integrity
B.Referential integrity
C.Entity integrity
D.Semantic integrity
正确答案:C
解析:C正确。

实体完整性保证了元组(tuple)由主键值唯一确定。

元组是二维数据库中的一行。

主键是对应列中唯一标识出该行的一个值。

为了保证实体的完整性,每个元组都必须包含一个主键。

如果某个元组没有主键,则它无法被这个数据库所引用。

A不正确。

因为并发完整性不是数据库软件的正式术语。

这是一个干扰项。

有3种主要的完整性服务类型:语义完整性、引用完整性和实体完整性。

并发指的是一个软件可以被多个用户和(或)应用程序同时访问。

如果控制不到位,两个用户可以同时访问和修改同一数据。

B不正确。

因为参照完整性指的是引用现有主键的所有外键。

必须有一个适当的机制,确保任何外键都不会引用不存在记录的主键或值为空的主键。

这种完整性控制确保不同表之间的关系可以正常工作和彼此通信。

D不正确。

因为语义完整性机制确保数据库实施了结构和语义规则。

这些规则涉及数据类型、逻辑值、唯一性约束,以及对数据库结构能够造成负面影响的操作。

知识模块:软件开发安全
11.In computer programming, cohesion and coupling are used to describe modules of code. Which of the following is a favorable combination of cohesion and coupling?
A.Low cohesion, low coupling
B.High cohesion, high coupling
C.Low cohesion, high coupling
D.High cohesion, low coupling
正确答案:D
解析:D正确。

如果一个模块被描述为具有高内聚(cohesion)、低耦合(coupling)性,这是个好事。

内聚反映的是一个模块能够执行多少种不同类型的任务。

高内聚意味着这个模块执行的是一个基本任务(如数值的减法)或几个非常相似的任务(如减法、加法、乘法)。

内聚程度越高,更新或修改一个模块且不影响其他与之交互的模块就越容易。

这也意味着该模块更容易重复使用和维护,因为与低内聚的模块相比它更简单。

耦合显示了一个模块为了执行其任务需要进行多少次交互的衡量。

如果一个模块是低耦合或者松散耦合,这意味着这个模块在执行它的
工作时不需要与许多其他模块进行通信。

与那些依靠许多其他模块进行工作的模块相比,这些模块更容易被理解和重复使用。

而且,修改这些模块也更加容易,也不会影响它们周围的众多模块。

A不正确。

因为低内聚的模块是不可取的。

低内聚的模块会执行几个不同的任务,增加了这个模块的复杂性,使之更难维护和重复使用。

一个模块的内聚程度越高,它执行的任务越少,越容易对其进行更新或者修改,而不影响其他与之交互的模块。

B不正确。

因为高耦合的模块是不可取的。

高耦合意味着一个模块依赖于很多其他的模块来执行其任务。

这使得它因为与其他模块的相互依存关系而很难被理解、重复使用和修改。

打个比方,公司希望员工能够在尽量不依靠其他员工的情况下执行他们各自的任务。

如果Joe需要与5个人进行交流才能完成他的工作,这说明太过复杂,也太耗时,当然出错误的地方也会更多。

C不正确。

因为这一陈述说得与正确的恰恰相反。

一个低内聚、高耦合的模块十分复杂,因为它需要执行几个不同类型的任务并依靠许多其他模块来执行这些任务。

这些特点使得这个模块更难维护和重复使用,这是由于它很大程度上增大了影响到与之交互的其他模块的可能性。

知识模块:软件开发安全
12.When an organization is unsure of the final nature of the product, what type of system development method is most appropriate for them?
A.Cleanroom
B.Exploratory Model
C.Modified Prototype Method
D.Iterative Development
正确答案:C
解析:C正确。

改进原型法(Modified Prototype Method)是专为应对Web应用程序开发中的挑战所设计的一种方法,它允许开发人员迅速地把客户要求转换为一个可显示的产品或原型。

当开发人员和客户都不确定这个产品的最终特性时往往会使用这种改进原型法。

使用可改进的原型可以在系统说明变得稍微清晰时勾勒出最终产品。

A不正确。

因为洁净室(cleanroom)是一种试图通过遵循结构化和正式的开发和测试方法而避免错误或者失误的方法。

这种方法用于高品质的关键应用程序的开发,而这些应用程序将会经过严格的认证流程。

在开发开始之前就必须完全了解终端产品的规范。

B不正确。

因为探索模型(Exploratory Model)是一种用于明确定义的项目目标还未清晰呈现的实例的方法。

探索模型依赖于一套有可能包含最终产品运行方式的规格说明,而不是关注明确的任务。

测试是探索模型的一个重要部分,它确保项目的当前阶段符合可能的实施方案。

D不正确。

因为迭代开发(Iterative Development)方法采用一个循环方法进行软件开发。

它侧重于根据项目的最初目标,从资源、时间框、执行计划等方面通过不断评估项目的当前状态来制定项目的里程碑。

迭代开发提供了一种动态评估项目整体状态的方法,并允许进行修正以提高项目的效率。

知识模块:软件开发安全
13.Which of the following statements does not correctly describe SOAP and Remote Procedure Calls?
A.SOAP was designed to overcome the compatibility and security issues associated with Remote Procedure Calls.。

相关文档
最新文档