《软件安全03安全软件工程.ppt》由会员分享,可在线阅读,更多相关《软件安全03安全软件工程.ppt(63页珍藏版)》请在优知文库上搜索。
1、软件安全软件安全UESTC-INTEL IA JOINT LAB软件安全技术软件安全技术软件安全软件安全UESTC-INTEL IA JOINT LAB第第3部分部分 安全软件工程安全软件工程 3.1 SSE-CMM3.1.1 SSE-CMM背景及发展3.1.2 SSE-CMM主要内容3.1.3 关于安全软件工程-基于SSE-CMM的实施3.1.4 关于SSAM 3.2 SDL软件安全软件安全UESTC-INTEL IA JOINT LAB3.1.1 SSE-CMM背景与发展背景与发展 SSE-CMM背景知识开发SSE-CMM的目的: 降低开发和维护系统的花费; 提高工程进度和预算的一致性;
2、选择合适的承包者。发起者 国防部; 国家安全局。软件安全软件安全UESTC-INTEL IA JOINT LABSSE-CMM项目发展项目发展 1993年4月开始酝酿; 1996年10月出版了SSE-CMM模型的第一个版本; 1997年4月出版了评定方法的第一个版本; 1999年4月出版了第二版; 正在申报国际标准ISO/IEC 21827。 测评中心于1999年4月将第二版翻译成中文。软件安全软件安全UESTC-INTEL IA JOINT LAB能力方面能力方面GenericPractices能力方面能力方面CommonFeaturesGenericPracticesGenericPrac
3、ticesGenericPracticesGenericPractices通用实施通用实施能力级别能力级别CommonFeatures公共特征公共特征增强执行任何过程增强执行任何过程能力的实现和制度能力的实现和制度化实施化实施 一组实施,列出管理一组实施,列出管理和制度化过程的相和制度化过程的相同方面同方面 共同工作的一组公共共同工作的一组公共特征,主要增强执行一特征,主要增强执行一个过程的能力个过程的能力 3.1.2 SSE-CMM主要内容主要内容软件安全软件安全UESTC-INTEL IA JOINT LAB能力级别能力级别 能力级别能力级别非正式执非正式执行行公共特征公共特征执行基本实施
4、执行基本实施 能力级别能力级别计划与跟计划与跟踪踪公共特征公共特征计划执行计划执行规范化执行规范化执行验证执行验证执行跟踪执行跟踪执行能力级别能力级别充分定义充分定义公共特征公共特征定义标准过程定义标准过程执行已定义的过程执行已定义的过程协调安全实施协调安全实施能力级别能力级别定量控制定量控制公共特征公共特征建立可测的质量目标建立可测的质量目标客观地管理过程的执行客观地管理过程的执行能力级别能力级别连续改进连续改进公共特征公共特征改进组织能力改进组织能力改进过程的有效性改进过程的有效性软件安全软件安全UESTC-INTEL IA JOINT LAB域方面域方面域方面域方面Base Practi
5、cesProcess Areas 过程类Process AreasBase PracticesBase PracticesBase PracticesBase Practices基础实施Process Areas过程区工程和安全实施是安全工程过工程和安全实施是安全工程过程中必须存在的性质,指出特程中必须存在的性质,指出特殊过程区的目的并属于该过程殊过程区的目的并属于该过程区区 每个过程区(PA)是一组相关安全工程过程的性质,当这些性质全部实施后则能够达到过程区定义的目的。一组过程区指出活动的同一通用区一组过程区指出活动的同一通用区 软件安全软件安全UESTC-INTEL IA JOINT LA
6、BSSE-CMM的的22个过程区(个过程区(PA)1. 管理安全控制2. 评估影响3. 监视影响4. 评估威胁5. 评估脆弱性6. 建立保证论据7. 协调安全8. 监视安全态势9. 提供安全输入10.指定安全要求11.验证和证实安全12.质量保证13.管理配置14.管理项目风险15.监控技术活动16.规划技术活动17.定义组织的系统工程过程18.改进组织的系统工程过程19.管理产品系列进化20.管理系统工程支持环境21.提供不断发展的技术和知识22.与供应商协调软件安全软件安全UESTC-INTEL IA JOINT LAB3.1.3 关于安全工程与评估关于安全工程与评估 安全工程分三个基本过
7、程:风险、工安全工程分三个基本过程:风险、工程和保证程和保证风险过程是要确定产品或者系统的危险性,并风险过程是要确定产品或者系统的危险性,并对这些危险性进行优先级排序对这些危险性进行优先级排序工程过程是针对面临的危险性,安全工程过程工程过程是针对面临的危险性,安全工程过程与相关工程过程一起来确定并实施解决方案与相关工程过程一起来确定并实施解决方案保证过程是建立起对解决方案的信任,并把这保证过程是建立起对解决方案的信任,并把这种信任传达给顾客种信任传达给顾客软件安全软件安全UESTC-INTEL IA JOINT LAB 风险过程 保证过程 工 程 过 程保证论据 风险信息 产品或服务 软件安全
8、软件安全UESTC-INTEL IA JOINT LAB PA: 评估威胁 威胁信息 PA: 评估安全风险 PA: 评估脆弱性 脆弱性信息 PA: 评估影响 影响信息 风险信息 风险软件安全软件安全UESTC-INTEL IA JOINT LAB 指定安全要求 需求、策略等 管理安全控制 提供安全输入 配置信息 协调安全 解决方案、指导等 风险信息 监视安全态势 软件安全软件安全UESTC-INTEL IA JOINT LABPA:验证和实施:验证和实施安全安全证据证据PA: 建立保证论据建立保证论据证据证据保证论据保证论据其他多个其他多个PA软件安全软件安全UESTC-INTEL IA JO
9、INT LAB评估结果评估结果PA 01 PA 02PA 03 PA 04PA 05PA 06 PA 07PA 08 PA 09PA 10012345PA 01 PA 02PA 03 PA 04PA 05PA 06 PA 07PA 08 PA 09PA 10能力方面能力方面GenericPracticesCommonFeaturesGenericPracticesGenericPracticesGenericPracticesGenericPractices通用实施通用实施能力级能力级CommonFeatures公共特征公共特征域方面域方面Base PracticesProcess Areas
10、过程过程类Process AreasBase PracticesBase PracticesBase PracticesBase Practices基础实施实施Process Areas过程区过程区软件安全软件安全UESTC-INTEL IA JOINT LABSSAM(SSE-CMM评定方法)评定方法)SSAM SSAM 为了进行评定,收集数据广泛、严格,为了进行评定,收集数据广泛、严格,每个数据有充分的证据。此方法在评定过程每个数据有充分的证据。此方法在评定过程中最大程度地发挥了中最大程度地发挥了SSE-CMMSSE-CMM模型的功效。模型的功效。此方法:此方法: 决定实施安全工程过程的能
11、力;决定实施安全工程过程的能力; 为了评定定义了安全工程环境;为了评定定义了安全工程环境; 在评定时巧妙地使用了在评定时巧妙地使用了SSE-CMMSSE-CMM体系结体系结构中的两个方面。构中的两个方面。软件安全软件安全UESTC-INTEL IA JOINT LAB3.2 SDL-安全开发生命周期模型安全开发生命周期模型l 3.2.1 关于SDL ( Secure Development Lifecycle )l 3.2.2 SDL概览l 3.2.3 SDL各个阶段特征软件安全软件安全UESTC-INTEL IA JOINT LAB3.2.1 关于关于SDL 什么是什么是 SDL?Secur
12、e Development Lifecycle微软可信计算微软可信计算(TrustWorthy Computing )努力的一个组成部分努力的一个组成部分基于并行理念的标准软件开发过程基于并行理念的标准软件开发过程基于威胁建模和测试基于威胁建模和测试软件安全软件安全UESTC-INTEL IA JOINT LAB设计安全: l为了保护软件自身以及软件处理的信息,并抵御攻击,软件应该从架构,设计和实现上进行考虑SDL从三个方面考虑软件安全的保障。软件安全软件安全UESTC-INTEL IA JOINT LAB缺省安全缺省安全: l设计者应该假定安全缺陷将会出现。设计者应该假定安全缺陷将会出现。l
13、为了当攻击者对软件存在的缺陷进行攻为了当攻击者对软件存在的缺陷进行攻击时使损害降到最小击时使损害降到最小, 软件的缺省状态应软件的缺省状态应该保证安全。该保证安全。l比如比如,最小特权原则。最小特权原则。软件安全软件安全UESTC-INTEL IA JOINT LAB提交安全提交安全: l工具和指南应该随着软件提供以帮助最终用户或管理员安全使用。l关于软件的更新应该容易提交。软件安全软件安全UESTC-INTEL IA JOINT LABSDL过程过程(SDL13阶段模型)阶段模型)第第0阶段阶段教育和意识教育和意识第第1阶段阶段项目启动项目启动第第2阶段阶段定义并遵从最佳定义并遵从最佳设计实
14、践设计实践第第3阶段阶段产品风险评估产品风险评估第第4阶段阶段风险分析风险分析第第5阶段阶段创建安全文档创建安全文档工具及客户最佳实践工具及客户最佳实践第第6阶段阶段安全编码策略安全编码策略第第7阶段阶段安全测试策略安全测试策略第第8阶段阶段安全推进活动安全推进活动第第9阶段阶段最终安全评审最终安全评审第第10阶段阶段安全响应规划安全响应规划第第11阶段阶段产品发布产品发布第第12阶段阶段安全响应执行安全响应执行软件安全软件安全UESTC-INTEL IA JOINT LAB第0阶段: 教育和意识第第0阶段阶段教育和意识教育和意识第第1阶段阶段项目启动项目启动第第2阶段阶段定义并遵从最佳定义并
15、遵从最佳设计实践设计实践第第3阶段阶段产品风险评估产品风险评估第第4阶段阶段风险分析风险分析第第5阶段阶段创建安全文档创建安全文档工具及客户最佳实践工具及客户最佳实践第第6阶段阶段安全编码策略安全编码策略第第7阶段阶段安全测试策略安全测试策略第第8阶段阶段安全推进活动安全推进活动第第9阶段阶段最终安全评审最终安全评审第第10阶段阶段安全响应规划安全响应规划第第11阶段阶段产品发布产品发布第第12阶段阶段安全响应执行安全响应执行软件安全软件安全UESTC-INTEL IA JOINT LAB安全教育的主要内容基础内容(安全教育的主要内容基础内容(1):): 可信计算概述 SDL简介 安全设计基础
16、:受攻击面分析深度防御最小特权安全默认配置软件安全软件安全UESTC-INTEL IA JOINT LAB安全基础教育内容(安全基础教育内容(2) 威胁建模设计威胁建模编码威胁建模测试威胁建模 安全编码实践 缓冲区溢出整型数值问题跨站脚本攻击SQL注入攻击弱加密机制微软.NET规范问题JAVA规范问题软件安全软件安全UESTC-INTEL IA JOINT LAB安全教育持续教育内容(安全教育持续教育内容(1):): 安全的软件设计、开发与测试基础 模糊测试精要 威胁建模精要 实施威胁消减措施 安全设计与架构:久经考验的设计原则 SDL介绍与最终评选过程 安全工具概述 实战安全代码评审 安全编程实践 安全BUG精要软件安全软件安全UESTC-INTEL IA JOINT LAB持续教育内容(持续教育内容(2) 受攻击面分析 漏洞开发 打包过程需求 安全响应 加密范例 客户隐私软件安全软件安全UESTC-INTEL IA JOINT LAB成功的安全成功的安全 教育与意识培训要素:教育与意识培训要素: 管理层明确支持 富有经验的演讲者 持续进行的改进软件安全软件安全UESTC-INTEL