识别常见Web应用安全漏洞

2008-02-23 08:21:17来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,连同基子Web的攻击和破坏的增长,安全风险达到了前所未有的高度。由于众多安全工作集中在网络本身上面,Web应用程式几乎被遗忘了。也许这是因为应用程式过去常常是在一台电脑上运行的单独程式,假如这台电脑安全的话,那么应用程式就是安全的。如今,情况大不相同了,Web应用程式在多种不同的机器上运行:客户端、Web服务器、数据库服务器和应用服务器。而且,因为他们一般能够让任何的人使用,所以这些应用程式成为了众多攻击活动的后台旁路。

由于Web服务器提供了几种不同的方式将请求转发给应用服务器,并将修改过的或新的网页发回给最终用户,这使得非法闯入网络变得更加容易。

而且,许多程式员不知道如何研发安全的应用程式。他们的经验也许是研发单独应用程式或Intranet Web应用程式,这些应用程式没有考虑到在安全缺陷被利用时可能会出现灾难性后果。

其次,许多Web应用程式容易受到通过服务器、应用程式和内部已研发的代码进行的攻击。这些攻击行动直接通过了周边防火墙安全措施,因为端口80或443(SSL,安全套接字协议层)必须开放,以便让应用程式正常运行。Web应用程式攻击包括对应用程式本身的DoS(拒绝服务)攻击、改变网页内容连同盗走企业的关键信息或用户信息等。

总之,Web应用攻击之所以和其他攻击不同,是因为他们很难被发现,而且可能来自任何在线用户,甚至是经过验证的用户。迄今为止,该方面尚未受到重视,因为企业用户主要使用防火墙和入侵检测解决方案来保护其网络的安全,而防火墙和入侵检测解决方案发现不了Web攻击行动。

常见的Web应用安全漏洞

下面将列出一系列通常会出现的安全漏洞,并且简单解释一下这些漏洞是如何产生的。

已知弱点和错误配置

已知弱点包括Web应用使用的操作系统和第三方应用程式中的任何程式错误或能够被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认配置或管理员没有进行安全配置的应用程式。一个很好的例子就是您的Web服务器被配置成能够让任何用户从系统上的任何目录路径通过,这样可能会导致泄露存储在Web服务器上的一些敏感信息,如口令、源代码或客户信息等。

隐藏字段

在许多应用中,隐藏的HTML格式字段被用来保存系统口令或商品价格。尽管其名称如此,但这些字段并不是很隐蔽的,任何在网页上执行“查看源代码”的人都能看见。许多Web应用允许恶意的用户修改HTML源文档中的这些字段,为他们提供了以极小成本或无需成本购买商品的机会。这些攻击行动之所以成功,是因为大多数应用没有对返回网页进行验证;相反,他们认为输入数据和输出数据是相同的。

后门和调试漏洞

研发人员常常建立一些后门并依靠调试来排除应用程式的故障。在研发过程中这样做能够,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就能够登录或访问允许直接进行应用配置的特别URL。

跨站点脚本编写

一般来说,跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式,将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的JavaScript代码的信息。当用户查看这个公告牌时,服务器就会发送HTML和这个恶意的用户代码一起显示。客户端的浏览器会执行该代码,因为他认为这是来自Web服务器的有效代码。

参数篡改

参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库是通过常常包含在URL中的SQL调用来进行的。恶意的用户能够操纵SQL代码,以便将来有可能检索一份包含任何用户、口令、信用卡号的清单或储存在数据库中的任何其他数据。

更改cookie

更改cookie指的是修改存储在cookie中的数据。网站常常将一些包括用户ID、口令、帐号等的cookie存储到用户系统上。通过改变这些值,恶意的用户就能够访问不属于他们的帐户。攻击者也能够窃取用户的cookie并访问用户的帐户,而不必输入ID和口令或进行其他验证。

输入信息控制

输入信息检查包括能够通过控制由CGI脚本处理的HTML格式中的输入信息来运行系统命令。例如,使用CGI脚本向另一个用户发送信息的形式能够被攻击者控制来将服务器的口令文档邮寄给恶意的用户或删除系统上的任何文档。

缓冲区溢出

缓冲区溢出是恶意的用户向服务器发送大量数据以使系统瘫痪的典型攻击手段。该系统包括存储这些数据的预置缓冲区。假如所收到的数据量大于缓冲区,则部分数据就会溢出到堆栈中。假如这些数据是代码,系统随后就会执行溢出到堆栈上的任何代码。Web应用缓冲区溢出攻击的典型例子也涉及到HTML文档。假如HTML文档上的一个字段中的数据足够的大,他就能创造一个缓冲器溢出条件。

直接访问浏览

直接访问浏览指直接访问应该需要验证的网页。没有正确配置的Web应用程式能够让恶意的用户直接访问包括有敏感信息的URL或使提供收费网页的公司丧失收入。

Web应用安全两步走

Web应用攻击能够给企业的财产、资源和声誉造成重大破坏。虽然Web应用增加了企业受攻击的危险,但有许多方法能够帮助减轻这一危险。首先,必须教育研发人员了解安全编码方法。仅此项步骤就会消除大部分Web应用的安全问题。其次,坚持跟上任何厂商的最新安全补丁程式。假如不对已知的缺陷进行修补,和特洛伊木马相同,攻击者就能很容易地利用您的Web应用程式穿过防火墙访问Web服务器、数据库服务器、应用服务器等等。将这两项步骤结合起来,就会大大减少Web应用受到攻击的风险。同时管理人员必须采取严格措施,以确保不让任何东西从这些漏洞中溜过去。