计算机工程
Computer Engineering
1999年　第25卷　第9期　Vol.25 No.9  1999



基于Agent的多域网络安全模型
张伟奇　汪为农
　　摘　要：根据当前网络系统的开放性、分布性等特点，分析并提出了一种基于Agent的多域网络安全域、自治安全域和安全Agent的体系结构进行了讨论．
　　关键词：安全域；代理；远程方法调用
Multi-domain Network Security Model Based on Agent
Zhang Weiqi Wang Weinong
(Department of Computer Science and Engineering of Shanghai Jiaotong Unviersity, Shanghai 200030)
　　Abstract　According to the open feature and distribution of current networks, this paper analyzes a multi-domain security model based on Agent. Also, the architectures of multi-domain security model, autonomous security domain and security Agent are discussed.
　　Key words　Security domain; Agent; RMI
　　对于一个巨型的异构网络，如何进行有效的安全管理和控制？从现实的信息基础结构的角度来看，一个有效的解决方法是将一个巨型网络系统划分为许多小的自治安全域，这样就可以将大型网络的认证、授权、审计和安全控制等任务交给下面的自治域代理（Agent）来完成，从而建立层次型的安全管理体制。
1　基于Agent的多安全域模型
　　定义 安全域是由同一个管理器管理的一组安全主体和客体，在安全域中的所有对象的活动都按照同种或相似的安全规则进行工作[1]。一个安全域具有比较明确的边界，也就是说，安全域之间的通信有且只能有一个"扼流点"，所有的域间通信必须通过这个扼流点的检查。但由于各个安全域之间的平台、协议、策略等的差异，域间进行互操作的难度相当大。整个网络系统的安全性最终必须通过自治域之间的数据协作处理和信息共享互用来实现，这就有一个安全域之间和域内对象之间安全通信的问题。所以必须将Agent引入安全域，通过定义Agent间的统一、安全的通信协议，来解决异构网络环境下的通信问题。
　　Agent至今没有一个统一的定义，只能对它作一个大致的描述。Agent是一个抽象的实体，它能作用于自身和外界环境，并能对外界环境作出反应[2]。基于Agent的多安全域模型如图1所示。

图1　基于Agent的多安全域模型
　　.系统要素：MOM（Monitor Of Monitor）、域安全管理Agent、客户Agent，实际上MOM可以被看作是一个超级Agent。
　　.安全域划分原则：整个网络系统按特定策略(地理分布或组织)被分成多个安全域，分别为D0，D1，D2……。D0仅包括MOM和域管理Agent，称为主干域。域D1、D２等包括域管理Agent、客户Agent。主干域和域的体系结构基本一致，主要是作用对象和范围不同。按照类似的方法，可以在一个域中划分出多个子域。这样整个网络就形成一个树型的逻辑结构，它符合了现实的网络体系结构。
　　.管理原则：MOM面向主干域，负责管理所有域管理Agent，MOM 作为所有域管理Agent共同信任的第三方，一方面提供认证服务，另一方面接收各个域的安全事件报告，并为不同的安全域配置相应的信任关系和安全级别，配置安全事务软件，同时对域间的安全通信作审计和分析。域管理Agent面向管理域，负责管理客户Agent。
　　MOM和各级Agent都带有一个拓扑信息表，它包含到上级Agent、同级Agent以及本地资源的可达性信息（位置、安全级别、域信任关系以及客户访问权限等）和简单的路由信息，其工作原理类似于DNS。在MOM和子域管理Agent、域管理Agent和客户Agent之间进行通信时，首先应检查本地拓扑信息表。本地拓扑表掌握着它所管理的域内资源的可达性信息和基本路由信息。比如客户Agent发出请求给子域管理Agent时，子域管理Agent查自己的表。如目标不在同一子域，则将请求交给上级Agent。上级Agent根据客户的权限和源／目标域的信任关系、安全级别等进行认证，判定是否进行应答，如果允许则回答这个请求,子域Agent获得授权后与目标域建立连接，完成被请求的任务。
　　.各个域的拓扑信息的算法基本类似，下面以主干域为例，给出拓扑算法：
　　.系统管理员设定MOM和备份MOM、子域管理Agent和备份子域管理Agent；
　　.首次启动后或正常结束前，子域管理Agent必须向MOM发送在线／离线事件；
　　.子域管理Agent发生故障时，备份子域管理Agent接替工作，并向MOM报告故障事件；
　　.MOM根据事件类型修改拓扑信息表，并向所有在线子域管理Agent和备份MOM发送更新的拓扑信息；
　　.子域管理Agent按照MOM发来的信息修改拓扑信息表，并定时做备份。
2　安全域的体系结构
　　基于Agent的多安全域的解决方案中，每个域应采用多种安全技术，由内而外、自下而上提供多层保护。其中每个自治域管理Agent至少应包括防火墙Agent、网络安全管理Agent、域安全认证Agent和授权服务Agent等安全服务器(如图2)。域内或域外的用户对域内资源的访问(如FTP Server，Email Server等)，最终是通过单个域管理Agent或不同域管理Agent之间的协作来解决安全互通。

