所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

动机安全性测试

Manju小河1,Chetna Bajaj* 2
  1. 计算机科学与工程系,安贝德卡研究所先进的通信技术和研究,印度德里
  2. 计算机科学与工程系,安贝德卡研究所先进的通信技术和研究,印度德里
通讯作者:Chetna Bajaj,电子邮件:chetnabajaj7@gmail.com
相关文章Pubmed,谷歌学者

访问更多的相关文章全球研究计算机科学杂志》上

文摘

安全测试是用来构建一个安全的系统,但它忽略了很长一段时间。这些天是完美的重要性。在今天?年代世界,隐私和安全分配最重要的重要性,因此强烈建议期待数据和操作?软件应用程序的安全,迫切需要关注,但它很忽略。因此,我们的目标是开发人员的受人尊敬的重要性系统介绍吗?安全,可以实现安全测试方法在SDLC过程引起的生产安全的软件系统。因此,安全性测试已经从开发人员定义?年代的观点。它就像方法需要发生在SDLC过程将安全功能的软件。软件安全统一的知识体系结构不仅描述安全测试?年代的价值观和目标,也提供了一些开发人员吗?年代的指导方针,产生一个安全的软件系统。

关键字

SDLC安全性测试,软件测试、安全知识。

介绍

软件测试是一个重要的在SDLC过程。它提供了保证两个开发人员和用户。开发人员得到保证从systemA¢€Ÿ年代广泛的测试,可以将用户验收而用户考虑大量的接受任何软件测试作为一个重要的参数。但测试并非只是这个保证执行。它的主要意义在日常操作软件系统。软件需要测试彻底增强其能力来处理异常情况。软件测试是由专注于点或软件可能表现得异常的情况下,可以导致失败。SystemA¢€Ÿs失败可能导致世界各地的业务损失几百万美元通常不接受任何组织不惜任何代价。结果,测试过程已经积累大量的重要性和给出近40%时间在SDLC过程中所需的总时间。测试显示systemA¢€Ÿ年代的缺点和失败,需要固定的开发人员正确而不影响其他systemA¢€Ÿs组件。 Although efforts involved in process make testing very costly, it is worth the benefits one gets.
软件和安全测试的基本原理是相同的,以确保systemA¢€Ÿs安全。安全性测试将执行安全功能即认证、机密性、完整性、可用性等系统。安全性测试类似于systemA¢€Ÿ年代状态,它可以安全的从多余的动作,不允许其他实体/入侵者消失systemA¢€Ÿ年代的完整性。不必要的行动可能包括systemA¢€Ÿ年代未授权访问可疑改变文件(s)。因此,安全性测试是一种使系统可防御的攻击。
软件安全
安全性测试有助于确保系统/应用程序。这是一个高级版本的软件测试。软件测试主要侧重于测试softwareA¢€Ÿs功能。功能实现的软件进行分析,以确保软件系统是否产生估计响应。软件测试与systemA¢€Ÿs功能方面。安全测试是软件测试更先进的比它认为安全,一个非功能性systemA¢€Ÿ年代财产。它描述了systemA¢€Ÿ年代能力使它安全。系统是由安全通过实现功能,防止未经授权的用户访问systemA¢€Ÿ年代价值和机密信息(Gu杨田et al ., 2010) [1]。开发人员需要代码安全执行功能来保护系统,防止它被剥削。系统将获得如果它的功能好,即使在存在脆弱或恶意代码或活动,可以利用系统,并没有任何不利影响。
安全是一个重要任务或财产。提供安全系统是非常复杂与简单的软件测试过程包括黑盒和白盒测试。保护系统,我们需要检查systemA¢€Ÿs两个重要的事情:首先,实施安全措施的有效性,为系统提供功能和安全。安全措施还包括功能,如密码、强认证和访问控制措施。第二,systemA¢€Ÿs行为被攻击者攻击,导致破坏通过访问保护和机密信息。
攻击者可以攻击系统最强大的和异国情调的技能来创建自己的空间(霍格伦德和麦格劳,2004)[2]。开发人员和测试人员需要了解attackerA¢€Ÿs心态,这样他们可以限制attackerA¢€Ÿ年代为黑客可利用的活动系统。
软件安全性测试
安全性测试对软件应用程序是非常重要的,因为它负责机密数据。它确保机密数据未经授权的实体不被忽视。它工作以外的功能(即黑盒)和实现(即白盒)测试。安全测试人员可能使用许多技术来定位systemA¢€Ÿ年代漏洞。测试systemA¢€Ÿ年代安检漏洞或系统的漏洞可能导致故障安全功能的系统组织最终导致重大损失。因此,安全性测试是用来确保开发的软件是免费的缺陷,因此,系统免受未经授权的个人,是一个员工还是一个局外人。安全性测试识别威胁和措施对系统的影响。分析了影响由开发人员或测试人员在攻击者的角色。他们把他们的努力打破系统或进入发现bug。安全性测试是非常必要的数据保护部门。
相关安全测试是基于风险的测试方法,分析风险在SDLC的每个阶段。采取合适的措施来消除风险使系统安全。所以,测试人员必须包含一个基于风险的测试方法通过保持systemA¢€Ÿ年代建筑现实和attackerA¢€Ÿs心态充分考虑应用软件安全(埃尔多安和被盗,2012)[3]。在这种方法中,风险识别受影响地区进行测试。开发/测试人员需要开发测试用例来揭示问题。方法提供了高水平的软件安全与黑盒测试。
安全性测试处理systemA¢€Ÿs安全。它观察周围¢€Ÿ年代行为恶意攻击的存在。它试图构建和执行测试用例,使软件正常工作在攻击阶段。
在第二节纸,各种类型的常见技术测试将被讨论。在第三节,描述各种开发人员所面临的问题以及答案„谁应该做安全测试,¢€Ÿ等将突出显示。软件安全统一的知识体系结构是在第四节阐述了重点关注三个重要知识目录。在第五节中,安全知识安全SDLC定义包括各种知识目录连同SDLC实现模型SSDLC。第六节讨论关于集成的安全流程SDLC阶段,安全软件系统开发的受益。同样也是总结表。最后,我们得出结论本文讨论其未来范围继续引用列表。

