APP下载

基于ISAPI Filter的IIS防火墙设计与开发

2016-12-23王秀英

信息安全与通信保密 2016年8期
关键词:配置文件IP地址日志

王秀英

基于ISAPI Filter的IIS防火墙设计与开发

王秀英

(天津中德应用技术大学,天津300350)

SQL注入式攻击是目前互联网常见的攻击方式之一,它利用Web应用程序的缺陷实现对应用程序、数据、服务器等的攻击。该IIS防火墙软件与Web服务器IIS紧密结合,通过过滤和记录客户端与Web服务器之间的数据来保护Web服务器的安全。介绍了该防火墙软件的功能,重点介绍了该防火墙软件的实现方法,包括工作流程和核心函数的实现,最后介绍了该防火墙软件的安装及使用方法。通过测试,该防火墙软件可以实现SQL注入检测、过滤IP地址、防止数据库文件下载功能,并能够在日志中记录攻击行为。

ISAPI Filter;IIS;防火墙;SQL注入;核心函数

0 引言

当今世界,网络技术与信息技术高速发展。B/S模式应用系统具有界面统一、使用简单、共享度高等优点,被越来越多的开发者所采用。由于B/S应用于互联网环境中,对安全的控制能力较弱,很多Web应用程序的代码并没有对客户端的页面中所携带的信息以及客户端的输入数据进行必要的合法性判断。攻击者利用这个机会可以获得一些系统信息,通过对这些信息的分析利用,可以进一步对数据库,甚至服务器进行攻击,从而造成严重的安全问题。

1 软件设计

该防火墙软件与Web服务器IIS(Internet Information Serv-ices,互联网信息服务)紧密结合,属于系统软件的一部分。防火墙软件对用户透明,在通过过滤和记录客户端与Web服务器之间的数据来保护Web服务器的安全。

1.1ISAPI简介

ISAPI(Internet Server Application Programming Interface,互联网服务应用程序编程接口)是由Microsoft和Process软件公司联合提出的Web服务器上的API标准[1]。ISAPI可以和Web服务器紧密结合起来,增强Web服务器的功能。

ISAPI Filter是一种筛选器,在服务器和客户端之间,可以对服务器和客户端之间的通信进行处理,比如对数据进行加密和解密、对客户进行身份验证、记录日志等。基于ISAPI Filter技术的程序是以动态链接库的形式参与Web服务器运行的,客户端发送到Web服务器的信息以及Web服务器返回客户端的信息都会先通过ISAPI Filter的过滤和处理,从而保护Web服务器。

基于ISAPI Filter技术开发的注入攻击防御系统能够在不修改原网站的情况下,实现对SQL注入攻击的防范,便于系统管理员部署使用。

1.2软件功能设计

本防火墙软件的设计目标是能够实现在Windows环境下通用的、便于管理员配置和管理的网站安全防御系统。本防火墙软件在设计时不仅考虑了防SQL注入攻击,同时还实现了防数据库文件下载、权限配置、写日志功能,如图1所示。

图1 基于ISAPI Filter的IIS防火墙

(1)SQL注入检测功能

本防火墙软件采用了过滤的方法以达到防御SQL注入攻击的目的。设计方式是当发现客户端提交的请求消息中有指定的特殊字符串时,直接与客户端浏览器中断会话,阻止客户端将数据提交给服务器Web程序,从而达到防范攻击的作用。为避免误判,当SQL注入

小于三个时允许继续向下执行。

Web服务器管理员可以使用系统提供的默认过滤字符串,如图2所示,也可以通过修改配置文件的方式自定义需要过滤的字符串。

图2 配置文件中需要过滤的字符串

(2)IP访问过滤

当Web服务器管理员发现来自某个IP的主机存在攻击行为或存在其他不安全隐患时,可以设置禁止来自该IP地址的主机访问网站。另外,Web服务器管理员也可以设置更为严格的访问控制,即只允许指定IP地址的主机访问网站。当客户端访问网站时,对比客户端的主机IP地址是否在配置文件里的允许访问的IP地址列表里,如果是,则进行下一步检查。如果不是,或者是配置文件中指定的禁止访问网站的IP地址,则断开与客户端的连接并记录日志,内容包括客户端的IP地址、访问时间及访问的网页地址。系统管理员通过阅读日志可以找到安全隐患,并进一步对存在攻击行为的IP地址进行追踪。

(3)防止数据库文件被下载

当应用程序的数据库以文件形式运行时,容易被客户端下载到本地,通过对数据库的分析,攻击者可以得到信息不仅包括用户数据,还有可能包括管理网站,甚至管理服务器的权限。本防火墙软件具有防止客户端下载.mdb数据库文件的功能,同时具有防止%5C暴库能力,使客户端不能获得数据库的存放位置[2]。

(4)日志记录

本防火墙软件为了方便管理员对网站的安全性进行管理,提供了记录日志的功能。该防火墙软件可以将拦截的网站注入攻击、数据库下载访问记载到自定义的日志文件中。在该日志里可以记录攻击者访问的时间,攻击者的IP地址和被攻击的网站页面的地址等信息。

2 软件实现

