WEB应用安全研究

2017-03-17 11:09黄定华徐志伟
电子技术与软件工程 2016年16期

黄定华+徐志伟

摘 要

随着Ineternet技术的不断发展和延伸,WEB服务成为互联网上的使用最普遍的应用服务,本文从WEB服务架构的发展具体分析了可能带来安全威胁的各个层面的原因,并对于这些威胁提出了相关的安全体制构建机制和构想。

【关键词】WEB安全 WEB防火墙 HTTPS

1 概述

自从互联网时代开启以来,网页浏览成为上网最普遍的行为。这种行为导致了WWW(万维网)的兴盛和发展。据美国互联网研究机构Netcraft统计,截止到2016年6月全球网站数量已经突破了10亿大关。随着网络信息化和移动互联网的进一步发展,网页的浏览和使用已经成为日常生活中不可或缺的一部分。WWW是由許多互相连接的超文本组成的系统,通过互联网进行访问,在这个系统中每个事物都称之为一个“资源”,并且有一个全域的URL(统一资源标识符)表示。

基于网页浏览的应用随着互联网技术发展不断推进,人们不仅可以通过网页浏览来欣赏视频,播放歌曲,进行娱乐互动,也可以通过网页浏览的方式享受社交网络,电子邮件以及网络购物等服务。随着应用和服务的兴盛,网页浏览的安全问题也日益凸显,各种针对于网页服务器端的攻击层出不穷,网页的信息容易遭到篡改并植入有害代码,个人信息大量泄露利用浏览器的漏洞的挂马网站大量泛滥,据相关安全机构统计,80%的电脑中毒都来源于用户浏览了带病毒的网页和链接,网页攻击成为黑客入侵的主要手段之一。

2 WEB架构和发展

WEB的本意是蜘蛛网和网的意思,在网页设计中我们称之为网页,主要表现为超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)的集合。在WWW世界中WEB服务指的是这种超文本的资源集合通过浏览器/服务器架构和Http协议呈现给客户的服务。随着用户更加注重交互和内容的分享,WEB2.0引入了由用户主导而生成内容的互联网模式,出现了数据与服务的分离,分布式数据和服务等变化,大大增强了交互性。

在早期,客户使用WEB浏览器通过http协议通过互联网访问WEB服务器,一般使用的是html静态页面。静态页面是指用户通常访问的页面都存储在WEB服务器的某个固定目录下,比如.html文件和.xml文件,用户通过点击网页上的“超链接”(URL)来获取相关内容,内容通过TCP/IP链接传输并经过客户端浏览器解释呈现给用户。静态页面往往只能完成信息的发布和展示这些简单的功能,当用户需要一些互动甚至是内容的创作者的时候,静态页面就无法满足这种频繁的互动需求,在这个背景下动态网页的概念就应运而生了:通过在在网页中嵌入一些可以运行的小程序(比如Java, PHP, ASP, FLASH等),通过客户浏览器的插件技术来解释和运行这些小程序从而实现和用户灵活的交互。这些小程序用法灵活而且可以根据用户的角度进行定制化处理,使得网页设计的交互性得到极大的提高,使得WEB服务具备强大的双向交流模式:可以像传统软件一样进行各种计算处理,文件编辑,信息提交等。这些小程序既可以嵌入在html页面中,也可以以文件的形式单独存储在服务器的目录中,比如.php、.class、.jsp文件,既可以由浏览器解释执行,也可以由服务器运行。这样的功能性小程序的集合形成常用的工具包进行单独管理就构成了中间件服务器,它实际上是WEB服务器处理能力的扩展。

动态网页中属于动态数据的内容往往很多需要经常的更新,比如新闻滚动,状态更新甚至是互动游戏等,这些内容往往采用专业的数据库,采用程序和数据分离的方式进行管理。WEB服务往往都带有数据库服务器,当用户请求页面时,嵌入式插件进行小程序的解释执行,小程序根据利用sql数据库语言从数据库中读取并获得最新的数据,完成后按照html页面指定的方式生成一个完整的动态的页面呈现给用户。

除了应用数据的变化,用户的一些状态信息,属性信息也需要针对性记录。而WEB服务器是不对这些信息进行记录和存储的,为了这种定制化访问的需要,往往在客户端通过Cookie和服务器端的Session的机制进行定制化信息的记忆和存储,使得呈现给用户的访问界面更加友好和人性化。由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用Session的机制来标识具体的用户,Session具有唯一的标示,可以通过数据库,内存或者文件进行存储。而Cookie则是客户端为了方便用户或进行Session跟踪把一些用户信息包括用户名和口令等存储在客户端的硬盘临时文件中的一种机制。一般来说Session和Cookie会结合起来使用。

3 WEB安全和威胁

在上一节描述的WEB架构中,我们不难看出WEB的威胁主要来自于对于服务器端,客户浏览器,以及中间基于http协议的传输过程,WEB服务应用攻击四个部分。WEB服务器是WEB服务的必经之路,也是黑客和攻击者的首选目标,对于WEB服务器,入侵渠道主要有服务器系统漏洞和WEB服务应用漏洞这两类,其中服务器系统漏洞又分为服务器操作系统漏洞和服务器WEB服务漏洞:比如IIS或者Tomcat的系统性漏洞;黑客通过这种类别的漏洞入侵可以获得服务器的高级权限,从而实现对服务器的WEB服务的任意控制修改。

