基于移动Agent和MYSQL的分布式入侵检测系统研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:sweetmeimei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:通过分析各种入侵检测系统的特点,提出了一种基于移动Agent和主从数据库模式的分布式入侵检测系统的模型MADIDS,实现了基于该模型的分布式入侵检测系统,该模型中的Agent相互独立、互相协作,并有效的对数据库进行层次划分,提高了系统的效率、健壮性、可扩展性和可靠性。
  关键词:入侵检测;移动Agent;MYSQL
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)24-1181-04
  The Research of Distributed Intrusion Detection System Based on Mobile Agent and MYSQL
  XUAN Song-sheng, CHEN Zhong-min
  (College of Science, Huazhong Agricultural University, Wuhan 430070, China)
  Abstract: Through analysis of the characteristics of Intrusion Detection System, the model of a distributed intrusion detection system called MADIDS based on mobile agent and master-slave database model is proposed and simply realized.The Agents are independent and cooperative. The layered construction is used to the model of database.The MADIDS has advantages of efficiency,robustness,scalability and reliability.
  Key words: intrusion detection; mobile agent; MYSQL
  
  1 引言
  
  随着网络的发展和应用的深入,黑客入侵事件变得越来越猖獗,人们发现,仅仅依靠传统的操作系统加固和防火墙隔离等静态安全防御技术已经远远无法满足现有网络安全的需要了。入侵检测系统作为近十多年来发展起来的新一代安全防范技术,得到了深入的研究和广泛的应用。[1]
  入侵检测系统按系统结构分为集中式入侵检测系统和分布式入侵检测系统。
  1) 集中式入侵检测系统CIDS(Centralized Intrusion Detection System)中,无论监视的网络有多少主机,数据分析都在一个固定的位置进行。CIDS采用单个数据分析组件进行数据分析,因此其扩展性较差,存在单点故障问题,同时也耗费大量的通信和处理资源。
  2) 分布式入侵检测系统DIDS(Distributed Intrusion Detection System)则将数据分析任务分配给多个处于不同位置的数据分析组件,这些组件采用完全分布方式或分层方式进行协作。根据分布的程度,又可再分为部分分
  布式和完全分布式结构。
  
  2 移动Agent和Aglet概述
  
  移动Agent技术是集分布式对象技术、软件Agent技术、移动代码技术于一体的技术,它是为解决复杂、动态、分布式智能应用而提出的一种全新的计算手段,不仅结合了代理的自治、智能的特点,而且引入了移动的思想,极大的延伸了分布式计算的概念。该技术融合了人工智能和分布式计算技术的技术将很可能成为智能化分布式计算的一个重要组成部分。移动Agent理论方面的研究比较成熟,目前市场已有的移动Agent平台有IBM公司的Aglet。
  Aglet是由日本IBM公司所提出,完全用Java发展的移动agent技术,并提供实用的平台Aglets Workbench来完成开发或执行mobile agent系统。Aglets中的移动agent称为Aglet,是一个可移动的Java对象。Aglet以线程的形式产生于一台机器上,可随时暂停正在执行的工作,之后可将整个Aglet分派到另一台机器上重新启动,执行任务。因为Aglet是线程的,所以不会消耗太多的系统资源。[2]
  目前使用移动Agent技术开发入侵检测系统有:
  Purdue大学开发的AAFID(Autonomous Agents For Intrusion Detection,自治代理入侵检测系统)采用了agent分层控制和报告的层次结构,包括四类基本组件:agent、过滤器(Filter)、转发器(Transceiver)和监视器(Monitor)。[3]
  美国Iowa州立大学开发的MAIDS(Mobile Agent Intrusion Detection System)是一个基于移动agent技术的分布式入侵检测系统。该系统提供了一个实现移动agent网络的有色Petri网体系结构。[4]
  
  3 基于移动agent的MADIDS的设计
  
  作为网络安全的补充,本文在现有入侵检测系统基础上,将移动agent技术运用于入侵检测系统的数据采集部分和检测分析部分,提出了基于移动agent的网络入侵检测系统MADIDS。
  3.1 MADIDS系统结构设计
  为了提高检测效率,增强系统的健壮性,系统决定采用完全分布式协同检测结构,如图1所示。
  在该系统结构中,最下层的数据采集节点负责采集数据,根据安全策略对大量数据进行过滤,以减轻上层分析检测节点的数据处理压力,提高检测效率。每个数据采集节点负责采集一个或几个主机的网络数据,当某个节点出现故障或者流量过大时,可以和其他节点通信,由其他节点全部或部分接管该节点的数据采集工作。除此之外,节点间需要实时传递自己状态信息,以便某个节点出现故障时其他节点接管其工作。数据节点间相互协作,以保证迅速快捷的数据采集。
  分析检测节点从数据采集节点接收数据并利用检测规则检测数据是否是入侵数据。如果是入侵数据则提交给上层,由上层采取相应的响应措施。管理控制节点负责系统策略的生成、发布和对于入侵的响应等。
  3.2 MADIDS系统模型的设计
  图2为MADIDS系统的模型。
  在入侵检测系统中使用代理完成数据采集、数据预处理和数据分析等功能,使用移动代理实时就地处理数据和突发事件,可减少系统内部通信量,加速对入侵响应和追踪等,因此具有能够减轻网络负载、减少网络延迟、动态适应网络变化、可扩展性好及能够在异构环境下执行等优点。[5]
  
  3.3 MADIDS数据库的设计
  一个好的分布式入侵检测系统数据库的设计至关重要,而且分布式入侵检测需要有分布式的数据库管理与之相对应。数据库存储各种规则、事件、策略和管理员的配置信息等。
  1) 数据库模式
  数据库采用MYSQL主从服务器模式,主服务器负责各种信息的写入,从服务器自动从主服务器复制数据,并提供本机上相应模块的数据读取。使用主从式数据库模式既可以提高系统访问数据的速度,同时可以避免由于某个数据库服务器出现故障而造成系统瘫痪。
  2) 数据库详细设计
  事件库中存放某些出现攻击的数据包的摘要以及做出的反应,如表1所示。用户配置信息中包含对某些协议屏蔽、日期时间等信息,如表2所示。
  3.4 MADIDS模型中各功能模块的设计
  系统分为数据采集模块、数据分析模块、管理控制模块三大部分。
  1) 数据采集模块:数据采集模块由数据采集代理完成,使用包过滤技术。数据采集模块分布在被监视的主机中,每个代理监控某几个主机。代理截获数据包后,首先做简要的分析,根据过滤策略把需要向上层传递的数据包转发给上层。数据采集代理之间需要相互协作,某个代理如果出现故障或者流量过大,需要其他代理协作。
  2) 数据分析模块:数据分析模块是系统最重要的模块,由数据分析代理完成。数据分析代理从数据采集代理那里接受数据并检测是否是入侵数据包,根据检测结果向上层发出报告。数据分析代理与数据采集代理之间需要经常交换状态信息,如果某个代理数据处理任务过重,需要向下层传递其过重状态,由下层选择空闲代理完成数据解析任务。
  3) 管理控制模块:管理控制模块包含响应代理、数据库代理和用户接口代理管理三个部分。
  ① 响应代理:响应代理根据不同的入侵行为按照预先指定的响应策略做出相应反馈。
  ② 数据库代理:数据库代理负责和数据库交互,读取数据库中的配置信息和向数据库中写入规则或者响应等信息。
  ③ 用户接口代理:用户接口代理以一种可视化的方式提供了用户与该入侵检测系统的接口,不具有移动性。该代理功能较多,主要负责整个系统的管理,包括Aglet生存管理、Aglet状态监视、Aglet初始参数设置、安全管理器设置和保证Aglet的正常运行等,便于用户监视系统中各子agent的运行状态,并根据具体情况设定各种系统参数完成特定功能的检测分析agent的配置。
  
  4 基于移动agent的MADIDS的初步实现
  
  4.1 分布式数据库的建立
  数据库分主从两种,主数据库服务器可以安装在系统管理模块主机上,也以安装在单独主机上,从服务器安装在管理模块和分析检测模块上。
  主从服务器的设置增加了健壮性。通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。
  假设主服务器IP为192.168.0.1,从服务器IP为192.168.0.3,实现Mysql主从服务器的具体步骤是:
  1) 在主服务器上为从服务器建立一个用户:
  grant replication slave on *.* to ’db1’@’192.168.0.3’ identified by ’abcdef’;
  2) 编辑主服务器上的my.ini文件,一般位于C:\Windows\my.ini。
  server-id=1
  log-bin=mysql-bin
  binlog-do-db=madids
  3) 编辑从服务器上的my.ini文件,加入以下语句:
  server-id=2
  master-host=192.168.0.1
  master-user=db1
  master-password=abcdef
  master-port=3306
  replicate-do-db=madids
  4) 将主服务器上的madids数据库拷贝到从服务器,重启各个主从服务器。
  如果需要设置多个从服务器,参考上面步骤即可,可以写一个bat程序来执行上述操作。
  5) 数据库的连接
  Java数据库连接性(Java Database connectivity,JDBC)是一种Java API,支持结构化查询语言的执行。SQL是连接RDBMS所用的、事实上的行业标准。
  JDBC提供各种工具,以支持下述功能:建立到RDMS的连接,发送SQL语句,处理结果。[6]
  本系统中,连接数据库的代码如下:
  Connection sqlConn=null;
  Statement sqlStm=null;
  try{
  Class.forName("com.mysql.jdbc.Driver");
  sqlConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/madids","root","abcdef");
  sqlStm=sqlConn.createStatement();}
  catch(Exception e){
  System.out.println(e.toString() e.getMessage());}
  4.2 数据采集模块的实现
  1) 数据采集部分
  数据采集代理是基于混杂网卡模式下的数据监听,利用WinPcap和Jpcap函数库从网络上直接抓取数据包并做简单的过滤。
  为了捕获包,API提供了JpcapCaptor.getDeviceList()方法实现利用Jpcap监听哪个网络设备的选择。该方法返回了一个NetworkInterface类的实例,出现的多个设备名称都记录其中。openDevice()方法需要指定即将打开的设备名,从设备上一次读取的最大字节数,说明是否将设备设为混杂模式的Boolean值和以后调用processPacket()方法要使用到的超时值四个参数。openDevice()方法将一个参数返回到用以捕获的Jpcap对象。
  public class CaptureAgent extends Aglet implements PacketReceiver{
  public void receivePacket(Packet packet){
  try{
  if(packet instanceof TCPPacket)
  { String destip=((IPPacket)packet).dst_ip.getHostAddress();
  StringTokenizer st = new StringTokenizer(destip,".");
  String[] ips = new String[st.countTokens()];
  ips[0] = st.nextToken();
  ips[1] = st.nextToken();
  ips[2] = st.nextToken();
  ips[3] = st.nextToken();
  if(Integer.parseInt(ips[0])==ipwatchs[0]
其他文献
儿童诗是指结合儿童生长发育特点和心理特点,为提高儿童阅读欣赏能力,专门为儿童创作的诗歌。儿童诗展现了儿童丰富的内心世界,把儿童独有的内心世界和情绪活动生动地传达出来,情趣盎然,是一种陶冶儿童情操、发散儿童思维、发展儿童语言的非常好的素材。统编教材低年级段中有很多儿童诗,诗中有优美的语言、丰富的想象、新奇的构思,从中儿童可以获得美的体验与快乐。  《义务教育语文课程标准(2011年版)》(以下简称“
[摘要]诗歌是中国传统文化中重要的一部分,在曹雪芹先生的代表作品《红楼梦》中,诗歌也有所体现。由于《红楼梦》在文学史上的重要地位,很多人都对其进行了英译,在这些英译本中,杨宪益夫妇以及大卫·霍克斯的译本较为突出。本文就这两个译本从信息功能,美学功能,文化传递功能等方面进行对比分析,以期通过对译本的研究进一步促进中国文化走向世界。  [关键词]《红楼梦》;诗歌翻译;信息功能;美学功能;文化传递功能 
摘要:随着计算机网络的普及,网络教学愈来愈受到教育者的重视。该文主要讨论计算机导论课程的网络教学平台的设计,详细分析该系统的系统结构和功能,论述系统中主要功能模块的实现。  关键词:网络教学;B/S模式;学习系统;练习与测试;演示动画  中图分类号:TP315文献标识码:A文章编号:1009-3044(2008)33-1433-02  Design and Realization of Netwo
摘要:在Intel未来教育的先进理念的指引下,从基于局域网的网络课件的特征与内涵出发,以建构主义与“双主模式”教学理论为指导,利用局域网与互联网的优势,介绍设计开发新型网络课件的方法,并结合实际教学过程中的具体例子,提出相应的解决策略。  关键词:Intel未来教育;双主模式;网络课件   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1267-02  Netw
摘要:本文在对Java多线程分析的基础上,针对如何实现多线程,如何进行同步,如何管理多线程等问题进行了简单的阐述。  关键词:线程;多线程;线程组  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30181-03  Analyse Shallowly Java Multi-threading Mechanism  WANG Jun-yu, WANG Xian-h
摘要:无线传感器网络是由部署在监测区域内大量的廉价微型传感器结点组成,具有传感器节点密度高,网络拓扑变化频繁,以及节点的功率、计算能力和数据存储能力有限等特点。该文介绍了ZigBee网络与GSM/GPRS网络相结合实现远程监测的无线传感器网络的软件与硬件总体设计方法。  关键词:传感器网络;数据融合;网络协调器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1
摘要:通过理论有与实例的比较,对目前比较流行的两种面向对象的编程语言C 与Java从7个方面作一比较,希望为程序的设计与教学提供帮助与选择。  关键词:C ;JAVA;程序设计;编程语言  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)21-30453-02    Comparison of the Object-oriented Procedure Count
摘要:XML能够使用得Internet上的数据交换变得更方便,XML与数据库一样,都能够作为信息存储的途径。当数据量不大的时候,比如完成一个在线备忘录,XML作为数据存储具有关系数据库所无法比拟的优势。在asp.net中能够利用.net类库提供的类及方法轻松地构建一个基于XML的在线备忘录。  关键词:XML;数据库;数据存储;asp.net;在线备忘录  中图分类号:TP311文献标识码:A文章
一、导入  屏显第一幅图片。  生:含羞草。  师:有点像。柔柔弱弱的。但不是,这是紫茎泽兰。再来看看来自海底世界的动物(屏显第二幅图片)。  生:水母。  (师肯定并表扬,再明确,这是“冠状水母”。再呈现学生熟悉的小龙虾图片)  师:这三位朋友,有一个共同的名字,叫“生物入侵者”。打开书本,我们先看第一段文字,找到生物入侵者的概念。  二、从概念入手了解生物入侵者的危害  (屏显生物入侵者的概念
习作教学一直是小学语文教学的难点,尤其是统编教材全面投入使用后,面对新的教学内容,很多教师感到不适应。对此,我们在学习借鉴当前作文教学模式的基础上,结合语文学科特点和教学实际,提出了“四步循环”习作教学模式。  “四步循环”习作教学模式继承了传统作文教学模式的优点,把学生学习方式的优化、教师教学方式的改进、教师关注学生长远发展的评价作为重点,优化了课堂教学结构,体现了新课程强调的“自主、合作、探究