当前位置:文档之家› 网络入侵防御系统的技术研究和实现

网络入侵防御系统的技术研究和实现

小型网络入侵防御系统的技术研究和实现王新留 谷利泽 杨义先北京邮电大学网络与交换技术国家重点实验室 信息安全中心 100876wxl322520@摘要:针对小型网络的安全防御问题,利用开源IDS(Intrusion Detection System)-Snort,设计了一种IDS告警的融合、过滤机制,实现了IDS和防火墙的智能化联动,并且在入侵检测中成功引入漏洞扫描技术。

通过将入侵检测技术、防火墙技术和漏洞扫描技术三者融合在一起,本文构建出一种适用于小型网络的入侵防御系统。

关键词:IDS,IPS,防火墙,漏洞扫描,SnortResearch and implementation on small-typed networkIntrusion Prevention SystemWang XinLiu Gu Lize Yang YixianInformation Security Center, State Key Laboratory of Networking and Switching Technology, BeijingUniversity of Posts and Telecommunications 100876wxl322520@Abstract: Focusing on the problem of small-typed network security prevention, using the open source IDS(Intrusion Detection System)-Snort, a kind of mechanism for fusing and filtering IDS’s alerts is designed, the intelligent interaction between Snort and firewall is completed, and the vulnerability scanning technology is successfully introduced into the intrusion detection. Through integrating IDS, firewall, and vulnerability scanning technology together, an Intrusion Prevention System for small-typed network is built by this paper.Key words: IDS, IPS, firewall, vulnerability scanning, Snort1 引言网络安全是一个系统的概念,有效的安全策略和整体解决方案的制定是网络信息安全的首要目标。

IDS、防火墙等安全产品的简单堆垒在当前的威胁和攻击面前变得越来越脆弱。

因此,对安全产品的整合,逐渐被人们所关注,从IDS和防火墙的联动发展起来的入侵防御系统(Intrusion Prevention System, IPS)脱颖而出。

IPS是指不但能检测入侵的发生,而且能通过一定的响应方式,实时中止入侵行为的发生和发展,实时保护信息系统不受攻击的一种智能化的安全产品[2]。

它的出现弥补了防火墙及入侵检测系统单一产品的不足。

目前,一些研究人员研究实现了基于Snort与防火墙联动的入侵防御系统。

其原理是:当Snort 检测到入侵事件时,就往防火墙中动态添加防御规则,实时阻止入侵事件的发生。

这很大程度上弥补了防火墙和入侵检测系统单一产品的不足,并能实时中止入侵行为。

但是它们并没有引入好的告警融合、过滤机制,加上Snort的误报,这种简单的联动方式会造成防火墙中的阻塞规则过多,严重影响受保护子网用户正常的网络行为。

针对这些问题,本文设计的系统通过维护一个包含正被阻塞的攻击主机信息的阻塞队列、并在入侵检测中引入漏洞扫描技术,实现了对Snort告警事件的融合、过滤功能,以及Snort与防火墙的智能化联动。

即将一种简洁、快速的告警融合、过滤机制成功引入到本文设计的入侵防御系统中。

2 基于Snort的小型网络防御系统的设计与实现Linux操作系统中含有Netfilter模块,其中包含Iptables防火墙。

linux内核自2.3.47版本开始已具有内置的以太网桥功能。

Linux以太网桥是一台运行linux操作系统的计算机,该机器至少需要两个以太网卡,Linux可以将所在计算机的所有以太网卡转换成网桥的“逻辑端口”,从而使一台计算机具有网桥功能[5]。

通过将Linux以太网桥与Netfilter防火墙相结合,我们可以将一台带有两个以上以太网卡的运行linux操作系统的计算机配置成透明网桥式防火墙。

透明网桥式防火墙与传统防火墙相比,具有如下优势:由于以太网桥不需要IP地址,所以无论内部网络用户,还是来自外部网络的攻击者,都无法探测到该防火墙的存在,因此很难对该防火墙发动网络攻击;在linux网桥上不仅可以针对IP包和TCP/UDP包进行过滤,还可以过滤以太帧;部署基于网桥的防火墙,不需要改变现有的网络拓扑结构[4]。

本文设计的系统,就是部署在一台透明网桥式防火墙设备上,这台设备作为网桥连接在路由器和受保护子网的交换机之间。

这样,系统对用户和攻击者来说都是透明的,从而不会受到攻击。

