版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、系统软件安全开发概况知识域:软件安全开发概述知识子域:软件安全开发必要性了解软件安全问题及其原因了解传统软件开发的局限性和软件安全开发必要性2软件安全重要性 软件危机第一次“软件危机”- 20世纪60年代根源:汇编语言不能处理日益庞大和复杂的程序解决:高级语言的诞生- FORTRAN和C第二次“软件危机”- 20世纪80年代根源:大型程序:数百万行,数百人同时开发解决面向对象语言-C+/java/c#软件工程第三次“软件危机”- 21世纪头十年根源:软件安全?3软件安全问题广泛存在软件应用广泛电脑游戏、火车票售票系统、多媒体教学手机、航天飞机、人造卫星软件安全问题广泛存在运行错误售票系统反应慢
2、、连不上、崩溃多媒体教学系统死机黑客盗取泄漏的银行密码安全问题日益增加4软件安全问题产生后果软件安全问题的后果造成产品运行不稳定,得不到正确结果甚至崩溃可靠性、可用性被恶意攻击,导致信息泄漏/数据破坏等后果保密性、完整性一些因软件安全问题导致的严重后果售票系统瘫痪美国放射治疗仪超剂量辐射事件阿丽亚纳5号火箭首发失败事件Stuxnet病毒攻击伊朗布什尔核电站5漏洞情况统计中国国家漏洞库最近七年漏洞数量情况统计6软件安全问题原因存在诸多安全问题的原因软件开发周期短,工作量大,无暇顾及安全软件设计时缺乏安全设计软件开发人员缺乏安全编程经验功能越来越多,软件越来越复杂软件模块复用,可扩展性/灵活性要求
3、高互联网环境下的安全挑战根本原因存在漏洞存在威胁7软件漏洞逐渐增加8软件越来越复杂9Windows 系列软件源代码行数漏洞与软件安全漏洞已经成为危害软件安全的主要因素危及用户对软件的信任、业务运营,还会危及一系列关键基础设施和应用漏洞普遍存在普通软件工程师,每千行代码(KLOC)存在20个缺陷由于采用严格的软件开发质量管理机制和多重测试环节,软件公司的缺陷率(每千行代码)普通软件开发公司的缺陷密度为440个缺陷高水平的软件公司的缺陷密度为24个缺陷美国NASA的软件缺陷密度可达到0.1个缺陷10美国重视安全开发和源代码安全2007年美国空军成立了“Application Software As
4、surance Center of Excellence”开始对所用应用软件进行源代码缺陷检测2008年加州大选软件因为没有通过源代码安全审查而被取消2008年美国 FDA 器械和辐射健康中心开始使用源代码缺陷检测工具对发生问题和事故的医疗设备进行检测2008年美国电力联盟也启动系统安全检测评估11需要安全的软件安全的软件不存在安全漏洞能抵御各种攻击威胁按照预期的方式执行:do what is intended保证程序可以正常执行任务通过在软件开发生命周期各阶段采取必要的、相适应的安全措施来避免绝大多数的安全漏洞。采取措施只能有效减少,但并不能完全杜绝所有的安全漏洞。12软件安全保障软件安全保
5、障的概念软件安全保障是对“软件可以规避安全漏洞而按照预期的方式执行其功能”的信心 。这些安全漏洞或者故意设计在软件之中,或者在其生命周期被偶然插入到软件中。13软件安全保障目标软件安全保障目标是在软件开发生命周期中提升软件的安全性,主要目的是可信赖性:无论是恶意而为还是无意疏忽,软件都没有可利用的漏洞存在可预见性:对软件执行时其功能符合开发者的意图的信心。遵循性:将(软件开发)跨学科的活动计划并系统化,以确保软件过程和软件产品满足需求、遵循相关标准。 - DHS,200614软件安全保障与风险管理在软件安全保障中,需要贯彻风险管理的思想“安全就是风险管理”软件安全是以风险管理为基础安全不必是完
6、美无缺的,但风险必须是能够管理的最适宜的软件安全策略就是最优的风险管理对策这是一个在有限资源前提下的最优选择问题防范不足会造成直接的损失;防范过多又会造成间接的损失15传统的软件开发局限性传统软件开发教育局限性软件教育包括软件工程、数据结构、编译原理、系统结构、程序语言等缺乏安全开发教育传统开发人员局限性对安全问题没有的足够理解不了解安全设计的基本原理不知道安全漏洞的常见类型不知道如何设计针对安全的测试数据传统软件生命周期局限性软件生命周期包括需求分析、架构设计、代码编写、测试和运行维护五个阶段缺乏安全介入的阶段16需要安全的软件开发!知识域:软件安全开发概述知识子域:软件安全开发简介理解安全
7、开发有关概念,包括软件安全、安全软件开发生命周期等了解安全软件开发生命周期有关模型研究及应用情况,包括微软SDL、BSI系列模型、CLASP和SAMM等17软件安全开发基本概念软件安全开发采取措施防止由于设计、开发、提交、升级或维护中的缺陷而导致的系统脆弱性20世纪末/21世纪初开始展开研究安全软件开发生命周期安全软件开发涵盖了软件开发整个生命周期Secure Software Development Lifecycle通过软件开发的各个步骤来确保软件的安全性,其目标是确保安全的软件得以成功18安全软件开发生命周期将安全融入在设计/开发/测试等过程中融入安全在传统的过程中增加安全过程安全提前介
8、入NIST:在软件发布以后进行修复的代价是在软件设计和编码阶段即进行修复所花代价的30倍软件系统发布以后才进行漏洞修复代价是最高的,且常常伴随着软件系统使用者的极大损失实施软件安全开发规范指南最佳实践19不同阶段修复漏洞的代价20Barry Boehm相关模型和研究安全软件开发生命周期安全设计原则安全开发方法最佳实践安全专家经验多种模型被提出和研究可信计算安全开发生命周期(微软)BSI系列模型(Gary McGraw等)SAMM(OWASP)CLASP(OWASP)21可信计算安全开发生命周期微软,2002.1,盖茨安全开发生命周期SDL(The Trustworthy Computing S
9、ecurity Development Lifecycle)强调开发安全的软件对于微软未来的重要性,并为此计划花费了3亿美元和2000多个工作日自 2004 起,SDL 作为全公司的计划和强制政策,在将安全和隐私植入软件和企业文化方面发挥了重要作用。通过将整体和实践方法相结合,SDL 致力于减少软件中漏洞的数量和严重性。SDL 在开发过程的所有阶段中均引入了安全和隐私。22SDL使用SDL 是一个安全保证过程,其在开发过程的所有阶段中引入了安全和隐私原则。Microsoft 将 SDL 与软件行业和客户开发组织自由共享,供他们用来开发更为安全的软件。如何使用SDL?为了实现所需安全和隐私目标,
10、项目团队或安全顾问可以自行决定添加可选的安全活动开发团队应以SDL指南为指导,实施SDL的时候结合考虑组织的时间、资源和业务运营方式Cisco、EMC、Symantec等安全公司均借鉴微软SDL中的做法CSDL23SDL发展历史2002.1今20 世纪 90 年代中期到后期 (Melissa) 和 21 世纪初期(Code Red、Nimda、UPnP 等)出现了一系列影响重大的恶意软件事件,促使微软重新考虑开发人员安全过程和策略24SDL的阶段和安全活动软件安全开发生命阶段5+2个阶段16项必需的安全活动25SDL每个阶段用到的工具26序号工具需求设计实现验证发布1SDL过程模板和MSF-A
11、glie+SDL过程模板2SDL威胁建模工具3Banned.h、SiteLock ATL模板、FxCop、C/C+源代码分析工具、Anti-XSS库、32位的CAT.NET、64位的CAT.NET4BinScope、MiniFuzz、SDL Regex Fuzzer、AppVerifierIE采用SDL后的效果27Source: Browser Vulnerability Analysis, Microsoft Security Blog 27-NOV-2007采用SDL之前采用SDL之后漏洞总数降低了35%高危漏洞数降低了63%正式发布后12个月内修复的漏洞总数BSI系列模型BSI使安全成为
12、软件开发必须的部分Building Security IN,BSIGray McGraw,Cigital公司在整个软件开发生命周期中要确保将安全作为软件的一个有机组成部分。无须改变你的软件开发方法适用各种软件开发生命周期合作NIST美国国土安全部大学(加州大学戴维斯分校、普林斯顿、莱斯)28软件安全的三根支柱三根支柱应用风险管理软件安全的接触点知识29接触点模型接触点,即在软件开发生命周期中保障软件安全一套最优方法、一种战术性方法在每一个开发阶段上尽可能地避免和消除漏洞“黑帽子”和“白帽子”30SSFSSF(Software Security Framework)软件安全框架31监管信息/情报
13、SSDL接触点部署策略和度量攻击模式架构分析渗透测试履约和策略安全特征和设计代码审计软件环境培训标准和需求安全测试配置管理和漏洞管理BSIMMBSI成熟度模型Building Security In Maturity ModeGary McGraw、Brian Chess和Sammy Migues使用SSF对所有项目进行描述了解别人的安全项目过程,指导自己的安全项目目标是对真实的软件安全项目所开展的活动进行量化构建和不断发展软件安全行动的指南BSIMM 3.02011年42个公司(Microsoft、Intel、Google、)32BSIMM结果图33SAMMOWASP SAMMSoftwar
14、e Assurance Maturity Mode软件保证成熟度模型OWASP(开放Web应用安全项目)一个开放的框架,用以帮助制定并实施针对软件安全特定风险的策略评估一个组织已有的软件安全实践; 建立一个迭代的权衡的软件安全保证计划; 证明安全保证计划带来的实质性改善; 定义并衡量组织中与安全相关的措施。 34SAMM规定了四个软件开发过程中的核心业务功能治理:组织管理其软件开发的过程和活动构造:组织在开发项目中确定目标并开发软件的过程与活动验证:组织测试和验证软件的过程与活动部署:组织软件发布的相关管理过程与活动4个成熟度级别0-3级35OWASP SAMM36CLASP综合的轻量应用安全
15、过程(Comprehensive, Lightweight Application Security Process (CLASP) )选取了30个特定的基于角色的活动(activities),用于提升整个开发团队的安全意识,并针对这些活动给出了相应的指南、导则和检查列表37CLASP介绍基于角色项目经理 、需求分析师 、软件架构师 、设计者 、实施人员 、集成和编译人员 、测试者和测试分析师 、安全审计员对于每个活动,CLASP描述了以下内容安全活动应该在什么时间、应该如何实施如果不进行这项安全活动,将会带来的多大的风险如果实施这项安全活动,估计需要多少成本38TSP-SecureTSP-Secure:安全软件开发之团队软件过程目标在软件设计和实施过程中减少或者消除软件漏洞,提供评估和预测其它软件开发商所交付的软件中可能存在漏洞情况的能力为此,TSP-S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土方购销材料协议
- 物业服务合同备案流程详解
- 宠物清洁用品买卖协议
- 管道畅通设备选购指南
- 营销策划服务合同
- 抵押合同解除还款责任退款金额协议
- 定制招聘服务合同范本
- 招标文件应包含的关键信息
- 专业版铺货合同协议
- 修订合同协议彰显合作精神
- 首都经济贸易大学《微积分》2021-2022学年第一学期期末试卷
- 人音版音乐七年级上册《父亲的草原母亲的河》课件
- 2024年度短视频内容创作服务合同3篇
- 介入治疗并发症
- 铸牢中华民族共同体意识-形考任务1-国开(NMG)-参考资料
- 眼科主任年终总结
- 债务优化服务合同范例
- 专题19 重点用法感叹句50道
- 2024-2025学年统编版五年级语文上册第七单元达标检测卷(原卷+答案)
- 2024年光伏住宅能源解决方案协议
- 【初中数学】基本平面图形单元测试 2024-2025学年北师大版数学七年级上册
评论
0/150
提交评论