试析软件开发生命周期各时期的应用软件平安性测试_第1页
试析软件开发生命周期各时期的应用软件平安性测试_第2页
试析软件开发生命周期各时期的应用软件平安性测试_第3页
试析软件开发生命周期各时期的应用软件平安性测试_第4页
试析软件开发生命周期各时期的应用软件平安性测试_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试析软件开发生命周期各时期的应用软件平安性测试论文关键词:网络应用软件软件开发生命周期OSD动平安性测试项目设计单元测试集成测试验收侧试论文摘要:文章论述了软件开发生命周期中每一个时期添加的一系列关泣平安性的活动,提出将安奋浏试整合到软件开发生命周期中,分析了软件平安性浏试片祠试人员的要求,并以一个SQL注入实例来具体说明平安性浏试在软。信息网络平安事件发生比例的不断爬升、病毒利用软件漏洞跋扈地传播使得人们越发熟悉到信息平安的重要性。一样以为,传统的信息平安技术能够借助防火墙(包括软件和硬件防火墙)审核通过网络的报文、限定用户的访问权限等来避免非授权用户对重要数据的访问,可是这一观点是成立在软

2、件平安基础上的。网络应用软件需要暴露在网络环境下,而且授权外部用户能够透过网络来访问此软件。通过网络,解决者有机遇接触到软件,若是软件本身存在漏洞,那么所有的防火墙就形同虚设。暴露于网络的应用软件往往成为被解决的目标,是网络应用软件平安的重灾区。美国国家标准与技术研究院(NIST)2002年的一项研究说明,美国花费在软件缺点方面的费用达到595亿美元。公安部2020年全国信息网络平安状况与运算机病毒疫情调查分析报b说明,在发生的平安事件中,未修补或防范软件漏洞仍然是致使平安事件发生的最要紧缘故。1平安测试的概念平安测试是辨别信息系统数据爱惜和功能保护的进程。平安测试需要涵盖的6个大体平安概念是

3、:保密性、完整性、权限(身份验证)、授权(权限分派)、可提供性、不可抵赖性阴。软件开发商都存在解决平安要挟方古的问题。对软件开发商来讲,平安性是其核心要求,这是由市场力量所驱动,也是由爱惜关键基础结构及成立和维持计算的普遍信任的需要所决定的。所有软件开发商面对的一个要紧挑战确实是创建加倍平安的软件,使其不需要频繁地通过修补程序进行更新。软件平安己经成为评判软件质量的一个重要标准,软件平安测试那么成为保证软件产品能够符合这一标准的重要手腕。软件的平安性测试主若是测试在正常和非正常情形下,软件可否对数据进行平安有效的操作。2软件开发生命周期流程(参见图1)关于软件行业来讲,要知足现今提升平安性的需

4、要,软件供给商必需转为采纳一种更严格的、加倍关注平安性的软件开发流程。这种流程旨在尽可能减少设计、编码和文档编写进程中存在的漏洞,并在软件开发生命周期中尽可能早地检测到并排除这些漏洞。用于处置来自Internet的输入、操纵可能被解决的关键系统或处置个人身份信息的企业和消费者软件最需要实施这种流程。在很多实际的软件开发项目中,平安测试已经成为SDL一个不可或缺的组成部份,并成为整个项目进程中的长期任务。黑盒一白盒测试方式往往执行在产品递交客户之前,但有的乃至在投人利用以后都未进行平安检测和风险评估;在一些平安性要求较高的项目中,尽管将平安风险评估纳人预算,但在实际操作中却对其并未作过量考虑。如

5、此,所致使的直接后果是在开发工作几近完成的情形下进行问题分析处置所造成的本钱将远远大于在软件开发时期进行缺点修改的本钱。即即是从充分利用现有的有限资金和资源的角度来考虑,也有必要将平安测试囊括到SDL中。如此做尽管不能取代软件开发后期的渗透测试和脆弱性测试,却能够有效减少后者在施进程中的投人。开发人员应该依照客户的功能需求来制定相应的平安规约,利用内建的明确的操纵机制来降低平安风险。开发人员能够依照风险评估的结果来确信测试项目:软件可否靠得住运行(Safety)和软件运行结果是不是靠得住(Security)。软件开发生命周期(SDL)中经常使用的测试方式有:单元测试、集成测试和验收测试。需求、

6、设计时期一平安性分析在软件项目的设计进程中,人们往往只是关注系统的特性和功能,而没有充分考虑其他重要的非功能问题(例如性能、可用性、平台支持、平安,及要在稍后的软件开发生命周期中需要解决的平安性),致使了项目中许多没必要要的波动和延迟。由于平安性分析阻碍了整个的设计和架构,因此应该在项目设计时期充分地审查和了解它们。平安性考虑包括一系列问题,例如访问操纵和授权、灵敏数据的适当处置、数据和存储器访问的适当利用,和加密方式。一些平安性需求不是非功能的需求,如所实施的加密类型。另外,许多平安性需求是更直接地而向用例的,而且需要概念要紧场景,和概念备选途径和异样途径。在没有将功能的和非功能的需求适本地

