我们渴望知道Web应用是“如何”被入侵的问题,但是为了完成这个主题,下面用几句话来描述Web应用攻击中的“谁、何时、何处”。
和前面讲的“为什么攻击Web应用”一样,攻击Web应用的人不断变化。最初的Web入侵者是暑假离校的无聊少年,通过网站的损毁发动地盘争夺战。现在,Web入侵已经职业化:有组织的犯罪进入了Web入侵并且正在获得利润。
回答Web应用在“何时”和“何处”遭到攻击很简单:全天候,所有地方(甚至在内部网络!)。Web应用的最大魅力在于它们“始终向公众开放”的特性,所以很明显,它始终有着或多或少的风险。我们讨论Web应用在“什么位置”遭到攻击可能更有意义。换句话说,Web应用安全的常见弱点在哪里?
弱点
如果你猜到了Web应用遭到攻击的位置是“所有地方”,说明你已经很熟悉这个诡异问题的概念,答案也正确。下面简要概述本书将要讨论的对Web应用各个部件的各种攻击:
·Web平台: Web平台软件包括HTTP服务器软件这样的底层基础架构(例如IIS、Apache)和应用所用的开发框架(例如,ASP.NET或PHP),参见第3章。
·Web应用: 攻击验证、授权、网站结构、输入验证、应用逻辑和管理界面,主要在第4章到第8章中介绍。
·数据库: 通过数据库查询和查询操纵运行特权命令返回过量的数据集。最具毁灭性的攻击是SQL注入,这将在第6章中介绍。
·Web客户端: 活动内容执行、客户端软件漏洞利用、跨站脚本错误以及网络欺诈。Web客户端入侵在第9章中讨论。
·传输: 对“客户-服务器”通信和SSL重定向的窃听。我们在本书中对此不做特别介绍,因为这是一种普通的通信层攻击,在Web上有大量相关的文章。
·可用性: 在匆忙处理更加耸人听闻的“入侵”攻击时经常被忽视,拒绝服务(DoS)是任何公共访问的Web应用将要面对的最大威胁之一。让任何资源可供公众使用是一个难题,在网络世界中更是如此,在网络世界中,匿名的攻击者可以利用分布式的僵尸军队,向任何互联网目标释放史无前例的请求风暴。本书没有专门章节讲述DoS攻击及其对策,但自始至终都将讨论容量耗尽攻击和防御性编程方法。
哪些Web应用组件最经常遭到攻击是有一些统计数字的,例如开放Web应用安全计划(OWASP)组织公布的前10名,列出了根据安全社区中“广泛意见”得出的前10个最严重的Web应用漏洞。有更多统计数字的资源是WhiteHat网站安全统计报告,包含了丰富的半自动Web安全评估业务的数据。引用WhiteHat自己的一段话,对这个报告的价值做了最好的总结:
WhiteHat发布的这个报告精选了2006年以来前10大漏洞、最重要的市场趋势和新的攻击方向。WhiteHat报告提出了当前网站漏洞的统计图,并提供WhiteHat专家分析和建议。WhiteHat报告是业界唯一的,专注于Web应用未知漏洞的报告,为企业Web站点服务。
WhiteHat报告根据WASC(Web应用安全协会)威胁分类方法对漏洞进行分类。OWASP、WhiteHat和WASC资源的链接可以在本章末尾的“参考与延伸阅读”中找到。