图2　安全域体系结构
　　每个域的网络安全管理Agent，根据系统管理员的安全策略(如域的安全规则集、域间信任关系和各种管理对象)来保证用户安全使用网络。它的主要功能是：
　　.完成域安全工作状态的跟踪，及时收集网络上的安全事件，进行适当的审计分析，生成各种安全信息数据库，使得系统可以及时地发现网络的安全故障，并及时地采用相应的安全措施；
　　.对本域内的服务器配置安全服务软件，制定安全策略，派遣安全任务，对域内的管理对象的安全级别和安全性漏洞进行分配、管理和检查；
　　.对防火墙Agent进行轮询收集安全管理信息，将动态变化的安全策略反映到防火墙Agent的安全控制策略上。
　　.向上级域安全管理Agent报告本域内重要的安全事件和涉及多个域的安全事件，并接受上级Agent的配置／控制和有关软件、事务、消息。
　　由于安全域之间通过不可信任的公网互联，存在外部非法用户使用本域内网络资源的可能，必须验证用户身份，为此在域安全管理Agent中加入认证服务Agent。授权服务Agent的功能是对客户端访问进行授权工作。末端服务器将各个客户的访问权限和安全级别发给授权服务器，由它来负责分发授权票据给已经认证的客户。如外部用户需访问域内的数据库，首先由认证服务Agent发认证票根，然后由授权服务Agent发授权票根，协同防火墙Agent一起对用户请求进行控制的任务。授权服务Agent、认证服务Agent和域网络安全管理Agent协同维护本地拓扑信息表。
3　安全Agent的体系结构
　　域管理 Agent 中的各个安全服务器都是以 Agent 的方式工作的。这主要是考虑各类安全服务器之间进行有效的对话。Agent 模式使各种服务器统一于一种平台、协议和语言。Java 虚拟机
(JVM)可以在各种计算机(服务器、工作站、PC等)上建立单一的一致性应用程序接口。Java中的RMI(远程方法调用)为基于Client/Server机制的对象间的通信提供了解决方案[3]。因此，这里将JVM和RMI引入了安全Agent的体系结构中，如图3所示。从安全域的应用出发，将Agent分成3层：应用层、工作层和通信层。