7、概念及并人软件中的情形下,编码错误和设计缺点会表现出关键的信息和操作处于危险。咱们应该像对待其他的需求那样处置平安性需求,并将平安性需求划分出优先级,设定范围,同时作为整体用例和功能需求的一部份进行治理。实施时期一单元测试受测试方式的阻碍,开发者对软件平安风险的评估不可能面面俱到。最典型的确实是在代码设计时期,开发者能够通过单元测试来查验代码行为,这些结果都是能够预知的,可是受到范围的局限,不能测试这些类或模块集成后的行为。实施单元测试能够从软件大体单位(单个类)的检测上保证输人的有效性;在可能显现歹意解决的地址,也能够利用这一思想来组织针对单个类或方式的单元测试,从而组织起软件内部的纵深防御

8、策略,避免歹意行为对软件平安造成的损害。可是,这一方式将软件各组件进行强制孤立,因此关于因大量组件交互而引发的软件缺点,利用此种方式无法检测。单元层的平安测试比较适合于避免缓冲区溢出,格式化字符串和数据缺失的审核。验证时期一集成测试在集成层,软件的整体平安属性变得可见和可测试,使得这一层的可测试属性数量相对单元层而言要多得多,可是关于跨站脚本和网络效劳器提供的一些效劳(例如平安套接层SsL和URL过滤)的测试,存在必然的困难。咱们能够将实际案例和风险分析的结果作为组织集成测试的指南。集成测试要求测试人员通过平安测试培训,而且是有熟练技术的软件开发人员。在这一层,咱们能够开展诸如注人缺点验证、旁

9、路验证和访问操纵等方面的平安测试,来源于外部代码的平安审查结果也应该以集成测试的方式加以确认。发布时期一验收测试验收测试是软件产品交付客户之前的最后一个测试时期,是在真实的测试环境中,利用基于歹意事件的平安检测模板,测试在典型的渗透活动中可被识别的平安缺点。验收测试的这一特性(基于平安检测模板),使得咱们能够借助于壮大的自动化测试软件进行检测,而且能够用验收测试的结果来完善渗透测试报告内容,从而有助于开发人员明白得软件的脆弱性和针对软件脆弱性所采取的补救方法是不是有效。验收测试针对软件的外部API,因此不如单元测试和集成测试松散,而且只能测试当前己知且暴露的漏洞或缺点。非定制的商业软件从头设计

10、的关键功能或其他改变都会阻碍到软件的整体平安性,因此,若是改变会使得软件产生不可预知的缺点,针对这些缺点的测试就应该在单元层或集成层开展,而不是在验收层。在验收层,咱们能够测试针对说明性程序(SQL,XPATH,LDAP等)的注人式解决、跨站脚本解决、跨站请求伪造等。缓冲区溢出合格式化字符串等软件缺点也能够在验收测试层取得检测。3平安测试队伍软件测试一度被以为是编程能力偏低的员工的工作,直到今天,仍然有许多公司把优秀的人材安排在编码工作上,也有更多公司让优秀的人材进行设计,仅有很少公司让优秀的人材进行测试工作。实际的软件工程实践证明,让对软件思想有深刻明白得的工程师进行软件测试,能够大幅度地提

11、高软件质量软件供给商还必需熟悉到组织测试人员进行“平安深造”对平安测试的成功实施相当重要。在这些情形下,软件供给商必需负责对其工程人员进行适当教育。依照组织的规模和可用的资源,拥有大量工程人员的组织可成立一个内部打算对其工程师进行在职平安培训,而小型组织那么可能需要依托外部培训。测试人员要像解决者那样带有“歹意的”方式去试探,而且在测试软件时还要扮演解决者,解决自己的系统,以此来帮忙发觉软件的平安漏洞。平安测试并非会老是直接致使平安溢出或暴露可利用的漏洞,从而引出平安缺点。要平安测试尽可能地发挥作用,测试人员需具有较强的分析能力,而这更多的是依托熟练的开发技术和开发体会。4漏洞举例:一个SQL

12、的注入式漏洞有几种情形使得SQL注人解决成为可能。最多见的缘故是,利用拼接形成的SQL语句去操作数据库。譬如,传入用户输人的治理员用户名和密码,把这2个参数拼接形成SQL语句,通过执行该SQL语句,以使验证用户输人的治理员用户名和密码的正确性。具体进程如下:一样情形下,用户传人正常的用户名和密码进行验证,如传人MyName”和“MyPassword”进行验证,取得的SQL语句将是:那个SQL语句很正常。可是,这只是开发人员预期的做法:通过治理员用户名和密码来验证账户信息。但因为参数值没有被正确地加码,黑客能够很容易地修改查询字符串的值,以改变SQL语句的逻辑。譬如,别离传人MyNameorl=

13、l-,MyPassword”,取得的SQL语句将是:在用户名MyName。1=1一”中,第一个终止了原有字符串中第一个单撇号的配对,or”后面的“1=1”会致使不管前面的验证结果如何,都会返回真True值,而随后的“一”将把其后的SQL语句注释掉。此刻问题显现了,不管利用什么用户名和密码,都能验证通过。在存在漏洞的数据显示页面,若是注人JOIN语句,就能够获取数据库里的所有数据,显示在页面上,如获取用户名、密码等;而注入UP-DATE/INSERT/DELETE语句将改变数据,如添加新的治理员账号等。如此,数据库将再也不平安。SQL注入平安漏洞的形成,全然在于SQL语句的拼接,只要舍弃SQL语句拼接,适用标准的加码访问方式,问题自然迎刃而解。以

温馨提示

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

评论

0/150

提交评论