相关工作

在软件工程实践中,软件系统是由一个特定的SDLC模型在所有。每个模型包含各种常见的阶段。测试是其中之一,是包含在最终找到softwareA¢€Ÿ年代业务应对。测试描述软件功能实用的方法实现。测试验证发达系统预期和意想不到的输入和彻底观察它的输出。观察决定systemA¢€Ÿ年代正确性。以下方法很常见的测试软件:
1。黑盒测试方法
2。白盒测试方法
3所示。灰盒测试方法
4所示。基于风险的测试方法
黑盒测试方法
这是一个非常简单和有效的技术来测试系统,因为它只是观察到被测系统的行为(Aggarwal和辛格2005)[4]。分析下¢€Ÿs行为与各种输入组合寻找任何异常行为或错误的输出。它不执行代码检查检查。它执行计划,有效和无效输入。系统正在寻找其响应和情况下,观察到的异常行为,它必须纠正(汗,汗,2012)[5]。它也被称为功能测试。检查安全,测试注入恶意输入,合成系统的行为异常和开发人员修复它。
白盒测试方法
白盒测试的方法是重要的软件测试实际上看着代码找到systemA¢€Ÿs缺陷。它也被称为结构测试(Aggarwal和辛格,2005)(汗,汗,2012)[4][5]。它需要测试人员理解设计和实现知识的源代码。它是非常有效的定位编程错误。一些测试人员使用静态分析程序和模式匹配测试编程错误代码,但它可以提供假阳性结果(显示有脆弱但实际上没有)。
灰色矩形测试方法
灰色矩形测试(或灰色盒子测试)被定义为黑盒和白盒测试,软件测试,提高测试覆盖率的(汗,汗,2012)(Irena, 2008) [5] [6]。它允许测试人员测试软件的基本信息。灰盒测试所需的基本信息包括内部数据结构和算法知识,用于设计测试用例。测试用例执行在暴露的接口。灰盒测试是最适合测试两个模块的集成。接口检查或测试modulesA¢€Ÿ连接性和数据流机制。它要求测试人员必须了解applicationA¢€Ÿ年代操作和功能。
基于风险的测试方法
基于风险的测试技术是指与被测软件系统有关的风险。(阿,1999)[7],作者将风险定义为“任何威胁的成就的一个或多个项目的基本目标”。风险状态的另一个定义:“风险是一个尚未发生的问题,和问题是一个已经实现的风险。”(德马科和李斯特2003)[8]。与软件相关的风险对组织,可能会导致巨大的损失,¢€Ÿs为什么基于风险的测试被认为是非常重要的。基于风险的安全测试还考虑attackerA¢€Ÿ年代的意图和他的能力来执行攻击。开发人员识别与攻击有关的风险,尽量减少它(波特和麦格劳,2004)(汗,汗,2013)[9][10]。因此,它提供了很好的方法提高softwareA¢€Ÿ年代质量。它还可以帮助管理人员做出必要的决定关于软件发布在市场。

