摘  要

Web服务器往往得不到传统防御方式的有效保护,使其成为整个网络环境中安全最薄弱的地方。缓冲区溢出、SQL注入、基于脚本的DDos、盗链和跨站等攻击行为对Web服务器的安全和稳定造成极大的威胁,而目前缺少有效的防御和保护的方式。本课题中首先调研了当前Web服务器所面对的威胁,然后针对这些安全威胁设计了一套入侵防御系统,并通过ISAPI实现了对Windows平台下的IIS服务器的保护。在这套入侵防御系统中,可以通过制定策略来检测所有访问Web服务器的行为,可以有效地阻止恶意攻击从而保护Web服务器的安全。这套入侵防御系统的策略引擎可以加载和调用Lua语言编写的策略脚本,使策略脚本的编写更加简单。

关键词: 入侵防御;网络安全;ISAPI;Lua

Design and Implementation of Web Intrusion Prevention System

Abstract

Web server can not often get the effective protection of traditional defense mechanism, makes it become the weakest area in the whole network. The attacks, such as Buffer overflow, SQL injection, DDos based on script, Resource steal and Cross-site, cause the great threat to the security and stability of Web server, and lack effective defense and protection way at present. This paper introduces the different attack ways to a Web server at first, then designs an intrusion prevention system for the Web server and implements the protection of IIS server under Windows platform through ISAPI. The intrusion prevention system can measure the behaviors of all visiting Web servers through the strategies and protect the Web Server against the malicious attacks. The security strategies engine of the system can load and transfer the strategy scripts written in Lua language, It make strategy scripts writing more simpler. [设计论文网 https://doc163.com]

Key words: Intrusions prevention; network security; ISAPI; Lua

Web的入侵防御系统的设计

由于系统要对客户端发送的Http报文进行分析,这需要对Http报文进行解析,Http报文解析的方式主要有两种:

(1)自解析:系统对原始数据报文自行解析;

(2)由Web服务器进行解析,需要时系统通过Web服务器提供的接口查询。

方式(1)可以提供比方式(2)更好的移植性,但这种报文解析的方式需要一种截获下层原始报文的能力,这可以通过截获传输层或网际层报文的实现,由于我们将这套系统定位于仅针对Web访问的入侵防御,我们对Http协议外的报文并不关心,所以我们选择方式(2)作为我们的Http报文解析方案,即通过Web服务器提供的接口仅仅截获应用层的Http报文。

要对客户端发起的请求进行完全的监控光靠检测客户端的行为是不够的,因为这样我们只知道客户端发起什么样的请求但无法知道服务器端是如何对客户端进行响应的。一次完整的Http会话既然包括客户端发送请求和服务器端对请求的响应,那么只有监控服务器端响应的内容后,才能知道这次Http会话何时结束。如果Web服务器提供Http报文封装的接口,则在对客户端进行响应时我们也尽量调用Web服务器的这些接口而不是自己组装Http报文。

这样,这套入侵防御系统的核心便是其策略引擎, 通过强大而灵活的策略引擎来实现特征检测或者异常检测。下面将介绍这个Web的入侵防御系统的具体体系结构和处理流程。 [毕业设计论文网 Doc163.com]

3.1 体系结构

通常一个系统会采用多层或者单层的体系结构。多层的结构将不同功能的模块进行了划分,层与层之间靠定义好的接口进行通信,单层的结构将模块都紧耦合在一起,模块与模块间有交叉调用。多层的结构比单层的结构具有良好的扩展性,而单层结构可以模块间的交互更加高效。为了能使系统适合不同的Web服务器平台,综合以上的因素考虑后,本系统采用分层的体系结构。图1为本系统的体系结构图。

如图1所示,这个Web的入侵防御系统主要分层了以下三层:

(1) 解析及响应层

这一层为整个防御系统提供对客户端发送的Http报文请求的解析及服务器响应时Http报文封装的接口。当有客户端访问服务器时,通知策略引擎调度策略检测客户端的访问信息,并为策略引擎提供响应的实现。按照前面的分析,这一层是由服务器提供的接口封装实现。

(2) 策略引擎

这一层的作用是策略的调度,在策略中通过“解析及响应”层提供的接口获取客户端的信息,具体的响应也交给“解析及响应”层完成。同时策略引擎还需要调度数据管理层完成策略的加载,以及日志记录的功能。

(3) 数据管理

这一层提供日志记录、配置管理及策略脚本解析的功能。所以对数据进行处理的过程都是在这一层里完成。 [毕业设计论文网 https://www.doc163.com]

每一层都完成相对独立的功能,当某一层的实现发生变化时,只要提供的接口没有变化,对其他几层就没有影响。这样整个结构就有很大的扩展性,例如:我们可以把解析和响应层的具体实现是由调用Web服务器自身接口的方式替换为直接截获传输层网络层封包的方式等等。下面将介绍具体的处理流程。

3.2 处理流程

Web IPS的处理流程如图2所示,具体流程如下:当客户端发送Http请求时,原始的数据报文经Http报文解析模块解析,报文解析模块会通知策略引擎模块对客户端的信息进行检测,策略引擎会依据策略脚本中编写的策略,通知Http响应模块对客户端的行为做出响应,并依据策略脚本中的策略,通知日志记录模块记录相应的日志。

依据Web IPS系统的体系结构及处理流程,系统主要模块和作用如下:

(1) IPS管理模块

负责管理和连接各个模块,管理数据流,读取配置文件后完成整个系统的初始化,对整个系统的状态进行管理:运行,停止,重新加载。当Http报文解析模块通知有客户端的访问时,调用策略引擎对客户端的行为及信息进行检测,对策略引擎返回的结果通知Http响应模块进行响应。

(2) 配置文件模块

主要完成配置文件的读取及保存。提供统一的接口,具体实现可以根据需要而作修改。 [毕业设计论文网 https://www.doc163.com]

(3) Http报文的解析模块

利用Web服务器提供的接口,对客户端访问Web服务器时提交的原始数据进行解析,并通知IPS管理模块收到客户端的访问请求,请求策略引擎检测客户端的访问行为。

Http报文的解析模块中会为每一个客户端生成一个实现了能检测客户端相关信息的接口的对象。在一般的Web脚本(例如:ASP、asp.NET、PHP等等)中也会有这样一种获取客户端信息的接口。

(4) Http响应模块

当需要对客户端的行为进行响应时,在这一模块中对数据报文进行组装。提供以下几种响应方式:调用下一条策略、接受请求、断开链接、发送信息、发送文件和重定向。除了“调用下一条策略”需要策略引擎继续调用其他策略外,其他的响应结束后都表示客户端的一次请求过程的结束,策略引擎将不会继续调用策略链上的其它策略。 本文来自毕业设计网: www.papersay.com

(5) 策略引擎模块

首先策略引擎对策略脚本进行解析,根据策略的属性和优先级组装策略链。当IPS管理模块通知策略引擎对某一个客户端的信息进行检测时,策略引擎利用Http报文解析模块提供的接口获取所需的客户端得信息,分析客户端得行为,通过依次调度策略来控制客户端的访问。在策略中,可以检测客户端请求的各个字段,并对客户端的行为进行分析或记录,通过定义好的规则对客户端不同的行为进行响应。当一个策略中没有对客户端的行为做出响应时,策略引擎调用策略链中的下一条,直到全部调用完。如果有策略返回响应,则通知Http响应模块完成客户端的响应,并停止调动策略链后面的策略。如果没有任何策略对客户端的行为做出响应,策略引擎则返回接受请求的响应。策略引擎需要封装Http报文的解析和响应模块,及日志记录模块,供策略中调用。

[毕业设计论文网 https://www.doc163.com]

(6) 日志模块

日志模块的作用是对系统运行时产生的日志或对入侵防御行为的进行记录。使用统一的格式将日志信息记录在文本文件中。由于系统采用分层的体系结构,所以这一模块可以方便的替换成其他格式的日志记录方式。

目  录

1 引言 1

2 Web服务器所受的威胁及防御 1

2.1 缓冲区溢出 1

2.2 SQL注入攻击 1

2.3 基于脚本的DDos攻击 2

2.4 其他的不安全因素 3

3 Web的入侵防御系统的设计 4

3.1 体系结构 4

3.2 处理流程 5

3.3 对客户端访问的响应 7

3.4 策略引擎的设计 8

3.4.1 策略的属性 8

3.4.2 策略的加载 9

3.4.3 策略的调度 10

3.4.4 策略的接口 10

4 Web的入侵防御系统的实现 11

4.1 基于ISAPI 的解析及响应模块的实现 11

(毕业设计 )

4.1.1 使用ISAPI Filter获取Http报文信息 11

4.1.2 使用ISAPI进行Http响应 13

4.1.3 在服务器上的安装配置ISAPI Filter 14

4.2 基于Lua的策略实现 15

[毕业设计网 https://Doc163.com]

4.2.1 对策略的封装 15

4.2.2 Lua策略脚本示例 15

4.3 基于xml的策略管理 16

5 系统运行过程及测试 16

结    论 18

参考文献 18

致  谢 19

声  明 20

参考文献

[1] Michael Howard, David LeBlanc.程永敬等译.编写安全的代码[M].机械工业出版社,  2002

[2] coolswallow. SQL盲注攻击技术综述[Z].

[3] Marcus Goncalves.孔秋林等译.防火墙技术指南[M].机械工业出版社,2002

[4] 田东风, 秦江. ISAPI与网络服务器安全研究[J]. 微计算机信息,2004,(8):107-108

[5] 朱玉山,王晓冬.ISAPI 开发指南[M].北京:清华大学出版社,1998

[6] 邓际锋.一颗璀璨的月光宝石-Lua[J].程序员, 2006,(6):66-68.

[7] Programming in Lua [M].http://www.papersay.com, 2003

[8] 云风.我的编程感悟[M].电子工业出版社,2005 [毕业设计网 https://Doc163.com]

web服务器攻击与防御系统设计,网络安全-Web的入侵防御系统的设计与实现相关推荐

  1. web服务器攻击的八种方式

    随着互联网的高速发展,网络走进了千家万户,同时也有很大一部分人架设起了自己的网站.继而不安分的黑客们,又将目光对准了服务器攻击这个方式,从而破坏或取得服务器的管理权限.本文将主要讲述针对web服务器攻 ...

  2. 向web服务器传文件,c++实现向web服务器上传文件

    [实例简介] vs2013 c++实现上传的客户端,服务端为java写的web工程,模拟post方法,可以上传大文件 [实例截图] [核心代码] c向web服务器上传文件 └── c++ 向web服务 ...

  3. 无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误

    使用Visual Studio 2005(Visual Studio 2008亦存在此问题)调试设置了主机头的网站时出现如下错误信息: --------- Microsoft Visual Studi ...

  4. web服务器可以上传信息吗,Web服务器的架设上传.doc

    Web服务器的架设上传.doc 简单Web服务器的架设 什么是web服务器 Web服务器其实就是一台提供网页解析服务的计算机上的一个软件程序.WEB服务器也称为WWW(WORLD WIDE WEB)服 ...

  5. boa服务器实现温湿度显示,SMT车间温湿度分布式远程监控系统的设计

    随着SMT生产工艺技术的提高,生产车间对环境的温湿度提出了温度25±3℃.湿度45%RH-65%RH的要求.为了达到这样的温湿度要求,就不仅需要提高温湿度传感器的精度,而且要求现场的管理人员能够实时的 ...

  6. web服务器攻击与防御系统设计,Web的入侵防御系统的设计与实现论文

    Web的入侵防御系统的设计与实现 摘要 Web服务器往往得不到传统防御方式的有效保护,使其成为整个网络环境中安全最薄弱的地方.缓冲区溢出.SQL注入.基于脚本的DDos.盗链和跨站等攻击行为对Web服 ...

  7. 网页服务器攻击,WEB服务器攻击分析全过程_91Ri.org

    故障现象描述 故障现象描述 客户对外服务的WEB服务器无法访问,内网机器访问互联网速度较慢. 基本环境描述 用户基本网络拓扑如下: 用户的Internet出口基本网络拓扑如上图所示,其中出口带宽为1M ...

  8. web服务器获取项目路径问题,读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...

    1.需求:有时候我们产品经理给我们的需求是会不断变化的,例如数量是1000现在变成500,我们不可以去改代码吧,这样很麻烦,所以就可以改配置文件properties(这个数据库链接一样),当然也有js ...

  9. asp.net尚未在web服务器上注册_最新版Web服务器项目详解 00 项目概述

    点 击 关 注 上 方"两猿社" 设 为"置 顶 或 星 标",干 货 第 一 时 间 送 达. 互 联 网 猿 | 两 猿 社 TineyWebServer Linux下C++轻量级Web服务器,助 ...

  10. web服务器文档根目录在哪里,web服务器根目录在哪

    web服务器根目录在哪 内容精选 换一换 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(访问方式为HTTPS),实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄 ...

最新文章

  1. Python可视化中的Matplotlib(6.散点图以及详细参数、为图形添加文字、注释、箭头以及它们的参数)
  2. php安全配置总结,php安全配置详细说明(1/2)_PHP教程
  3. 37.使用PreResultListener实现回调
  4. Gauss elimination Template
  5. python制作简单K线图
  6. python基础===利用unittest进行测试用例执行的几种方式
  7. SOCK开发之---TCP/IP简介
  8. linux nsf 扫描,linux 使用NSF 映射远程磁盘目录的实现
  9. dos命令行设置网络优先级_网络工程师必知的Linux命令,精品!
  10. 一文搞懂 Flink 的 Exactly Once 和 At Least Once
  11. 随机森林回归 python_用随机森林回归预测“美版拼多多”商品销量
  12. 使用canvas把照片旋转任意角度
  13. MSF(Metaspolit)复现MS12-020蓝屏漏洞
  14. 【Android驱动】module_init 和 module_exit
  15. 信号与系统实验三 信号的卷积计算
  16. cad打印去掉边框_CAD中图片的边框怎么去除? - CAD自学网
  17. win10系统C盘出现感叹号及加密图标解除
  18. html获取当前网页ip和端口,js获取当前访问者的IP地址和所属地市代码
  19. ATeam社区(牛客网项目第七章)
  20. python归一化nan加扰动_标准化和归一化对机器学习经典模型的影响

热门文章

  1. 解决Chrome中打不开Google搜索结果链接
  2. Linux常用指令(5)——20.4.25
  3. 高项题目--工期计算
  4. 路由器连接路由器设置教程
  5. Ubuntu(Linux)使用微信的方法
  6. Linux 下摄像头驱动支持情况(arm linux 同样适用)
  7. php im即时消息,im即时通讯php
  8. Html5 css3 导航箭头,HTML – CSS3导航箭头
  9. 金蝶软件界面文字全部变为乱码解决办法
  10. 地毯店人员告诉你如何正确选购合适地毯