试析软件开发生命周期各阶段的应用软件安全性测试

上传人:众众****夺宝 文档编号:117358959 上传时间:2022-07-08 格式:DOC 页数:5 大小:18.50KB
收藏 版权申诉 举报 下载
试析软件开发生命周期各阶段的应用软件安全性测试_第1页
第1页 / 共5页
试析软件开发生命周期各阶段的应用软件安全性测试_第2页
第2页 / 共5页
试析软件开发生命周期各阶段的应用软件安全性测试_第3页
第3页 / 共5页
资源描述:

《试析软件开发生命周期各阶段的应用软件安全性测试》由会员分享,可在线阅读,更多相关《试析软件开发生命周期各阶段的应用软件安全性测试(5页珍藏版)》请在装配图网上搜索。

1、试析软件开发生命周期各阶段的应用软件平安性测试论文关键词:网络应用软件软件开发生命周期sd动平安性测试工程设计单元测试集成测试验收侧试论文摘要:文章阐述了软件开发生命周期中每个阶段添加的一系列关泣平安性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件平安性浏试片祠试人员的要求,并以一个sql注入实例来详细说明平安性浏试在软。信息网络平安事件发生比例的不断攀升、病毒利用软件破绽猖狂地传播使得人们越发认识到信息平安的重要性。一般认为,传统的信息平安技术可以借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来防止非受权用户对重要数据的访问,但是这一观点是建立在软件平

2、安根底上的。网络应用软件需要暴露在网络环境下,并且受权外部用户可以透过网络来访问此软件。通过网络,攻击者有时机接触到软件,假如软件本身存在破绽,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被攻击的目的,是网络应用软件平安的重灾区。美国国家标准与技术研究院(nist)2002年的一项研究说明,美国花费在软件缺陷方面的费用到达595亿美元。公安部2022年全国信息网络平安状况与计算机病毒疫情调查分析报b说明,在发生的平安事件中,未修补或防范软件破绽仍然是导致平安事件发生的最主要原因。1平安测试的定义平安测试是鉴别信息系统数据保护和功能维护的过程。平安测试需要涵盖的6个根本平安概念是:保

3、密性、完好性、权限(身份验证)、受权(权限分配)、可提供性、不可抵赖性阴。软件开发商都存在解决平安威胁方古的问题。对软件开发商来说,平安性是其核心要求,这是由市场力量所驱动,也是由保护关键根底构造及建立和保持计算的广泛信任的需要所决定的。所有软件开发商面对的一个主要挑战就是创立更加平安的软件,使其不需要频繁地通过修补程序进展更新。软件平安已经成为评判软件质量的一个重要标准,软件平安测试那么成为保证软件产品可以符合这一标准的重要手段。软件的平安性测试主要是测试在正常和非正常情况下,软件能否对数据进展平安有效的操作。2软件开发生命周期流程(参见图1)对于软件行业来说,要满足当今提升平安性的需要,软

4、件供给商必须转为采用一种更严格的、更加关注平安性的软件开发流程。这种流程旨在尽量减少设计、编码和文档编写过程中存在的破绽,并在软件开发生命周期中尽可能早地检测到并消除这些破绽。用于处理来自internet的输人、控制可能被攻击的关键系统或处理个人身份信息的企业和消费者软件最需要施行这种流程。在很多实际的软件开发工程中,平安测试已经成为sdl一个不可或缺的组成局部,并成为整个工程过程中的长期任务。黑盒一白盒测试方法往往执行在产品递交客户之前,但有的甚至在投人使用之后都未进展平安检测和风险评估;在一些平安性要求较高的工程中,虽然将平安风险评估纳人预算,但在实际操作中却对其并未作过多考虑。这样,所导

5、致的直接后果是在开发工作几近完成的情况下进展问题分析处理所造成的本钱将远远大于在软件开发阶段进展缺陷修改的本钱。即便是从充分利用现有的有限资金和资源的角度来考虑,也有必要将平安测试囊括到sdl中。这样做虽然不能取代软件开发后期的浸透测试和脆弱性测试,却可以有效减少后者在施过程中的投人。开发人员应该根据客户的功能需求来制定相应的平安规约,利用内建的明确的控制机制来降低平安风险。开发人员可以根据风险评估的结果来确定测试工程:软件能否可靠运行(safety)以及软件运行结果是否可靠(seurity)。软件开发生命周期(sdl)中常用的测试方法有:单元测试、集成测试和验收测试。2.1需求、设计阶段平安

6、性分析在软件工程的设计过程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、平安,及要在稍后的软件开发生命周期中需要解决的平安性),导致了工程中许多不必要的波动和延迟。由于平安性分析影响了整个的设计和架构,因此应该在工程设计阶段充分地审查和理解它们。平安性考虑包括一系列问题,例如访问控制和受权、敏感数据的适当处理、数据和存储器访问的适当使用,以及加密方法。一些平安性需求不是非功能的需求,如所施行的加密类型。另外,许多平安性需求是更直接地面向用例的,并且需要定义主要场景,以及定义备选途径和异常途径。在没有将功能的和非功能的需求适当地定义及并人软

