基于网格的入侵检测系统的研究与实现
摘 要 网格是部署在广域网上的抽象 应用 ,其基本单位是以实现一个任务为目标的动态
组建的虚拟组织。基于网格的入侵检测系统应该是部署在虚拟组织之上的虚拟组织。本文
首先 分析 了网格对于入侵检测系统的要求以及当前网格入侵检测系统的不足之处,然后
提出了基于虚拟组织的网格入侵检测系统模型(VGIDS)。 关键字 网格;虚拟组织;入
侵检测
1 入侵检测系统分析 表 1 分析了入侵检测系统结构变化
网格的运行是由用户发起任务请求,然后寻找资源搭配完成任务,这样形成的团体称为
虚拟组织(VO),网格入侵检测系统是为其他 VO 提供服务的 VO[1], 目前 其面临的主要问
题如下: (1)分布性:包括资源分布和任务分解。 (2)动态部署:系统是为 VO 提供服
务的,其部署应是动态的。 (3)动态形成:系统本身也是一 VO,是动态形成的。 (4)最
优方案选择:本系统需多种网格资源协同进行,要选择一个最优方案。 (5)协同 计算 :
保证按照入侵检测流程顺利运行。 (6)动态改变:防止资源失效。 目前关于网格入侵
检测系统的 研究 [2]只能说解决了分布性、动态形成、协同计算。而对于动态部署[1] 、
动态改变[3]仍处于研究中。2 VGIDS 系统模型 VGIDS 基于开放网格服务(OGSA)思
想提出了一个公共服务——GIDS Service 来解决目前网格入侵检测系统面临的问题。整个
VGIDS 结构如图 1 所示。 (1)VO-Based:网格是一个虚拟组织的聚集,本系统提出一虚
拟组织目录(VOL)。用户向 GIDSService 提交请求并将被检测 VO 代号作为参数。
GIDSSevvice 查找 VOL 获取 VO 信息。当 VOL 数量减为一就成为单一网格应用,可由网格
管理(GM)将 VO 信息传给 GIDSServic
(2)GIDSService:负责资源发现,调度。具体包括: RI(Request Interface):服务
接口,负责服务请求及 VO 信息获取。同 VOL 解决动态部署。 DA(Delegation Agent)
:委托代理。同用户交互获得用户委托授权。 DD(Distributed Data):分布式数据。
存储 VGIDS 需要的资源信息。解决分布问题。 RQ(Resource Query):资源查询。当
获得用户授权后便由 RQ 根据 DD 描述向资源目录(RL)查找资源。解决分布问题。 PC(
Plan Choose):最优方案选择。当从 RL 获得可用资源后 PC 根据 AM(任务管理)要求选择
一个最优方案。本文称为多维最优路径选择问题。 AM(Assignment Manage):任务管理
。首先根据 DD 存储所需资源的调度信息,当 VGIDS 形成后,根据 PC 的方案选择及 DD
存储的资源信息进行任务的调度和协同各分布资源的交互,解决协同计算。 IR(Intrusion
Reaction):入侵响应。 SN(Security Negotiate):安全协商。同资源和用户的安全协商。
DI(Dynamic Inspect):动态检查。负责检查资源失效向 RQ 发起重新查找资源请求。解
决动态改变问题。 LB(Load Balance):负载平衡。主要根据 DD 信息解决网格资源调度
的负载平衡问题。3 VGIDS 服务描述 本系统是一动态虚拟组织,在系统运行之前必须
以静态网格服务的形式部署于网格之上,当用户申请时再动态形成。 定义 1:VGIDS 的
静态定义如下:VGIDS=<Base,Resource,Role,Task,Flow,Relation> Base 为
VGIDS 基本描述,Base=<ID,Power,IO,Inf,log,goal,P>。ID 为虚拟组织编号;
Power 为获得的授权;IO 为被检测对象;Inf 为监控 VGIDS 获得的信息文件;log 为系统日
志;goal 为 VGIDS 目标,包括调度算法所估计的系统效率及用户要求;P 为系统交互策略
,需同网格资源进行交互,授予资源角色和相关权利并同时分配相关任务。 Resource
为 VGIDS 的所有资源,Resource=<IP,Property,Serve,Power,P>。 IP 为资源地址
;Property 为资源属性(存储、分析),方便角色匹配;Serve 为资源可提供的服务指标;
Power 为使用资源所要求的授权;P 为资源交互策略。 Role 为存在的角色类型,
Role=<ID,Tas,Res,Power>。ID 为角色的分类号,按照工作流分为 5 类角色分别对应
VGIDS 的 5 个环节;Tas 为角色任务;Res 为角色需要的资源类型;Power 为角色所获得
的权利。 Task 为工作流任务集合。Task=<ID,Des,Res,Role,P>。ID 为任务标号
;Des 为任务描述;Res 为需要的资源种类;Role 为任务匹配的角色;P 为 Task 执行策
略。 Flow 为工作流描述文件,Flow=<Role,Seq,P>。Role 为角色集合,Seq 为角色
执行序列,P 为对于各个角色的控制策略。 Relation 为已确定资源 Resource 和 Role 之
间的关系。Relation=<Res,Role,Rl>。Res 为资源集合,Role 为角色集合,Rl 为对应关
系。4 多维最优路径选择 问题描述 将图 1 抽象为图 2 模型 定义 2:Graph=(U、
D、A、{Edge})。 U 为所有被检测对象的集合,Un=( Loadn、Pn),Loadn 为 Un 单位时
间所要求处理的数据,Pn 为 Un 在被检测 VO 中所占权重,如果 P 为空,则按照 Load 大
小作为权重。 D 为存储服务集合,Dn=(Capn、Qosdn),Capn 为 Dn 提供的存储容量。
Qosdn 为 Dn 提供的服务质量,近似为数据吞吐率。 A 为分析服务集合,An=(Classn
、Qosan),Classn 为 An 处理的数据种类,如系统日志或网络流量。Qosan 为 An 提供的
服务质量,近似为处理速率。 Edge 为边的集合,有网络传输速度加权 v
定义 3:Qos 定义为一个多维向量,可用一个性能度量指标的集合表示: {M1(t)、
M2(t),…,Mn(t)} Mn(t)为一个与网格服务质量有关的量,如 CPU 的主频、网络速度、
内存。服务的执行过程体现出来的性能参数是一条 n 维空间的轨迹 M,这个 n 维空间的每
一维代表一个性能指标 M=R1*R2*…*Rn 其中,Rn 是性能指标 Mn(t)的取值范围。在
本系统中存在两类 Qos,分别为 D 和 A。本系统强调实时性,所以 CPU、RAM 和网络速度
占很大权重,Qos 计算公式如下
X1,…Xn 是 n 个独立变量,表示 VGIDS 所选路径;公式<5>表示最大耗费时间;公式
<6>—<8>表示所有对于 Xn 的约束条件。由于 Xn 变量难以确定并且约束条件种类较多所
以难以将上述问题标准化为公式<5>—<8>。 算法描述 本文利用贪心选择和
Dijkstra 算法进行调度。 按照用户给出的 U 的权值 P 从大到小进行排序,if(P==NULL
),则按 Load 从大到小进行排序得到排序后的对象数组和负载数组为 U[i](0<i≤n,n
为 U 的大小);Load[i] (0<i≤n,n 为 U 的大小) for(i=0;i<=n;i++),循环对 U 和
Load 执行以下操作: (1)对于所有边,定义其权值为网络传输时间 t=Load[i]/v,对
于所有服务 D 和 A 定义其处理数据时间为 t1=Load[i]/Qos,将 t1 加到每一个服务的入边
上得到最终各边权值,如果两点之间没有边相连则 t[j]为∞。 (2)定义 Capmin[i]为 U[i]
对于数据存储能力的最低要求,Qosdmin 为 U[i]对于 D 中服务质量的最低要求,Qosamin
为 U[i]对于 A 中服务质量的最低要求。对于所有 D 中 Cap<Capmin[i]或者 Qosd<Qosdmin
的节点以及 A 中 Qosa<Qosamin[i]的节点,将其所有输入和输出边的 t 设为∞
(3)设所有点集合为 V,V0 为检测对象,边 Edge 定义为<Vi,Vj>。用带权连接矩阵
arcs[i][j]表示<Vi,Vj>的权值。定义向量 D 表示当前所找到的从起点 V0 到终点 Vi 的最短
路径,初始化为若 V0 到 Vi 有边,则 D[i]为边的权值,否则置 D[i]为∞。定义向量 P 来保
存最短路径,若 P[v][w]为 TRUE,则 W 是从 V0 到 V 当前求得最短路径上的顶点。 (4
)for(v=0;v<;v++){ final[v]=false; D[v]=arcs[v0][v];for(w=0;w<;
++w) P[v][w]=false;//设空路径 if(D[v]<INFINITY){P[v][v0]=true;P[v][v]=true;}}D[v0]=0
; final[v0]=true;//初始化,V0 顶点属于已求得最短路径的终点集合 for(i=1;
i<;++i){ min=INFINITY; for(w=0;w<;
++w) if(!final[w]) if(D[w]<min){v=w;min=D[w];} final[v]=true; for(w=0;
w<;++w)//更新当前最短路径及距离;
if(!final[w]&&(min+arcs[v][w]<D[w])){ D[w]=min+arcs[v][w];
P[w]=P[v];P[w][w]=true; } }}扫描 A 中各点,选取其中 D[i](Vi∈A)最小
的一点 X,然后从 P 中选取从 V0 到 X 的路径便为所选一条 VGIDS 路径。 (5)将所选
路径上的边的速率改为 V=V-Load[i],D 的 Cap 改为 Cap=Cap-Capmin,D 的 Qosd 改
为 Qosd=Qosd- Qosdmin,A 的 Qosa 改为 Qosa=Qosa-Qosamin。 (6)++i,回到步骤
(1)重新开始循环。5 系统开发 本项目主要利用 Globus 工具包外加 CoG Kits 开发工具
。Globus 作为一个广泛 应用 的网格中间件其主要是针对五层沙漏结构,并利用
GridService 技术逐层对五层沙漏提出的功能单源进行实现[5],表2简单叙述 VGIDS 实现
的各层功能及 Globus 中对应服务调用。 实验时 VGIDS 部署在 Linux 系统上,采用基于
Linux 核心的数据采集技术及 Oracle10g 作为数据库系统解决分布式存储问题,数据 分析
技术仍采用现有的基于规则的入侵检测技术。系统试验平台如图 3 所示
本平台共 8 台机器,一台网格目录服务和 CA 认证中心,一台部署 VGIDS 服务。两台机
器作为被检测对象,相互之间可实现简单网格协作,本试验两台机器之间通过 GridFtp 服
务传输数据。其余四台机器分别实现两个存储服务和两个分析服务。6 总结 和展望
目前 网格入侵检测系统主要是针对某一特定网格应用静态执行。而本文所提出的
VGIDS 则是针对网格运行模式——虚拟组织所提出的通用网格入侵检测服务。本系统事先
进行静态定义,然后当有服务请求时动态解析定义文件,动态形成可执行的网格入侵检测
系统。本系统解决目前网格入侵检测系统面临的动态部署、动态形成、最优方案选择、动
态改变等问题。 对于网格入侵检测系统同样还面临着如何解决数据异构,如何发现分布
式协同攻击,如何保障自身的安全等问题,本模型有待进一步完善。 参考 文献 [1] Ong
Tian Choon and Azman Samsudin. Grid-based Intrusion Detection System . School of
Computer Sciences University Sains Malaysia,IEEE,-1032[2] Alexandre
Schulter and Júlio Albuquerque REis. A Grid-based Intrusion Detection System. Networks
and Management Laboratory Federal University of Santa Catarina,Proceedings of the
International Conference on Networking,International Conference on Systems and
International Conference on Mobile Communications and Learning ,
2006[3] Tolba M F,Abdel-Wahab M S,Taha I A,et al,“GIDA:Toward Enabling Grid
Intrusion Detection Systems”,CCGrid,11th May,2005[4] Fang-Yie Leu and Jia-Chun
Lin(eds). Integrating Grid with Intrusion Detection. Department of Computer Science and
Information Engineering,Tung-Hai University,Proceedings of the 19th International
Conference on Advanced Information Networking and ,-6[5]都
志辉,陈渝,刘鹏.《网格计算》.2002 年 8 月 17 日,清华大