APP下载

软件安全开发管理

2020-04-07罗风春

大经贸 2020年1期
关键词:生命周期阶段软件

罗风春

【摘 要】 随着计算机网络的发展,计算机软件的应用日益广泛,但随之而来的软件问题也越发的不容忽视,各种用户信息泄露事件层出不穷,为保障用户信息安全,在软件开发的过程中使用相应手段降低安全漏洞势在必行。

【關键词】 软件生命周期

一、 软件安全开发的研究背景

计算机网络的发展一日千里,与之匹配的软件的功能也是日新月异,人们通过使用软件可以任意观看视频、聊天交友、处理工作以及完成各种事务, 但与此同时, 软件的安全开发问题也逐渐暴露出来。尤其是当前我国盗版软件猖獗、软件自身安全漏洞较多,并且已经逐渐威胁到人们的财产和人身隐私等安全,因而研究软件安全开发关键技术及其具体应用有着极其重要的现实意义。

二、网络信息安全事件层出不穷的原因分析

网络信息安全事件的发生有两个方面的原因,一个是软件脆弱性导致,在软件开发的过程中,没有或很少进行安全方面的考虑和管理,导致开发出来的软件漏洞过多,比较脆弱,我们称之为内因;

(一)内因。1、软件安全开发意识淡薄。传统软件开发更倾向于对软件功能的实现,而不注重对软件安全风险的管理。软件开发公司工期紧、任务重,为争夺客户资源、抢夺市场份额常仓促发布软件。软件开发人员将软件功能视为头等大事,对软件安全架构、安全防护措施认识不够,只关注是否实现需要的功能,很少从“攻击者”的角度来思考软件安全问题。2、软件规模日益庞大,功能纷繁多样,架构趋于复杂。现代软件功能越来越强,功能组件越来越多,软件也变得越来越复杂。如操作系统的代码量相当惊人,而且随着版本的更新,代码量迅速增加。如现在基于网络的应用系统更多地采用了分布式、集群和可扩展架构,软件内部结构错综复杂。软件应用向可扩展化方向发展,成熟的软件也可以接受开发者或第三方扩展,系统功能得到扩充,如Firefox和Chrome浏览器支持第三方插件,Windows操作系统支持动态加载第三方驱动程序。Word和Excel等软件支持第三方脚本和组件运行等,这些可扩展性在增加软件功能的同时,也加重了软件的安全问题。研究表明,软件漏洞的增长通软件复杂性、代码行数的增长成正比,即“代码行越多,缺陷也就越多”。 3、软件开发者缺乏安全知识。软件开发公司中,项目管理和软件开发人员缺乏软件安全开发知识,不知道如何更好地开发安全的软件。

三、软件安全开发的方法

(一)软件安全开发定义

软件:软件是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

软件安全: 我们说的软件安全,是指因为软件本身的问题,被有意或无意攻击后会造成数据泄露、系统崩溃等情况发生。

早期,人们在发现应用系统使用中存在问题,所以出现了一些列安全防护工具例如杀毒软件、病毒库更新,防火墙以及操作系统加固等,但这些都不是软件安全,这些是属于对应用安全的纵深防御。

(二)软件安全开发目标。软件安全开发的目标是使软件能够按照开发者的意图执行,并且受到恶意攻击的情形下依然能够继续正确运行。网络信息安全认为软件开发最重要也是最低的三个目标是:机密性、完整性、可用性。

这三个目标统称为C.I.A(Confidentiality,Integrity,Availability),人们普遍认为,在软件开发生中,开发者通过公认有效的方法对C.I.A进行保证、增强、保护,就认为代码是最高可信和安全的。

(三)软件安全开发方法。软件安全开发生命周期管理是软件开发项目安全管理的普遍方法,通过在软件开发生命周期各阶段采取必要的、相适应的安全措施来避免绝大多数的安全漏洞,软件安全开发过程是指在传统软件开发过程的各个阶段添加安全措施和安全手段,防止因设计、开发、提交、升级或维护中的缺陷而产生不该有的软件漏洞和脆弱性。

四、软件安全开发生命周期的划分

(一)软件需求阶段。需求分析阶段是软件开发第一个阶段,也是基础的阶段,需求分析也称为软件需求分析,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

安全需求分析在软件安全开发过程中是非常重要的一个阶段,安全需求分析的好坏直接影响着安全开发过程中的后续阶段。

据研究发现,在软件开发生命周期中,后面的阶段改正错误开销比前面的阶段要高出数倍,在软件发布以后进行修复的代价是在软件设计和编码阶段即进行修复所花代价的30倍。故软件发布前期的准备工作至关重要。需求这一阶段可能出现的风险主要为需求不明确,没有准确的需求描述和需求分析文档。所以我们在需求分析阶段就需要安全人员的介入,通过专业的安全人员提出安全方面的需求。

(二)软件设计阶段。软件设计是将客户的需求进行软件重现的过程,它是需求分析与编码的中间阶段,也是一个翻译的过程。与需求分析阶段一样,该阶段最后产生一份设计报告。该阶段的安全目标最小风险设计,其中风险包括软件缺陷产生的风险,用户操作产生的风险,费用风险和进度风险。

设计阶段的控制措施:软件设计阶段安全管理原则。具体如下:1、最小特权原则,2、权限分离原则,3、最少共享机制原则,4、完全中立原则,5、心理可接受度原则,6、默认故障处理保护原则,7、纵深防御原则。

(三)软件开发阶段。程序实现就是常说的编码阶段,是软件开发的重要阶段,此阶段的目标是:将设计完整、准确的转换为代码,正确处理程序结构。编写出符合内部、外部不同使用要求的文档等。

(四)软件测试阶段。程序测试是上线前对产品最后的验证,也是发现和排除程序安全问题漏洞的重要手段。

软件测试过程中的风险:测试覆盖面不完善;仅考虑软件出错时的处理,没有考虑对软件的故意攻击;软件测试中自动测试工具不能完全发现问题,需要进行人工测试,由于人员的安全技能差别,导致测试结果也不完全一致。

(5)软件发布阶段。经过软件设计和软件开发两个阶段之后,基本上大部分工作都已经做完了,剩下的就是应用软件上线,给客户一个可以正常使用的系统。

涉及软件安全的部分,是上线前的安全测试,在前期,开发软件的过程中,加入了安全管理概念和流程,上线前,我们仍需要对系统进行再次的安全检查,并形成检查报告,没有问题方可进行上线。

五、总结

通过在软件开发的生命周期中增加安全管理内容,能够有效的提高软件的安全性,降低软件出故障的概率,节约企业的经济开支。

猜你喜欢

生命周期阶段软件
关于基础教育阶段实验教学的几点看法
禅宗软件
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
从生命周期视角看并购保险
民用飞机全生命周期KPI的研究与应用
软件对对碰
企业生命周期及其管理
大热的O2O三个阶段,你在哪?
两岸婚恋迈入全新阶段
谈软件的破解与保护