7、件中的情况下,编码错误和设计缺陷会表现出关键的信息和操作处于危险。我们应该像对待其他的需求那样处理平安性需求,并将平安性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一局部进展管理。2.2施行阶段单元测试受测试方式的影响,开发者对软件平安风险的评估不可能面面俱到。最典型的就是在代码设计阶段,开发者可以通过单元测试来检验代码行为,这些结果都是可以预知的,但是受到范围的局限,不能测试这些类或者模块集成后的行为。施行单元测试可以从软件根本单位(单个类)的检测上保证输人的有效性;在可能出现恶意攻击的地方,也可以利用这一思想来组织针对单个类或者方法的单元测试,从而组织起软件内部的纵深防御策略,

8、防止恶意行为对软件平安造成的损害。但是,这一方法将软件各组件进展强迫孤立,因此对于因大量组件交互而引起的软件缺陷,利用此种方法无法检测。单元层的平安测试比拟合适于防止缓冲区溢出,格式化字符串以及数据缺失的审核。2.3验证阶段集成测试在集成层,软件的整体平安属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,但是对于跨站脚本和网络效劳器提供的一些效劳(例如平安套接层ssl和url过滤)的测试,存在一定的困难。我们可以将实际案例和风险分析的结果作为组织集成测试的指南。集成测试要求测试人员通过平安测试培训,并且是有纯熟技术的软件开发人员。在这一层,我们可以开展诸如注人缺陷验证、旁

9、路验证以及访问控制等方面的平安测试,来源于外部代码的平安审查结果也应该以集成测试的方式加以确认。2.4发布阶段验收测试验收测试是软件产品交付客户之前的最后一个测试阶段,是在真实的测试环境中,利用基于恶意事件的平安检测模板,测试在典型的浸透活动中可被识别的平安缺陷。验收测试的这一特性(基于平安检测模板),使得我们可以借助于强大的自动化测试软件进展检测,并且可以用验收测试的结果来完善浸透测试报告内容,从而有助于开发人员理解软件的脆弱性以及针对软件脆弱性所采取的补救措施是否有效。验收测试针对软件的外部api,因此不如单元测试和集成测试松散,并且只能测试当前且暴露的破绽或者缺陷。非定制的商业软件重新设

10、计的关键功能或者其他改变都会影响到软件的整体平安性,因此,假如改变会使得软件产生不可预知的缺陷,针对这些缺陷的测试就应该在单元层或者集成层开展,而不是在验收层。在验收层,我们可以测试针对解释性程序(sql,xpath,ldap等)的注人式攻击、跨站脚本攻击、跨站恳求伪造等。缓冲区溢出及格式化字符串等软件缺陷也可以在验收测试层得到检测。3平安测试队伍软件测试一度被认为是编程才能偏低的员工的工作,直到今天,仍然有许多公司把优秀的人才安排在编码工作上,也有更多公司让优秀的人才进展设计,仅有很少公司让优秀的人才进展测试工作。实际的软件工程理论证明,让对软件思想有深入理解的工程师进展软件测试,可以大幅度

11、地进步软件质量软件供给商还必须认识到组织测试人员进展“平安进修对平安测试的成功施行至关重要。在这些情况下,软件供给商必须负责对其工程人员进展适当教育。根据组织的规模和可用的资源,拥有大批工程人员的组织可建立一个内部方案对其工程师进展在职平安培训,而小型组织那么可能需要依赖外部培训。测试人员要像攻击者那样带有“恶意的想法去考虑,而且在测试软件时还要扮演攻击者,攻击自己的系统,以此来帮助发现软件的平安破绽。平安测试并不会总是直接导致平安溢出或者暴露可利用的破绽,从而引出平安缺陷。要平安测试尽可能地发挥作用,测试人员需具备较强的分析才能,而这更多的是依靠纯熟的开发技术和开发经历。4破绽举例:一个sq

12、l的注入式破绽有几种情形使得sql注人攻击成为可能。最常见的原因是,使用拼接形成的sql语句去操作数据库。譬如,传入用户输人的管理员用户名和密码,把这2个参数拼接形成sql语句,通过执行该sql语句,以便验证用户输人的管理员用户名和密码的正确性。详细过程如下:一般情况下,用户传人正常的用户名和密码进展验证,如传人“ynae和“ypassrd进展验证,得到的sql语句将是:这个sql语句很正常。但是,这只是开发人员预期的做法:通过管理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,以改变sql语句的逻辑。譬如,分别传人“ynaeri=1-,ypas

13、srd,得到的sql语句将是:在用户名“ynaeri=i-中,第一个“完毕了原有字符串中第一个单撇号的配对,r后面的“i=i会导致不管前面的验证结果如何,都会返回真true值,而随后的“一将把其后的sql语句注释掉。如今问题出现了,不管使用什么用户名和密码,都能验证通过。在存在破绽的数据显示页面,假如注人jin语句,就能获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入up-date/insert/delete语句将改变数据,如添加新的管理员账号等。这样,数据库将不再平安。sql注人平安破绽的形成,根本在于sql语句的拼接,只要放弃sql语句拼接,适用标准的加码访问方式,问题自然迎刃而解。以下便是修改后的平安验证方法:5结论为符合软件的平安性要求,开发人员在开发过程中应尽可能多地进展平安分析、平安性测试。平安检测效能的充分发挥依赖于开发人员与平安测试人员的亲密配合以及对相关人员在平安教育方面的再投资。对于平安问题,在软件完成后进展处理比在代码编写阶段处理付出的代价要大得多。包含了平安因素在内的经过完全测试的最终产品,自然具有保密性、完好性、权限(身份验证)、受权(权限分配)、可提供性、不可抵赖性。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!