摘 要:分析了防火墙和入侵检测各自的优缺点,提出了一种防火墙与入侵检测系统联动的新方法,并描述了具体实施方案。该方法有效地提升了联动设备之间的协调性,并具有很好的扩展性。
关键词:入侵检测系统;联动;防火墙;网络安全
随着网络规模的日益扩大和网络技术的飞速发展,网络攻击变得越来越复杂。对网络的防护不再局限于采用单一的产品与手段,大部分网络已经使用了各种各样的安全产品,如防火墙、人侵检测系统、病毒防护系统和信息审计系统等。它们在一定程度上保障了网络环境的安全性,但各安全产品之间存在无交流或很浅层次交流的局面,只对网络形成独立、被动的防护,没有从整体和设备联动的角度去解决网络安全问题。而网络安全是一个系统工程,它们的简单集成和叠加已不能应对越来越复杂的网络环境和安全威胁。人们已经开始研究不同技术手段的协同与融合。只有将多种安全产品联合起来,各自发挥自身优点,互相弥补不足,才能最大程度地发挥安全产品的性能,保障网络运行的安全。
1 防火墙与入侵检测系统
1.1 防火墙
防火墙指的是一个由软件和硬件组合而成的高级访问控制设备,是在被保护网和外网之间执行访问控制策略的一种或一系列部件的组合,它是现在市场上应用范围最广的网络安全产品之一。作为一种强制执行的访问控制机制,防火墙是确保网络安全的重要手段。防火墙能在保证网络畅通的情况下,尽可能地保证内部网络的安全。它的主要功能有:访问控制、内容控制和日志记录。
根据防范的方式和侧重点的不同,可将防火墙分为包过滤型和代理服务型。(1)包过滤技术:防火墙在网络层中根据数据包中的包头信息有选择地实施允许、通过或阻断操作。其核心是安全策略即过滤规则的设计。策略就是让包过滤防火墙在转发数据包之前打开TCP/IP封装,检查进出网络的数据包的各种属性,决定是否允许该数据包通过防火墙。(2)代理服务技术:代理服务作用在应用层,它用来提供应用层服务的控制,在内部网络向外部网络申请服务时起到中间转接作用。
防火墙本质上是一种访问控制系统,存在如下缺点:
(1)防火墙提供的是静态防御,所有规则需预先设置,并需要人工实施和维护,对于实时的攻击或异常的行为不能做出实时反应。
(2)防火墙规则的制定很大程度上是一种粗粒度的检测,对一些协议细节无法做到完全解析,不能预防来自应用层的攻击,也不能预防病毒攻击。
(3)防火墙具有防外不防内的局限性,对于内部用户的非法行为或已经渗透的攻击无法检测和响应。
1.2 入侵检测系统
入侵检测系统(IDS)是一种主动的网络安全防护技术,它通过网络不同关键点监视网络数据(网络数据包、系统日志、用户活动的状态行为)以分析入侵行为的可能性。一旦发现入侵,立即告警和记录日志,并实施安全控制操作,以保证数据的机密性、完整性和可用性。作为网络安全防护体系的重要组成部分,入侵检测系统提供了对内部攻击、外部攻击和误操作的实时检测。它不同于防火墙,采用的是一种动态的安全防护技术,对通信流量不做任何限制。
IDS从数据来源上可以分成三类:(1)主机型入侵检测系统(H-IDS),它一般保护所在的系统,以系统日志、应用程序日志等作为数据源,采集这些信息并进行分析;(2)网络型入侵检测系统(N-IDS),其保护整个网段,以网络上的数据包作为数据源,监听所有本网段内的数据包并进行判断;(3)混合式入侵检测系统,其兼备前两种方式的优点,既从主机系统采集数据,也通过网络以监听方式采集数据发现可疑行为。按照分析方法,IDS可以分为误用检测和异常检测两种。
入侵检测系统存在着以下一些不足:难以保证检测的准确性和高效性;易受拒绝式服务攻击(DOS),被攻破后导致失效;即使检测到攻击,也很难采取有效的保护措施。
2 防火墙与入侵检测系统联动
防火墙侧重于控制,而IDS侧重于主动发现入侵信号,这决定了它们不能独立完成网络防护任务,且不能相互取代。例如,当IDS检测到一种攻击行为时,如不能及时有效地采取措施,这种攻击行为将对网络应用造成损害;若仅有防火墙,攻击者会利用防火墙合法的通道进入内部网络,使防火墙形同虚设。因此,IDS应该通过与防火墙的联动,动态地改变或增加防火墙的策略,通过防火墙从源头上彻底阻断入侵行为。
防火墙和IDS之间的联动方式可分成以下三种。
(1)嵌入结合方式。把IDS嵌入到防火墙中,即IDS的数据来源不再来源于抓包,而是所有流经防火墙的数据流。所有通过的数据包不仅要接受防火墙检测规则的判定,还需要经过IDS的检测,分析其安全性,以达到真正的实时检测,这实际上是把两个产品合成一体。由于IDS本身就是一个复杂的系统,合成后的系统从实施到性能都会受到很大影响。
(2)接口开放方式。即防火墙和IDS各开放一个接口供对方调用,并按照预定的协议进行通信。目前常见的形式是安全厂家以自己的产品为核心,提供开放接口,以实现互动。这种方式比较灵活,但这种依附于一种安全设备的方式容易产生瓶颈,不能有效发挥网络安全设备的优点,且不易扩展。
(3)端口映像方式。防火墙将网络中指定的一部分流量镜像到入侵检测系统中,入侵检测系统再将分析后的结果反馈防火墙,并执行相应安全措施。
如果让防火墙与入侵检测系统直接进行交互,它们之间需要统一的通信接口,虽然具有可靠性高和速度快等优点,但由于缺乏综合性的分析将会生成错误的防火墙访问控制规则(由入侵检测的误报造成),从而造成DoS和防火墙性能下降(访问控制规则数量过多)。
2.1 联动模型
通过以上对联动方式的分析,本文提出一种基于联动控制中心的联动思想,充分发挥防火墙与入侵检测系统的优点,更有效地保护网络安全。联动部署图如图1所示。将IDS放在防火墙之后,根据网络的规模和安全要求可在多个位置安置数据采集点,并可根据实际情况在网络不同位置安装不同类型的防火墙。日志库用来存储IDS节点和防火墙大量日志和报警,进行统一分析并把分析结果传送到控制中心,由控制台分析制定联动控制策略,传送给相应联动节点。根据实际网络需求可添加其他网络安全设备,由联动系统作统一协调工作,对系统做进一步扩展。
联动系统主要由以下部分组成:
(1)控制台。它是整个系统的控制中心。在控制台上运行联动控制程序,接收网络安全设备发送过来的信息,根据现行网络状况制定相应的联动措施,并对各安全设备进行统一管理,确保联动系统中所有设备正常有效地工作。
(2)防火墙。在网络中的不同位置可安置不同类型的防火墙。安置于Internet与内部网连接点处的防火墙起主导作用,其将来自Internet上的网络数据包过滤,并可以镜像一部分数据给特定安全设备,由安全设备做更深层次的检测。这样不但可以阻止某些恶意数据包进入内部网,还可以分析不同网络协议的状态。而处于其他位置的防火墙在发生入侵时可以起到安全隔离的作用。另外,为了保护特殊区域的网络,还可以为防火墙添加网络地址转换的功能,让服务器在内网中使用内部IP,在Internet上使用防火墙的Public IP。
(3)入侵检测系统(IDS)。从IDS检测点采集数据,根据规则库作对比分析,当检测到网络系统中发生攻击行为或异常行为时,可以及时进行记录和报警等响应。其中,规则库可通过联动系统做动态更新,以增强入侵检测系统的健壮性。
(4)日志库。它用于存储网络安全事件记录,还可以有选择性地调用IDS和防火墙的日志,用户在查看警告日志的同时,可以根据日志的相关信息(如IP地址、协议、协议端口等)进行审计,更有效地发现网络潜在威胁,进而构建新的规则,并通知控制台实施联动,添加到防火墙的规则集中或更改入侵检测规则。
(5)其他安全设备。根据网络安全的需要可以添加防病毒设备、认证设备等。添加的设备可由控制台统一管理,对联动系统起一定的扩展作用。
2.2 联动系统的设计
本系统采用的是一种间接的联动方式,采用客户/服务器模式。服务器端不依附任何安全产品,是独立的应用程序。客户端分设在各联动安全设备上,根据设备不同客户端也不同。这种把联动控制程序单独分离出来的方式使系统能集中精力协调联动安全设备之间的工作,对网络安全事件进行更有效的分析,能提高联动的准确性和有效性,防止潜在的进一步攻击。该系统框架如图2所示。
服务器端包括数据接发模块、数据分析模块、策略生成模块和联动控制模块。
(1)数据接发模块:把从客户端收集到的数据进行简单分组,然后存储到数据库的表中。由于数据来自不同节点和设备,可能会出现冗余数据。该模块对数据记录进行归并,删除冗余和无用数据,并将相关数据进行规范化处理,以便作进一步处理。当联动系统实施联动时,该模块发送联动信息到客户端。
(2)数据分析模块:将接收过来的数据进行分析,判断各种入侵行为的精确度和危险度,根据分析结果进行数据分类,存储到相关表中。
(3)策略生成模块:根据分析结果,结合知识库制定或调用策略,并将策略加入到相应表中。
(4)联动控制模块:根据需要联动的安全设备确定需联动的客户端,将策略按照事先的约定封装成数据包,并作相应的加密处理,再由数据接发模块发送到相应设备,实施联动。
客户端是网络状态数据的采集端和联动操作的执行端,采用定时执行脚本文件来实现联动,包含数据接发模块、联动响应模块和策略执行模块。
(1)数据接发模块:发送数据到服务器端,并接收服务器端的信息。
(2)联动响应模块:保持与服务器端的连接。
(3)策略执行模块:执行服务器发送的联动策略。
本系统客户端与服务器端事先约定并设定通信端口。当客户端发现网络中有情况时,便向联动中心发送经过统一约定格式的数据包,经过联动中心作进一步分析判断,然后联动中心再发送经过统一约定格式的数据包,通知相关设备实施联动措施。
联动的具体步骤如下:
(1)初始化通信连接时,由服务器端向客户端发起连接。
(2)建立正常连接后,当客户端产生需要通知服务器端的安全事件时,通过发送约定格式的数据包来完成向服务器端传递信息。
(3)服务器端收到信息后,作相应分析,并作出判断,需要时发送联动策略给客户端。
(4)客户端接收服务器端发送的联动信息,实施联动行为,并将结果(成功与否)反馈给服务器端。
2.3 联动系统的通信安全
客户端与服务器端之间通信采用安全套接层协议SSL(Secure Socket Layer),它能使客户/服务器应用之间的通信不被非法窃听或截取,并且始终进行认证。SSL协议位于TCP/IP协议与各种应用层协议之间,它的优点在于独立于应用层协议,应用层协议(如HTTP、FTP等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及认证工作。此后,应用层协议所传送的数据都会先加密后传输,从而保证通信的安全性。
SSL协议提供的安全信道有以下三个特性。
(1)数据保密性。数据加密就是把明文信息经加密算法转换后变成加密的信息以实现数据的保密。加密的过程需要用到密钥来加密数据,然后再用密钥解密。没有了密钥,就无法正确解密已加密的数据。数据加密之后,密钥用一个安全的方法传送。加密过的数据可以公开地传送。
(2)数据一致性。加密能保证数据的一致性。例如,消息验证码能够校验用户提供的加密信息,接收者可以用来校验加密后的数据,保证数据在传输过程中没有被篡改过。
(3)安全验证。加密的另外一个功能是作为个人的标识,用户的密钥作为其安全验证的标识。
SSL协议的工作流程为:服务器认证阶段,客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;服务器根据客户的信息确定是否需要生成新的主密钥,如需要,则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
SSL安全协议为网络应用层通信提供了认证、数据保密和数据完整性的服务,较好地解决了网络上数据传输的安全问题。SSL协议保证了系统内部各组件之间的通信安全。SSL协议的SSL记录协议与SSL握手协议两个工作协议提供的身份认证和安全传输的服务,能够满足各组件之间的安全通信要求。采用SSL协议可以保证系统不会因数据传输带来新的安全漏洞。
现代信息网络发挥着重要作用,对网络的安全性有较高的要求。在网络安全防护体系中,各种安全设备以控制中心为核心,通过安全通信协议进行有机联动,形成一个动态的、完整的安全防御系统。各安全设备不是简单集成叠加,而是有效地协同配合,整个系统的安全性得到了很大的提高,可以满足现代网络安全的要求,与防火墙的结合使其更加完美,力争创造一个无漏洞、智能的安全防护系统。
参考文献
[1] 陈明忠.入侵检测技术在数据库系统的应用研究[J].计算机工程与科学,2009,31(4):79-83.
[2] 李声,蒋明华,李俊.利用SNMP实现防火墙与入侵检测系统的联动[J].网络安全,2007,29(9):39-40.
[3] 李飞,甘刚,陈艾东.基于Linux的入侵防御系统的研究与实现[J].计算机应用研究,2007,29(7):102-103.
[4] 王丽辉,李涛,张晓平,等.一种联动防火墙的网络入侵检测系统[J].计算机应用研究,2006,23(3):95-97.
[5] 余志高,周国祥.入侵检测与防火墙协同应用模型的研究与设计[J].计算机工程与应用,2010,31(3):22-24.
[6] 肖立中,邵志清,马汉华,等.网络入侵检测中的自动决定聚类数算法[J].软件学报,2008(8):2140-2148.
[7] 宋文功,唐琎.基于Linux的防火墙技术研究[J].微计算机信息,2006(4X):37-39,157.