第八章 软件开发安全 >> CISSP备考流水账

软件攻击与防御

跨站攻击脚本防御

  • 反射输入:一个用户的输入的内容,会以代码的形式被另一个用户读取执行;
  • 参数验证来阻止反射输入字段中带有

病毒类型

  • MBR病毒:主引导记录病毒将重定向引导过程,并在操作系统中加载其它病毒文件;
  • 文件感染: 用于替代系统中主要文件,注入病毒代码执行恶意操作;
  • 多态病毒:通过不断改变自己特征码来躲避杀毒软件的检测;
  • 服务注入:侵入系统可信服务组件,来躲避杀毒软件的特征检测;

伪装攻击

  • 描述:假冒适当的访问许可证权限获得用户或者第三方认证的系统身份;
  • IP欺骗:使用可信任的IP地址,来试图获得访问其他外部资源的权限,常发生在没有边界过滤的网络系统中;
  • 例子1:源IP地址为私有网络的数据包,不能从外部网络进入;
  • 例子2:源IP地址为外部网络的数据包,不能从内部网络离开;
  • 例子3:拥有内部IP地址数据包,不能从任何方向通过路由器;
  • 会话劫持:中途拦截已授权用户与资源之间通讯数据的一部分,然后使用劫持技术接管会话并伪装成已授权用户的身份获取信息;
  • 伪装合法客户端;
  • 伪装合法服务器;
  • 中间人攻击;
  • 邮件伪装攻击:梅丽莎病毒和ILOVEYOU;

恶意代码处理响应类型

  • 清除:删除恶意代码并修复操作系统;
  • 移除:删除恶意代码但不修复损坏的操作系统。

数据库相关内容

关系数据库中的名词

  • 基数: 关系数据库中的行数量;
  • 程度:关系数据库中的列;
  • 元组:数据表中某一行中一组数据;
  • 域: 一组属性可以允许的值 ;

数据库语法种类

  • DDL: 允许创建和更改数据库结构(也被称为模式)的数据库编程语言。
  • DML: 允许用 户 与模式 内 包含的数据交互的数据库编程语言 。

数据库不正确取值产生的问题

  • 脏读:事务读取数值,目标值由其他未完全提交的事务写入的部分数据覆盖;
  • 丢失更新:较早处理完成的事务结果,被其他事务覆盖,后续读取不正确的数值;
  • 错误摘要:正在汇总存储于数据库中的数据生成摘要值完成后,其中某些数值被其他事务修改;

数据管理系统安全

  • 扰动:管理员可以利用噪声和干扰在DBMS中插入错误或者欺骗的数据;
  • 单元抑制:单独的数据库字段或者单元隐藏或强加更安全的约束;
  • 分割:将数据库分为两个或更多的物理或逻辑部分。与多级安全数据库特别相关;

数据库ACID原则

  • 原子性:事务执行的所有部分必须提交或者全部回滚;
  • 一致性:数据库保证提交结果始终是有效的状态,保证用户的数据完整可用;
  • 隔离性:事务处理完成前对其他事务不可见,不能被其他事务不可预期的更改;
  • 持久性:一旦事务完成就是一个不可逆转的过程,知道数据库系统崩溃或者销毁;

多实例化

  • 数据库安全机制,防止低级别访问高级别数据的一种数据隐蔽机制;
  • 插入多个共享相同唯一标识信息的行;
  • 如果创建多个对象,就修改其它对象以使之具有不同的属性

组织管理

软件能力成熟度(SW-CMM)

  • 第一阶段:初始级 几乎没有定义软件开发过程,工作模式中有很多非常努力的人;
  • 第二阶段:可重复 存在软件生命管理周期,允许有组织重用代码,可期望具有可重复结果,需求管理、软件项目计划编制、软件项目跟中和监督;
  • 第三阶段:可定义 软件开发人员依照正式的文档化的软件开发过程进行操作,所有开发项目都在新的标准滑管理模型的制约下进行;
  • 第四阶段:管理级 定量衡量对开发过程的详细理解,软件质量管理;
  • 第五阶段:优化级,成熟开发软件的过程已经确立,并把未来改善的结果反馈前一个阶段;

IDEAL 模型

  • 启动 =CMM初始:概述业务原因,准备好恰当的基础措施;
  • 诊断 =CMM重复:分析当前组织的状态并给出一般性建议;
  • 建立 =CMM定义:采用诊断阶段的建议,帮助实现更改的具体动作计划;
  • 行动 =CMM管理:执行,组织开发解决方案、随后测试、改进和实现解决方案;
  • 学习 =CMM优化:组织不断分析其努力结果,从而确定是否实现期望目标,必要时采取新的行动,使组织回正;

变更管理

  • 目标:变更必须被记录到 中 央存储库 , 以支持将来的 审计、 调查和分析需求
  • 组件1:请求控制 用户可以请求变更, 管理者可以进行成本/效益分析 , 开发人员可以优化任务;
  • 组件2:变更控制 遵守质量控制约束, 开发用于更新或更改部署的工具, 正确记录任何编码变化, 以及将新代码对安全性的负面影响最小化。
  • 组件3:编程辅助设计插入的任何代码都以被删除,发布控制还应当包括验收测试, 从而确保对终端用户工作任务的任何更改都是可理解的和有用的。

开发模型的特征

  • 净室:目标为一开始就是进行完美的软件开发,不进行二次反馈,本质上主张检测预防的开发模型;
  • 瀑布:每个阶段执行完成后才能执行下一个阶段,防止任务范围混乱,任务分解模型;
  • 螺旋:对瀑布的每个阶段进行评估审查反馈,执行结果是否正常;
  • CASE:使用计算机和计算机实用程序来帮助系统分析,设计,开发,实施和维护软件的技术;

软件开发

动态数据交换[DDE]

  • 通过提供IPC来捕获数据,基于C/S模型直接向彼此发送命令;
  • 数据源为服务器,数据接受者为客户端;
  • 一种两个程序之间通讯的方式;

编程语言类型

  • 解释型语言:编程人员会分发源代码,源代码中包含以高级语言编写的指令。使用解释器来执行这些源代码,源代码可见。
  • 编译型语言:编译器的工具将高级语言转换为在特定操作系统中使用 的可执行文件。 可执行文件随后被分发给终端用户,源代码不可见。
  • 汇编语言:一种使用记忆符号来表示 CPU 基本指令的语言, 但是仍然要求人们 了解硬件专用 的、 相对模糊的汇编语言。

你可能感兴趣的:(CISSP备考查缺补漏)