基于ISAPI Filter技术的SQL注入式攻击防御系统是一个动态链接库文件(DLL文件),IIS启动时会自动加载该文件,并在有HTTP请求到达时自动检测HTTP请求的安全性[3]。

2.1工作流程

(1)当该防御系统启动后,首先读取配置文件setting.ini文件里的SQL过滤信息、特殊符号和IP访问权限设置。如果读取失败,则初始化SQL过滤

和特殊符号为代码里指定的内容。

(2)当IIS接到用户端的HTTP请求时,调用ISAPI Filter,为变量设置初始值:ret=SF_STATUS_REQ_NEXT_NOTIFICATIO。

(3)检测用户IP,判断其是否具有访问网站的权限,如果具有访问网站的权限则执行后续判断;如果不具有访问网站的权限则断开与用户的连接,向其发送自定义错误信息,记录日志。设置ret=SF_STATUS_REQ_FINISHED。

(4)检测用户提交的数据里是否有SQL注入或特殊符号,为避免误判,当SQL注入

小于三个时则继续向下执行。否则,断开与用户端的连接,向其发送自定义错误信息,记录日志,设置ret=SF_STATUS_REQ_FINISHED。

(5)判断客户是否存在暴库或下载数据库文件的行为,若不存在,则继续向下执行,否则,断开与用户端的连接,向其发送自定义错误信息,记录日志,设置ret=SF_STATUS_REQ_FINISHED。

(6)如果ret=SF_STATUS_REQ_FINISHED,则访问失败;如果ret=SF_STATUS_REQ_NEXT_NOTIFICATIO,则响应后面的通知事件。

工作流程如图3所示。

图3 工作流程

2.2关键函数

(1)函数CFunction():函数功能是读取系统配置文件Setting.ini中包含的SQL过滤关键字以及特定IP的访问权。该函数主要代码为:

(3)函数IsBaoKu():该函数的功能是检测是否存在下载数据库和%5c暴库行为,如下所示。

(4)函数WriteLog():该函数的功能是写日志,如下所示。

3 软件安装与测试

该软件产品的形式包括动态链接库文件FireWall.dll和配置文件Setting.ini。在网站中加载动态链接库,如图4所示。

图4 IIS防火墙安装

另外需要设置网站允许CGI扩展和ISAPI扩展。由于此防火墙软件具有写日志的功能,所以需要为日志所在目录设置“写”权限。该防火墙软件通过配置文件来记录需要过滤的字符串以及允许或禁止访问的IP地址信息。

通过测试,该防火墙软件能够实现防SQL注入功能、防数据库文件被下载及暴库功能,能够拦截非法IP地址对网站的访问。在客户端发生上述攻击行为时能够向客户端发出警告信息,断开与客户端的连接,并记录日志,日志如图5所示。

图5 日志中记录的客户端攻击行为

4 结语

ISAPI是Web服务器IIS的标准应用程序编程接口,是Web服务器IIS的重要扩展功能模块,利用它可以为Web服务器开发更加安全、高效、灵活的程序,因此可用来研究SQL注入式攻击防御的问题[4]。该防火墙软件能够在系统层实现对Web服务器的保护,减小由于应用程序缺陷造成的对Web服务器的安全威胁。随着网络技术的发展,ISAPI Filter技术也将日趋成熟,基于该技术的防御系统功能也将更加完善,网站安全性能将得到更进一步的提高。

[1] 尹宏飞.SQL注入攻击及防御技术的研究[J].智能计算机与应用,2013(1):70-71.

[2] 吕浩勇,王仕杰,张朝阳.用ISAPI Filter建立IIS“防火墙”[J].中国教育信息化,2009(03):52-53.

[3] 段国云,陈浩,黄文等.一种Web程序防篡改系统的设计与实现[J].计算机工程,2014(40):150-153.

[4] 张鑫,张婷,段新东等.基于ISAPI的Web安全防护设计与应用[J].软件导刊,2014(8):134-136.

Design and Development of IIS Firewall based on ISAPI Filter

WANG Xiu-ying
(Tianjin Sino-German University of Applied Sciences,Tianjin 300350,China)

SQL injection attack,as one of the common attacks against the Internet,makes use of the defects of Web application and implements the attacks on the application,data,server and so on.The IIS firewall software,in combination with the Web server IIS,and via filtering and recording the data of between the client and the Web server,protects the security of Web server.The functions of this firewall software are described,with focus on the implementation method of the firewall software,including realization of the workflow and core functions.Finally,the installation and use of this firewall software is discussed.Experiment indicates that this firewall software can realize SQL injection detection,filter IP address,prevent database file download,and record the attack behaviors in the log.

ISAPI filter;IIS;firewall;SQL injection;core function

TP309

A

1009-8054(2016)08-0101-04

∗2016-02-15

王秀英(1976—),女,副教授,主要研究方向为信息安全。■

猜你喜欢

配置文件IP地址日志
一名老党员的工作日志
从Windows 10中删除所有网络配置文件
扶贫日志
用软件处理Windows沙盒配置文件
铁路远动系统几种组网方式IP地址的申请和设置
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
雅皮的心情日志
游学日志
公安网络中IP地址智能管理的研究与思考