基于多Agent的网络防御建模与仿真

2013-11-09 01:43廖善良来嘉哲
指挥控制与仿真 2013年6期
关键词:信息处理过滤器分布式

廖善良,来嘉哲,杨 帆

(装备学院,北京 101416)

随着信息技术的迅猛发展,网络逐渐成为当今“信息社会”的重要基础设施,同时带来了新的问题——信息安全问题。网络攻击是引发网络安全问题的最重要因素,其中分布式拒绝服务攻击是网络攻击中最普遍最有威胁度的攻击方式之一,Penemon研究所最新的一项研究显示,在2012年有64%的金融机构遭遇过至少一次的DDoS攻击。因此做好网络安全防御工作意义重大。

尽管对于网络攻击防御的研究很多,但是由于网络攻击的复杂性、分布性、不可重现性等特点,很难做好网络防御。通过网络建模仿真重现网络攻击过程,对于研究网络攻击的原理以及做好网络安全防御具有重要意义。但是传统的网络攻击防御建模方法已很难满足现在的需要,因此找寻更加有效的建模方法迫在眉睫。多Agent(Multi-Agent System,MAS)建模技术综合发展了分布式技术和面向对象技术,具有更高的智能性和灵活性,特别适合处理复杂和难以预测的问题。它为网络攻击建模和仿真提供了一个崭新的途径,对于提高网络防御及信息安全具有重要意义。

1 Agent和多Agent系统

针对复杂系统问题研究的需求,美SFI(Santa Fe Institute)学者提出了一种新思想——Agent。20世纪90年代以来,Agent已成为计算机和人工智能领域研究的重要前沿。Agent技术综合发展了分布式技术和面向对象技术,具有更高的智能性和灵活性,特别适合处理复杂、分布和难以预测的问题。在各个不同领域和学科中,Agent具有不用的含义。一般认为,Agent是一个能够感知外界环境,并具有自主行为能力的、以实现其设计为目标的自治系统[1]。Agent一般具有自治性、反应性、社会能力、主动性等特性。从Agent的结构出发,单个Agent的结构[2]通常分为慎思型Agent、反应型Agent和混合型Agent。Agent基本结构如图1所示。

图1 Agent的基本结构

单个Agent受其资源和能力的限制,无法适应大规模复杂问题的求解,多Agent系统为解决上述问题提供了一个较为有效的方法和技术途径。多Agent系统[3]指的是由多个相互作用的Agent构成,能够共同完成一定任务的系统。这些Agent成员之间相互协作,相互服务,共同完成一个任务,其协作求解能力超过了单个Agent。MAS能够利用并行分布式处理技术和模块化设计思想,把复杂适应系统划分成相对独立的Agent子系统,通过Agent之间的合作与竞争来完成对复杂问题的求解。

2 多Agent建模原则及仿真步骤

2.1 多Agent建模基本原则

多Agent建模仿真是一种由底向上的建模方法,采用Agent相关技术将Agent作为系统的抽象单位,建立个体Agent模型,并将建立的多个个体Agent模型组合成整个系统的系统模型。基于Agent模型建模思想为:

1)Agent是建模的基本单位。在建模过程中,将系统的实体抽象成Agent,抽象的Agent在行为和状态等方面能够和实体保持一致。

2)智能型。Agent的智能型是保证个体Agent功能智能的前提。

3)Agent之间的交互关系。Agent之间的交互是实现个体Agent之间进行信息交换和相互服务的基础,A-gent之间的交互是通过通信来实现的。

用MAS建模方法对复杂系统进行建模,一般是都是本着由简单到复杂,由易到难的原则进行建模。具体的实现可以由复杂系统的粗粒度到细粒度;由单处理器到分布式仿真;由较少的Agent数量到大量的A-gent仿真。

2.2 多Agent建模仿真步骤

建立基于多Agent建模仿真技术的基本步骤(如图2)包括:系统结构分析、模型框架设计、模型建立、仿真及结果分析四大步骤。

1)系统结构分析

