基于安全软件开发生命周期的软件工程

点赞:13903 浏览:58035 近期更新时间:2024-03-18 作者:网友分享原创网站原创

[摘 要]利用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新,即软件工程的诞生,是计算机软件生产的里程碑.随着Inter的普及和快速发展,网络安全矛盾日益突显.只有改进传统的软件工程过程,提供更为安全可靠的软件产品,才能减轻威胁,有效遏制网络犯罪.

[关 键 词]安全开发;生命周期;软件工程

[中图分类号]TP311.5[文献标识码]A[文章编号]1673-0194(2013)07-0065-03

1968年NATO(北大西洋公约组织,NorthAtlanticTreatyOrganization)在德国的加米施(Garmish)召开的计算机科学会议,是一次划时代的会议,正是这次会议诞生了“软件工程”.它不仅有效缓解了当时日益突出的“软件危机”,同时为其后软件生产的辉煌奠定了坚实的理论基础.然而,在网络高速发展的今天,传统的软件工程实践已无法实现安全的软件开发.只有引进新的开发机制,不断改进传统的软件工程过程,才能生产出更为安全可靠的软件产品.


1软件工程基本概念

计算机软件:与计算机操作有关的程序、规程、规则及任何与之有关的文档及数据.它由两部分组成:一是机器可执行的程序及有关数据;二是机器不可执行的,与软件开发、运行、维护、使用和培训有关的文档.

软件危机:在计算机软件开发和维护过程中所遇到的一系列严重问题.20世纪60年代末至20世纪70年代初的软件开发,主要依赖个人的“才艺”,而软件功能的需求越来越强,造成软件质量(通用性、可移植性)差、维护困难.在一定时间内,人的智力和体力已无法承受.简单增加开发人员已不能成比例地提高软件开发能力.为开发和维护软件而支付的费用已占到设备成本的40%~75%,开发大型软件一再延时,因此而产生了“软件危机”.

软件工程:用工程、数学的原则和科学的方法,研制与维护计算机软件的有关技术及管理方法.它由方法、工具和过程3部分组成.软件工程方法是完成软件工程项目的技术手段,它支持项目计划与估算、系统与软件需求分析、软件设计、编码、测试与维护.软件工程使用的软件工具自动或半自动地支持软件的开发和管理,支持各种软件文档的生成.软件工程的过程贯穿于软件开发的各个环节,管理者要对软件开发的质量、进度、成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证、配置管理等.

软件生命周期:软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程.它包括软件定义、软件开发、软件使用与维护3个主要部分.对应软件生命周期的软件开发模型是经典的瀑布模型(如图1所示).它提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,从而提高大型软件项目开发的质量和效率.

2网络系统面临的威胁

网络时代的互联互通给我们带来了前所未有的体验与便捷,无纸化办公、电子商务、网络通信等,正融入我们的日常生活与工作的各个领域.大量有价值的、敏感的数据存储与流动,使得利益驱使下的犯罪充斥于网络社会.早在1995年,安全专家Clark和Dis就定义了网络犯罪成本效益比率:

MbPb>OcpOcmPaPc

Mb――攻击者的货币收益;

Pb――攻击者的心理收益;

Ocp――实施犯罪的成本;

Ocm――攻击者的定罪成本;

Pa――攻击者被缉拿和逮捕的可能性;

Pc――攻击者被定罪的可能性.

当不等式的左边大于右边时,意味着实施攻击的收益大于成本,犯罪即可能发生.

一方面,如前所述,随着应用的普及,用户必然会存储、处理大量有价值的数据,使得不等式的左边对攻击者来说是“堆放金钱的地方”,其值(Mb)会愈来愈大;另一方面,攻击者被发现和追捕的可能性(Pa)微乎其微,同时,网络上工具汗牛充栋、唾手可得,实施攻击无需掌握高难的技术,使得犯罪成本(Ocp)愈来愈小.这样,使得不等式左边远远大于其右边,导致网络系统始终受到严重威胁.

据国家互联网应急中心(CNCERT)发布的《2011年中国互联网网络安全报告》披露:

2011年境内木马或僵尸程序控制怎么写作器IP数量为253684个,木马或僵尸程序受控主机IP数量为8895123个.

2011年境内被篡改网站数量累计为36612个.

2011年4-12月监测到境内12513个网站被植入网站后门,其中政府网站1167个.

2011年国家信息安全漏洞共享平台(CNVD)共收集整理并公开发布信息安全漏洞5547个,其中,高危漏洞2164个.

2011年,CNCERT共接收国内外报告网络安全事件15366起.

2011年3-12月监测到仿冒境内银行网站的域名有3841个;仿冒境内银行网站的怎么写作器IP有667个.

《CNCERT互联网安全威胁报告》2012年11月的月报称,仅在1个月内:境内感染网络病毒的终端数为近466万个.境内被篡改网站数量为8253个,其中被篡改政府网站数量为658个;境内被植入后门的网站数量为5462个,其中政府网站有294个;针对境内网站的仿冒页面数量为6399个.

国家信息安全漏洞共享平台(CNVD)收集整理信息系统安全漏洞729个,其中,高危漏洞231个,可被利用来实施远程攻击的漏洞有686个.

据《瑞星2012年中国信息安全综合报告》称:

2012年1月至12月,瑞星“云安全”系统共截获新增病毒样本1181万余个.2012年1月至12月,瑞星“云安全”系统截获挂马网站516万个(以网页个数统计).