对于开发人员软件安全性测试问题

测试人员需要了解如何提供一个良好的和定性的测试时间系统。应彻底地测试系统,找出最大错误。这些错误必须删除软件被客户接受。测试人员也需要学会提供合适的时间和精力来定位非功能安全风险。
开发人员进行详尽的黑盒和白盒测试来测试软件系统。他们寻找最大数量的错误和缺点,找到后,把它们固定的软件工作。但是这个过程不包括安全,一个重要的非功能特性。因此,安全测试过程出现。最初,安全性测试开始作为一个新的技术的时候,人不舒服。他们并不容易测试systemA¢€Ÿs完全安全。开发人员在安全面临许多问题在SDLC安全软件系统的测试过程。他们中的一些人提到如下:
1。谁应该做安全测试?
2。如何做安全测试?
谁应该做安全测试?
安全性测试是通过删除systemA¢€Ÿ年代漏洞。漏洞可能会从一个被误解的设计缺陷或也可以从一个错误发生在源代码实现阶段。脆弱性注入在设计阶段变得非常复杂。因此,它变得同样难以删除它们。它可以被一个经验的人有知识的专业类似的项目。此外,它假定人应该来完成知识或contextA¢€Ÿs信息,但有短缺的好,经验丰富、知识渊博的测试人员(汤普森,2003)[11]。
软件行业需要一个人可以用他的专长在SDLC开发安全软件的每一个阶段。现今,企业需要大量的安全测试人员,测试applicationA¢€Ÿs安全。除此之外,我们还需要专家谁可以分享他们的专业知识与其他开发人员(开发安全的应用程序)。
测试人员需要开发安全测试用例,可以很容易地利用和公开系统安全相关的问题。他们应该非常仔细地观察它识别软件问题。但是很难模型或设计测试用例,可以公开安全相关问题。其他问题构成了缺陷的测试用例。有时候,测试用例开发不充分利用软件来确定实际问题。也早些时候说,经验是非常重要的高效安全测试(波特和麦格劳,2004)[12]。
如何做安全测试?
安全测试包括黑盒、白盒、灰色框和基于风险的测试方法。白盒测试包括测试源代码找到编程的错误或缺陷。基于风险的安全测试是在SDLC中实现一个安全软件产品在每个阶段包括以下步骤包含:
1。创建安全的滥用或误用。
2。规范安全需求的清单
3所示。进行建筑风险分析
4所示。构建基于风险的安全测试计划
5。运用所需的静态分析工具
6。在最后的环境中进行渗透测试
7所示。清算系统问题发生由于安全漏洞。
最重要的程序测试包括systemA¢€Ÿ年代风险分析,基于风险的安全测试计划和安全测试,可以制定问题所面临的风险组织(阿,1999)[7]。之后,这些风险是排名,由业务部门优先。
由两个重要的活动即可以测量软件安全第一,通过测试功能的实现安全机制,其次,通过实施基于风险的安全测试理解attackA¢€Ÿ年代模拟。

软件安全统一的知识体系结构

知识被定义为“上下文信息”即可以用来执行一些任务的信息。安全性测试不仅是采用和实施安全特性,也保证了安全软件通过实现各种过程的发展。所以,知识在上下文的安全包括各种流程和过程用于开发安全的软件系统。因此,它需要组织软件安全知识。在这里,软件安全统一的知识架构的想法出现在我脑海里重视安全知识。最好可以提供软件开发安全软件系统安全措施。软件安全知识可以应用在各种SDLC阶段通过使用知识密集型实践。它也指导软件的开发人员在设计和编码。
软件安全统一的知识体系结构(巴纳姆,和麦格劳,2005)[13]如图1所示。架构定义了一个结构提供了不同的知识目录之间的关系。这些重要的七个知识目录分为三个知识类别(Viega和麦格劳,2001)[14]:
1。规范的知识
2。诊断知识
3所示。历史知识
图像
规范的知识
规范的知识包括三个知识目录:原则,指导方针和规则。它描述了高层建筑的抽象原则在哲学层面非常具体和战术代码级规则。类别显示“该做什么以及如何避免“在一个安全的软件系统的开发。
诊断知识
诊断知识包括三个知识目录:漏洞,攻击和攻击模式。它可以帮助开发人员从安全攻击识别和解决问题发生。安全分析人士把它作为一个资源或组件软件开发中实现。表1描述了诊断知识的知识目录。
历史知识
历史知识由知识目录称为历史风险。它强调systemA¢€Ÿ年代问题,尝试
图像
从业务的角度分析其对系统的影响。知识还提供了经验教训,以减少类似的错误在未来。

