WEB应用的威胁与防护摘要:Web应用安全是关系Web应用能否正常提供服务的重要保证,同时也是信息安全等级保护中的重要的组成部分,本文分析了常见Web应用漏洞的形成原理,说明了相应的评估方法,并着重通过实例说明了对Web应用攻击的防护步骤。关键词:Web应用威胁系统等级保护跨站脚本SQL注入Web应用防护1引言随着互联网全面提速、用户规模快速增长以及国内企业对信息化、网络化办公的重视,国内企业的网络化和信息化水平显著提高,极大的促进了传统产业转型升级。与此同时,随着企业部署到网络上的业务系统越来越多,WEB应用成为了当前业务系统使用最为广泛的形式。根据Gartner的调查,绝大多数信息安全攻击都是发生在Web应用层面上。同时,根据统计数据,超过60%的WEB网站都相当脆弱,容易遭受攻击。根据有关统计,平均每100行Web代码中就会存在1个漏洞,而修补一个漏洞通常都需要1小时以上的时间。根据CNCERT的最新统计数据,2013年CNCERT共接到网络安全事件报告7854件。2013年,我国境内被篡改网站数量为24034个,较2012年增长46.7%,其中政府网站被篡改数量为2430个,较2012年增长34.9%;我国境内被植入后门的网站数量为76160个,较2012年增长45.6%,其中政府网站2425个,较2012年下降19.6%。在被篡改和植入后门的政府网站中,超过90%是省市级以下的地方政府网站,超过75%的篡改方式是在网站首页植入广告黑链。CNCERT统计显示,2013年,境内6.1万个网站被境外通过植入后门实施控制,较2012年大幅增长62.1%;针对境内网站的钓鱼站点有90.2%位于境外;境内1090万余台主机被境外控制服务器控制,主要分布在美国、韩国和中国香港,其中美国占30.2%,控制主机数量占被境外控制主机总数的41.1%。跨平台钓鱼攻击出现并呈增长趋势,针对我国银行等境内网站的钓鱼页面数量和涉及的IP地址数量分别较2012年增长35.4%和64.6%,全年接收的钓鱼事件投诉和处置数量高达10578起和10211起,分别增长11.8%和55.3%。2013年,国家信息安全漏洞共享平台(CNVD)向基础电信企业通报漏洞风险事件518起,较2012年增长超过一倍。按漏洞风险类型分类,其中通用软硬件、信息泄露、权限绕过、SQL注入、弱口令等类型较多,分别占比42.1%、15.3%、12.7%、12.0%和11.2%。这些漏洞风险事件涉及的信息系统达449个,其中基础电信企业省(子)公司所属信息系统占54.6%,集团公司所属信息系统占37.2%。从以上数据可以看出,提高业务网站的安全防护,是保障业务正常进行的必然前提。据可以看出,提高业务网站的安全防护,是保障业务正常进行的必然前提。我们国家在较早的时候也意识到了Web应用在现今各类信息系统中的不可或缺的地位,也非常重视Web应用的安全防护。公安部在制定我国的信息安全等级保护的时候,就在相关标准和细则中加入了Web应用防护的评估,使得Web应用安全评估成为了整个信息系统安全评估工作中重要一环。2Web应用安全威胁Web应用系统一般是由操作系统、web中间件和web应用程序共同组成的。因此,WEB应用系统的系统安全也是由操作系统安全、中间件安全和程序安全共同组成的。一般来说,绝大部分的Web应用威胁都是由于以下这几种情况导致的:服务器向外提供了不应该提供的服务,从而导致数据的泄露。服务器把本应该私有的数据和配置放到了可以被公开访问的区域,从而导致敏感信息泄露。服务器信任了来自不可信任源头的数据,从而导致受到攻击。许多服务器管理员很少对服务器进行安全评估和安全检查,例如通过使用端口扫描程序进行操作系统风险分析、通过密码分析工具进行操作系统密码强度分析等。一旦我们进行了相关的扫描和分析,我们就会在操作系统上关闭许多不必要的服务,因为这些服务无需在正式提供Web服务的机器上运行。许多Web应用程序容易受到通过操作系统、中间件和应用系统发起的攻击。通常这些攻击会直接绕过防火墙的安全策略,例如:80或443端口必须对外开放,以便让用户能够直接访问到应用程序。同时,这也为攻击者攻击web应用提供路径和方便。许多程序员不知道如何开发安全的应用程序,或者没有主动去考虑怎么开发安全的应用程序,这就导致了许多应用程序在开发时存在的安全缺陷一旦被利用就很有可能出现灾难性后果。Web应用隐患主要存在:非法输入、失效的访问控制、失效的账户和线程管理、跨站脚本、缓冲区溢出、注入、异常错误处理、不安全的存储、不安全的配置管理等问题。利用这些隐患,Web应用攻击主要包括对应用程序本身的DoS(拒绝服务)攻击、网站篡改、SQL注入以及获取对web服务和操作系统的控制权限等攻击方式。开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。OWASP发布了最新的Web应用脆弱性的top10,这是继2007年OWASP对TOP10进行修订后进行的又一次更改,该版本暂定为OWASPTOP10-2010。在新版本的OWASPTOP10中主要由以下变化:OWASPTOP102007OWASPTOP102010A2-注入A1-注入A1-跨站脚本(XSS)A2-跨站脚本(XSS)A7-错误的认证和会话管理A3-错误的认证和会话管理A4-不正确的直接对象引用A4-不正确的直接对象引用A5-伪造跨站请求(CSRF)A5-伪造跨站请求(CSRF)A6-安全性误配置A10-限制远程访问失败A7-限制远程访问失败A8-未验证的重定向和传递A8-不安全的加密存储A9-不安全的加密存储A9-不足的传输层保护A10-不足的传输层保护A3-恶意文件执行3针对Web漏洞的攻击、评估与防护3.1几种常见的应用攻击及其防护方法在OWASP发布的报告中重点指出了两个概率最高的攻击手段,它们分别是“注入缺陷”(InjectionFlaws)和“跨站点脚本攻击”(Cross-SiteScripting)。而在CNCERT最新发布的《2013年我国互联网网络安全态势综述》的报告中,还重点提及了“网站篡改”和“拒绝服务攻击(DOS)”正成为影响企业WEB应用正常使用的新的攻击手段。下面说明这四种攻击是如何实施的3.1.1SQL注入SQL注入攻击是通过巧妙构造的SQL语句,附加在网页提交的内容中进行注入攻击。比较常用的手段有使用注释符号、恒等式(如1=1)、使用union语句进行联合查询、利用“;”+insert或update语句插入或修改数据等,此外还可以利用一些数据库内置函数辅助攻击。通过SQL注入漏洞攻击网站的步骤一般如下:第一步:探测网站是否存在SQL注入漏洞。第二步:探测后台数据库的类型。第三步:根据后台数据库的类型,探测系统表的信息。第四步:探测存在的表信息。第五步:探测表中存在的列信息。第六步:探测表中的数据信息。3.1.2跨站脚本攻击跨站脚本攻击是说攻击者会向一些访问量大、影响范围广的Web页面里插入恶意html代码,那么一旦普通用户浏览该页面时,嵌入到Web页面里的恶意代码就会被执行,从而达到攻击者的特殊目的。跨站脚本攻击的对象往往是Web页面的浏览者甚至可能是与代码嵌入页面无关的其它网站,而非Web应用系统本自己。跨站脚本攻击是一种被动式攻击,需要访问到特定的Web页面才能实施攻击。因为其对当前Web应用自身没有影响,所以经常被人忽略其危害性。跨站脚本攻击得以实现的前提是可以在Web页面中插入特定的html代码,这一般是通过利用Web应用对提交数据的检查漏洞来完成。例如前段时间国内某著名网站的一个XSS跨站脚本漏洞就导致了一起大规模DDoS攻击。攻击者利用这个漏洞在该网站的用户头像标签中注入恶意代码,随后攻击者在利用该头像大量发布评论。此时一旦有普通用户访问含有恶意代码的页面时这些代码就被会执行,触发了一个基于Ajax脚本的DDoS工具,从而使用户浏览器在用户访问该网站的这段时间内以每秒一次的频率向目标攻击网站发送请求。因为该网站在线活跃用户多,在线时间长,导致了被攻击网站经受了长时间、大访问量的DDOS攻击。3.1.3“暗链”“暗链”顾名思义就是看不见的网站链接,“暗链”在网站中的链接做的非常隐蔽,它一般不会被用户或者管理员发现,“暗链”主要有以下这些特点。对被暗链攻击的对象隐形。对搜索引擎的网页结果显形。暗链攻击的技术要点是利用搜索引擎技术的漏洞,旨在借助被暗链攻击网站、网页、网页内容、网页文章的主题和关键词的知名度。挂黑链,暗链的方法千奇百怪,可以用css的,也可用脚本的,其他什么都有,而且就算是同样的使用css方法也有几百上千种。3.1.4客户端异常连接与DDOSDDOS即分布式拒绝服务攻击。分布式拒绝服务(DDoS:DistributedDenialofService)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。拒绝服务攻击即攻击者通过消耗目标机器的资源从而导致目标机器停止提供服务或资源访问。这些资源包括CPU进程、内存空间、磁盘IO和空间和网络带宽等。所有只要能够对目标资源和服务造成麻烦,使某些服务停止甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题一直无法合理解决,究其原因是由于网络协议本身的安全缺陷造成的,因此拒绝服务攻击成为了攻击者的终极手段。攻击者通过拒绝服务攻击实现了两大结果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。3.2Web应用安全评估方法既然我们知道了Web应用一旦存在漏洞就很容易被人利用,那么我们如何去评估一个系统的现状,发现系统存在的漏洞和风险,从而为系统的进一步完善提供依据呢。公安部在信息安全等级保护中针对应用安全定义了一下九个方面审核内容和审核标准:身份鉴别访问控制安全审计剩余信息保护通信完整性通信保密性抗抵赖软件容错资源控制我们可以结合等级保护中提出的内容和标准,与实际运行的系统进行对标,再通过进行威胁建模等技术手段,从而分离出当前系统存在的漏洞和面临的威胁,为下一步进行Web应用防护提供需求和依据。3.3WEB应用防护的定位在企业Web应用的各个层面,都会使用不同的技术来确保安全性。为了保护客户端操作系统的安全,企业会为每台服务器安装防病毒软件;为了保证仅允许特定的IP访问特定的端口,企业会使用防火墙和IDS(入侵诊断系统)/IPS(入侵防御系统);从而保证不必要暴露的端口和非法的访问都会被阻止。但是,即便有防病毒软件、防火墙和IDS/IPS,我们仍然不得不允许一部分通讯穿过防火墙,毕竟Web应用的目标就是为用户提供服务,我们可以用保护措施来关闭和禁止那些不需要暴露的端口,但是Web应用必须的80、8080、443、9080等端口是一定要对用户开放的。而可以顺利通过防火墙的这部分通讯,可能是善意的、也可能是恶意的,我们很难辨别。一旦恶意用户通过这些端口利用了WEB应用本身存在的这些BUG,他们就可以通过这些BUG进行窃取、修改或者删除Web应用中的重要信息。而WEB应用安全防护就是部署在防火墙与应用服务器之间,用来对7层协议进行检查、分析、过滤;从而可以在攻击发生前就能提供主动防御,屏蔽恶意请求、阻断Web攻击、防范网页篡改;在攻击发生时快速响应,主动定位攻击,快速建立攻击模型、阻止风险扩散;在攻击发生后深度挖掘访问行为、分析攻击数据、进行行为审计,从而为企业安全状况评估和事态分析提供详尽数据。4应用防护