首先对所要研究的目标系统进行分析,明确仿真的目标和要求。然后根据对系统的实体和功能进行划分,把系统中的各种实体映射为仿真系统中的Agent,并将分解后的功能分配给相应的Agent。主要目的是根据仿真目标建立合适的整体行为表示,对目标系进行划分。

2)模型框架设计

根据系统结构分析的结果分析问题,并且分配任务给Agent,决定参与系统运行需要的Agent的数量及种类,建立模型的体系结构。

3)建立模型

根据所构建的体系结构构建复杂系统的物理模型及交互模型(包括各类Agent的实体模型以及各类A-gent之间的交互模型)。对于系统中的各个Agent,根据其智能性的高低分析和设计Agent的基本结构。多Agent系统中的Agent之间通过交互和协调达到任务求解的目的,因此需要描述Agent的社会关系,如Agent的协调、协作、交互等。

图2 多Agent建模仿真流程

4)仿真及结果分析

整个MAS建模过程是采用自底向上的设计方法,首先定义单个Agent,然后再对MAS集成。对建立的系统模型,确定模型的参数,选择合适的仿真技术和编程语言实现仿真;根据仿真结果对仿真模型和参数进行修改和调整;进行仿真实验,最后分析实验结果。

3 基于Netlogo的网络防御建模仿真分析

3.1 选取建模仿真对象

选取网络防御中分布式拒绝服务攻击防御作为建模仿真对象进行建模仿真研究。要想做好网络防御,首先要了解和掌握攻击的原理和过程,探究不同的因素对于网络攻击结果的影响,进而才能有效地进行防御。

分布式拒绝服务攻击[4](DDoS attack-Distributed Deny Of Service attack)是攻击者采用分布式技术,通过控制多台计算机(又叫僵尸机)对一个或多个受害者(目标)同时发动拒绝服务攻击。DDoS攻击是一种典型的网络攻击方式,其过程[5]一般包括以下几个步骤:扫描探测网络、构建攻击网、安装攻击程序、发动攻击四个步骤。攻击者要发动DDoS攻击,必须要控制大量的主机组成DDoS攻击网络。攻击者首先对远程网络主机进行漏洞扫描,利用主机上的一些漏洞,攻击者可以获得这些主机的控制权,并在其中植入DDoS攻击软件以控制其发动攻击。这些受控主机由植入的DDoS攻击软件功能的不同而构成层次结构网络。DDoS攻击过程如图3所示。

图3 DDoS攻击过程

3.2 仿真平台

NetLogo是一个用来对自然和社会现象进行仿真的可编程建模环境,它是由Uri Wilensky在1999年发起的,由连接学习和计算机建模中心(Center for Connected Learning and Computer-Based Modeling,CCL)负责持续开发,目的是为科学研究和教育提供易用且强大的计算机辅助工具,特别适合对复杂网络进行建模仿真。

NetLogo自带 turtle、patch、link等多种类型的 A-gent,建模人员能够向成百上千独立运行的Agent发出指令,这就使得探究复杂系统尤其是复杂网络中的各元素(节点)之间的相互关系成为可能。NetLogo的底层是用java编程语言实现的,可以在所有的主流平台上运行,也可以作为Java Applets在浏览器中运行。

3.3 物理模型

目前的防御方法多种多样,要建立包括所有防御类型的模型是不大可能,在这里我们只是针对过滤类型的防御方法进行建模。DDoS防御模型中的Agent主要包括以下几种类型:网络信息收集Agent,网络信息处理A-gent,攻击检测 Agent,过滤器 Agent,攻击调查 Agent。模型中各类Agent成员的功能及其基本结构如下。

1)网络信息收集Agent

收集网络中的数据包信息以及统计流向被保护目标的数据。Agent具有计算流量大小,判断出能产生最大流量的节点地址等功能。其基本结构如图4所示。

图4 网络信息收集Agent基本结构

网络信息收集模式指定网络信息收集需要收集什么样的网络信息,它可以根据网络信息处理的消息进行更新。数据库用来存储收集到的网络状态信息。控制模块用来控制前面两个模块,并能发送信息给其他Agent。

