关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 针对无线网络的入侵检测系统的设计

针对无线网络的入侵检测系统的设计

作者:时间:2011-09-15来源:网络收藏
3 核心模块实现

本文引用地址:http://www.eepw.com.cn/article/161487.htm

  分布式分为3 个部件,(1) 探测器。对应信息采集和预警层, 下设探头和数据采集模块;(2) 分析器对应综合分析决策层, 下设协议解码模块、预处理模块和检测分析模块; ( 3 ) 控制管理器。对应控制管理层, 下设规则解析模块、日志模块和响应报警模块。本文将重点介绍数据预处理、数据检测与分析和规则解析三个模块。

  3.1 数据预处理模块

  预处理模块对得到的数据包进行预处理, 一方面可发现信息, 另一方面为检测分析模块做最后的准备。预处理模块采用了插件技术, 可以很方便地增加功能, 使系统具有可扩展性。与预处理相关的函数以链表的形式存在于动态链接库中, 如图6 所示。

  

  图6 数据预处理模块处理过程

  预处理函数是由控制管理器来配置的。控制中心将配置规则和预处理函数一起传送到各检测引擎, 检测引擎在进行规则解析时, 自行识别预处理指令, 并作相应的处理。在IP 报文的首部包含了分片和重组的信息, 如图7 所示。

  

  图7 IP 包(32 位) 格式

  (1)IdenTIficATIon : 唯一标识发送端的一个IP 报文, 如果需要分片, 则所有分片具有相同的标识, 这样目标主机便能够根据源主机的IP 地址以及该标识来组合报文;(2)R: 保留未用;(3)D: “ 不分片” 位, 置为1, 则IP 层不将数据报分片, 只有为0 时才允许分片;(4)F: “ 更多分片” 位, 为1 表示后面还有数据报的更多分片, 为0 则表示这是数据报的最后一个分片;(5)Fragment Offset : 分片偏移, 指出该分片数据在原始数据报文( 未分片前) 相对于起点的位置, 实际位置为偏移值乘以8, 如为0 则表示这是分片后的第一个信息包, 放在组合后分组的最前面。

  IP 重组的函数中定义了每一个分片的结构为:

  STruct IpFrag

  {

  dint offset ; //IP 分片的偏移值

  int end : // 分片的最后字节

  int len ; // 分片的长度

  u char mff ; // 更多的分片标志

  unsigned char *ptr ; // 指向分片包中的数据

  struct IpFrag *ipf next ;//链接的下一个分片

  };

  些分片形成一个单向链表, 表示一个尚未组装完的分片队列, 它属于一个IP 报文, 而分片链表的头指针放在IpHeader 结构中:

  struct IpHeader

  {

  struct IpFrag ; // 第一个IP 分片

  int len ; // 报文长度

  struct timer list timer ; // 定时器

  u_char Proto ; // 协议类型

  u_short Ip_ttl ; // 生存时间

  u_short id ; //IP 标识

  struct in addr Ip-Src ,Ip_Dst ; //IP 报文的源, 目的

  IP 地址

  struct IpHeader *next ; // 下一个IP 报文

  } ;

  IpHeader 描述还未收到全部分片报文结构, 多个Ip-Header 构成的链表形成一个重装链表, 等待其他分片到达后重装。

  3.2 数据检测分析模块

  检测分析模块对预处理模块提交的数据, 运用匹配算法和规则库中的规则进行比较分析, 从而判断是否有入侵行为。检测分析模块是检测引擎的核心, 它将从数据采集模块传来的数据顺着规则链表与入侵规则进行比较, 如果匹配成功, 则说明检测到了入侵, 同时产生报警。其流程如图8 所示。

  

  图8 数据检测分析模块流程图



评论


相关推荐

技术专区

关闭