网络入侵检测与防护算法系统的实现
2019-07-04朱平哲
朱平哲
(三门峡职业技术学院 信息传媒学院,河南 三门峡 472000)
一、引言
信息安全[1,2]业已成为信息和通信技术领域的热点问题。近年来,网络安全威胁的数量不断增加,而现有的数据传输保护工具由于基于线性反应逻辑,无法提供可靠的网络安全服务,例如Internet中被广泛使用的边界网关协议(Border Gateway Protocol, BGP),该协议既不包含保护路由数据完整性和可靠性的机制,也不提供数据交换中涉及的身份验证,而缺少这种保护手段必将导致BGP协议的敏感性,致使传输数据的保密性遭到破坏或拒绝服务(Denial of Service, DoS)攻击的风险[3,4]。因此,网络资源消耗殆尽、过载和其他故障均可成为遭受上述攻击的因素,局域网(Local Area Networks, LAN)安全控制算法的开发和基于其的入侵检测[5,6]和防护系统(Intrusion Detection and Prevention System, IDS/IPS)模块的实现成为一项亟需完成的任务,而使用非标准的信息系统保护方法可以消除现有方法产生的故障,从而显著提高企业网络的安全性[7]。
基于此,本文提出一种新方法,拟通过悬挂模拟、提供虚假信息以及实现攻击者信息流隐藏重定向的方式,以保护信息系统免受主动和被动流量分析工具的影响。该方法的主要目的是实现一个入侵检测和防护系统模块,从而伪造系统参数及其对外部干扰的响应。该方法包含一系列任务,例如针对现有网络威胁及其实现方法的研究,针对LAN的保护手段,以及开发相应模块进行系统对入侵企图响应的伪造,使用该模块实现集成局域网安全控制系统,并测试系统的性能。
二、算法描述
为了获取网络信息并对潜在攻击目标进行定义,攻击者可以使用各种漏洞检查方法,包括被动和主动流量分析机制,即:嗅探、扫描和探测[8]。嗅探用于监听网络,其无论数据包的目的地,通过接受所有传输数据包的专门程序而进行;扫描的目的是收集有关连接到网络的计算机的信息,并识别其正在运行的服务;探测是一种基于模拟攻击的主动脆弱性分析技术,是根据初步扫描过程中获得的信息而进行的。这些过程可以获取信息系统的漏洞,并确定可能的攻击序列。
本文所提出的方法可以通过伪造攻击者信息以实现信息系统和资源免受上述方法攻击的目的。该方法是已开发的LAN安全控制算法的基础,包括使用非标准方法应对网络威胁,例如修改系统参数、挂起模拟和攻击者数据报隐藏重定向等,以便进一步对入侵者加以识别。
算法框图如图1所示。
安全系统执行的操作顺序取决于该系统中已识别出可疑活动的组件:安全信息和事件管理系统(Security Information and Event Management System, SIEM)或IDS/IPS。根据提出的算法,会产生关于所使用的服务和操作系统的错误信息。若已识别出潜在的安全威胁,则恶意流量将被重定向。因此,可以创建对连接挂起的模拟,使得攻击者花费更多的时间和计算资源。该算法的一大特点是能够通过洋葱路由器(The Onion Router, Tor)覆盖网络实现所有类型的响应操作,包括到攻击者主机的连接跟踪、响应扫描和探测以确保匿名性。通过覆盖网络的信息流重定向可以避免启动此活动的主机被识别。然而,需要注意的是,该种措施在部分国家是违法的,因此在具体使用中其是可选的。
图1 算法流程图
本文算法的一个重要特征在于连接跟踪,可以通过将访问它的IP地址与代理服务器和VPN服务的已知IP地址进行关联,以识别匿名连接尝试。此外,使用python编写的脚本可以测试来自Tor exit节点的连接尝试。
由于本文算法可以及时收集、分析和关联网络事件、过滤传入、传出和传输流量并记录现有的网络威胁,因此显著提高了LAN的安全级别。基于该算法,本文还开发了一个IDS/IPS系统模块,该模块将被集成到局域网安全控制系统中。
三、模块描述
基于LAN安全控制算法可以构建入侵检测和防护系统模块,该模块将被引入到复杂的安全系统中,该系统具有多层C/S架构,允许高度的灵活性、可扩展性和性能。在比较研究过程中,选用Linux CentOS 6.5作为服务器操作系统以保证可靠性、容错性和安全性,此外,还配备有其他若干组件:
(1) 入侵检测和防护系统Bro;
(2) 基于Netfilter的集成防火墙;
(3) 作为日志系统的Rsyslog服务器;
(4) SIEM系统;
(5) 对网络攻击者的响应系统。
这些软件产品均为开源产品,且由于突出的性能而被作为组件。防护系统的实施方案如图2所示。
图2 防护系统执行流程
(一)入侵检测与防护系统
IDS/IPS使用不同的方法以保障事件分析的安全,其中代表性的方法有基于异常的检测方法、基于行为的检测方法、基于签名的检测方法,以及自相似性的识别方法等。然而,上述每一种方法均有一定的局限性,无法独立使用。例如,基于异常的方法在检测过程中提供针对攻击的详细信息,但在使用加密手段和覆盖技术时无法获取明确的结果。由于采用了严格定义的签名,误用检测器的应用不允许识别复杂的分布式攻击,因此该方法仅适用于检测已知类型的攻击[9-11]。监测和分析事件的最佳方法是将所描述的方法与智能自适应方法加以结合。
Bro是1998年问世的一种网络IDS/IPS,它结合了多种方法用于确定攻击类型。该种IDS/IPS综合采用了基于特征的检测和基于异常的检测两种方案。此外,Bro允许定义用于检测恶意流量的自定义安全策略。该系统由多个交互模块组成,主要包括包捕获引擎、事件引擎和策略脚本解释器。包捕获引擎使用libcap库读取网络流量,然后将接收到的包流发送到事件引擎以生成主网络活动数据。此外,脚本解释器按照FIFO顺序为发生的每个事件注册处理程序。之后,与处理程序对应的脚本将确定检测恶意活动所需的操作,以及检测恶意活动时使用的规则。
为了完全覆盖整个局域网并监视内部威胁,有必要在网络的每个部分放置IDS/IPS传感器。对于每个传感器,建议在交换机上选择端口,然后使用端口镜像功能从其他端口镜像流量。此外,来自传感器连接端口的流量需要重定向到IDS/IPS系统进行分析。
(二)防火墙
本文提出的系统使用了一个基于Netfilter的集成防火墙,它包含一个IPtables包过滤器和一个patch-o-matic (POM)脚本以及一个conntrack连接跟踪程序。目前,POM是一个基于Linux的防火墙功能的扩展性术语,因此该系统采用了Xtables插件,而不必对Linux内核进行更改。FirewallD中也有类似的扩展,它取代了CentOS 7和更高版本中的IPtables。需要注意的是,拒绝使用FirewallD不会对所提出的系统产生不利影响,因为IPtables的功能和能力允许对传入、传出和传输流量进行同样定性的过滤。
IPtables包过滤器是内置在Linux内核中的Netfilter防火墙的一部分,它允许根据预先定义的规则进行流量过滤。IPtables体系结构包括三个通用术语:链、表和规则。链可以是基本的类型(默认情况下创建的PREROUTING, INPUT, FORWARD,OUTPUT和POSTROUTING),也可以是用户定义的链。PREROUTING是一个设计用于初始处理传入数据包的链;INPUT处理发往此主机的传入数据包;FORWARD处理通过防火墙的所有数据包;OUTPUT处理出站数据包;POSTROUTING提供出站数据包的最终处理。对于链的独立创建、配置或销毁,提供了用户空间实用工具iptables。
考虑中的链包含以下标准表:raw, mangle, nat和filter。raw表用于在数据包发送到连接跟踪程序之前传递数据包。它可以通过标记为“notrack”来指定不需要由状态检测机制处理的数据包。此表包含在PREROUTING链和OUTPUT链中。mangle表用于修改IP数据包的头,例如服务类型和生存时间,并且包含在所有基本链中。Nat是执行网络地址转换(Network Address Translation, NAT)所需的表,包含目标网络地址转换DNAT、源网络地址转换SNAT等。只有链中的第一个数据包通过NAT表;地址转换或屏蔽将自动应用于其余的数据包。NAT存在于PREROUTING, OUTPUT和POSTROUTING链中。
数据包到达防火墙后进入网络设备并通过一些内核检查。接下来,IP数据报通过PREROUTING链,并根据用途传递到FORWARD或INPUT链。通过INPUT链后,包被传送到本地应用程序,如果需要,将形成响应包并发送到OUTPUT链。通过OUTPUT链后,该数据包将被发送到POSTROUTING链。
conntrack状态检测机制是一个Netfilter组件,它根据数据包间的连接对其进行分类。该模块的功能包括跟踪单个连接和已连接的连接状态。
传输的包可以被分配四种状态:新的、相关的、已建立的和无效的。新状态表示数据包属于新连接。如果连接已经存在,则设置为已建立状态;要获得此状态,网络主机传输数据包并从另一个主机接收响应。属于子连接(已建立状态)的包被标记为相关,而那些无法明确标识的包将接收无效状态。
为了管理conntrack模块,提供了conntrack工具包,其中包括一个conntrack工具,用于跟踪新连接的建立和监控对现有连接的更改。它还允许编辑连接表和过滤输出。此外,conntrack工具包括conntrackd守护进程,可使状态表与其他节点同步。
使用连接状态检测机制,可以创建可靠的规则集,并对流量执行状态过滤,通过使用“保持状态”选项,可以在不搜索规则集的情况下进行管理。
扩展IPtables功能需要安装额外的模块以应对网络威胁。Xtables插件与先前的补丁不同,由于不需要重新构建Linux内核和IPtables,因此安装和维护更为简单。
本文提出的系统使用了三个Xtables插件工具:tarpit, delude和chaos。tarpit工具用于为攻击者创建陷阱,打开传入的TCP连接后,TCP窗口大小设置为零,这会阻止攻击者正确关闭连接,直到超时结束。这些操作会模拟连接挂起,并导致攻击者花费时间和计算资源,而不会对受保护的系统产生不良影响。delude工具用于模拟开放端口,响应通过发送SYN数据包(序列号)建立连接的请求,发送SYN/ACK数据包(确认号),从而模拟接收连接的开放端口,响应其他数据包,发送RST数据包(重置)以终止连接。该种欺骗工具的应用通过误导攻击者能够有效抵消端口扫描。chaos工具执行以下操作之一:tarpit、delude、reject(重置连接并发送节点不可用的通知)和drop(重置连接而不发送节点不可用的通知),并以指定的概率执行所有新的TCP连接。
(三)集中日志服务器
系统事件注册是通过使用一个集中式的Rsyslog服务器加以实现的,该服务器将来自不同网络设备的事件重定向到该服务器。Rsyslog的主要配置文件是rsyslog.conf,它是由一系列模块、配置指令、模板和规则集所组成。其中,模块可以划分为若干个功能组,包括负责接收来自不同来源消息的输入模块、用于写入消息的输出模块、解析器模块、字符串生成器模块和消息修改模块;配置指令定义Rsyslogd守护进程的常规参数,例如模块加载($ModLoad)或队列的最大尺寸($MainMessageQueueSize);模板允许定义输出消息的格式并使用动态日志文件名,模板是在规则中使用前加以设置的;规则由选择器和一系列操作所构成,并用制表符或空格分隔。选择器是作为facility.priority格式的记录。设备可以表示为 authpriv、cron、守护进程、kern、lpr、mail、news、syslog、user、uucp和 local0-local7。优先级可以设置为emerg、alert、crit、err、warn、notice、info和debug。在记录每条消息前,将对照选择器检查每条消息。消息适用于与选择器中指定设备相同的设备,优先级等于或高于指定的优先级。如果建立了匹配,则执行规则中指定的操作;Rsyslog允许使用变量值作为选择器,该选择器提供基于Rainerscript语言的事件筛选器和基于消息属性的筛选器。Rainerscript语言的基础是“if then else”结构。
因此,在消息通过某个输入模块到达Rsyslog系统后,它将通过对规则中指定的选择器的检查。如果与选择器相匹配,在执行操作之前,将使用适当的模板对消息进行转换。如果未指定模板,则应用全局参数或默认模板中指示的模板。应用规则定义的操作后,消息将发送到指定的位置。
(四)安全信息和事件管理系统
安全信息和事件管理系统(SIEM)是网络安全控制系统中IDS/IPS的一项辅助性工具,无法有效应对渗透网络和其他类型的网络威胁。这些系统对来自不同来源的事件进行分析和关联,并允许根据累积的统计信息识别复杂的分布式攻击。本文提出的系统中采用Prelude OSS作为SIEM系统,该系统具有写入日志的源灵活性、可伸缩性和连接性。
Prelude的体系结构包括一个管理器、一个日志监控代理(Log Monitoring Lackey, LML)、存储系统处理事件的数据库以及接口子系统等。管理器是系统的主要组件,它接受来自LML代理和外部系统的规范化事件,并将接收到的信息写入数据库。安全事件管理代理负责接收来自不同系统的日志,并将其转换为单个标准视图(规范化)。相关模块根据系统管理员编译的规则集将到达管理器的事件关联起来。由于python脚本与此模块的连接,系统管理员可以描述任何相关规则。
事件通过SNMP陷阱发送到Prelude系统。为了处理来自源端的数据,本系统采用入侵检测消息交换格式。Prelude系统功能示意图如图3所示。
图3 Prelude系统工作流程图
(1) IDS/IPS检测到攻击并发送SNMP陷阱;
(2) 将SNMP陷阱传输到系统日志;
(3) Rsyslogd将接收到的消息写入文件;
(4) 安全事件管理代理规范化日志,并将所需值映射到标准IDMEF字段;
(5) 将规范化事件传递给管理器,管理器将事件写入数据库,之后显示该事件;
(6) 从IDS/IPS接收到的事件也可以发送到相关模块。
在本文系统中,Prelude OSS系统从Rsyslog服务器和Bro系统收集信息。Prelude提供识别违反网络安全策略并创建事件报告的可能性。如果检测到可疑活动,Prelude将会把入侵者的信息发送到IDS/IPS。
四、结语
本文提出了一种新的方法,该方法可以保护信息系统免受主动和被动流量分析工具的攻击,并基于所设计的算法对IDS/IPS模块的工作进行了描述。本文所提出的解决方案涉及企业网络信息安全的非标准方法,这些方法可以防止针对安全系统响应的预测,从而可以让攻击者花费更多的时间和计算资源来准确分析系统的漏洞。这些结果可以通过模拟连接挂起、提供被攻击系统的错误信息以及执行攻击者信息流的隐藏重定向加以实现。此外,本文开发的系统可以保护网络免受常见网络威胁或以前未知的网络攻击。本文所提出的系统模块可以通过执行一系列响应操作来主动保护信息资源,这些操作允许识别攻击者并强制其停止攻击,结合保护数据传输过程的已知方法,显著减少数据截取和节点从可用性状态移除的威胁。