关 闭

新闻中心

EEPW首页>安全与国防>设计应用> 针对无线网络的入侵检测系统设计方法研究

针对无线网络的入侵检测系统设计方法研究

作者: 时间:2011-01-12 来源:网络 收藏

  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 数据检测分析模块流程图

 3.3 规则解析模块

  规则解析模块将从控制中心传送过来的规则按照一定的数据结构存储在规则库中, 作为对入侵行为进行判断分析的知识库。在该模块的设计中, 本文采用动态生成链表的方式构建规则的语法树, 把所选择的规则存储在数据检测器所在的主机内存中, 规则链表的结构如图9 所示。


  第一层是具有相同处理动作(Alert ( 警告),Log ( 记录),Pass( 忽略)) 的节点, 以RuleListNode 结构表示。其次,是在具有相同处理动作的基础上, 按照不同的协议类型(IP, TCP, ICMP 和UDP) 再分成几条链表。而在每条链表中, 具有相同源IP 地址、目的IP 地址、源端口和目的端口的规则头节点RuleTreeNode 构成了结构图的第二层。以下的几层由具有相同源IP 地址、目的IP 地址、源端口和目的端口所对应的规则选项节点即tTreeNode 组成。例如在一组规则中有45 条检测CGI-BIN 探测活动的规则, 而它们都具有相同的源/目的IP 地址及端口号, 则它们在链表中可以将这些共同属性压缩到一个单独的RuleTreeNode 节点中, 而每个不同的属性( 规则选项) 保存在与RuleTreeNode 节点相连的OptTreeNode 节点中。这样的结构方式, 将大大有助于提高检测速度。

  建立规则链表的流程如下: 首先读取规则文件, 检查规则文件是否存在并可读, 然后依次读取每一条规则, 同时进行多行规则的整理; 对规则进行解析, 按类型进行分支处理, 并用相应的规则语法表示, 建立规则语法树; 最后进行一些完善操作, 如连接所有的动态规则,进行规则树的完整性检查。其中解释规则并将其添加到规则链表的流程如图10 所示。


图10 规则解析模块流程

  作为个人通信的一个重要的组成部分, 无线局域网在现实及未来的社会生活中将得到广泛的应用。无线技术也将必然随着计算机技术的发展而发展, 随着的普及和移动设备的性能的提高而得到进一步的发展。下一步将在本文研究的基础上, 重点解决系统的应用瓶颈问题, 以大幅度提升检测准确性以及大量应用网络环境下的系统性能。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