SDLC安全知识安全

软件安全需要专业知识和经验的应用程序程序员维护applicationA¢€Ÿs力量通过代码或控制措施。是一个安全问题,要求相关约束或任何数据库约束,行业需要熟练的医生可以输入他们的专属技能提供广泛的设施(即不容易实现)的应用程序。但由于缺乏必需的知识,行业很少有熟练的安全从业人员。此外,行业需要那些熟练的从业人员也可以与他人分享自己的专业知识更好的开发的软件(McGraw 2006) [15]。开发人员需要将他们的软件知识,提供优秀的产品。我们还可以使用不同的软件安全从业者的专业知识在整个过程中使用它。它可以作为安全目录命名定义安全结构。此外,它还可以实现在SDLC阶段定义安全角度。每个知识目录都有自己的阶段,活动和输出用于先后在SDLC过程并提供优秀的结果。图2显示了SDLC阶段包含的知识目录。 Table 2 describes different knowledge catalogs which are mentioned below:
1。原则
2。的指导方针
3所示。规则
4所示。攻击模式
5。历史上的风险
6。脆弱性
7所示。利用

集成的安全与SDLC过程

我们是众所周知的SDLC过程用于开发软件。图3显示了实现安全结构在SDLC开发安全软件(在线文档,2013)[16]。它显示了如何开发人员可以开发一个安全软件产品的SDLC过程。每个阶段都有自己的意义和一些额外的职责和责任进行系统安全。总是同意,如果我们检测到一个错误或在需求阶段差异然后纠正它的成本和实现任何变化将是以后的SDLC阶段高。也就是说,如果我们在需求阶段检测错误,没有充分的注意和推迟安全实现和部署后测试,然后,小错误将成为一个安全漏洞以后的SDLC阶段。因此,解决问题的成本即纠正成本会增加。所以,同样需要涉及安全测试过程在SDLC早期阶段
图像
(麦格劳,1998)[17]。图3是SDLC流程整合实现的安全流程对应于每个SDLC阶段产生一个安全的软件系统。
在获得了软件开发过程中,安全整合活动包括在SDLC过程的每个阶段。下面列出了各个阶段,进一步详细解释:
1。需求阶段
2。设计
3所示。编码和单元测试
4所示。集成和系统测试
5。实现
6。支持
需求阶段
在SDLC的需求阶段,开发人员收集功能需求需要开发软件但是忘记收集安全需求。ItA¢€Ÿ年代开发人员的错误,不考虑安全要求。然而,重要的是要收集安全需求和功能需求。开发人员可以收集来自用户的安全需求或从安全指南。安全需求必须记录和分析以及功能需求。了解安全特性的重要性,systemA¢€Ÿs状态也必须有或没有安全实现分析。可行性研究之前必须执行实施。
设计阶段
开发人员必须分析每个安全要求的设计和实现。他们必须理解systemA¢€Ÿ年代设计提出有效的和有效的安全策略,计划,设计和程序。特别安全从业者可以雇佣谁能关注systemA¢€Ÿ年代风险评估。设计阶段包括创建测试计划描述了如何以及何时将会进行安全性测试来测试systemA¢€Ÿs安全。
图像
图像
测试计划:测试计划必须开发极其小心,应该包括:
1。安全相关的场景和测试用例
2。安全测试相关的测试数据
3所示。安全性测试测试工具
4所示。使用不同的安全工具来分析各种测试输出
编码和单元测试
开发人员必须将安全编码规则来实现安全的软件。开发人员必须建立深入的知识漏洞进入软件。他们也必须跟上学习防止系统潜入代码程序,成为能够区分设计与实现漏洞。安全软件开发人员和测试人员应该参加培训班并获得适当的和管理能够开发安全的代码通过遵循安全的编码标准。发展与安全设计,必须排队编码规则和标准。测试人员应该使用安全的编码标准和必须开发测试用例来验证在标准被跟踪,以确保systemA¢€Ÿs安全。
安全测试用例:一些样品测试用例用于安全测试:
1。密码用于验证应在数据库加密的格式保存。
2。应用程序或系统不应该允许访问无效的用户。
3所示。ApplicationA¢€Ÿ年代饼干和会话时间必须定期检查。
4所示。应该禁用浏览器后退按钮在商业网站在做交易。
集成和系统测试
黑/白/灰盒测试在这个阶段执行。虚拟测试环境设置执行广泛的安全测试。测试人员必须计划、跟踪和管理测试环境设置活动,需要观察他们的表现。测试人员还负责安装硬件、软件和网络资源在测试环境。之后,测试人员必须整合资源获取/完善测试数据库。最后,测试开发环境设置脚本和测试脚本。
实现
功能需求与安全结构在这个阶段实现。除了功能需求的实现,最大限度照顾给出实现softwareA¢€Ÿs安全。安全测试人员开发安全测试脚本,执行他们细化。他们希望避免假阳性或假阴性进行评价的活动。他们文档安全问题的系统报告,支持developersA¢€Ÿ了解软件问题。他们复制问题进行回归测试和解决问题。
支持
开发一个安全软件使用SSDLC之后,它是非常重要的实施或执行一个补丁管理过程来管理漏洞。在此阶段,不同的内部和外部的漏洞识别,追踪和优先。源代码审计和渗透测试也是在这个阶段完成,这样能保持一个安全的应用程序环境。安全软件开发生命周期(SSDLC)和任务相关的每个阶段都在表3中做了总结。

