摘 要 网格是部署在广域网上的抽象应用,其基本单位是以实现一个任务为目标的动态组建的虚拟组织。基于网格的入侵检测系统应该是部署在虚拟组织之上的虚拟组织。本文首先分析了网格对于入侵检测系统的要求以及当前网格入侵检测系统的不足之处,然后提出了基于虚拟组织的网格入侵检测系统模型(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 多维最优路径选择
4.1 问题描述
将图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。
4.2 算法描述
本文利用贪心选择和Dijkstra算法进行调度。
按照用户给出的U的权值P从大到小进行排序,if(P==NULL),则按Load从大到小进行排序得到排序后的对象数组和负载数组为
U[i](0i≤n,n为U的大小);Load[i] (0i≤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中CapCapmin[i]或者QosdQosdmin的节点以及A中QosaQosamin[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;vv.number;v++)
{
final[v]=false;
D[v]=arcs[v0][v];
for(w=0;wv.number;++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;iv.number;++i){
min=INFINITY;
for(w=0;wv.number;++w)
if(!final[w])
if(D[w]min){v=w;min=D[w];}
final[v]=true;
for(w=0;wv.number;++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技术逐层对五层沙漏提出的功能单源进行实现,表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,2003.1028-1032
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 Technologies.IEEE,2006
Tolba M F,Abdel-Wahab M S,Taha I A,et al,“GIDA:Toward Enabling Grid Intrusion Detection Systems”,CCGrid,11th May,2005
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 Applications.IEEE,2005.1-6
都志辉,陈渝,刘鹏.《网格计算》.2002年8月17日,清华大学