2012年1月至12月,瑞星共截获钓鱼网站597万个(以URL计算),瑞星拦截挂马的总数总计5097万次.

360安全中心发布的研究数据显示:

2012年1月至6月,国内日均约2835.3万台电脑遭到等恶意程序攻击.

2012年上半年,360安全卫士共截获新增钓鱼网站350149家(以host计算),拦截钓鱼网站访问量更是高达21.7亿次.

2012年上半年,360安全卫士平均每月截获46.3万个挂马网页(以URL计算),拦截挂马网页访问量419万次.

从以上的数据分析可知,网络攻击真实存在,网络犯罪令人触目惊心,在攻击者的定罪成本(Ocm)和攻击者被定罪的可能性(Pc)不变的条件下,我们只有在采用技术的手段同时,增大Ocp以减少网络攻击犯罪.

3基于安全的软件开发生命周期

为了应对日益严重的网络犯罪,我们必须更新与完善软件工程的方法、工具和过程.

设计高质量的软件和良好的安全系统,加大攻击者实施攻击的犯罪成本.引进软件安全开发生命周期(SecurityDevelopmentLifecycle,SDL)是目前最有效的手段之一.SDL由13个阶段构成(如图2所示),其目的一是减少软件中安全漏洞与隐私问题的数量,二是降低残留漏洞的严重性.

(1)教育和意识.通过对设计师、开发人员、测试工程师、文档专员等每一个与软件开发有关的人员进行系统、持续的安全培训与考试,结合阅读安全书籍、发表安全文章等手段进行综合度量,让所有参与软件开发的工作人员牢固树立安全意识、夯实安全基础.

(2)项目启动.该阶段的主要工作是组建安全团队、配置Bug跟踪管理数据库并建立Bug标准.

(3)定义并遵从设计最佳实践.采用安全设计原则(经济机制、默认失效保护、完全相似度检测、公开设计、权限分离、最小特权、最少公共机制、心理可接受度),枚举软件受攻击面的构成,有效降低受攻击面.

(4)产品风险评估.该阶段完成两个方面的任务:一是进行软件安全风险评估,二是对软件涉及的隐私影响进行分级.安全风险评估一般以问卷调查的形式开展,涉及的问题主要包括:安装问题、受攻击面问题、移动代码问题、安全特性相关问题、常规问题等.隐私影响通常分成3级.为最高,当处理敏感数据,如收集用户、不间断监控用户行为等情况发生时定义为.产品风险评估的目的是确定在开发软件时需要投入多大的资源.

基于安全软件开发生命周期的软件工程参考属性评定
有关论文范文主题研究: 关于软件开发的论文范文资料 大学生适用: 学年论文、学院学士论文
相关参考文献下载数量: 36 写作解决问题: 写作参考
毕业论文开题报告: 论文任务书、论文小结 职称论文适用: 技师论文、中级职称
所属大学生专业类别: 写作参考 论文题目推荐度: 优秀选题

(5)风险分析.通过威胁建模,系统地挖掘应用中的威胁,对每种威胁的风险进行分级并决定适当的消减措施.

(6)创建安全文档、工具及客户最佳实践.该阶段完成更为安全的文档的创建和安全工具的开发.所谓更为安全的文档就是充分纳入了安全信息的文档,这些文档包括:①安装文档;②主线产品使用文档;③帮助文档;④开发人员文档.安全工具,一般是小巧的工具,如生成器、向导等,主要目的是帮助用户更为方便且安全地配置系统和使用软件.

(7)安全编码策略.在代码开发和分析时必须遵从的策略:①使用最新版本编译器与支持工具;②使用编译器内置防御特性;③使用源代码分析工具;④切勿使用违禁函数;⑤减少潜在可被利用的编码结构或设计;⑥使用安全编码检查清单.

(8)安全测试策略.测试阶段要求必须进行:①模糊测试;②渗透测试;③运行时验证;④重审威胁模型;⑤重估受攻击面.

(9)安全推进活动.通过代码评审,捕获安全Bug、分类,并在工作完成时修复它.

(10)最终安全评审.在产品交付给客户之前所进行的最终安全评审,一般由安全团队组织进行,其主要任务是:①与产品开发团队协调;②对威胁模型进行评审;③对未修复的安全Bug进行评审;④对工具有效性验证;⑤签署对产品是否可发布给客户的意见.

(11)安全响应规划.由于无法实现软件产品的绝对安全,必须制订相应的安全响应规划,即制订处置预案.该预案一般包括:①接收漏洞报告;②评估与分级;③创建修复;④多级测试;⑤发布安全更新等.该过程由安全团队与开发团队共同完成.

(12)产品发布.以CD、DVD或网络下载等方式发布产品.

(13)安全响应执行.该阶段的工作就是一旦有新的安全漏洞报告,即启动在第11阶段制订的安全响应预案.

与软件产品本身一样,其开发方法也是一个动态的变化过程.再安全的方法也要由人来执行,保障软件安全没有一劳永逸的办法,即使SDL也在不断地改进和更新.像传统的软件工程带来了软件产业的繁荣一样,不断完善的、基于软件安全开发生命周期的软件工程,必将给软件产业带来质的提升与飞跃.

主要参考文献

[1]齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2001.

[2][美]MichaelHoward,SteveLipner.软件安全开发生命周期[M].李兆星,译.北京:电子工业出版社,2008.

[3]史济民.软件工程:原理、方法与应用[M].第3版.北京:高等教育出版社,2010.