Web的入侵防御系统的设计分享

时间:2020-12-01 18:38:08 Web Services 我要投稿

Web的入侵防御系统的设计分享

  0引言

  随着网络技术的不断发展和深入应用,人们对网络的安全性和可管理性的要求也越来越高,与此同时网络hacker的攻击方式,也变得越来越多样化,技术的复杂程度也越来越高,网络用户使用网络过程中常见的攻击类型有:未经授权的远程访问、本地超级用户的非法访问、扫描与探查、拒绝服务攻击以及恶意软件包。

  这就要求对用户端发送的HTTP信息进行分析比对,但这种报文解析的方式需要一种截获下层原始报文的能力,这可以通过截获传输层或网际层报文的实现,所以我们通过Web服务器提供的接口仅仅截获应用层的HTTP报文。

  要求用户端口发起的检测本身全面监控用户端口的行为是不够的,因为我们只知道用户端口发起的请求,但不知道如何在服务器响应到用户端口。由于完整的HTTP会话,包括用户端口发送一个请求,服务器端响应请求,那么服务器只监控的内容后,才作出回应的HTTP会话将结束。如果Web服务器端口提供给用户端口响应HTTP数据包封装的接口,当我们试图调用Web服务器也接口,而不是试图组装消息的HTTP。因此,这个入侵防御系统的核心是它的策略引擎,通过强大,灵活的策略引擎,实现功能检测或异常检测。

  1体系结构

  通常一个系统会采用单层或者多层的体系结构。单层的结构将模块都紧密连接在一起,模块与模块间都能交叉调用,多层的结构划分了不同功能的模块,层与层之间是靠已经定义好的接口进行通信传输。单层结构没多层的结构有良好的扩展性,而单层结构可以对模块之间交互的更加高效。为了能使系统能够适合不同的Web服务器平台,综合以上的因素考虑后,本系统采取了分层式体系结构。图1为本系统的体系结构图。如图1所示,这个Web的入侵防御系统主要分层了以下三层:

  图1WebIPS的体系结构

  解析及响应层:这一层的作用是为IPS提供解析客户端HTTP报文请求以及封装服务响应报文的接口。当客户端要对服务器进行访问时,该层通知策略引擎调度策略,客户端的访问信息进行检测,并为策略引擎提供响应。按照以上的分析结果,这一层由服务器提供的接口封装实现。如图2所示。

  图2WebIPS的解析与响应流程

  策略引擎:这一层的作用是策略调配,通过“解析及响应层”提供的接口来获取用户端的信息,并交给“解析及响应层”来完成。同时策略加载策略引擎的调配数据管理层来完成,以及日志记录的功能。

  数据管理:这一层主要提供日志记录的信息、策略脚本解析及配置管理的功能。因此数据进行处理过程都是在这一层里来处理完成。

  每一层都独立的完成功能,当其中某层的发生变化时,只要接口没有改变,对另外层没有影响。这样整体结构就有较大的扩展性,例如:我们可以把响应层和解析的具体实现方法是由调用Web服务器的接口方式替换为直接截获传输层网络层封包的方式等。

  2处理流程

  WebIPS的处理流程图2所示,具体流程如下:当用户端向发送HTTP请求的时候,解析模块解析原始的数据报文经HTTP报文,报文解析模块会告知策略引擎模块对用户端的信息进行排查检测,策略引擎会根据策略脚本中编写的策略,告知HTTP响应模块对用户端的行为做出响应,并根据策略脚本中的策略,告知日志记录信息模块记录相应的日志。如图3所示,依据WebIPS系统的处理流程及体系结构,系统主要模块和实际作用如下:

  图3WebIPS的处理过程图

  IPS管理模块

  该模块的主要工作是管理和连接IPS的各个功能模块,同时管理和监控数据流,根据读取配置文件的相关设置完成系统的初始化,对系统的信息状态进行管理:运行、停止、重新加载。当HTTP报文解析模块告知有用户端进行访问时,调用策略引擎对用户端的信息进行和行为进行检测,对策略引擎反馈的结果告知HTTP响应模块进行响应。

  配置文件模块

  主要完成IPS配置文件的分析、读取及保存,为IPS提供正确的'接口,具体方式可以由管理需求进行修改。

  HTTP报文的解析模块

  主要通过服务器为IPS提供的接口,对用户端访问服务器的数据进行解析,并通知IPS管理模块已经收到访问请求,策略引擎检测访问用户端的信息。HTTP完整的数据信息解析模块中都有一个接口,来检测用户端口相关信息。在一般的Web脚本当中都有这样一个接口。

  HTTP响应模块

  当需要针对用户端口的行为进行分析响应时,在这一模块中对完整的数据信息进行组装。提供下面几种方式响应:调用了下一条策略、响应接受请求、响应断开链接、响应发送信息、响应发送文件和重定向。

  策略引擎模块

  策略引擎首先对系统预先制定好的策略脚本进行解析比对,并依据设定的策略的不同属性和优先级组装策略链。当系统的管理员模块通知策略引擎对用户端口信息检测的时候,策略引擎将利用HTTP报文分析模块提供的接口获得用户端口的信息,分析用户端口的行为模式,通过一次一次调配策略来控制用户端口的访问。在策略中,可以检查侦测用户端口请求的每个字段,并对用户端口的行为进行一次次分析比对或记录信息,通过已经定义好的规则对用户端口的不同行为进行回应。如果没有的策略回馈响应,则告知HTTP回应模块完成用户端口的响应,并停止调配策略链以后的对应策略。如果没有任何的一种策略能对用户端口的行为做出反应,策略引擎将返回到上一层的接受请求回应。策略引擎需要封装的HTTP完整的数据信息解析和回馈模块,及日志记录的信息模块,供策略中调配。

  3策略引擎的设计

  策略引擎是整个的IPS的核心部分,同时可以加载两种格式不同的策略,或者可以说策略也可以用两种完全不同的方式表现出来,一种是应用策略脚本的文件,一种是应用C++编码的C++类型的。虽然两种不同格式的策略实现的方法不同,但是策略引擎的调配方法是一样的。C++的效率比较高,而基于脚本驱动的策略,在编写和修改时都十分的不方便。这种体系的结构可以很方便的把策略不同的实现方法扩充进来。

  在系统初始化进程结束之后,如果收到用户端口发来的访问服务器请求,系统将为用户端口的访问进行策略调配。策略的属性需要进行必要的设置,包括策略的名称、类型、开启状态、加载状态、优先级、路径。

  3.1策略的加载

  具体步骤如下:

  (1)IPS管理模块利用配置模块来读取管理员设定好的策略属性列表,将策略名称相同的项去掉,并将它作为策略引擎初始化的参数或者策略引擎重新加载的参数。

  (2)策略引擎将按列表当策略的型属性、优先级属性,将策略由高级策略到低级策略的次序进行排列。生成一个新的策略列表。

  (3)若策略的开启状态属性值不是Enable,将跳过此策略,继续加载下一个策略。

  (4)若加载器的属性为C++,则使用C++的策略加载器进行处理,如果是为脚本的就由相同属性处理器进行处理。如果是不能识别的就将跳过这个策略。否则加载器会将策略对象初始化。

  (5)如果系统加载成功,该策略的状态属性值将被设置为Loaded,如果加载出现失败,则将保持这个选项的状态属性值为Unload。由HTTP解析模块提供具体实现方式。

  (6)当策略列表中的全部项都被处理完后,系统重新编辑该列表,同时把Loaded的项提取出来,形成策略调配用策略列表。

  3.2策略的调配

  策略对象中提供了两个接口供策略引擎调配,其中一个是OnSend,另一个则是OnRecv。当策略引擎是为侦测这个服务器端口发送的数据时,都是调用这个策略中的OnSend接口。而当策略引擎是为检测这个用户端口的信息而调配策略的时候,都是调配的策略中的OnRecv接口。

  策略引擎将按下列的步骤对策略链上面的策略进行调配:

  (1)依次按步骤(2)(3)调配策略链上的策略

  (2)如果策略回馈的是一个“调配下一个策略”的响应的时候,则调用下一条策略。

  (3)如果策略回馈的不是“调用下一个策略”的响应的时候,则停止调度策略链上后面的策略并返回该响应。

  (4)重复步骤(2)(3)直到策略全都调配结束,如果没有策略的响应,则策略引擎回馈一个“接受请求”的响应。

  4总结

  选取Kddcup99数据集对本系统进行模拟检测,通过检测结果可认定:本系统能够对常见攻击类型做出正确响应。本系统为Web服务器管理员提供了脚本编写的策略,使其能够便捷地配置Web服务器的环境。这一系统仅适用于防御Web服务器的入侵安全,健康安全的网络环境是一个整体,需要依靠每个网络中的个体都配备上良好的安全配置才得以实现。

【Web的入侵防御系统的设计分享】相关文章:

1.web系统分层架构设计

2.如何识别和防御Web网页木马

3.Web系统架构的性能优化

4.基于Web的MES系统安全架构设计及分析

5.Web信息集成系统网络架构

6.使用PHP开发高效的WEB系统的方法介绍

7.Web设计名词解析

8.面向电子商务的Web日志挖掘系统