CISSP-D8软件开发安全
2021-07-17 16:10:32 1 举报
AI智能生成
CISSP八大领域之软件开发安全
作者其他创作
大纲/内容
D8:软件开发安全
一、在开发生命周期中应用安全:D8-1~4
二、常见软件开发安全问题:D8-5~7
D8-1-软件中的安全需求
• 理解产生软件安全问题的原因
“外墙内弱”的原因
• 在软件开发阶段,安全不是重要的考虑因素• 很多安全从业人员往往不是软件开发人员• 通常认为功能性比安全性更重要• 软件供应商为了最快地把产品投入市场• 人们已经习惯了接受带有缺陷的软件,然后再进行修补• 客户无法控制所购买软件中的缺陷,他们必须依赖周界保护
不同的环境需要不同的安全
• 当环境的复杂性日益增长时,跟踪错误和安全危害的任务将变得极其困难• 人们期望、需要并依赖软件的安全性
环境与应用程序
• 软件控制可以通过操作系统、应用程序或者数据库管理控制来实现• 安全产品和周边设备往往不能够提供必要的安全细粒度级别
功能与安全
• 在安全性和功能性之间会存在一个平衡,而在开发过程中,功能性往往被认为是最重要的
实现和默认配置问题
• 大多数安全功能都需要在安装之后进行配置或者打开• 实现错误和错误配置是造成大量安全问题的常见原因• 存在大量未进行修补的系统
• 了解软件中的安全需求有哪些
D8-2-软件开发生命周期、模型和安全
• 理解软件开发生命周期的基本概念
软件开发生命周期(SDLC)模型
需求收集
安全风险评估
隐私权风险评估
可接受的危险级
信息、功能和行为需求
设计
攻击面分析
威胁建模
开发
自动化计算机辅助软件工程CASE工具
静态分析
测试/验证
动态分析
模糊
人工测试
单元、集成、接受和回归测试
发布/维护
最终安全审核
• 了解常见的安全开发实践有哪些
开放式Web应用程序安全项目(OWASP)
是一个组织,它专门处理Web安全问题。
十大Web应用安全风险列表
MITRE公司创始的CWE
CWE-常见缺陷列表是MITRE公司(一个非盈利机构)推出的一个安全漏洞词典。通过这一词典,Mitre公司希望提供识别、减轻、阻止软件缺陷的通用标准。
ISO/IEC 27034标准
国际标准化组织ISO也制定了软件开发标准,其中ISO 27034标准中包括以下条目:应用安全综述和概念、组织规范框架、应用程序安全管理过程、应用安全验证以及特定应用的安全指南。它是ISO /IEC 27000系列的一部分,它能让安全软件开发过程与ISO/IEC的信息安全管理体系(ISMS)模型相一致。
• 了解常见的软件开发模型
边做边改模型
瀑布模型
V模型
原型模型
增量模型
螺旋模型
快速应用开发(PAD)模型
敏捷模型
联合分析开发(JAD)
复用模型
净室模型
集成产品开发
IPT是一支多元开发团队,团队成员为各利益相关方的代表
DevOps是将开发、IT、质量保证(QA)工作人员组成 同一软件开发项目团队的实践
DevOps将统一目标,提高效率,减少软件产品的依赖
能力成熟度模型集成
CMMI集成了一整套产品和软件开发指南
• 理解代码库的安全性概念
通常是版本控制系统,存贮着组织最重要的信息
源代码会被盗取
攻击者可能会将漏洞插入到软件中
D8-3-编程语言和环境
• 了解编程语言的基本概念
• 编程语言• 编译器• 解释器
第一代:机器语言
第二代:汇编语言
第三代:高级语言
第四代:非常高级语言
第五代:自然语言
• 了解面向对象开发的相关概念
类和对象
多态
数据建模和数据结构
内聚和耦合
应用编程接口
• 理解什么是分布式计算环境
• 分布式计算环境(DCE)是由开放软件基金会(OSF,也称为开放小组)开发的一个标准• 公共对象请求代理架构(CORBA)是由对象管理组(OMG)开发的一个开放式面向对象的标准架构• 组件对象模型(COM)是一种允许某个应用程序内或相同计算机系统上不同应用程序之间实现进程间通信的机制。• 面向服务的架构(SOA)提供了标准化访问,这样可以在同一时刻访问不同应用程序中最需要的服务。
D8-4-数据库管理
• 了解数据库管理系统的基本概念
数据库管理软件
• 数据库管理系统(DBMS)能够提供用户和应用程序在需要时访问、查看和更改数据,还可以实施访问控制限制,提供数据完整性和元余,以及为数据操作建立不同的过程。
• 事务处理持续化(transaction persistence) 意味着执行事务处理的数据库过程是持久可靠的。在进行事务处理之后,数据库的安全状态应保持原状,同时还需要确保事务处理的完整性。
• 了解数据库模型和相关编程接口
数据库模型
关系数据库模型
层次数据库模型
网络数据库模型
面向对象的数据库模型
对象-关系数据库模型
数据库编程接口
开放数据库互连(ODBC)
对象链接和嵌入数据库(OLE DB)
ActiveX数据对象(ADO)
Java数据库互连(JDBC)
• 了解关系型数据库的组件有哪些
数据定义语言(DDL)
数据库操作语言(DML)
查询语言(QL)
报表生成器
数据字典
主键与外键
• 理解数据库完整性和安全的概念
3种主要类型的完整性服务
1. 语义完整性(semantic integrity)机制保证结构化规则和语义规则得到遵守。这些规则与以下因素有关:数据类型、逻辑值、唯一性约束以及可能负面影响到数据库结构的操作。2.参考完整性(referential integrty),如果所有外键都参考现有的主键,那么数据库就具有参考完整性。应当通过某种机制确保没有外键引用不存在的记录的主键或者空值。3. 实体完整性(entity integrity)保证了元组由主键值唯一确定。为了保持实体完整性,每一个元组都必须包含一个主键。如果不包含主键,那么数据库就不能引用此元组。
聚合和推理
聚合(aggregation)指的是组合不同来源的信息的行为.用户没有明确的权限可以访问组合得到的信息,但组合得到的信息比信息的各个组成部分拥有更高敏感性。推理(inference), 当某个主体根据通过聚合了解到的部分而演绎全部信息时,就会出现推理问题。当安全级别较低的数据可以描述出较高安全级别的数据时,就会发生推理攻击。推理是得到不是明显可用的信息的能力。
数据库视图
如果数据库管理员希望允许中层管理者看到其部门的收支情况,但不允许他们看到整个公司的财务状况,那么就可以利用数据库视图。高层管理者可以看到所有的视图,包括部门和整个公司的财务数据,而每个经理只能查看本部门的数据。
多实例
为了防止聚合和推理问题的发生,可以使用多实例的方法。多实例建立了具有相同主键的多个元组和由安全线别定义的实例之间的关系。当一条信息插入到数据库中时,需要限制低级别用户访问这条信息。通过建立另一组数据迷惑低级别用户,使用户认为他得到的信息是真实的,而不是仅仅限制信息的访问。
联机事物处理
联机事务处理(Online Transaction Processing,OLTP)用于群集数据库以提供容错和高性能的情况。OLTP提供了监测问题以及在问题发生时立即进行适当处理的机制。OLTP 的主要目标是确保事务处理的正确发生或根本不发生。
ACID
数据库软件应该实现一种名为ACID测试的四个特征:原子性(atomicity) 将事务处理分成多个工作单元,并且确保所有的修改都生效或者没有一个修改生效。要么所有修改都提交,要么数据库回滚。一致性(consistency) 事务处理必须遵守为特定数据库制定的完整性策略,并且确保在不同数据库中的所有数据的一致性。隔离性(isolation) 事务处理完全隔离执行直至完成,同时事务处理之间互不影响。在事务处理完成之前,修改的结果不会生效。持久性(durability) 一旦事务处理在所有的系统上都被验证为是正确的,它就会被提交,并且数据库无法回滚。
• 理解知识系统的相关概念
专家系统
神经网络
决策支持系统
安全性应用
D8-5-Web应用安全
特定威胁
管理接口
身份验证与访问控制
输入验证
参数确证
会话管理
安全原则
分析网站架构
设计安全功能
严格审查输入
过滤输出
D8-6-针对应用程序的相关攻击
侦察攻击
IP探测
端口扫描
漏洞
垃圾搜寻
伪装攻击
IP欺骗
会话劫持
密码攻击
密码猜测攻击
字典攻击
社会工程学攻击
应用程序攻击
缓冲区溢出
检验时间到使用时间
后门
权限提升和rootkit
D8-7-恶意代码
恶意代码类型
病毒
蠕虫
Rootkit
间谍软件和广告软件
僵尸网络
特洛伊木马
逻辑炸弹
防恶意软件
防病毒软件使用病毒特征来检测恶意代码,特征型检测时检测恶意软件的一种有效手段
“启发式检测”会分析恶意代码的总体结构,评估编码指令和逻辑功能,并研究病毒或蠕虫内的数据类型
垃圾邮件检测
防病毒策略
0 条评论
回复 删除
下一页