图3 安全Agent的体系结构
3.1 Agent的系统要素描述
　　应用层为Agent独自的工作空间，Agent通过该层来完成分配给它在其能力范围内的安全服务工作。不同的Agent有不同的能力和知识，这样每个域安全管理Agent可以制定出自己的安全策略。
　　工作层提供与应用层的界面，根据应用层传递的信息，评估模块判断出任务是否可由本地安全服务器Agent完成，或是必须同其它安全域协同完成，或是交付下一级的安全服务Agent来完成。相应地，评估模块将任务交付下列模块分别处理：本地模块、协作模块和下级Agent接口模块。3个模块在JVM上得到统一的工作平台，通过RMI进行有效的对话，从而协同完成安全服务。
　　工作层的结构比较复杂，对各个模块说明如下：
　　(1)本地模块：完成落在本域范围内的任务。包括拓扑机、推理机、学习机和系统安全数据仓库。
　　.本地拓扑机：为本域内客户Agent发出的资源请求或目标资源落在本域内的请求提供定位服务；
　　.推理机：利用已有的安全知识、规则等，对请求进行安全检查，作出判断；
　　.学习机：把推理机得出的或上级Agent提供的安全知识，加入系统安全知识库，使系统具有一定的学习能力，提高安全事件检查能力，及时发现网络攻击事件；
　　.系统安全知识仓库：存放本Agent有关安全知识，是Agent借以决策的依据。
　　(2)协作模块：负责Agent之间的通信和交互，向上级Agent报告本地的安全事件，接受来自上级Agent的指令，提交涉及其他域的请求。这些功能通过消息驱动机制来实现，主要包括以下几方面：
　　.协作拓扑机：定位本域用户发出的请求应落在本Agent以外的哪个Agent。这种拓扑服务需要上级Agent的拓扑机的协作，其工作原理类似于DNS。
　　.信任域关系：描述本Agent的安全能力和级别，Agent间的信任关系。
　　(3)下级Agent接口模块：为域安全管理Agent和被管理对象(服务器、主机等)之间的通信提供接口。这模块包括３部分：事件报、软件分发／任务派遣和JDBC。本接口通过JDBC访问数据库，数据库存放管理对象的有关安全信息。通过事件报机制，Agent接收下级管理对象的安全事件报告。Agent通过软件分发／任务派遣为管理对象配置安全策略，分发升级软件，实现对管理对象的远程控制。Agent和下级管理对象间的通信通过RMI机制来实现。通信层主要是由TCP/IP协议栈组成的。
3.2 Agent基本功能的实现
　　(1)软件分发/任务派遣
　　在网络安全系统中，即使系统已经十分完善，也无法覆盖所有的安全要求；此外，系统随着硬件平台、OS的升级也要进行相应的软件升级。所以，Agent必需实现软件分发和动态任务配置机制。通过独立于平台的Java语言，可以在异构网络环境下实现这个功能：
　　.MOM将用Java语言开发的安全服务软件和用Java描述的安全策略形式化文本编译后，通过软件分发/任务派遣接口以Java字节码形式发送给下级Agent;
　　.接收者收到的若为分发软件，则通过本地的软件服务对象来完成新软件的安装配置；
　　.接收者收到的若为动态任务，则由本地的软件服务对象解释执行它，并将执行的结果提交给上级Agent。
　　(2)多域通信
　　RMI是Java中实现远程方法调用的机制。RMI是基于TCP的，所以比RPC(基于UDP)更可靠。通过RMI，Agent获取远程对象的指针、传送参数、调用远端对象的服务方法。这样，在一定信任关系的控制下，不同安全域的管理Agent可以相互调用管理对象的方法，如同调用本地方法一样，从而实现多域通信。
　　(3)事件报告
　　Agent中的本地模块具备一定的决策能力，当它的配置条件满足时，可以认为发生了某种安全事件。这时本地模块触发事件报告，Agent通过协作模块向上级Agent报告。事件报告机制相对于轮询而言，可以减少网络的流量。事件报告的关键在于本地模块的系统安全知识库的不断丰富完善，使Agent具备较高的智能。
4　结论
　　在开放的、分布式的网络环境下，网络安全性的问题日益突出。现有的网络安全模型已不能胜任实际的需求，必须找到一种新的网络安全模型，从理论上形式化地证明它是安全的，在此基础上建立全新的网络安全管理系统，这是不容置疑的趋势。Agent概念的引入，使得本文构造的多域安全模型能提供更好的自治性和协作性，可以提供更高级更有效的安全协作通信能力。
作者简介：张伟奇(1974～)，男，研究生，主研方向：网络安全
作者单位：上海交通大学计算机科学及工程系，上海　200030
参考文献
1 余巍.多域网络安全体系结构研究[博士论文].上海：上海交通大通 学，1997-10
2 McKay D,Pastor J,McEntire R at el.An Architecture for Information Agents.In Advanced Planning Technology(ed. Austin Tate),The AAAI Press,Menlo Park,CA.,USA,1996 
3 Heller P,Roberts S.Java高级开发指南.北京:电子工业出版社,1997
4 余巍,吕葵,唐冶文等.分布式自治域的安全认证研究.计算机工程, 1998,24(6):38
收稿日期：1998-12-10　修回日期：1999-08-13