结论:

摘要软件安全是通过各种视角解释:用户想要他的系统是如何工作的以及如何开发人员应该使用他们的创意对创建一个安全的软件系统。安全的第一步是注册SDLC过程开发一个安全系统通过合并必要的安全特性和措施。这种分析为开发安全软件是为了方便开发人员执行。
开发人员,新的安全的世界,会发现它非常有益。这项研究将帮助他们理解重要的安全概念设计安全的软件系统。如果开发人员把他们的编程能力与上述过程,他们肯定会到一个安全的软件系统。也相信这将是有用的对于一般读者的安全和安全管理执行团队。

引用

  1. 顾杨田,施Yin-sheng,方You-yuan,“研究软件安全测试”,世界科学院、工程和技术,70卷,647页,651年,2010年9月。
  2. 霍格伦德和g . McGraw探索软件:如何打破代码,addison - wesley, 2004年。
  3. Gencer埃尔多安,公司被盗,“风险驱动的安全测试与测试驱动的安全风险分析”,首先博士研讨会上工程安全的软件和系统。
  4. 株式会社Aggarwal尤盖辛格“软件工程”,(第三版。),版权©新时代国际出版商,01 - 1月- 2005。
  5. 穆罕默德。Ehmer汗& Farmeena汗”,比较研究的白盒、黑盒和灰盒测试技术”,国际期刊《先进的计算机科学和应用程序(IJACSA) 3卷,第6期,2012。
  6. Irena约万诺维奇,“软件测试方法和技术”。
  7. 阿,m . a (1999)。软件质量管理和业务风险。奇切斯特:约翰威利和儿子。
  8. 德马科,t, t·李斯特(2003)。华尔兹与熊:软件项目的风险管理。纽约:多塞特。
  9. 苏赫尔•艾哈迈德汗rae艾哈迈德汗“软件安全性测试过程”,Intl Proc.。Conf.最近的趋势在计算和通信工程——2013年RTCCE p39-42。
  10. 汤普森,第三世,“Why security testing is hard”, IEEE Security & Privacy, v 1, n 4, 83-6, July-Aug. 2003.
  11. b·波特,g . Mcgraw“软件安全性测试,IEEE安全与隐私,v2,它们,81 - 85,Sept.-Oct。2004年。
  12. 巴纳姆,g . Mcgraw软件安全的“知识”,IEEE安全与隐私、v3, n2, 74 - 78年,2005年3 - 4月。
  13. Viega和g . McGraw构建安全软件:如何避免安全问题的正确方法,addison - wesley, 2001年。
  14. Gary McGraw“软件安全:构建安全”,addison - wesley专业,2006年。
  15. 在线文档,2013年8月。URL: http://www.guru99.com/what-is-security-testing.html。
  16. g . McGraw”测试在开发过程中对安全::为什么我们应该废除Penetratre-and-Patch,“IEEE航天和电子系统,13卷,没有。4,1998年,页13 - 15。