软件安全03安全软件工程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SSE-CMM背景知识
– 开发SSE-CMM的目的: 降低开发和维护系统的花费; 提高工程进度和预算的一致性; 选择合适的承包者。
– 发起者 国防部; 国家安全局。
软件安全-UESTC-INTEL IA JOINT LAB
SSE-CMM项目发展
1993年4月开始酝酿; 1996年10月出版了SSE-CMM模型的第一个
安全编码策略
第7阶段 安全测试策略
第8阶段
安全推进活动
第9阶段
最终安全评审
第10阶段
安全响应规划
第11阶段
产品发布
第12阶段
安全响应执行
软件安全-UESTC-INTEL IA JOINT LAB
安全教育的主要内容-基础内容(1):
可信计算概述 SDL简介 安全设计基础:
– 受攻击面分析 – 深度防御 – 最小特权 – 安全默认配置
SSAM 为了进行评定,收集数据广泛、严格, 每个数据有充分的证据。此方法在评定过程 中最大程度地发挥了SSE-CMM模型的功效。
此方法: ——决定实施安全工程过程的能力; ——为了评定定义了安全工程环境; ——在评定时巧妙地使用了SSE-CMM体系结
构中的两个方面。
软件安全-UESTC-INTEL IA JOINT LAB
3.2 SDL-安全开发生命周期模型
3.2.1 关于SDL ( Secure Development Lifecycle )
3.2.2 SDL概览 3.2.3 SDL各个阶段特征
软件安全-UESTC-INTEL IA JOINT LAB
3.2.1 关于SDL
什么是 SDL?
– Secure Development Lifecycle – 微软可信计算(TrustWorthy
软件安全-UESTC-INTEL IA JOINT LAB
产品或服务
工程过程 Engineering
保证过程 保证论据
风险过程 风险信息
软件安全-UESTC-INTEL IA JOINT LAB
风险
PA: 评估威胁
PA: 评估脆弱性
PA: 评估影响
威胁信息 脆弱性信息
PA: 评估安全风险
风险信息
第3部分 安全软件工程
3.1 SSE-CMM
– 3.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 LAB
3.1.1 SSE-CMM背景与发展
软件安全-UESTC-INTEL IA JOINT LAB
项目启动阶段主要内容:
判断SDL是否覆盖应用 任命安全顾问 组建安全领导团队 确保在BUG追踪管理过程中包含安全、隐私类
BUG 建立BUG标准
软件安全-UESTC-INTEL IA JOINT LAB
第2阶段:定义并遵从设计最佳实践
版本; 1997年4月出版了评定方法的第一个版本; 1999年4月出版了第二版; 正在申报国际标准ISO/IEC 21827。 测评中心于1999年4月将第二版翻译成中文

软件安全-UESTC-INTEL IA JOINT LAB
3.1.2 SSE-CMM主要内容
能力方面
能力方面
通PGPGrP用GrPeaGrPeanGcrea实ncreteancetieanrcctie施nrcictieercictieerscicierscicesciescs
1. 管理安全控制 2. 评估影响 3. 监视影响 4. 评估威胁 5. 评估脆弱性 6. 建立保证论据 7. 协调安全 8. 监视安全态势 9. 提供安全输入 10.指定安全要求 11.验证和证实安全
12.质量保证 13.管理配置 14.管理项目风险 15.监控技术活动 16.规划技术活动 17.定义组织的系统工程过程 18.改进组织的系统工程过程 19.管理产品系列进化 20.管理系统工程支持环境 21.提供不断发展的技术和知识 22.与供应商协调
最终安全评审
第10阶段
安全响应规划
第11阶段
产品发布
第12阶段
安全响应执行
软件安全-UESTC-INTEL IA JOINT LAB
第0阶段: 教育和意识
第0阶段
教育和意识
第1阶段
项目启动
第2阶段
定义并遵从最佳 设计实践
第3阶段
产品风险评估
第4阶段
风险分析
第5阶段
创建安全文档 工具及客户最佳实践
第6阶段
软件安全-UESTC-INTEL IA JOINT LAB
缺省安全:
设计者应该假定安全缺陷将会出现。 为了当攻击者对软件存在的缺陷进行攻 击时使损害降到最小, 软件的缺省状态应 该保证安全。 比如,最小特权原则。
软件安全-UESTC-INTEL IA JOINT LAB
提交安全:
工具和指南应该随着软件提供以帮 助最终用户或管理员安全使用。 关于软件的更新应该容易提交。
持续教育内容(2)
受攻击面分析 漏洞开发 打包过程需求 安全响应 加密范例 客户隐私
软件安全-UESTC-INTEL IA JOINT LAB
成功的安全 教育与意识培训要素:
管理层明确支持 富有经验的演讲者 持续进行的改进
软件安全-UESTC-INTEL IA JOINT LAB
PPrPro过orcoce程cesesss区sAsAArreeraeasass
每个过程区(PA)是一组相关 安全工程过程的性质,当这些
性质全部实施后则能够达到过
程区定义的目的。
过程类
一组过程区指出活动的同一通用区
软件安全-UESTC-INTEL IA JOINT LAB
SSE-CMM的22个过程区(PA)
能力级别2――计划与跟 踪 公共特征 ✓ 计划执行 ✓ 规范化执行 ✓ 验证执行 ✓ 跟踪执行
能力级别3――充分定义 公共特征 ✓ 定义标准过程 ✓ 执行已定义的过程 ✓ 协调安全实施
能力级别4――定量控制 公共特征 ✓ 建立可测的质量目标 ✓ 客观地管理过程的执行
能力级别5――连续改进 公共特征
受攻击面分析:
受攻击面分析:枚举所有接口、协议以及可执 行代码的过程。
软件的受攻击面:
– 代码 – 接口 – 服务 – 协议 – 其他
软件安全-UESTC-INTEL IA JOINT LAB
受攻击面降低:
核心观点:在所有代码中存在至少一个或多 个漏洞的可能性一定不为零,一部分严重漏 洞会导致用户不得不接受妥协。唯一解决上 述问题的方法是将代码的利用率降至为零。
软件安全-UESTC-INTEL IA JOINT LAB
SDL过程(SDL13阶段模型)
第0阶段
教育和意识
第1阶段
项目启动
第2阶段
定义并遵从最佳 设计实践
第3阶段
产品风险评估
第4阶段
风险分析
第5阶段
创建安全文档 工具及客户最佳实践
第6阶段
安全编码策略
第7阶段 安全测试策略
第8阶段
安全推进活动
第9阶段
软件安全-UESTC-INTEL IA JOINT LAB
3.1.3 关于安全工程与评估
安全工程分三个基本过程:风险、工程 和保证
– 风险过程是要确定产品或者系统的危险性,并 对这些危险性进行优先级排序
– 工程过程是针对面临的危险性,安全工程过程 与相关工程过程一起来确定并实施解决方案
– 保证过程是建立起对解决方案的信任,并把这 种信任传达给顾客
定义并遵从最佳设计阶段主要内容:
包括两部分内容 常见安全设计原则 受攻击面分析与降低
软件安全-UESTC-INTEL IA JOINT LAB
常见安全设计原则:
经济机制:代码尽可能简单、紧凑。软件愈复杂, 出现安全BUG的可能性愈高。
默认失效保护:任何请求缺省应加以拒绝。 安全中介:每个访问受保护对象的行为应当被检查
安全教育-持续教育内容(1):
安全的软件设计、开发与测试基础 模糊测试精要 威胁建模精要 实施威胁消减措施 安全设计与架构:久经考验的设计原则 SDL介绍与最终评选过程 安全工具概述 实战安全代码评审 安全编程实践 安全BUG精要
软件安全-UESTC-INTEL IA JOINT LAB
Computing )努力的一个组成部分 – 基于并行理念的标准软件开发过程 – 基于威胁建模和测试
软件安全-UESTC-INTEL IA JOINT LAB
3.2.2 SDL概览
SDL从三个方面考虑软件安全的保障。
设计安全:
为了保护软件自身以及软件处理的 信息,并抵御攻击,软件应该从架构, 设计和实现上进行考虑
评估结果
能力方面
通PG用PGrPGraPeGraPe实cnGraecntraeecnitaeec施crniteccrniiteeccriiteesccriiesccriesciescs
CCoommmmoonn 公FF共eeaa特tutur征reess
能力级
域方面
BBBaB基asBaseasea础sePsePreP实raPraPcrac施tracitaccitccitecitesciescesess
影响信息
软件安全-UESTC-INTEL IA JOINT LAB
指定安全要求 需求、策略等
风险信息
监视安全态势
协调安全
配置信息
提供安全输入
解决方案、指导等
管理安全控制
软件安全-UESTC-INTEL IA JOINT LAB
PA:验证和实施 安全
其他多个PA
PA: 建立保证论据
软件安全-UESTC-INTEL IA JOINT LAB
CCoommmmoonn 公FFe共eaat特tuur征reess
能力级别
增强执行任何过程 能力的实现和制度 化实施
一组实施,列出管理 和制度化过程的相 同方面
共同工作的一组公共 特征,主要增强执行一 个过程的能力
软件安全-UESTC-INTEL IA JOINT LAB
能力级别
能力级别1――非正式执 行 公共特征 ✓ 执行基本实施
第0阶段
教育和意识
第1阶段 项目启动
第2阶段 定义并遵从最佳
设计实践
第3阶段
产品风险评估
第4阶段
风险分析
第5阶段
创建安全文档 工具及客户最佳实践
第6阶段
安全编码策略
第7阶段 安全测试策略
第8阶段
安全推进活动
第9阶段
最终安全评审
第10阶段
安全响应规划
第11阶段
产品发布
第12阶段
安全响应执行
软件安全-UESTC-INTEL IA JOINT LAB
。 公开设计:与“不公开即安全”的原则相对应。设
计自身不应具有神秘感。 权限分离:切勿允许基于单一条件的操作过程。 最小特权:只授予执行操作所必须的最小特权。 最少公共机制:使公共资源尽可能少。 心理可接受程度:安全产品与技术是否容易使用?
用户能否接受?与UI的密切配合。
软件安全-UESTC-INTEL IA JOINT LAB
✓ 改进组织能力 ✓ 改进过程的有效性
软件安全-UESTC-INTEL IA JOINT LAB
域方面
域方面
BBB基aBasBasea础seasePseP实erPraPraPc施arcrtacitaccitcictecitesicescesess
工程和安全实施是安全工程过 程中必须存在的性质,指出特 殊过程区的目的并属于该过程 区
PPrPro过rococec程esessss区AsAArrereaeasass
过程类
5 4 3 2 1 0
PA 01PA 02PA 03PA 04PA 05PA 06PA 07PA 08PA 09PA 10
软件安全-UESTC-INTEL IA JOINT LAB
SSAM(SSE-CMM评定方法)
软件安全-UESTC-INTEL IA JOINT LAB
安全基础教育内容(2)
• 威胁建模
• 设计威胁建模 • 编码威胁建模 • 测试威胁建模
•整型数值问题 •跨站脚本攻击 •SQL注入攻击 •弱加密机制
• 安全编码实践 •微软.NET规范问题
• 缓冲区溢出
•JAVA规范问题
软件安全-UESTC-INTEL IA JOINT LAB
受攻击面降低的方法:综合考虑尽善尽美的 安全与无法规避的风险二者之间的关系,尽 可能减少未经信任的用户可能接触到的代码 比例
软件安全-UESTC-INTEL IA JOINT LAB
第1阶段: 项目启动
第0阶段
教育和意识
第1阶段 项目启动
第2阶段
定义并遵从最佳 设计实践
第3阶段
产品风险评估
第4阶段风险分析来自第5阶段创建安全文档 工具及客户最佳实践
第6阶段
安全编码策略
第7阶段 安全测试策略
第8阶段
安全推进活动
第9阶段
最终安全评审
第10阶段
安全响应规划
第11阶段
产品发布
第12阶段
安全响应执行
相关文档
最新文档