应用程序级的安全漏洞通常不会像类似SirCam的邮件病毒或者诸如Code Red这样的蠕虫病毒那么容易广为扩散,但它们也同样会造成很多问题,从窃取产品或信息到使整个Web站点完全瘫痪。确保网站web应用程序的安全不是一 件简单的事,而不幸的是对应用程序的攻击是非常容易的。

一个和黑客通常都会花上几个小时来熟悉Web应用程序,象编制这一程序的程序员那样思考然后找出编程时留下的漏洞,然后通过浏览器恶意地与应用程序及其相关的设施进行交互,造成或大或小的损害。

要防止这些问题,公司必须找出网站的弱点然后关闭有可能被黑可利用的缝隙。本文列举并解释网站中最容易被黑客利用从而进行攻击的弱点。

找出问题

作为Sanctum公司的CTO,我帮助过许多公司找出并修补web应用程序中的安全问题。Sanctum公司同时提供安全咨询服务和用于完善网络安全的长期防卫技术以及验证工具从而为许多从事电子商务公司解决了大量的应用程序级安全问题。

Sanctum 检查了超过100家的顶尖网站,模拟黑客攻击,发现超过百分之97的网站有只需几个小时就能攻破的严重的应用程序级问题。Sanctum所进行的检查通常 被称为”善意黑客”,因为是客户要求并授权Sanctum对他们的网站进行入侵的–象某个用户(或黑客)那样,在公司的防火墙和网络之外对网站进行访 问。

通过使用Sanctum的自动化应用程序弱点评估工具AppScan,检察人员遍历整个网络,辨识网站的应用程序安全策略,找出目标 站点已知和未知的漏洞,然后模拟黑客利用这些漏洞对网站进行攻击。每次成功的攻击和每个漏洞的严重程度都会进行评估,然后提交给公司一份详细的报告以及修 补建议。

常见漏洞

几乎所有Sanctum进行过的检查都发现各个网站都采取了严密的网络级安全措施(例如防火墙和加密),这些站点仍然会使黑客能够对客户和公司进行入侵。

1. Cookie中毒–身份伪装

通 过处理存放在浏览器cookie中的信息,黑客伪装成合法的用户然后就可以存取用户的信息。许多Web应用程序使用客户机上的cookie来保存信息(用 户身份、时间戳等等)。由于cookie通常都没有加密,黑客可以对它们进行修改,这样就可以通过这些”中了毒的cookie”来欺骗应用程序。心存恶意 的用户可以访问他人的账户然后象真正用户那样行事。

2. 操纵隐藏字段–电子行窃

黑客能够很容易地更改网页原码中的隐 藏字段以改变某件商品的价格。这些字段通常用来保存客户的会话的信息,以便减少服务器端复杂的数据库处理工作。由于电子商务应用程序使用隐藏字段来保存商 品的价格,Sanctum的检查人员就能够看到网站的源代码,找出隐藏字段,然后更改价目。而在真实环境中没有人能发现这些改动,而这家公司必须按照改动 后的价格发送商品,甚至发送折扣。

3. 篡改参数–欺诈

这种技术改变网站URL的参数。很多web应用程序无法确定嵌入在超链接中CGI参数的正确性。比如说,允许信用卡使用500,000元这样大额的限制,跳过网站的登陆界面以及允许对取消后的订单和客户信息进行访问。

4. 缓冲区溢出–业务终止

通过使用某种形式的数据流,用过量的信息使服务器超载,黑客常常能够使服务器崩溃从而关闭网站。

5. 跨站点脚本–截取信用

黑客向网站输入恶意代码,在目标服务器上运行一段看上去无害的错误的脚本程序会使黑客能够完全访问所获取的文档,服务器甚至有可能向黑客传送页面中的数据。

6. 后门和debug选项–入侵

程序员经常在网站正式运转前在程序中留下调试选项。有时由于匆忙,他们忘记了关闭这些漏洞,使黑客能够自由地访问敏感信息。

7. 强制浏览–强行侵入

通过改变程序流程,黑客能够对正常情况下无法获得的信息和程序的某些部分进行访问,如日志文件、管理工具以及web应用程序的源码。

8. 潜入指令–秘密武器

黑客们常常通过木马植入危险的指令,通过运行恶意或未经授权的指令来破坏网站。

9. 第三方的错误设置–弱化网站

一旦漏洞在公共网站上被公布和修正(比如Securityfocus),黑客就会获知这些新的安全漏洞。例如,通过一个设置错误,黑客就可以建立一个新数据库以避免使用在该网站上不能奏效的入侵方法。

10. 已知漏洞–控制站点

各网站所使用的某些技术有一些固有的缺陷,这样就会被某个执著的黑客利用。举例来说,微软的ASP技术可以被用来获取管理员口令进而控制整个网站。