2)网络信息处理Agent

网络信息处理Agent具有学习的能力,能够处理数据包信息和创建正常流量模型。模拟开始后,网络信息处理Agent把当前的网络流量与正常流量模型进行分析比较,获得异常流量产生的节点地址,并发送给攻击检测 Agent。其基本结构与网络信息收集 Agent类似。

3)攻击检测Agent

攻击检测Agent的功能是根据从网络信息收集A-gent与网络信息处理Agent发来的数据来判断是否具有DDoS攻击。如果判断有DDoS攻击,则把从网络信息收集Agent与网络信息处理Agent接到的攻击源地址列表发送给攻击检测Agent和过滤器Agent。攻击检测Agent的结构简单,主要是有一个攻击判断模块。

4)过滤器Agent

过滤器Agent的功能是根据攻击检测Agent的数据进行过滤或者采取其他防御措施。

5)攻击调查Agent

攻击调查Agent的功能是追踪并打败攻击Agent。当收到从攻击检测Agent传来的信息后攻击调查Agent检验攻击Agent所在节点的IP地址并试图打败它们。

3.4 交互模型

DDoS防御系统的交互模型主要描述防御实体A-gent之间的交互关系,主要包括通信交互和协作交互,对应到模型中就是各Agent之间的通信关系和协作关系。

DDoS防御模型中的Agent主要通过发送状态信息、攻击信息等方式进行通信和交互,交互关系如图5所示。

图5 DDoS攻击模型的交互关系

网络信息收集Agent收集网络状态信息并发送给网络信息处理Agent,网络信息处理Agent告诉网络信息收集Agent需要收集哪些状态信息,将接收到的信息与正常网络模型进行比较,并将比较结果发送给攻击检测Agent,由攻击检测Agent判断是否发生了 DDoS攻击。如果有攻击,攻击检测Agent将攻击源信息发送给攻击调查Agent和过滤器Agent。过滤器Agent根据攻击源信息对数据包进行控制,攻击调查Agent对攻击源进行追踪。

在MAS系统中,如何实现Agent之间的通信至关重要,Agent通信语言是实现Agent通信的关键,它所表达的交互信息主要包括命令、请求、告知等。Agent通信语言目前主要有KQML、FIPA等。KQML是目前使用较为广泛的基于言语行为理论的Agent通信语言。作为一种层次结构语言具有三层结构:内容层、通信层和消息层。具体含义如表1所示。

表1 KQML语言的三层结构

本文应用KQML消息传递方式,根据Agent之间消息规范可以定义Agent的消息格式为:

其中Sender-ID为发送方Agent的 ID号,Receiver-ID为接收方Agent的ID号,Context为通信的内容。

例如本文给出一条防御方法的消息,可以写为:

防御方法可以是过滤也可以是流量控制,根据防御的具体情况而定。此外,还有防御强度、防御节点地址等消息,在这里由于篇幅受限就不做一一介绍了。

3.5 系统实现及结果分析

3.5.1 仿真系统实现

Netlogo平台提供了三种仿真构件:patches、turtles、observer,turtles是具有一定属性和行为能力的构件,在由patches构成的仿真环境中它可以按照既定的规则自由移动,与patches发生相互作用,实现对现实世界的模拟,observer则是对仿真过程进行监控。在此基础上,结合上面建立的实体模型,建立了基于Netlogo的DDoS攻击防御仿真系统。主界面如图6所示。

图6 界面初始状态

参数设定:可以用来调整此系统中的节点(主机)数量以及拓扑结构;设定起始时刻各种类型主机的数量、感染率以及获得免疫的概率等。

变化曲线:是用来显示各种类型主机数量在整个仿真过程中所占的主机总数的百分比。

动态显示:更加直观地显示每一时刻受攻击主机的情况。

开关按钮:控制每次仿真的启停。

3.5.2 仿真实例与结果分析

假定某一小型网络中主机总数为N=500,起初被感染主机数n0=12台,为了方便仿真将网络节点的平均值设定为6。

