在上篇文章中,作者对分布式入侵检测机制进行了研究,本篇文章作者给出了入侵检测系统的模型并确定用改进的CUSUM算法作为智能检测的核心算法,在MAS分布式架构上使用基于事件驱动模型的Agent响应机制并加入负载均衡机制。这篇文章将阐述入侵检测原型系统的设计、实现,并论述基于原型系统的算法实现。首先从该系统的整体框架入手,逐步介绍整个系统的设计与实现。

系统目标及需求分析

系统目标

本系统主要针对局域网络数据,研究其异常检测方法,主要包括以下异常检测功能:

  • 独立特征网络入侵行为检测:对死亡之Ping攻击、扫描攻击、WinNuke攻击、Land攻击等拥有独立特征的网络入侵行为进行检测;
  • 网络流量异常判断:当发生非法网络流量时实时发出警报;
  • 分布式拒绝服务攻击检测:启动、关闭、持续时间、安装、删除网络端口。

为了达到检测的目标,系统所要满足的技术指标包括两个方面:

  • 基于网络流量统计值分析技术的智能分析引擎:能够实现对基于异常的攻击的检测功能,包括分布式扫描攻击和拒绝服务攻击;
  • 基于Agent分布式数据采集原型系统:采集主机和网络的行为数据,包括用户登录事件、synflood攻击、扫描攻击、拒绝服务攻击。

系统主要功能需求为针对明确特征的网络入侵行为进行实时检测和根据网络流量分析网络安全状态两大部分。两大功能需求中都要求代理之间的通信功能,这就说明分布式软件开发框架本身必须为代理提供通信功能服务,即从分布式平台的选择上做出了具体要求。

需求分析

根据系统目标,IDS系统主要参与者是IDS管理员,其目标是监控IDS的代理运行状态、入侵报警信息等。

IDS系统的系统参与者包括:流量异常触发器代理,其作为IDS异常检测的入口,对网络流量进行实时数据收集,当检测到网络流量异常时发送异常事件驱动IDS进行一系列异常响应分析;相关异常事件响应代理,在正常网络环境下处于休眠状态,当接收到相关异常事件后唤醒并进行数据收集和分析,最后发送分析结果;明确特征入侵检测代理,主要针对需求中对明确特征的网络入侵行为的检测,当发现对应异常后发送异常报警;负载均衡代理,主要负责各个节点的负载状态监控,控制系统消息的分发,实现各个节点系统资源的平均分配;IDS监控代理,主要为IDS管理员提供UI支持,负责收集IDS异常分析结果、报警信息和实时负载状态,并响应IDS管理员的操作请求。综上所述,系统的用例图如图所示:

根据上述系统总体用例图,下面对各个子用例进行详细描述。流量异常触发器代理用例图如图所示:

流量异常触发器代理,为入侵检测系统的感应单元之一,它从数据元中搜集网络特征数据。这里的数据元为网络流量数据,包括局域网与外网接口的上行和下行流量数据,需求描述如表所示:

流量异常触发器代理需求描述

数据流图

流量异常触发器代理用例业务流程表

相关异常事件响应代理用例图

相关异常事件响应代理,在正常网络环境中处于休眠状态,当接收到相关异常事件后唤醒并开始数据采集和异常分析。最后,代理发送分析结果,为其他代理提供分析依据或对网络状态作出分析结论。

相关异常事件响应代理用例描述

相关异常事件响应代理业务流程

明确特征入侵检测代理用例如图所示

明确特征入侵检测代理用例图

明确特征入侵检测代理是入侵检测系统的感应单元之一,它从网络数据中提取并检测特定网络数据位,根据已经明确的网络入侵行为特征判断是否存在明确特征的网络入侵行为。

明确特征入侵检测代理用例描述

本用例业务流程:

明确特征入侵检测代理业务流程

负载均衡代理用例图如图所示

负载均衡代理用例图

负载均衡代理负责维护节点负载信息,并根据最新节点负载状态根据负载均衡算法调整任务消息分发,平衡系统资源利用,同时发送负载状况报告。

负载均衡代理用例描述

本用例业务流程:

负载均衡代理代理业务流程

IDS管理员—IDS监控代理用例如图所示:

本用例主体部分是入侵检测系统监控器界面。为入侵检测系统管理员提供带权限级别控制登陆、入侵检测系统事件、流量监测界面、网络数据包分析界面、用户管理界面。

IDS管理员-IDS监控代理用例描述

本用例业务流程:

管理员-IDS监控代理用例业务流程

总体框架

根据上小节系统目标及需求,构造分布式体系结构图如图所示。

系统总体框架图

从图中看出,入侵检测原型系统中流量异常触发器代理是异常分析的入口并且需要持续的系统资源支持和对全局网络流量数据的监控分析,故将流量异常触发器代理部署在局域网与外部网络的出入口处的服务器节点。同时设置服务器IP为路由器的端口镜像,使的触发器代理能够获得全部网络流量数据。异常事件响应代理(在图中具体化为新源IP地址检测代理和SYN/FIN检测代理)、IDS监控代理和明确特征入侵检测代理对系统资源的需求相对较低,可以部署在普通网络节点中。负载均衡代理运行在各个节点当中,监控系统进程、内存、CPU等资源应用状态,综合调度IDS检测任务,平衡系统资源。

原型系统的实现平台

在上述系统总体框架的基础上,论文选择JADE作为原型系统的实现平台。JADE (Java Agent Development Framework)是一个完全由JAVA语言实现的分布式软件开发框架。它是通过FIPA标准(自治Agent控制标准,其中包括代理安全标准)和一系列图形界面工具应用中间件技术来实现多代理系统。作为目前在研究领域被广泛应用的分布式平台技术之一,JADE已经较为成熟。

