随着社交网络、微博、电子商务等各类Web应用的快速发展,针对众多Web业务平台的网络攻击频繁发生,Web安全问题开始引起大家的普遍关注。由于Web应用程序的访问只需要通过客户端浏览器就可以完成,**这就形成了一种新型的B/S(Browser/Server,浏览器/服务器)结构,它在继承了传统C/S(Client/Server,客户机/服务器)结构应用优势的基础上,根据Web应用需求进行了功能扩展和结构优化。同样的,各类网络攻击行为也随着体系结构和工作模式的变化而变化,新的应用环境不仅要解决传统网络中存在的安全问题,同时还要应对针对新应用而出现的新型攻击行为。考虑到浏览器/服务器结构的结构特点,本章重点介绍Web服务器的攻防,有关Web浏览器的攻防将在下一章单独介绍。
体系结构是用于定义一个系统的结构及系统成员间相互关系的一套规划。从互联网应用发展来看,从早期的终端/主机模式,到后来的共享数据模式,再到C/S模式,发展到目前以B/S模式为主,在电子商务等应用中使用的三层或多层模式,基于互联网应用的结构发生着巨大的变化。
C/S结构的实现方法
面向终端的网络以大型机为核心,而C/S结构打破了大型机在网络中所处的核心位置,通过充分发挥个人计算机(PC)、大型数据库系统和专业服务器操作系统(Unix/Linux、NetWare和Windows NT)的功能,实现了真正意义上的分布式计算模式。C/S结构是指将事务处理分开进行的网络系统。
C/S的工作模式采用两层结构:
第一层这客户机系统上有机融合了表示与业务逻辑;
第二层通过网络结合了数据库服务器。
更具体地讲,C/S结构将与用户交互的图形用户界面(Graphical User Interface,GUI)和业务应用处理与数据库访问与处理相分离,服务器与客户机之间通过消息传递机制进行对话,由客户机向服务器发出请求,服务器在进行相应的处理后经传递机制向客机返回应答。
大多数情况下,C/S结构是以数据库应用为主,即业务数据库(如Oracle、MS SQL、MySQL等)运行在服务器端,**而数据库应用程序运行在客户端。
基于这一特定的应用环境,C/S结构存在如下的优缺点:
C/S结构的主要优点:
交互性强。在C/S结构中,客户端运行有一套完整的应用程序,大量的业务应用一般在客户端完成,只有在进行数据调用和写入时才与服务器进行交互;
具有较强的数据操纵与事务处理能力。C/S结构通过将任务合理分配到客户和服务器端,降低了系统对网络带宽的占用,并可以充分利用客户机和服务器的硬件资源;
可有效保护数据的安全性。每一个用户与服务器之间采用点对点通信模式,可采用安全性较高的通信协议或加密方式,以保护数据的安全性。
C/S结构的主要缺点:
可扩展性较差。当因系统功能扩展等原因需要升级系统软件时,同时涉及到服务器端和客户端,而且还会造成业务的中断,系统的升级和维护都较复杂,可扩展性较差;
应用规模受限。随着网络规模不断扩大,应用程序的复杂度越来越高,客户端与后台数据库之间需要频繁的交换数据,服务器容易成为应用的瓶颈。
目前,C/S结构一般用于用户群相对固定、对数据安全要求相对较高的企业内部业务系统。
B/S结构的实现方法
基于B/S结构的应用系统由**前端的浏览器(Browser)和后端的服务器(Server)组成,**数据和应用程序都存放在服务器上,浏览器是一种通用的客户端软件,结合多种脚本语言(如VB Script、Java Script等)和Active X等技术,实现了原来需要复杂的专用软件才能实现的功能。
B/S的三层体系结构:
表示层:为浏览器,仅承担网页(page)信息的浏览功能,以HTML实现信息的浏览和输入,一般不具备业务处理能力;
业务逻辑层:由服务器承担业务处理逻辑和页面的存储管理,接收客户浏览器的任务请求,并根据请求类型执行相应的事务处理程序;
数据层:由数据库服务器承担数据处理逻辑,其任务是接收服务器对数据库服务器提出的数据操作请求,由数据库服务器完成数据的查询、修改、统计、更新等工作,并将数据处理结果提交给服务器。
B/S结构的主要优点:
统一了客户端应用软件 B/S客户端只需要安装统一的浏览器软件,避免了C/S结构中安装功能各异的各类数据库客户端软件和应用软件带来的管理和维护上的困难。
易于部署和维护。由于客户端不需要安装专用软件,应用系统的升级只需要考虑服务器端,用户在连接到服务器时只需要下载更新就可以实现升级,大大降低了总体拥有成本(total cost of ownership,TCO)。
可扩展性好。B/S结构中,Web浏览器和由Web站点(Web服务器、Web应用程序以及数据库所构成)之间的通信采用了标准的HTTP/HTTPS协议,具有良好的可扩展性。
信息共享度高。HTML是一个开放的标准和规范,它通过标记符号来标记要显示的网页中的各个部分,网页文件通过在文本文件中添加标记符来告诉浏览器如何显示其中的内容,浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容。这种模式提供了更加丰富的显示内容和便捷的信息交互方式。
**安全隐患较大。**根据软件任务的不同,有些应用在用户首次访问时需要通过安装“插件”来实现,这为计算机病毒、木马等恶意代码的入侵提供了便利条件。另外,在应用系统没有升级到HTTPS协议的情况下,HTTP协议在传输敏感信息时存在安全隐患。
C/S结构虽然不是目前互联网应用中的主流结构,但 ** 是B/S结构的基础 ** 一些在B/S结构中存在的攻击行为也源自于C/S结构。为此,本节对C/S结构进行必要的介绍。
由于Web应用的安全同时涉及到客户端、服务器端和网络各个环节,每一个环节又涉及到具体的细节,因此,Web应用安全是一个同时涉及计算机网络、操作系统、应用程序、数据库等方面的复杂的安全系统。本章重点讨论Web服务器的安全,主要包括Web数据安全、Web应用程序安全、Web服务器软件安全和服务器操作系统安全等,并结合具体应用介绍相应的安全防范方法。
针对Web服务器的信息收集
针对Web服务器的攻击,可收集的信息主要包括以下几类:
地址信息。包括:服务器的IP地址,DNS域名,打开的端口号以及对应的服务进程等。
系统信息。包括:操作系统类型及版本,Web服务器软件类型及版本,Web应用程序及版本,Web应用程序的开发工具及版本,Web应用程序架构(是静态HTML页面,还是PHP、APS、JSP动态页面等),数据库管理系统的类型及版本等。
账户信息。包括:操作系统的登录账户,数据库管理系统的账户,应用系统的管理账户等。
配置信息。包括:网络拓扑结构,地址映射表(当Web服务器位于内部局域网中使用私有IP地址时),服务配置信息,共享资源,防火墙类型及配置信息,身份认证与访问控制方式,加密及密码管理机制等。
其他信息。包括:安全漏洞(软件漏洞和管理漏洞),DNS注册信息,网络管理员联系方式等。
(1)Web信息收集
Web信息收集是利用Web搜索引擎提供的功能,对被攻击目标(组织或个人)的公开信息进行收集并发现为进一步实施攻击有用的信息。对于攻击者来说,从互联网的海量信息中搜集与攻击目标有关的信息,是一种最为直接的网络踩点方法,强大的Web搜索引擎可以帮助攻击者实现这一目的。
常规信息收集技术:
目前Google、Baidu、Yahoo、Bing等搜索引擎都提供了相应的信息搜索功能,综合运用这些功能可以帮助攻击者获得所需要的网上信息。
案例:利用搜索引擎的基本搜索功能,攻击者可以方便地找到被攻击组织的Web主页或个人的博客等信息,这些页面中一般会向攻击者提供大量的有用信息,为进一步挖掘相关信息提供帮助。
元搜索引擎:
“元搜索引擎”又称为集合型搜索引擎,是指将多个单一搜索引擎集成在一起,提供统一的检索接口,将用户的检索提问同时提交给多个独立的搜索引擎,并进一步对多个独立搜索引擎的检索结果进行处理(包括去重、排序等),最后将处理结果提交给攻击者。其目的是解决不同搜索引擎都存在搜索功能、范围和效果上的差异性,综合利用不同搜索引擎的优势进行信息的搜集。