部署了本文设计的系统的子网拓扑图如图1所示:透明网桥式防火墙(内嵌本文设计的路由器子网交换机子网windows主机(安装有用于漏洞扫描和补丁安装的代理)图1 部署了本系统的子网拓扑图2.1 系统的总体架构Snort是一个功能强大的轻型入侵检测系统,它的将告警输出到Unix域socket的输出插件,相当于一个告警输出的客户端。

用户通过编写服务器端程序,能获取Snort的告警输出信息,通过对这些告警信息进行解析,能及时采取相应的防御对策;Snort目前有8000多条规则,其中有将近半数是为针对Windows系统漏洞的攻击而设计的,如果Snort检测到针对windows系统漏洞的攻击事件时,系统能及时让子网windows主机打好相应的补丁,碰到后续类似的攻击事件时,系统就可以过滤掉这些告警,不作响应。

本文正是基于这种思想,利用Snort,Iptables防火墙,并且引入漏洞扫描技术,设计和实现了一个基于Snort的小型网络防御系统。

系统的总体架构如图2所示:图2 系统的总体架构图系统分有如下四大模块组成:1.Snort。

Snort是开源的IDS。

它是目前十分流行的、功能强大的一款轻型入侵检测系统。

作为本系统中的IDS,它用于检测入侵事件,并实时将告警信息传送给服务器程序。

2.服务器程序。

服务器程序是本系统的核心程序,它需要同时处理三件事情:监听和接收Snort 的告警输出;解析告警事件,作出相应的防御对策;处理来自管理页面的请求。

因此服务器程序采用多线程并发模式。

服务器程序由两大模块构成:告警输出处理模块和管理界面请求处理模块。

告警输出处理模块是服务器程序的核心模块,它负责接收Snort输出的告警信息,并对告警信息进行解析,然后采取相应的防御对策。

管理界面请求处理模块负责监听来自管理界面的各种操作请求,并且实时执行这些操作请求,然后返回给界面以执行结果信息。

3.管理界面。

管理界面相当于一个web服务器,提供一个用户友好的界面,供用户对系统进行操作管理。

用户操作包括:备份、维护告警日志信息库;添加、修改和删除阻塞队列中阻塞结点和防火墙规则链中对应的阻塞规则;更新、维护windows漏洞补丁库。

向windows主机代理下发漏洞扫描命令,获取子网各主机的漏洞信息,及时更新漏洞补丁库;向主机代理下发补丁升级命令,及时修复子网windows主机的系统漏洞。

4.主机代理。

主机代理安装在子网windows主机上,负责执行系统漏洞扫描和漏洞补丁安装操作。

当接收到漏洞扫描命令时,对本机进行漏洞扫描操作,并返回本机系统漏洞信息;当接收到补丁安装命令时,从服务器的漏洞补丁库中下载漏洞补丁,安装完毕后返回执行结果。

2.2 关键技术的实现服务器程序是整个系统的核心部分,而告警输出处理模块是服务器程序的核心模块。

告警输出处理模块的工作流程图如图3所示,它实现了本文设计的系统的两项关键技术:对Snort告警输出进行融合和过滤,并实现Snort与防火墙的智能化联动;在入侵检测中引入漏洞扫描技术。

服务器程序通过维护一包含正被阻塞的攻击主机信息的阻塞队列,实现了对Snort告警输出的融合和过滤功能;同时通过所维护的阻塞队列中阻塞结点与iptables防火墙规则链中规则之间的一一对应,成功实现了Snort与防火墙的智能化联动。

阻塞队列由阻塞结点构成,每个阻塞结点记录了正被阻塞的攻击主机地址信息、告警发生时间、需要阻塞的时间、阻塞原因等告警信息,它与防火墙中的一条阻塞规则相对应。

当服务器程序接收到来自Snort的告警输出时,解析告警信息,获取攻击主机地址、告警内容等必要信息,并连同告警发生的时间、需要阻塞的时间等信息生成新的阻塞结点。

如果当前的攻击主机地址已经出现在阻塞队列中,说明该主机已经被阻塞,只需要修改阻塞队列中相应结点的告警发生时间,使其与当前新的阻塞结点的告警发生时间相等;如果攻击主机地址未出现在阻塞队列中,则将新生成的阻塞结点加入到阻塞队列中,并且往防火墙中添加一条对应的阻塞规则,执行阻塞操作。

服务器程序会创建一线程监控阻塞队列,当检测到有阻塞结点的阻塞时间到时,删除这个阻塞结点以及其对应的防火墙阻塞规则,取消对该攻击主机的阻塞操作,及时恢复网络的正常通信。

服务器程序通过更新、维护一windows漏洞补丁库,以及对安装在子网各windows主机上的主机代理进行命令下发,在入侵检测中成功引入漏洞扫描技术。

服务器程序在解析来自Snort的告警输出,对攻击主机执行阻塞操作的同时,分析此次攻击的性质,如果是针对子网windows主机系统漏洞的攻击,则下载相应的补丁,并将补丁添加到windows漏洞补丁库中,然后向安装在子网各windows主机上的代理下发命令,由各主机代理对本机进行漏洞扫描,如存在这个漏洞,则由主机代理负责从服务器漏洞补丁库下载并安装相应的漏洞补丁。

这样,以后再碰到类似的攻击事件时,由于子网各windows主机已经成功安装漏洞补丁,系统可以直接过滤掉这些告警事件,不作响应。

图3 告警输出处理模块的工作流程图2.3 系统评估本文设计的系统配置简单、灵活,不需要改变受保护子网的整体结构;无须改动Snort,而且服务器程序独立于Snort而运行,不会影响到Snort的性能;同时,管理员可以通过管理页面对系统进行操作和管理。

相关主题