一个JADE平台是由一系列的代理容器(Agent Container)组成,这些代理容器分布在整个网络上。代理以JAVA线程的形式在生存代理容器中,这些线程实现JADE运行环境以及维持和执行代理的有关服务。如图所示,其中A代表Agent,AMS为通信协调代理,DF为功能发布协调代理。

JADE平台架构图

JADE并不是专门为入侵检测系统而设计的分布式框架,但它提供了丰富的接口、灵活的开发模式以及一系列支持图形接口的调试工具,大大增加了JADE框架的可塑性。这些特性使得JADE成为本文入侵检测系统原型实现的基于MAS的分布式软件开发平台。应用JADE,MAS入侵检测系统可以采用不同于传统的六类通用组件架构,而是将代理独立化,按照代理的独立功能进行划分。这样代理就与通用组件框架不同,通用框架中的代理之间的输入输出相互依赖,形成串行处理瓶颈。而独立的代理功能划分使得代理之间输入输出无依赖关系,每个代理都可以自己获取需要的数据并进行独立分析,各个代理的分析结果的组合形成整个系统的检测逻辑。

通过对该框架的深入学习研究,应用JADE的全套自治代理机制构建入侵检测代理,同时按照分布式入侵检测系统的需求对该框架进行了制定化,加自主设计的入侵检测系统代理通信机制作为原框架代理通信机制的补充,同时也加入负载均衡机制。通过这些改进将JADE完全转变为一个基于MAS的分布式入侵检测框架。

系统主要功能模块的设计与实现

流量异常触发器代理

流量异常触发器代理作为事件驱动模型中的感应单元,主要由ThreadDetectAgent(代理逻辑类)、ThreadBehavior(代理行为描述类)、CUSUM(非参数CUSUM算法实现类)、CUSUMsyn(应用于SYNFlooding检测的非参数CUSUM算法实现类)组成。流量异常触发器代理的类图如图所示:

流量异常触发器代理类图

部署流量异常触发器代理的节点需要被设置为路由器的端口镜像。当代理启动后,将调用CUSUM算法开始对网络流量数据进行实时检测,其顺序图如图所示:

流量触发器代理顺序图

流量触发器代理调用的非参数CUSUM算法会维护一个检测时间窗(如2小时)。算法在每次计算一个时间段内(如1秒)的实时网络流量数值,并根据计算结果更新整个时间窗的网络流量均值,同时维护时间窗内的历史流量均值的最大值。每次得到单位时间段内的实时网络流量数值后于历史流量均值的最大值相减,之后除以最新均值进行归一化处理。在正常情况下,该算法的计算结果应为一个接近于零的负数。如果发生流量突增,则会导致算法计算结果为正数(并且可能数值较大),这时算法会对正数进行累计,当累计值超过阈值时则说明发生流量异常,最终得出流量异常结论并发出异常消息。非参数CUSUM算法的流程如图所示:

非参数CUSUM算法流程图

异常事件响应代理

异常事件响应代理主体结构与流量异常触发器代理类似,不同之处在于实现了HandleMessage接口用于接收和发送消息。同时与网络数据缓冲池类相关,当需要收集数据时通过DataPool类收集相关数据,在对数据进行分析时调用相关算法类Algorihm。其类结构如图所示:

异常事件响应代理类图

异常事件响应代理的工作顺序图如图所示:

异常事件响应代理顺序图

明确特征入侵检测代理

明确特征检测代理都继承并实现了用于按照相应分析规则分析网络数据包的receive()接口以及代理行为逻辑接口setup()。明确特征检测代理类图如图所示:

明确特征入侵检测代理类图

Land 攻击检测原理:

检测方法:判断网络数据包的源地址和目标地址是否相同。

反攻击方法:适当配置防火墙设备或过滤路由器的过滤规则就可以防止这种攻击行为(一般是丢弃该数据包),并对这种攻击进

行审计(记录事件发生的时间,源主机和目标主机的MAC 地址和IP 地址)。

TCP SYN 攻击检测原理:

检测方法:检查单位时间内收到的SYN 连接是否收超过系统设定的值。

反攻击方法:当接收到大量的SYN 数据包时,通知防火墙阻断连接请求或丢弃这些数据包,并进行系统审计。

Ping Of Death 攻击检测原理:

检测方法:判断数据包的大小是否大于65535 个字节。

反攻击方法:使用新的补丁程序,当收到大于65535 个字节的数据包时,丢弃该数据包,并进行系统审计。

WinNuke 攻击检测原理:

反攻击方法:适当配置防火墙设备或过滤路由器就可以防止这种攻击手段(丢弃该数据包),并对这种攻击进行审计(记录事件发生的时间,源主机和目标主机的MAC 地址和IP 地址MAC)。

明确特征检测代理相互之间独立运行,当这些代理启动后会自动向负载均衡代理注册自己的服务,随后仅当检测到网络异常时与各个代理进行通信,发送异常警报。这一类代理的运行顺序图如图所示:

明确特征入侵检测代理顺序图

负载均衡代理

负载均衡代理通过Updata接口实时维护节点负载信息,通过调用LoadAlgoritm负载均衡算法类进行负载状态计算,最终通过AssignmentDel类进行代理任务分发。其类图如图所示:

负载均衡代理代理类图

负载均衡代理的活动图如图所示:

本文主要给出了入侵检测系统的设计与实现。共分为四个部分:第一部分给出了入侵检测系统的设计目标和需求分析;第二部介绍了入侵检测估系统的总体框架。最后一部分详细描述了系统各部分的设计与实现,在具体介绍每一个部分时,酌情给出了主要的设计思路和各功能模块的类图及时序图等。