【CISSP】软件开发安全
821页开始,919页结束,一共98页,我差不多花了6天时间,课后30道题,错误率44%,错误率有点高,题目出的有点偏了,看了答案才恍然大悟~
- 安全应当在系统开发的每个阶段都有涉及,而不应当只放在开发的最后阶段解决,因为这将增加成本、时间、工作量并造成功能损失;
- 攻击面指攻击者用来进入的点的集合,减少这个面就可减少攻击者利用系统的可能性;
- 威胁建模是一种系统化方法,用来理解不同威胁如何实现以及破坏如何成功实施;
- 计算机辅助软件工程指可以进行自动化软件开发的任何软件,包括程序编辑器、调试器、代码分析器和版本控制机制等,其目标是提高开发速度和生产效率,以及减少错误;
- 在开发过程中应该进行不同级别的测试:单元测试(测试单个组件)、集成测试(验证组件在环境中一起工作)、验收测试(确保代码满足客户要求)、回归测试(更改后测试)、静态分析测试(审核编程代码)和动态分析测试(在执行过程中审核代码);
- 模糊指将随机数据发送到目标程序以触发故障的行为;
- 零日漏洞指目前还没有解决方案的漏洞;
- ISO/IEC 27034标准包括:应用程序安全概述和概念、组织规范框架、应用程序安全管理流程、应用程序安全验证、协议应用程序安全控制数据结果和具体应用程序的安全指南;
- 开放Web应用程序安全项目OWASP,是致力于帮助业界开发更安全软件的组织机构;
- 集成产品团队IPT,是一个多学科开发团队,包括很多利益相关方的代表;
- CMMI模型包括5级成熟度,分别用数字1~5表示,每个级别代表流程质量和优化的成熟级别,其中1=初始级,2=可重复级,3=定义级,4=管理级,5=优化级;
- 能力成熟度模型集成CMMI,是一个流程改进防范,向组织机构提供有效流程的必要元素从而改进其性能;
- 变更控制需要在项目开始时实施,且必须贯穿于每个阶段,变更必须授权,进行测试并记录,变更不影响系统的安全级别或执行安全策略的能力;
- SDLC模型有以下几种:瀑布(要求每个阶段都在下一阶段开始之前完成的序列方法)、V模型(强调在每个阶段进行核实和验证)、原型(创建一个代码样本以进行概念验证)、增量(在软件的整个开发阶段实施多个开发周期)、螺旋(强调在每个迭代都进行风险分析的迭代方法)、快速应用开发(结合原型开发和迭代开发程序,其目的是加快软件开发进程)、敏捷(迭代和增量开发流程,鼓励团队合作,用灵活性和适应性代替严格的流程结构);
- 软件配置管理SCM,是指通过身份验证、校正控制、建立基准和审计等方法跟踪和控制软件变更,它的目标是在整个软件开发周期维护软件的完整性和可追踪性;
- 编程语言经历了不同的演变过程,第一代是机器语言(二进制形式),第二代是汇编语言(通过汇编程序翻译成机器代码),第三代是高级语言(提供了抽象),第四代是非常高级语言(提供更多编程抽象),第五代是自然语言(用来进行人工智能);
- 数据建模是对支持相应系统和软件应用程序的范围内的业务流程所需的数据要求进行定义和分析的一种流程;
- 与传统编程语言相比,面向对象的编程为程序本身提供模块化、可重用性和更细粒度的控制;
- 对象是类的成员或实例,类规定了对象的数据类型、结构和可接受的动作;
- 在OOP中,对象通过消息彼此通信,方法是对象能执行的功能,因为使用标准接口,所以对象之间可正确通信;
- 当不同对象被给予相同输入但反应不同时,即是多态;
- 对象内部的数据和操作对其他对象而言是隐藏的,也称为数据隐藏,每个对象都封装其数据和处理方法;
- 面向对象的设计描述真实世界的问题,并将这些问题模块化,形成多个协同工作的对象以解决问题;
- 如果一个对象不需要与其他模型进行更多交互,那么该对象就具有低耦合性;
- 最好的程序设计是尽可能使对象独立化、模块化,因此内聚性越高越好,耦合性越低越好;
- 对象请求代理ORB,管理对象间的通信,使得它们能在异构网络和分布式环境中进行交互;
- 公共对象请求代理架构CORBA,为不同应用程序、平台和环境的对象提供进行通信的标准方式,CORBA提供对象间的标准接口;
- 组件对象模型COM提供了组件与本地系统进行交互的架构,分布式COM使用与COM相同的接口,但允许组件在分布式或网络环境中进行交互;
- 开放数据库连接ODBC通过调用需要的驱动程序,并通过驱动程序传送数据,使不同的应用程序可与几种不同类型的数据库进行通信;
- 对象链接和嵌入OLE使程序可调用另一个程序,或在其他程序或文档中插入一段数据;
- 面向服务的架构在同一时间对许多不同应用程序提供,对最需要的服务的标准化访问,服务间的交互是独立和松耦合的,因此每个交互都独立于其他交互;
- Java安全性使用了沙箱,从而使applet受限于访问用户硬盘和系统资源,编程人员可设计applet在沙箱之外运行;
- SOAP允许程序以不同的编程语言创建和运行在不同的操作系统上,并能正确交互;
- 跨站脚本攻击主要有3种:nonpersistent xss(利用动态网站缺少正确的输入和输出验证机制)、persistent xss(攻击者将恶意代码上传到攻击访问浏览器的服务器)和DOM(攻击者用DOM环境来修改原客户端的JavaScript);
- 数据库管理系统DBMS,是控制访问限制、数据完整性、冗余和数据库可用的不同类型操作的软件;
- 数据库主键用于从数据库的其他部分对特定记录进行定位;
- 视图是数据库中使用的一种访问控制机制,用于保证只有授权主体才能访问敏感信息;
- 关系数据库使用具有行(元组)和列(属性)的二维表;
- 层次数据库使用,采用父子关系的树形结构来定义数据元素之间的关系;
- 大多数数据库都具有数据定义语言DDL、数据操纵语言DML、查询语言QL以及报表生成器;
- 数据字典是描述数据库内数据元素及其相互关系的中心库,数据字典包含关于数据的数据,也称为元数据;
- 数据库完整性保证行由主键唯一标识,参考完整性则确保每个外键都参考一个已有的主键;
- 回滚使数据库取消变更并返回到先前的状态,如果在事务处理过程中出现问题,将发生回滚;
- 提交表示事务处理结束并保存对数据库的所有变更;
- 如果在事务处理过程中发生系统故障或者问题,就会使用检查点,随后,用户将返回上一个检查点的状态;
- 聚合在下面的情况中发生:用户没有访问一组元素的权限,但他拥有访问这个组中部分单独元素的权限,用户根据这些单独的信息判断这个组的数据信息,而这些信息具有高度敏感级别;
- 推理是从非显式可用的信息得到信息的能力;
- 防止推理攻击的常用方法包括数据库分隔、单元抑制和为数据库添加噪音;
- 多实例是允许一个表存在多条具有相同主键值的记录的过程,不同的多实例通过其安全级别或分类进行区别;
- 数据仓库合并来自多个数据库和数据源的数据;
- 数据挖掘是进一步处理数据仓库中的数据的过程,以向用户提供更有价值的信息;
- 数据挖掘工具生成元数据,它可以包含先前不可见的关系和模式;
- 病毒是需要宿主应用程序进行复制的程序;
- 宏病毒很普遍,因为用于开发宏的编程语言易于使用,并且感染普遍使用的Office产品;
- 变形病毒通过生成自身的复制品以及修改这些副本的代码和属性来逃避检测;
- 蠕虫不需要宿主应用程序进行复制;
- 逻辑炸弹在发生预定义事件时或到达某个日期和时间来执行程序;
- 特洛伊木马是一种在用户未察觉的情况下执行正常功能和恶意功能的程序;
- 僵尸网络是由C&C服务器和僵尸牧人控制的僵尸网络;
- 要使防病毒软件发挥最大作用,最好将其安装在每个进口和出口,并包含在策略中,策略描述用户培训过程、软件配置和更新方式;
- 要评估所购买软件的安全性,除进行内部和第三方测试外,还需要评估厂商的可靠性和成熟度;
本篇完,谢谢大家~
发布于 2021-04-24 15:57(知乎)
留言