HTTP协议最初的目的是为了在浏览器和WEB服务器之间实现HTML文件的发送和接收,其传输的内容在网络上是完全透明的,这意味着我们只要拦截到了HTTP报文,我们就可以查看其中所有的数据。攻击者比较常用的方法是网络嗅探,从中分析出敏感数据甚至是用户密码。由于HTTP是一种无状态的连接协议,在传输客户端请求和服务器端响应过程中,并不对内容的完整性做检查,因此攻击者可以轻易发动中间人攻击,篡改数据甚至植入恶意代码。

WEB浏览器是整个网络环境中广泛应用的软件之一,针对各种操作系统都有各种各样的浏览器,但几乎所有的浏览器都存在这样或者那样的漏洞,也是黑客在进行攻击时最容易攻击的对象之一。比如微软的IE浏览器11每个月都有多达10个以上的漏洞需要修复。

WEB服务应用是基于WEB服务基础上的应用开发,由于开发过程简单,开发人员素质参差不齐,编程不规范,在代码安全和信息安全上往往缺乏必要的意识和测试手段,成为WEB应用中的重灾区,其中攻击手段通常包含如下几类:

3.1 跨站脚本攻击(XSS)

跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击;XSS攻击还可以进一步劃分为如下三种类型,类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。类型B,反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。类型C,存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。

3.2 跨站请求伪造攻击(CSRF)

跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接

3.3 SQL注入攻击(SQL Injection)

就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

4 WEB安全和防护

由于互联网的迅猛发展,针对于WEB应用服务架构的安全威胁与日俱增,社交媒体软件在丰富人们生活的同时也对WEB安全防护提出了更高的要求,为了达到更好安全性和可靠性,在进行WEB应用服务部署过程中建议采取的安全工作如下:

4.1 WEB应用环境安全评测

结合网站WEB服务部署的系统和WEB服务的平台软件,定期进行漏洞扫描,日志分析和补丁更新,确保WEB应用部署的操作系统和软件平台的健壮性和安全性;

4.2 WEB应用开发加固

通过安全扫描、人工检查、渗透测试、代码审计、架构分析等方法对应用代码以及中间件,数据库进行安全性测试和系统集成测试,规范代码开发规范,减弱或者消除由于Web应用本身的脆弱性及系统架构导致的安全问题。

4.3 WEB应用威胁监控

通过IPS(Intrusion Protection System)和WEB 防火墙设备,监测来自外部的访问数据和日志数据,对恶意访问进行报警和过滤:WEB防火墙设置基于语法分析的检测模式,提高防御SQL注入或XSS攻击。任何企图进行SQL注入或跨站脚本攻击的数据,不管形式如何变化,都必须满足SQL和HTML语法的规定。对常见注入点的数据经过解析其结果再做语法分析,如果满足语法规则则表示注入攻击有效。这种方式对注入攻击和XSS攻击的辨识率高,甚至能够防御未知SQL注入和XSS攻击形式。WEB防火墙设置目录访问控制功能,能够有效防范Web Shell和敏感信息泄露。对于网站可上传文件的目录,检查用户访问请求POST数据和URI中是否有动态可执行代码,以及请求文件的后缀名是否是已知的动态脚本后缀(例如.asp、.php、.js等等);对于包含数据库连接文件(通常包括数据库路径、用户名、口令等信息)的Web路径,杜绝关键目录的非授权访问,避免敏感信息泄漏。

除了以上通用的WEB防护手段,对于网站需要用户名和密码的部分,必须采用HTTPS进行加密传输,并且购买SSL认证证书确保网站的唯一性和安全性。HTTPS是最常见的HTTP安全版本,所有主要的商业浏览器和服务器上都提供HTTPS。HTTPS通过在TCP层与HTTP层之间增加了一个SSL(Secure Socket Later)来加强安全性,SSL是一个二进制协议,与HTTP不同,其流量是承载在443端口(http是80)上的。HTTPS增强的安全性表现在其双向的身份认证确保身份都是真实可靠的,其数据传输的机密性提高,数据完整性检验更严格,数据报被重放攻击的可能性降低。该协议允许客户∕服务器应用程序在通信时,还能够阻止窃听、报文伪造等安全攻击。

5 结论

由于互联网WEB服务的盛行,针对网站的攻击和威胁与日俱增,本文通过对WEB架构的分析认为安全威胁存在于WEB应用开发,WEB应用服务器,WEB浏览器和HTTP传输等四大环节中,需要采用WEB环境安全评测,WEB应用开发加固,WEB应用威胁监控等手段对网站进行全面的安全监测,采取Https协议保护网站的用户信息从而提升整体WEB服务的安全性。

作者简介

黄定华(1977-),男,湖南省邵阳市人。硕士学位。现供职于中兴通讯就职,研究方向为公共安全。

徐志伟(1974-),男,广东珠海市人。学士学位。现为珠海市垃圾发电厂自控工程师。研究方向为自动控制。

作者单位

1.中兴通讯 广东省深圳市 518004

2.珠海市垃圾发电厂 广东省珠海市 518004