在线刊号(2320-9801)印刷刊号(2320-9798)
Ramakrishnan。R1, Anbarasi。J2, Kavitha。V3.
|
有关文章载于Pubmed,谷歌学者 |
更多相关文章请访问国际计算机与通信工程创新研究杂志
Web服务是模块化的软件应用程序,可以通过网络(如万维网)进行描述、发布、定位和调用。Web服务在提供者和使用者之间提供了一个简单的接口,并由复杂的软件基础设施支持,该基础设施通常包含在服务器、操作系统和一组外部系统的应用程序中。在这种技术中,易受跨站脚本(XSS)攻击的是利用现有的漏洞。在提出的方法中使用了两种安全测试技术,它们是渗透测试和故障注入,模拟针对Web服务的XSS攻击。这种技术与WSSecurity (WSS)和Security令牌相结合,可以识别它们的发送者,并保证对交换的SOAP消息的合法访问控制。因此我们使用漏洞扫描器soapUI,它是渗透测试中最受认可的工具之一。另一方面,WSInject是一种新的故障注入工具,它可以在Web服务中引入故障,以分析不健壮的环境中的行为。结果表明,他们使用WSInject与soapUI相比,可以提高漏洞的检测能力,允许模拟XSS攻击并生成新的攻击类型。
关键字 |
XSS、注入攻击、java脚本、脚本、WS-Security;WSS;安全令牌;soapU我;soapsonar工具。 |
介绍 |
Web服务带来了新的安全挑战。跨站脚本被称为XSS,是一种注入攻击,拦截用户提供的信息。它的目的是用来存储、修改或删除请求,从而误导服务器和Web服务的用户。Web服务使用安全测试技术,如渗透测试和故障注入。这些技术允许验证:i) Web应用程序和服务中针对不同类型的安全攻击(如拒绝服务或欺骗攻击)的漏洞;ii)在新的漏洞被攻击者利用之前发现它们。这两种技术都使用工具来分析Web服务中存在的漏洞并模拟XSS攻击。 |
近年来,研究人员对开发软件实现的故障注入工具越来越感兴趣。软件故障注入技术很有吸引力,因为它们不需要昂贵的硬件。此外,它们还可以用于针对应用程序和操作系统,这在硬件故障注入中是很难做到的。根据故障的不同,使用软件方法注入永久性故障会导致很高的开销或根本不可能。我们还分析了使用WS-Security和securitytoken的Web服务对XSS攻击的健壮性。这些规范允许通过用户和其他服务的身份验证授权使用WebServices。 |
对网络的部分控制和捕获SOAP消息的能力。能够拦截和修改字符串或表达式,延迟或复制消息流量。了解所有参与者的状态,即攻击者拦截消息并取代客户端/服务器或只是作为客户端和服务器之间的通信中介(中间人攻击)。攻击者可以识别被测试的Web服务中的WSDL的访问点、操作和参数。 |
ï ·部分控制网络和捕获SOAP消息的能力。 |
ï ·拦截和修改字符串或表达式,延迟或复制消息流量的能力。 |
ï ·了解所有参与者的状态,即攻击者拦截消息并取代客户端/服务器或只是作为客户端和服务器之间的通信中介(中间人攻击)。 |
ï ·攻击者可以识别所测试的Web服务中的WSDL的访问点、操作和参数。 |
A.现有系统: |
Web服务能够跨多个平台和系统,甚至跨业务快速集成应用程序。Web服务标准是SOAP、WSDL和UDDI,这将使系统到系统的通信比以往任何时候都更容易、更便宜。Web服务在互联网上具有分布式和开放性,在使用过程中更容易受到安全风险的影响。许多研究人员提供了WS-service测试工具来测试web服务以避免漏洞。在以前的方法中,使用了一些测试工具来扫描web服务中的漏洞。然而,攻击的变化允许注入脚本(例如JavaScript, VBScriptor Flash Script)在Web服务通过其。由于很难发现XSS等Web服务中的漏洞,我们应用了一种安全测试方法,以便将错误注入系统化,并消除Web服务中的漏洞 |
B.拟议系统: |
该方法利用渗透测试和故障注入两种安全测试技术来模拟针对Web服务的跨站攻击。WS-Security指定如何在消息上强制执行完整性和机密性,并允许各种安全令牌(如SAML、Kerberos和X.509)之间的通信。主要关注的是使用XML签名和XML加密来提供端到端的安全性。黑箱提出的方法,我们使用存储在包含SOAP消息(请求和响应)的工具(WS-Inject故障注入器和SOAP - ui负载测试)中的日志作为信息源。该方法的一个优点是,它依赖于通用的故障注入器的使用,该注入器可用于模拟几种类型的攻击,并可能生成相同的变体,这通常限制在安全测试常用的工具中,作为漏洞扫描器。 |
建议的步骤,由以下属性组成: |
ïÂ‑·攻击者能力; |
ï ·通过故障注入工具模拟攻击的可能性; |
ï ·攻击在web服务中运行的要求; |
ï ·验证ws-security是否保护web服务不受xss攻击。 |
2文献调查 |
1.Web服务安全性——wssecurity上下文中的漏洞和威胁。 |
Web服务(WS)可以描述为基于sanxml的接口,客户机应用程序可以使用该接口调用通过标准Internet协议分布在网络中的计算服务。为了使Web服务成为一种无处不在的程序间通信技术,充分考虑利用公共互联网进行传输的Web服务如何得到适当的保护和安全。就目前的情况来看,大多数WebServices都没有公开,而是经常部署在公司专用网络内部。这阻碍了WebServices可以在目录中公开发布的愿景,潜在客户可以在目录中搜索以找到适合的服务来满足他们的需求。本报告“概述了在公开部署安全WebServices时存在的一般漏洞和威胁。然后,本文将继续简要介绍最重要的安全标准WS-Security,并就前面描述的漏洞和威胁进行讨论。该移植的结论是,WS-Security是一种很有前途的安全标准化工作,它可以处理许多特定于WebServices的安全问题。 |
2.改进web服务的数据扰动测试技术 |
面向服务的体系结构(soa)和Web服务的广泛使用是商业软件需要采用开发技术来确保Web服务的质量。测试技术和工具与质量密切相关,对基于SOA的系统质量的实现起着至关重要的作用。本文提出了一种新的测试技术,可以为Web服务自动生成一组测试用例和数据。为了支持这些技术,开发了一个工具(GenAutoWS),并将其应用于实际问题。 |
3.故障注入抽查计算机系统可靠性 |
以计算机为基础的系统有望更加可靠。即使在存在故障的情况下,它们也必须正确运行,并且通过注入真实和人工故障对容错性进行了彻底的测试。用户必须开始要求制造关于此类实验结果的报告,以及系统中内置的处理故障的机制。通过注入人工物理故障,再进行故障注入,为大多数应用程序提供了一种合理的Swift工具,因为它的灵活性和低成本。 |
4.使用断言自动测试web服务编排 |
Web服务编排描述语言是涉及多个参与者或组织的服务集合之间协作的全局视图。由于WS-CDL可以针对为服务组合指定的设计,因此很少需要提出测试WS-CDL程序的方法。本文提出了一种自动测试WS-CDL程序的方法,采用动态符号执行技术生成测试输入,并将断言作为测试预言符。WS-CDL仿真引擎用于在符号执行过程中执行WS-CDL程序。 |
3跨站脚本攻击 |
跨站脚本(XSS)是一种攻击技术,它涉及攻击者向用户的浏览器实例提供代码。浏览器实例可以是一个标准的web浏览器客户端(用户),嵌入到软件产品中,如WinAmp中的浏览器、RSS阅读器或电子邮件客户端(用户)。代码本身通常是用HTML/JavaScript语言编写的,但也可以扩展到VBScript语言、ActiveX控件、Java、Flash页面或任何其他浏览器支持的技术。当攻击者让用户的浏览器执行他/她的代码时,代码将在托管网站的安全上下文中(或区域)运行。跨站点脚本用户的帐户将被劫持(cookie盗窃),他们的浏览器将被重定向到页面的另一个位置。利用浏览器对象实例从文件系统加载内容的应用程序可能会在本地机器区域下执行代码,这可能会对系统造成损害。 |
它包括跨站脚本攻击: |
一个¯·非持久性 |
一个¯·持久的 |
非持久性 |
许多门户网站提供了个性化的网站视图,并可能以“欢迎,<您的用户名>”来欢迎登录用户。有时,引用登录用户的数据存储在URL的查询字符串中,并显示在屏幕上。 |
门户URL示例:http://portal.example/index.aspx?sessionid=459281&username=Kavi在上面的例子中,我们看到用户名“Kavi”存储在URL浏览器中。生成的web页面显示“欢迎,Kavi”消息。如果攻击者修改URL中的用户名字段并插入窃取cookie的JavaScript。如果他们设法让受害者访问他们的URL,就有可能控制用户的帐户。 |
持续的 |
许多网站都有bbs,注册用户可以在这里发布消息,这些消息存储在某种类型的数据库中。注册用户通常使用授权发布的会话ID cookie进行跟踪。如果攻击者发布包含特制JavaScript的消息,阅读消息的用户的cookie和帐户可能会受到威胁。 |
四、渗透测试概述 |
渗透测试是通过安全尝试利用系统漏洞(包括操作系统、服务和应用程序缺陷)来评估IT基础设施安全性的技术之一,是不适当的配置,甚至是有风险的最终用户行为。因此,该工具在验证防御机制的效率以及最终用户对安全策略的遵守方面也很有用。 |
渗透测试通常使用手动或自动技术进行,以系统地破坏其他潜在的暴露点。一旦某个特定系统上的漏洞被成功利用,测试人员可能会试图使用被破坏的系统对其他内部资源发起后续的攻击,特别是试图通过特权升级逐步实现更高级别的安全许可和更深层次的电子资产和信息访问。 |
通过渗透测试成功获得的有关任何安全漏洞的信息通常被汇总并呈现给IT和网络系统经理,以帮助这些专业人员做出战略结论并确定相关补救工作的优先级。渗透测试的目的是根据在该技术中发现的漏洞来衡量系统的可行性或web服务是否安全。 |
SoapUI是由Eviware开发的工具。SOAP代表简单对象访问协议。它是用户和服务提供者之间的通信协议。它是一种向用户和浏览器发送消息的格式。它是独立于平台的过程。该工具通过附加安全测试工具注入脚本,并分析来自服务器的响应和用户的请求。然而,通过注入跨站脚本攻击,对Web服务中的响应进行分类,无论是否脆弱。它帮助程序员开发基于SOAP的web服务。它由 |
ï ·生成SOAP调用的存根,在Web服务描述语言文件中声明操作; |
ïÂ‑·向web服务发送SOAP消息,并在浏览器上显示输出; |
ï ·填充一个数据源,并用从中提取的数据生成消息(仅在商业版本中;该特性需要有限的领域知识和工具使用技能。任何选择,所有,发生和其他结构不会自动处理); |
ï ·运行批测试用例使用了操作中使用的数据值集的覆盖率的部分信息。 |
与web应用程序相比,web服务是一种新兴的服务,它具有次级的攻击载体。然而,由于缺乏关注或知识,通常会发现在web服务中实现的安全措施不如在web应用程序中实现的安全措施。根据攻击者的观点,这使得web服务成为最受欢迎的攻击载体,并且很容易渗透。 |
五、web服务渗透测试 |
Web应用程序安全性在钢笔测试人员中非常流行。组织开发人员和笔测试人员将web应用程序视为主要的攻击载体。与Web应用程序相比,相对较新的Web服务被认为是次要的攻击载体。由于缺乏关注和知识,通常发现在web服务中实现的安全措施不如在web应用程序中实现的安全措施。根据攻击者的观点,该web服务具有攻击向量并且易于渗透。写这篇文章的另一个原因是web服务的使用在过去几年中有了很大的增长,而且web服务中的数据非常敏感。由于移动应用程序的出现,网络服务的使用突然增加。然后我们都知道移动应用程序的使用增长迅速,大多数移动应用程序用于对web服务进行排序。网络服务的使用相对增加了吗?由于缺乏安全实现和可用资源,web服务发挥着至关重要的作用,使其成为可能的攻击载体。 |
简单对象访问协议(SOAP): |
Soap是应用程序通过HTTP交换信息的基于xml的协议。Web服务使用SOAP格式发送XML请求。SOAP客户机向服务器发送SOAP消息。服务器与请求的服务一起再次响应SOAP消息。Web协议已安装并可用于主要的操作系统平台。SOAP精确地指定了如何对HTTP报头和XML文件进行编码,以便一台计算机中的程序可以调用另一台计算机中的程序并向其传递信息。它还指定被调用的程序可以返回响应。 |
典型的SOAP请求是这样的 |
如果服务使用者发送一个适当的SOAP请求,那么服务提供者将发送一个适当的SOAP响应。典型的SOAP响应是这样的 |
Web服务描述语言(WSDL): |
它实际上是UDDI使用的一种XML格式的语言。它将web服务的功能描述为具有交换消息能力的通信端点的集合。或者简单地说,“Web服务描述语言是一种基于xml的语言,用于描述Web服务以及如何访问它们”。就笔测试web服务而言,理解WSDL文件对手动笔测试有很大帮助。我们可以根据定义将WSDL文件结构分为两部分。第一部分描述了web服务,第二部分说明了如何访问它们。让我们从基本的WSDL结构开始,如图5所示。 |
统一描述、发现和集成(UDDI) |
UDDI是web中的分布式目录,每个服务提供者都需要使用它的WSDL发布注册的web服务。服务使用者将搜索适当的web服务,UDDI将提供提供特定服务的服务提供者的列表。服务使用者选择任何一个服务提供者并获得WSDL。Web服务是在两个基于Web的应用程序之间建立通信的标准化方式,它们使用XML、SOAP、WSDL、UDDI和开放标准,是基于internet协议的主干。XML用于对SOAP消息中的数据进行编码。SOAP用于将信息转换为HTTP、WSDL,并用于描述web服务中的功能,UDDI用于提供服务提供者详细信息的列表。在实时场景中,如果服务使用者想要对web服务使用某种排序,那么它应该知道服务提供者。如果服务提供者验证服务使用者,它将直接提供WSDL文件,然后服务使用者创建XML消息,以SOAP消息的形式请求所需的服务,服务提供者返回服务响应。换句话说,如果服务使用者不知道服务提供者将访问UDDI并搜索所需的服务。通过再次选择一个服务提供者,服务使用者将生成一个XML消息,以SOAP消息的形式请求所需的服务,并指定该服务提供者的WSDL文件。 The service provider returns the service response. In general web service testing is assuming the service consumer and the service provider, start testing a web service is ask for the WSDL file. |
六、web服务故障注入工具 |
正如前面提到的,对SWIFI工具的需求仍在增长,它使测试人员能够为故障注入创建测试规范,并自动应用于webservices的指定部分。本节描述了FIWS工具(Web服务故障注入器)的开发,它可以被归类为软件实现运行时故障注入的工具,以及基于soap、XMLRPC和Restful Web服务及其组合的非侵入性健壮性测试工具。它允许将测试的web服务运行时中的错误注入到web服务与其合作伙伴之间的通信中。在注入之后,可以观察到web服务的异常状态和错误行为。 |
表示层,包含负责工具(图形化)用户界面的模块和类(它由表示窗口和对话框的类组成)。下一个是实现应用程序逻辑的业务层,它由三个单元组成: |
代理监控单元-它的目标是充当HTTP代理,在给定端口监听传入连接,并协调服务之间的通信。此组件的行为与普通代理服务器略有不同。它等待整个HTTP消息被读取,然后分析消息的重要部分,并将它们转发给故障注入器。 |
故障注入器—从代理监控单元接收特定部分的服务调用消息,并按代表不同类型的条件和故障的类进行处理。该处理由工具用户界面中的特定测试规范定义,并由控制器接收。 |
控制器-它是根据工具用户界面的事件控制业务层的单元。它还实现了存储在XML数据库中的测试和结果的持久性。 |
最后,最底层是数据层,它由访问带有测试规范和结果的XML数据库的类组成。 |
7SOAP声纳 |
根据上面的解释,现在我们必须实现一个名为SOAP Sonar的创新工具,它被认为是业界领先的客户端仿真服务测试工具。SOAP声纳是一种综合特性,它结合了直观的用户界面工具,支持无代码的服务测试,几乎涵盖了XML、SOAP和JSON测试的功能、自动化、回归、性能、遵从性和安全性测试。它是一个基于SOAP、XML和REST的web服务的软件测试和诊断工具。通常SOAP Sonar接口分为项目视图、运行视图和报告视图,而项目视图用于创建单个测试用例、变量和成功标准。运行视图用于将测试用例合并到自动化测试场景中。在Report View中,可以查看独立测试用例的运行结果,并与成功标准进行比较。 |
8结论 |
在本文中,渗透测试阶段的结果有助于开发漏洞分析规则。然而,soapUI获得的结果显示了很大比例的假阳性和假阴性。我们还使用附加安全令牌验证了WS-Security标准提供的安全性,以防止XSS攻击。在这两个阶段中,使用WS-Security可以显著减少漏洞的数量。但是,可以通过使用其他规范来改进这一点。该方法的一个优点是,它依赖于通用的故障注入器的使用,该注入器可用于模拟几种类型的攻击,并可能生成相同的变体,这通常限制在安全测试常用的工具中,作为漏洞扫描器。 |
参考文献 |
|