SAPI与网络服务器安全研究
Research of the Web Server Security Based on ISAPI Filter田东风,秦江波
(中国地质大学(北京) 信息工程学院 北京 100083)
摘要:本文探讨了一种基于IIS服务器的ISAPI过滤器技术,通过过滤器进行服务器数据转发,从而隐藏了后台服务器,使之更加安全.
关键词:ISAPI过滤器 B/S结构模式 Web服务器
1. B/S模式的三层体系结构
目前基于WWW服务的应用越来越多,这些应用系统的结构也由C/S模式发展为B/S模式.我们首先简要分析一下B/S模式的三层体系结构.
B/S 模式就是采用浏览器/服务器结构的网络计算模式,用户使用浏览器向服务器发起请求,服务器接到请求后处理用户的请求然后将处理结果返回给浏览器.在浏览器与服务器的传输过程中采用了HTTP协议.而三层体系结构,就是数据显示层,数据逻辑处理层,数据存储层.数据显示层采用一定的方式将用户需要的数据内容以某种形式表达给用户,让用户理解数据的内容和意思.数据逻辑处理层对显示层交互的数据进行逻辑处理与控制.数据存储层负责存储用户的数据信息,以便与用户交互.
在Windows环境下,该三层体系结构将B/S模式系统的不同组件分成三"层":
客户端层 — Web 浏览器在其上显示 Web 页面的本地计算机.Web 页面可以显示并处理来自远程数据源的数据,或者(在不基于 Web 的应用程序中)是单独编译的前端应用程序.
中间层 — 封装组织业务规则的组件的 Microsoft Windows NT Server 主机.中间层组件可以是在 Internet Information Server(IIS) 上执行的 Active Server Pages 脚本,或者是(在不基于 Web 的应用程序中)编译的可执行文件.
数据源层 — 宿主数据库管理系统 (DBMS) 计算机.如 Microsoft SQL Server 数据库.(注意:在C/S两层的应用系统中,中间层与数据源层是组合在一起的.)
需要指出的是,这些层没有必要对应于网络上的物理地点.例如,所有三层可能只存在于两台计算机上,一台计算机可能是 Microsoft Windows 95 计算机,该计算机将 Microsoft Internet Explorer 4.0 作为它的浏览器来运行,第二台计算机可能是运行 Internet Information Server 和 Microsoft SQL Server 的 Windows NT Server 计算机.
总之,B/S模式是把所有的开发与计算工作转移到了服务器端,客户端是支持解析HTML的浏览器.这样,不但系统升级维护容易,且应用系统在网络上分配进程和数据时有更大的灵活性,使系统获得更好的性能.但基于B/S的开发模式也存在安全上的隐患,这就要求我们采用有效的方法和措施消除安全隐患.
2.B/S模式存在的安全问题
B/S模式虽然以其简单灵活实用的特性迅速普及,但其本身也存在一些缺陷漏洞.我们通过对B/S模式进行系统分析发现,三层体系结构下的B/S模式,在其中两层存在安全隐患问题,这两层分别是中间层和数据源层.
在Windows NT环境下,中间层是由IIS提供的.IIS可以提供基于WWW的服务,同时可以执行的 Active Server Pages 脚本满足用户动态内容的交互.由于这一层是处于服务器端的,就很可能造成安全漏洞问题.目前IIS出现过以下典型的安全漏洞.
存在一种被称为"非法HTR请求"的缺陷.此缺陷在特定情况下会导致任意代码都可以在服务器端运行.IIS支持多种需要服务器端处理的文件类型,譬如:ASP,ASA, IDC,HTR,当一个WEB用户从客户端请求此类文件时,相应的DLL文件将自动对其进行处理.然而在ISM.DLL这个负责处理HTR文件的文件中被发现存在严重的安全漏洞.
通过构造特殊字符,可以查看ASP源代码.iis2, iis3, iis4 的一个广为人知的漏洞就是 ::$DATA,通过它使用 ie 的 view source 或 netscape 直接访问该 asp 文件就能轻而易举地看到 asp 代码.
数据源层一般由MS SQL Server数据库或Oracle数据库来负责数据的存储工作.在这一层也同样存在很多的漏洞.比较常见的是SQL Server的1433端口远程连接安全漏洞.黑客一旦知道了数据库用户的口令或者系统用户的口令,就可以通过远程连接来存取远程的数据库数据.
鉴于这两层上的安全问题都属于系统上的漏洞问题,一般的方法都是打补丁,但这不是一个明智的好办法.除了打安全补丁,进行安全配置之外,我们还应该制定有效的安全策略和安全措施并加以实施.由于最重要的资源应该处于数据源层,所以我们应该重点保护好数据源层的数据,下面我们提出了基于ISAPI过滤器实现数据库服务器安全的策略和措施,经实际检验可以有效的保护好数据源层的数据.
3.ISAPI过滤器安全技术提出与实现
本文提出的策略是:使用两台服务器来实现隐藏后台服务器(数据层上的服务器);通过公开网站服务器来访问数据层上的服务器,在数据层上的服务器上限制只能让网站服务器来访问. 而在网站服务器上使用ISAPI过滤器实现透明数据转发,将用户在公开的网站服务器上的请求转发到数据层上的服务器上而不是进行简单的重定向,这样可以保证难以跟踪到数据层上的服务器.对用户来说,用户访问的是公开的网站服务器,而实际上公开的网站服务器是一个虚拟的网站,实际上根本不存在任何页面内容. 而后台服务器才是真正的网站服务者.这后台服务器上面配置中间层和数据源层,并限制访问IP,起到了与外界隔离的作用,在一定程度上保护了数据库服务器, 增强了安全性,同时也进行了负载均衡.