为了能直观地反应出网络防御的重要性和有效性,本文进行两次仿真实验,第一次是DDoS攻击后不加过滤防御措施,只靠其他防御措施防御;第二次是在攻击后一段时间增加防御措施。

仿真1:

网络攻击开始后,随着网络攻击的延续,受攻击的主机越来越多,感染主机也越来越多。在攻击者攻击网络之前,每台主机都处于易感状态,因此,很多主机受到攻击后都被感染,而且感染越来越快。

攻击持续一段时间后,由于大部分主机在受到攻击后采取了一系列的补救措施,使得感染主机状态调整为免疫状态,直至最后一台感染主机变为免疫。

该小型网络受到攻击后,各类主机所占的比例曲线图如图7所示。

图7 各类主机所占的比例曲线图(一)

由图7可知,从攻击开始到DDoS攻击结束,最后网络中的主机只有两种状态,易感状态和免疫状态。免疫状态占55%左右,易感状态占45%左右。并且感染主机比例最多达到59%左右。

仿真2:

在相同网络结构(包括主机数量、网络节点、拓扑结构等)情况下,在t=138时,根据检测到的信息分析,判断有DDoS攻击,攻击检测Agent将攻击源信息发送给攻击调查Agent和过滤器Agent。过滤器Agent根据攻击源信息对数据包进行控制,攻击调查Agent对攻击源进行追踪。

对比图7可以发现图8受攻击主机数量明显减少,尤其是从t=138之后,受攻击感染主机比例大幅降低,并且最高感染比例在48%左右,明显少于未加过滤防御之前的59%。主要原因是过滤器过滤掉了部分的攻击包,起到了一定的防御效果。由于仿真图中曲线代表的是各类主机的当时所占比例的曲线,在图7中由于没有防御措施情况下,感染主机数量及比例比图8的要高,这就导致图7中易感主机的比例会低于图8;图7中的感染主机多,到最后图7中免疫的主机必然多,比例也就会高于图8。

图8 各类主机所占的比例曲线图(二)

4 结束语

本文在网络防御理论的基础上,通过多Agent建模仿真方法,以典型的网络防御为建模对象,建立了基于多Agent的DDoS防御模型。通过各类Agent的物理模型、交互模型等机制来建立了此模型,在一定程度上解决了网络系统准确建模的困难。然后在Netlogo平台上进行仿真,通过设定各类Agent的主要属性参数等来完成了此模型的仿真。通过仿真结果分析,验证了多Agent建模方法用于网络防御建模的可行性,提高了网络系统建模的有效性,为后续的多Agent建模方法的研究提供了方法指导,对网络系统建模与仿真具有借鉴意义。

[1] Wooldridge M,Jennings N R.Intelligent Agent:Theory and Practice[J].Knowledge Engineering Review,1995,10(2):115-152.

[2] 廖守亿.复杂系统基于多Agent的建模与仿真方法研究及应用[D].长沙:国防科技大学博士学位论文,2004:6-8.

[3] 叶超群.多Agent复杂系统分布仿真平台中的关键技术研究[D].长沙:国防科技大学博士学位论文,2006:19-20.

[4] 李目海.基于流量的分布式拒绝服务攻击检测[D].上海:华东师范大学博士学位论文,2010:16-17.

[5] 荆一楠.分布式拒绝服务攻击中攻击源追踪的研究[D].上海:复旦大学博士学位论文,2006:9-11.

猜你喜欢
信息处理过滤器分布式
“毫米波雷达系统设计与信息处理技术”专题征文通知
基于RTDS的分布式光伏并网建模研究
东营市智能信息处理实验室
基于Revit和Dynamo的施工BIM信息处理
三步拆卸洋马YH880/1180 收割机变速箱内过滤器
提高中央空调高效过滤器使用寿命的几点思考
污染控制—燃料电池的使能技术
面向地震应急响应的互联网信息处理
基于预处理MUSIC算法的分布式阵列DOA估计
新型纳米材料过滤器