版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、“计算机导论”小论文论文题目软件安全性综述所在院系计算机与信息工程学院专业班级2014级 软件工程(工程技术)姓名学号 林建国任课教师翁苣软件安全性综述专业:软件工程(工程技术) 姓名:林建国 学号:1407142119摘要:软件安全性已逐渐成为软件工程和安全工程交叉领域的研究热点之一。对 软件安全性的内涵与外延进行了剖析,给出了软件安全性定义。讨论了软件安全 性的度量模型。通过分析软件安全领域存在的问题,以软件工程思想为基础,运 用系统安全工程的原则,提出一个软件安全性保障框架。在软件开发生命周期过 程中,将软件安全保障集成到需求分析,设计编码,测试,维护四个环节中
2、,详 细阐述了每个环节要进行的安全性处理的任务,采用一系列安全预测和分析技 术,确保软件开发的安全性和可靠性。关键字:软件工程;软件测试;系统安全工程;软件安全性保障框架。一引言 自从互联网普及后,软件安全问题愈加突显。由互联网上的病毒和攻 击者引起的身份窃取、数据丢失以及一般性的混乱已经随处可见。单单2008年 第一季度,就有1474个不同的软件脆弱点报告上来,只有64个发布了相应的解 决方案。也就是说解决率大约只有4%1。不少安全专家都认为应用软件安全将 成为信息系统安全的下一个热点。软件安全一般分为应用程序级别的安全性和 操作系统级别的安全性。应用程序级别的安全性,包括对数据或业务功能的
3、访问, 在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据等。 操作系统级别的安全性是确保只有具备系统平台访问权限的用户才能访问,包括 对系统的登录或远程访问。同时软件在SCS中的应用规模也与日俱增。比如,在F 22战机的综 合航电系统中,软件实现的航电功能高达80%,软件代码达到170万余行。 而在F3 5战机的先进综合航电系统中,软件代码达到5 0 08 0 0万行。 这表明,越来越多的SCS日益软件密集化,逐渐形成安全性关键的软件密集型 系统。另一方面,由SCS软件引发的事故或事件却频发不断:发生在20世 纪9 0年代的Ariane 5运载火箭、SOHO太空船等5起航天器
4、事故的 罪魁祸首是软件;2004年12月20日,一架F 2 2因飞行控制软件故 障而坠毁;2 0 0 7年2月11日,12架F 2 2在穿越国际日期变更线时 又因软件缺陷问题造成导航故障,战机被迫在无导航和通信能力下危险返航。由此可知,软件安全已经是社会稳定不可或缺的重要因素之一。二、什么是软件工程?图1软件图解软件危机:软件需求的增长得不到满足;软件开发的成本和进度无法控制;软件质量难以保证;软件不可维护或维护成度非常低;软件成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。为了消除软件危机,形成了软件工程的概念,开辟了工程学的新兴领域一一软件 工程学。软件工程就是试图用工
5、程、科学和数学的原理与方法研制、维护计算机 软件的有关技术及管理方法。三、什么是软件安全性?“软件安全性(software safety )”一词最早出现在197 9年发布的Mil-Std-1574A标准中,1 9 8 6年由美国加州大学 的Leveson教授引入计算机科学领域。安全性多用于刻画具有能量、毒 性或能够进行质量运动的物理设备或系统,而软件作为一种寄生性逻辑实体,不 会由于能量辐射、毒性挥发、质量运动对人造成伤害或对环境造成破坏。因此, “软件安全性”至今备受争议,甚至被认为是一个误用的术语。软件安全性是指既定软件对既定系统安全性的贡献,衡量的是在特定环境下 和规定时间内不会因软件
6、功能失效或需求缺陷等诱发系统危险的能力。其中,系 统安全性受到操作人员、软件、硬件和外部环境的共同作用。外部环境泛指与该 系统交互作用的外部系统或其他要素。值得指出的是,尽管“安全”本身是一个系统问题,作为系统重要组成要素 的软件不会直接危及生命、财产和环境等安全,但借助软件实现的人机交互却 可能因软件失效造成人员误操作从而形成危险。与安全性密切相关的术语还包括保密性、完整性、可靠性、可生存性和可信 性。鉴于上述术语之间的易混淆性以及国内对部分术语翻译 的不一致性(比如 将safety译为防危性、保险性,译为安全性,此处着重阐明安全性与这些 术语之间的区别和联系,以便更好地理解其内涵(见图2)
7、软件可靠性是同软件安全性一样与失效密切相关并一直混为一谈的一种软 件属性。它衡量的是,在特定条件下和一定时间内,软件提供连续正确服务的能 力。二者之间的区别和联系体现在:软件可靠性关注所有的软件失效,而软件 安全性仅关注能够引起危险后果的软件失效;如果软件任务不能完成将影响系 统的安全性,那么消除这些软件失效将同时提高软件的可靠性和安全性;消 除那些能够引起危险后果的软件需求缺陷可能提高了安全性,却对软件可靠性无 益;如果软件存在安全性需求方面的缺陷,即使消除所有的软件失效(尽管 提高了软件可靠性)也不一定能提高软件安全性;可靠的软件可能不安全,安 全的软件并不一定可靠。软件保密性融合了可用性
8、(指某项服务在某个时刻可以获得的概率)、隐私 性(指软件已存储信息、代码、数据不被访问的能力)和完整性(指软件不被意 外或未授权修改的能力),着重关注如何保护软件使其不被恶意攻击。软件安全 性和软件保密性之间的联系和区别主要表现在:二者都与威胁或风险相关。安 全性主要处理危及人员生命财产安全的威胁,而保密性主要消除危及数据私有性 的危险;安全性需求和保密性需求可能都会与某些重要的功能需求或任务需求 相冲突;安全性和保密性需求都需要在系统层面谋划布局,且这些需求在系 统上下文外是难以处理的;安全性和保密性都需要一些极其重要的需求,这些 需求决定了系统能否被使用;保密性着重关注的是对分级信息进行的
9、未授权恶 意访问行为,而安全性多关注的是无意行为。软件可生存性描述的是当软件系统的一部分遭受攻击陷入瘫痪时,关键服务 仍能够使用的程度。认为可生存性应包含系统、威胁、自适应性、服务可持续 性和实时性等5个关键部分。软件可生存性与软件安全性之间的联系在于:确 保软件生存的服务可能同时确保软件安全性;生存性丢失的系统可能依然安 全;不安全的系统可能具有生存性。软件可信性包括可用性、可靠性、安全性、隐私性、完整 性、可维护性6 个属性。它强调的是软件行为在任意操作条件下都是可预测的,能够抵御其它软 件、病毒以及一定的物理干扰造成的破坏。四、基于软件工程的软件安全性保障框架1、传统开发方法在安全方面的
10、不足在传统面向对象项目开发过程中,在安全性 方面存在以下不足3:1)设计阶段,由于以类为单位组织建模,因此它不能全面地反映软件系统的安 全需求。2)编码阶段,将数据和方法封装到类中的思想增强了数据的安全性和软件的模块 化,但是有一些数据和方法是特定于应用的,对于系统安全方面的考虑比较少。3)维护阶段,一般是系统在使用过程中发现了漏洞再去修补,不仅效率低而且工 作量大。2、基于软件工程原理的软件安全性保障框架本文依据系统安全工程的原理,将 软件安全引入到软件开发生命周期之中。为了开发出安全的应用软件,提出一个 软件安全性保障框架,将软件安全保障实施到软件开发的各个模块当中。该框 架具体分为:软件
11、安全需求分析、软件安全设计与编码、软件安全检测与评估、 漏洞响应和维护阶段。首先分析软件开发中可能出现的安全问题,了解项目的安 全需求,之后再要保证程序设计和编码过程中的安全性,开发完成后对软件进行 安全性检测和评估,最后进行产品的维护,对产品中存在的漏洞问题进行响应和 处理。设计出该框架的示意图如图3。图3软件安全性保障框架示意图3、软件安全需求分析软件安全分析开始于项目开发初期并贯穿于整个系统生命周期的始终。在完成项 目需求分析的同时,也要建立安全需求。在这个阶段主要完成两个任务:1)软件需求危险分析计划制定在系统需求分析阶段,首先建立软件安全需求定义,确保软件安全需求定义的正 确性,然后
12、制定一个危险分析计划。2)写出初步的软件安全需求文档安全分析的结果应写成软件安全需求文档,应用到软件需求文档、软件设计文档、 软件测试计划、软件维护计划中去。4、软件安全设计和编码阶段安全从设计开始。设计阶段如果出了安全问题,那下一步的测试维护工作会更加 困难而又低效。这个阶段主要有三个任务:1)进行软件设计危险分析明确在设计阶段有哪些安全方面的目标需要达到,识 别软件可能会遇到的攻击和一些安全隐患,划出安全边界、哪些数据是比较可信 的、哪些输入接口较易成为攻击目标、列出潜在的攻击方式等,确保设计的完整 性和正确性。2)软件安全设计进行安全分析之后,还必须进行软件安全设计。设计时要注意 尽量降
13、低危险发生率,对可能发生危险的地方要提供警告,危险发生后采取有效 措施进行控制,同时还要注意所额外增加的复杂度。3)基于编码的软件安全分析在软件代码编写阶段,也要注意编码过程中是否会 引入新的危险,因为编码人员可能会不小心使用一个不安全的函数。除了要求编 码人员提高程序质量之外,还可以使用第三方的安全编译来提高编码阶段的安全 水平。5、软件安全检测与评估阶段软件安全性测试是软件安全开发生命周期不可缺少的一个组成部分,测试中的 投入要远远小于项目完成后再进行的漏洞修补和安全维护。安全性测试和普通 的功能性测试的测试目的是不同的。软件安全测试的目的是确保软件不会去完成 没有预先设计的功能,而且所有
14、预料到的危险已经被消除或减轻。如代码运行过 程中系统是不是处于安全的状态,系统运行风险是否可以接受,操作人员的失误 包括极端环境在内的各种异常和故障是否被妥当控制,尽可能找到软件中的所有 漏洞,减少软件遭到攻击的可能性。软件的安全检测通常包括一下几个方面: 静态检测、动态检测、文档检查、出错处理和异常情况检测。1)静态检测静态检测是在程序没有运行的情况下,静态分析程序的数据流和控 制流,然后给出相应的测试分析报告。2)动态检测选择合适的测试用例,实际执行待测程序,通过分析程序运行时的 内存、变量、内部寄存器等中间结果来检测程序运行时的正确性。3)检查文档 检查需求说明书、概要设计说明书、详细设
15、计说明书中是否有对安 全性的设计和描述,对安全性的描述是否和需求一致,还有用户文档是否有安全 性注意事项等。4)出错处理和异常情况检测保证各种出错和异常情况都被处理,提示给用户的 出错信息不会涉及到程序设计的细节,而且软件的异常情况不能导致程序进入不 可知的危险情况。6、漏洞响应和维护阶段即使我们在需求分析,软件设计,代码编写,以及软件测试过程中都加入了安全 因素的考虑,最终的软件产品还是可能会存在漏洞,所以漏洞响应和维护是很重 要的一个环节,软件的维护和跟踪,响应、修复漏洞是很重要的。漏洞发现后要 在第一时间采取措施,确保客户的利益不被侵害。这个阶段大致可分为以下两个 阶段:1)漏洞响应发现
16、漏洞,首先通知客户收到漏洞报告,联系相关的开发部门进行技术细节的分 析,为漏洞进行风险评估。2)修复漏洞开发部门和安全响应部门协商进行解决方案的制定,对修复漏洞的补丁进行严格 测试之后对外公布安全补丁,发布安全简报。五结论真实有效的安全解决方案能为开发安全的关键软件提供好的思路。本文运用 系统安全工程的原则,对软件安全工程进行详细分析,提出初步的软件安全性保 障框架,详细论述了框架各阶段的安全分析工作,并结合实际提出一些实用的改 进方法,有一定的参考价值,希望在大量的实际应用中逐步完善成为使用有效的 软件安全性保障方案。参考文献:软件安全速成课企业系统有多脆弱。软件系统的安全必须能够经受住正面的攻击于东辉.基于面向方面的软 件安全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共营养师四级综合试题【含答案】
- 2026年初级会计考试题库及答案
- 电网运维单位设备检修安全管理规定
- 沈阳社区面试题及答案
- 纺织厂员工绩效考核办法
- 某家电厂产品安全检验细则
- 城市轨道交通月度销售协议
- 【会计模板】融资工作流程
- 年产125万吨高端清洗剂及075万吨金属清洗剂生产线项目可行性研究报告模板立项申批备案
- 百日咳专项考试试题
- 26.1 二次函数的概念 教学课件
- 2026年公安局警务辅助人员招聘考试笔试试题(附答案解析)
- 2026广东佛山市南海区桂城街道招聘社区创熟专职人员25人考试备考试题及答案详解
- 肺癌患者的姑息治疗护理
- 内部控制自我评价报告
- AQ3072-2026《危险化学品重大危险源安全包保责任管理要求》解读
- 2025-2026学年黑龙江省绥化市七年级下册4月月考数学试题 含答案
- 江苏省智慧公园建设指南(征求意见稿)
- CNCA-C13-01:2026 强制性产品认证实施规则 安全玻璃(试行)
- 雨课堂学堂在线学堂云《内分泌与代谢病学(南昌)》单元测试考核答案
- 机加工绩效考核制度
评论
0/150
提交评论