王秀英
基于ISAPI Filter的IIS防火墻設計與開發
王秀英
(天津中德應用技術大學,天津300350)
SQL注入式攻擊是目前互聯網常見的攻擊方式之一,它利用Web應用程序的缺陷實現對應用程序、數據、服務器等的攻擊。該IIS防火墻軟件與Web服務器IIS緊密結合,通過過濾和記錄客戶端與Web服務器之間的數據來保護Web服務器的安全。介紹了該防火墻軟件的功能,重點介紹了該防火墻軟件的實現方法,包括工作流程和核心函數的實現,最后介紹了該防火墻軟件的安裝及使用方法。通過測試,該防火墻軟件可以實現SQL注入檢測、過濾IP地址、防止數據庫文件下載功能,并能夠在日志中記錄攻擊行為。
ISAPI Filter;IIS;防火墻;SQL注入;核心函數
當今世界,網絡技術與信息技術高速發展。B/S模式應用系統具有界面統一、使用簡單、共享度高等優點,被越來越多的開發者所采用。由于B/S應用于互聯網環境中,對安全的控制能力較弱,很多Web應用程序的代碼并沒有對客戶端的頁面中所攜帶的信息以及客戶端的輸入數據進行必要的合法性判斷。攻擊者利用這個機會可以獲得一些系統信息,通過對這些信息的分析利用,可以進一步對數據庫,甚至服務器進行攻擊,從而造成嚴重的安全問題。
該防火墻軟件與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地址和被攻擊的網站頁面的地址等信息。
基于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():該函數的功能是寫日志,如下所示。

該軟件產品的形式包括動態鏈接庫文件FireWall.dll和配置文件Setting.ini。在網站中加載動態鏈接庫,如圖4所示。

圖4 IIS防火墻安裝
另外需要設置網站允許CGI擴展和ISAPI擴展。由于此防火墻軟件具有寫日志的功能,所以需要為日志所在目錄設置“寫”權限。該防火墻軟件通過配置文件來記錄需要過濾的字符串以及允許或禁止訪問的IP地址信息。
通過測試,該防火墻軟件能夠實現防SQL注入功能、防數據庫文件被下載及暴庫功能,能夠攔截非法IP地址對網站的訪問。在客戶端發生上述攻擊行為時能夠向客戶端發出警告信息,斷開與客戶端的連接,并記錄日志,日志如圖5所示。

圖5 日志中記錄的客戶端攻擊行為
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—),女,副教授,主要研究方向為信息安全。■