基于IPv6网络环境的入侵检测方法转让专利

申请号 : CN200810220692.5

文献号 : CN101656634B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚国祥罗伟其官全龙张焕明林良超张慧平高志朱国程魏林锋叶赛枝莫乐群

申请人 : 暨南大学

摘要 :

本发明为基于IPv6网络环境的入侵检测方法,其中系统包括协议集合和规则库模块、数据包捕获模块、IPV6协议解析模块、协议分析和状态跟踪模块、规则分析及包检测模块、报警及日志模块。本发明很好地解决了IPv6的新标准、新特性给入侵检测系统带来的移植方面新问题,提高了数据包的捕获能力、改善了IDS的检测手段、提高IDS了的安全检测能力。

权利要求 :

1.基于IPv6网络环境的入侵检测方法,其特征在于,包括下述步骤:

(1)系统启动时,系统首先解析用户输入的命令行参数、配置文件以及系统设置的协议集合和规则库,然后将网卡设置成混杂模式,数据包捕获模块用抓包软件循环捕获原始以太网数据包,数据包过滤器判断所捕获数据包是否为IPv6数据包,如果不是则执行步骤(2)操作,如果是则执行步骤(3)操作;

(2)数据包捕获模块将捕获的非IPv6数据包丢弃,并根据丢弃的包生成相应的记录发送并存储在报警及日志模块的警告日志中;

(3)如果是IPv6数据包,则首先解析该IPv6数据包的以太头,接着解析其IPv6的固定头,最后依次解析其扩展头,判断该IPv6数据包是否是IPv6碎片包,如果是则进行步骤(4)操作,不是则进行步骤(5)操作;

(4)根据IPv6碎片包扩展头将具有相同源地址、目的地址的数据包进行地址覆盖并根据各个IPv6碎片包ID进行IPv6碎片包重组得到完整的IPv6数据包,然后将完整的IPv6数据包发送到IPv6协议解析模块,然后进行步骤(5)操作;

(5)IPv6协议解析模块根据系统设置的协议集合,按照网络各层协议的数据结构对数据包捕获模块传来的完整的IPv6数据包进行协议解码,得出该数据包真正承载的应用数据并发送到协议分析和状态跟踪模块;

(6)协议分析和状态跟踪模块根据系统设置的规则库,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,若协议分析中进行状态跟踪得到异常数据,则生成相应记录发送并存储在报警及日志模块,同时将协议分析得到的符合预设协议数据结构的数据包发送到规则分析及包检测模块;

(7)规则分析及包检测模块对系统设置的规则特征库中的规则进行规则分析,并根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,最后将检测结果发送到报警及日志模块;

(8)报警及日志模块根据检测结果进行写报警日志、显示报警信息。

2.根据权利要求1所述的基于IPv6网络环境的入侵检测方法,其特征在于:步骤(4)所述对IPv6碎片包进行IPv6碎片包重组得到完整的IPv6数据包,该重组后得到完整的IPv6数据包中的碎片载荷长度(PL.orig)的计算方法如下:PL.orig=PL.first-FL.first-8+(8*FO.last)+FL.last

其中,PL.first表示第一个碎片载荷长度,FL.first表示第一个碎片的碎片长度,8表示碎片头的长度,8*FO.last表示最后一个碎片偏移量,FL.last表示最后一个碎片的碎片长度。

3.根据权利要求1所述的基于IPv6网络环境的入侵检测方法,其特征在于:步骤(6)所述协议分析和状态跟踪模块根据系统设置的协议集合,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,其协议分析包括IP层协议分析、传输层协议和网络层协议分析,协议分析和状态跟踪的具体方法如下:根据系统设置的协议集合,首先对重组好的完整的IPv6数据包进行IP层协议分析,判断该IPv6数据包的传输层协议是TCP协议、UDP协议或者ICMPv6协议,然后对该IPv6数据包具体的传输层协议进一步解析;解析完成后,如果该IPv6数据包是ICMPv6协议则分析该IPv6数据包是否有异常数据,若发现异常数据则生成相应的记录发送并存储在报警及日志模块的警告日志中;如果是TCP协议则判断该IPv6数据包是否要进行TCP流的重组;如果需要则进行重组,将重组好的TCP协议数据包进行应用层协议分析,而不需要重组的TCP协议数据包和解析好的UDP协议数据包直接进行应用层协议分析,若应用层协议分析TCP协议数据包、UDP协议数据包时发现数据包错误,则生成相应的记录发送并存储在报警及日志模块的警告日志中。

4.根据权利要求1所述的基于IPv6网络环境的入侵检测方法,其特征在于:

步骤(7)所述规则分析及包检测模块对系统设置的规则库中的规则进行规则分析,其具体操作如下;系统首先将系统设置的规则从规则库中读出,将规则链表分为链表头和链表选项两个部分从而组织成二维规则链表结构,然后对规则链表进行优化,将规则链表中的规则头和规则选项按其规则属性进行分类,并将其中的链表选项映射成新的链表结构;

步骤(7)所述规则分析及包检测模块对根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,该模式匹配检测方法采用BM模式匹配检测方法,其具体操作如下:a、将协议分析和状态跟踪模块传来的数据包的头部信息与规则链表中的规则头的信息进行匹配,若数据包的头部信息与规则头的信息不匹配,则重复本步骤a的操作进行匹配;若数据包的头部信息与规则头的信息匹配,则进行步骤b操作;

b、将协议分析和状态跟踪模块传来的数据包与规则链表中的规则选项进行匹配,判断是否与规则选项相匹配,如果匹配说明该规则的数据包可能存在入侵行为,输出该数据包的警报信息,如果不匹配则说明该规则的数据包不存在入侵行为,判断规则选项是否匹配完成,如果完成回到步骤a的操作继续分析下一个数据包,如果没有匹配完成则重复步骤b的上述操作继续进行规则选项匹配。

5.根据权利要求1所述的基于IPv6网络环境的入侵检测方法,其特征在于:对DoS/DDoS攻击检测的方法具体包括对TCP半开连接攻击的检测方法、对洪流型DoS/DDoS攻击的检测方法和对源IPv6地址伪造攻击的检测方法:对TCP半连接攻击的检测方法具体为:首先在协议分析和状态跟踪模块对发现新的TCP连接请求进行状态跟踪,若该连接未能在一定的时间内建立或释放,则认为是一个半开连接,假如在某段时间内发现某个主机有大量的半开连接,则认为有TCP半连接攻击发生,此时,协议分析和状态跟踪模块根据该TCP半连接攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中;

对洪流型DoS/DDoS攻击的检测方法具体为:协议分析和状态跟踪模块判断收到或发送的包数量是否大于预设的包数量阈值、收包数与发包数的比值是否超出了预设的阈值范围,若收到或发送的包数量大于预设的包数量阈值而且收包数与发包数的比值超出了预设的阈值范围,则认为发生了洪流型DoS/DDoS攻击,此时,协议分析和状态跟踪模块根据该洪流型DoS/DDoS攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中;

对源IPv6地址伪造攻击的检测方法具体为:

A、判断从本地网络发出的数据包的源MAC地址是不是网关的,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤B操作;

B、判断该数据包的源IPv6地址是不是来自外网,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤C操作;

C、判断该数据包的源MAC地址是否在系统维护的主机队列中,若不是则加入一个IPv6节点到主机队列中,此时若发现主机队列出现异常则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中,若该数据包的源MAC地址是在系统维护的主机队列中,则检查源IPv6地址是否与队列中维护的源IPv6地址一致,若一致则正常,若不一致则用该数据包的源IPv6地址更新队列中的地址,若发明该源MAC地址对应的IPv6地址表化过于频繁,则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中。

说明书 :

基于IPv6网络环境的入侵检测方法

技术领域

[0001] 本发明涉及计算机网络信息安全领域,具体涉及一种基于IPv6网络环境的入侵检测系统(IDS)及方法。
[0002] 背景技术
[0003] 随着Internet的迅猛发展,网络信息已经成为人们生活中必不可少的一部分,网络信息安全也越来越受到人们的重视,针对网络和主机的各种入侵事件和攻击手法也层出不穷。引发更多的人们投入到对入侵检测系统(IDS)的研究和开发中去,其主要是针对目前最常用的防范网络入侵技术——防火墙所暴露出来的缺点和不足来进行。 [0004] 传统的网络安全技术主要包括防火墙技术、入侵检测技术、加密技术、认证技术、病毒防护技术、安全审计技术等。入侵检测技术(IDS)是传统的网络安全措施的一种,与被动防守的防火墙技术不同,IDS是主动防御技术。IDS被认为是在防火墙之后的第二道安全闸门,其主要任务是:监视、分析用户及系统活动,识别出反映已知进攻的活动模式并向相关人士报警;通过对异常行为模式的统计分析来评估重要系统和数据文件的完整性;对操作系统的审计进行跟踪管理,并识别用户违反安全策略的行为等。
[0005] 目前的入侵检测系统主要是基于IPv4网络环境下的,并且已经得到了比较成熟而广泛的应用。在第一代网络IPv4环境下,入侵检测与多种学科的科学研究方法相结合,应用技术主要有以下几个方面:基于协议分析技术,它不但克服了传统入侵检测采用的模式匹配方法的粗糙与低效,而且大幅提高了检测的速度与检测的准确性,但是协议分析技术不具有审计功能,无法对操作系统的审计进行跟踪管理;基于数据挖掘技术,其主要的优点是针对已编码特征的入侵检测概率可达到100%,并且可以检测意图行为攻击,这项技术其中一难点在于如何根据具体应用的要求,从用于安全的先验知识出发,提取出可以有效反映系统特性的特征属性,并应用合适的算法进行数据挖掘,另一技术难点在于如何将挖掘结果自动地应用到实际的IDS中;基于神经网络的检测技术,由于神经网络具有自适应、自组织和自学习的能力和良好特性,可以处理一些环境信息十分复杂、背景知识不清楚的问题,虽然允许样本有较大的缺损和畸变,但是在实际环境中得到各种攻击的相关样本也是很难的,另外神经网络的学习速度问题和网络结构问题也影响其在IDS中的应用;基于免疫原理的异常检测方法,该方法是对生物的免疫系统的模仿,生物的免疫系统能够识别任何外界的细胞或分子并将其消灭,因此免疫系统必须能够识别自身细胞和外界细胞,如中国专利公开号为CN1567810A的发明就提出了一种利用生物免疫的基本原理,通过模拟人体免疫细胞对病原体的识别和分类作用来达到对网络入侵的检测能力。 [0006] 当前以IPv4为基础的32位地址模式,越来越不能适应Internet的发展,而IPv6由于具有超长的地址空间(IPv6中IP地址的长度为128)和强大的安全性支持等优点,越来越受到人们的重视。经过几年的实践,终于开始由试验阶段向实用阶段过渡。下一代互联网意味着更多的应用、更快的速度和更大的规模,从基于IPv4协议的互联网向基于IPv6协议的下一代互联网发展将是网络发展的必然。
[0007] 但是,随着IPv6网络日益广泛的应用、地址空间和协议实现的安全机制等等的变化,越来越多针对IPv6的攻击手段和方法也不断地出现。目前,基于IPv6的下一代网络主要存在以下几点安全问题:
[0008] 首先,IPv6的协议栈实现本身存在着漏洞,有待在实践中完善,例如OpenBSD和Cisco IOS系统IPv6协议Type 0路由头拒绝服务漏洞,虽然在设计IPv6协议时已经考虑到了安全因素并针对这些安全因素设计出一些方案,例如对第三层加密、进行身份验证等,但IPv6网络并不是坚不可摧的,至少对于应用层的攻击它仍然显得无能为力; [0009] 第二,由IPv4向IPv6过渡的机制产生的漏洞等等,目前安全人员已经发现从IPv4向IPv6转移时出现的一些安全漏洞,例如黑客可以非法访问采用了IPv4和IPv6两种协议的LAN网络资源,攻击者可以通过安装了双栈的IPv6主机建立由IPv6到IPv4的隧道,从而绕过防火墙对IPv4进行攻击;
[0010] 第三,IPv6下的网管技术不够成熟,难于对大规模的网络进行有效的监管,这使得对网络的安全控制能力大大受到限制。
[0011] 最后,由于网络应用的日益复杂,各种业务应用层出不穷,仅靠在网络层的协议,显然是无法保证足够全面的安全性。基于上述各种原因,我们必须给予IPv6的网络安全问题足够的重视。
[0012] IPv6的新标准、新特性给入侵检测系统带来的移植方面新问题主要有:网络性能有所下降、部分功能可能失效、入侵检测的效率和安全防护性能的提高问题、IDS的数据包捕获能力和IDS的检测手段提高问题等。另外,入侵检测系统本身总体检测能力和手段有待于进一步提高,其误报率和漏报率等问题也有待解决。目前针对于IPv6安全的研究主要集中在对IPv6本身的安全性的讨论以及入侵检测系统的相应改进方面。目前还没有成型的能用于实践的基于IPv6的入侵检测系统,基于IPv6的入侵检测系统的研究属于国际前沿领域,不仅具有很好的理论意义,而且其成果应用前景也十分乐观,随着网络的发展,特别是IPv6的普及应用,基于IPv6的入侵检测系统将成为互联网研发与需求的热点。 [0013] 发明内容
[0014] 本发明的目的在于克服上述现有技术的缺点和不足,提供一种基于IPv6网络环境的入侵检测系统,本发明很好地解决了IPv6的新标准、新特性给入侵检测系统带来的移植方面新问题,提高了数据包的捕获能力、改善了IDS的检测手段、提高了IDS的安全防护能力。
[0015] 本发明的目的还在于提供一种基于IPv6网络环境的入侵检测方法。 [0016] 本发明目的通过下述技术方案实现:基于IPv6网络环境的入侵检测系统包括: [0017] 可详细设置的协议集合和规则库模块;
[0018] 数据包捕获模块,用于捕获数据包并进行处理,将所捕获的数据包中的非IPv6数据包丢弃,并根据丢弃的包生成相应的记录发送并存储在报警及日志模块,然后将处理得到的完整的IPv6数据包发送到IPv6协议解析模块;
[0019] IPv6协议解析模块,用于根据系统设置的协议集合,按照网络各层协议的数据结构对数据包捕获模块传来的完整的IPv6数据包进行协议解码,得出该数据包真正承载的应用数据并发送到协议分析和状态跟踪模块;
[0020] 协议分析和状态跟踪模块,用于根据系统设置的协议集合,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,若协议分析中进行状态跟踪得到异常数据,则生成相应记录发送并存储在报警及日志模块,以供后面的数据统计使用,同时将协议分析得到的符合预设协议数据结构的数据包发送到规则分析及包检测模块; [0021] 规则分析及包检测模块,用于对系统设置的规则库中的规则进行规则分析,并根据规则分析后的规则对协议分析和状态跟踪模块传来的真正承载应用数据的数据包进行模式匹配检测,最后将检测结果发送到报警及日志模块;
[0022] 报警及日志模块,用于根据检测结果进行写报警日志、显示报警信息。 [0023] 所述数据包捕获模块包括抓包模块、数据包过滤器和IPv6数据包碎片重组模块,其中,该数据包过滤器为伯克利包过滤器(BPF,Berkeley Packet Filter)。 [0024] 所述协议分析和状态跟踪模块包括:用于IP层协议分析的IP层处理模块,用于传输层协议分析和状态跟踪的TCP处理模块、UDP处理模块、ICMPv6处理模块,用于应用层协议分析和状态跟踪的应用层处理模块。
[0025] 所述报警及日志模块设置有报警函数模块和写日志函数模块。 [0026] 基于IPv6网络环境的入侵检测方法,包括下述步骤:
[0027] (1)系统启动时,系统首先解析用户输入的命令行参数、配置文件以及系统设置的协议集合和规则库,然后将网卡设置成混杂模式,数据包捕获模块用抓包软件循环捕获原始以太网数据包,数据包过滤器判断所捕获数据包是否为IPv6数据包,如果不是则执行步骤(2)操作,如果是则执行步骤(3)操作;
[0028] (2)数据包捕获模块将捕获的非IPv6数据包丢弃,并根据丢弃的包生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用; [0029] (3)如果是IPv6数据包,则首先解析该IPv6数据包的以太头,接着解析其IPv6的固定头(如其Type等于86DD,Version等于6等),最后依次解析其扩展头,判断该IPv6数据包是否是IPv6碎片包,如果是则进行步骤(4)操作,不是则进行步骤(5)操作; [0030] (4)如果是IPv6碎片包,则要进行IPv6数据包碎片重组,进行重组的原因是攻击者可能利用IPv6碎片功能,将一个含有攻击行为的数据分散到几个碎片包中进行发送,只有对IIPv6碎片包进行重组才能发现其攻击行为。根据IPv6碎片包扩展头将具有相同源地址、目的地址的数据包进行地址覆盖并根据各个IPv6碎片包ID进行IPv6碎片包重组得到完整的IPv6数据包,然后将完整的IPv6数据包发送到IPv6协议解析模块,这样做既简化了数据包的处理,又可以减少内存的开销,而且将IPv6头中的源地址覆盖对碎片来说并没有什么额外的影响,然后进行步骤(5)操作;
[0031] (5)IPv6协议解析模块根据系统设置的协议集合,按照网络各层协议的数据结构对数据包捕获模块传来的完整的IPv6数据包进行协议解码,得出该数据包真正承载的应用数据并发送到协议分析和状态跟踪模块;
[0032] (6)协议分析和状态跟踪模块根据系统设置的规则库,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,若协议分析中进行状态跟踪得到异常数据,则生成相应记录发送并存储在报警及日志模块,以供后面的数据统计使用,同时将协议分析得到的符合预设协议数据结构的数据包发送到规则分析及包检测模块;
[0033] (7)规则分析及包检测模块对系统设置的规则特征库中的规则进行规则分析,并根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,最后将检测结果发送到报警及日志模块;
[0034] (8)报警及日志模块根据检测结果进行写报警日志、显示报警信息。 [0035] 上述方法中,步骤(4)所述对IPv6碎片包进行IPv6碎片包重组得到完整的IPv6数据包,该重组后得到完整的IPv6数据包中的碎片载荷长度(PL.orig)的计算方法如下: [0036] PL.orig=PL.first-FL.first-8+(8*FO.last)+FL.last
[0037] 其中,PL.first表示第一个碎片载荷长度,FL.first表示第一个碎片的碎片长度,8表示碎片头的长度,8*FO.last表示最后一个碎片偏移量,FL.last表示最后一个碎片的碎片长度。
[0038] 上述方法中,步骤(6)所述协议分析和状态跟踪模块根据系统设置的规则库,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,其协议分析包括IP层协议分析、传输层协议和网络层协议分析,协议分析和状态跟踪的具体方法如下:根据系统设置的规则特征库,首先对重组好的完整的IPv6数据包进行IP层协议分析,判断该IPv6数据包的传输层协议是TCP协议、UDP协议或者ICMPv6协议,然后对该IPv6数据包具体的传输层协议进一步解析;解析完成后,如果该IPv6数据包是ICMPv6协议则分析该IPv6数据包是否有异常数据,若发现异常数据则生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用;如果是TCP协议则判断该IPv6数据包是否要进行TCP流的重组;如果需要则进行重组,将重组好的TCP协议数据包进行应用层协议分析,而不需要重组的TCP协议数据包和解析好的UDP协议数据包直接进行应用层协议分析,若应用层协议分析TCP协议数据包、UDP协议数据包时发现数据包行为异常,则生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。 [0039] 上述应用层协议分析具体操作包括HTTP协议分析、Telnet协议分析、P2P协议分析和FTP协议分析。
[0040] 上述方法中,步骤(7)所述规则分析及包检测模块对系统设置的规则库中的规则进行规则分析,其具体操作如下;系统首先将系统设置的规则从规则库中读出,将规则链表分为链表头和链表选项两个部分从而组织成二维规则链表结构,然后对规则链表进行优化,将规则链表中的规则头和规则选项按其规则属性进行分类,并将其中的链表选项映射成新的链表结构,这样包在被检测的过程中就不需要遍历整个规则链表结构。 [0041] 所述规则分析及包检测模块对根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,该模式匹配检测方法采用BM模式匹配检测方法,其具体操作如下:
[0042] a、将协议分析和状态跟踪模块传来的数据包的头部信息与规则链表中的规则头的信息进行匹配,若数据包的头部信息与规则头的信息不匹配,则重复本步骤a的操作进行匹配;若数据包的头部信息与规则头的信息匹配,则进行步骤b操作; [0043] b、将协议分析和状态跟踪模块传来的数据包与规则链表中的规则选项进行匹配,判断是否与规则选项相匹配,如果匹配说明该规则的数据包可能存在入侵行为,输出该数据包的警报信息,如果不匹配则说明该规则的数据包不存在入侵行为,判断规则选项是否匹配完成,如果完成回到步骤a的操作继续分析下一个数据包,如果没有匹配完成则重复步骤b的上述操作继续进行规则选项匹配。
[0044] DoS/DDoS攻击是网络攻击中最多最常见的一种攻击方式,本发明对DoS/DDoS攻击检测的方法具体包括:对TCP半开连接攻击的检测方法,对洪流型DoS/DDoS攻击的检测方法和对源IPv6地址伪造攻击的检测方法。
[0045] 对TCP半连接攻击的检测方法:首先在协议分析和状态跟踪模块对发现新的TCP连接请求进行状态跟踪,若该连接未能在一定的时间内建立或释放,则认为是一个半开连接,假如在某段时间内发现某个主机有大量的半开连接,则认为有TCP半连接攻击发生,此时,协议分析和状态跟踪模块根据该TCP半连接攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。
[0046] 对洪流型DoS/DDoS攻击的检测方法:检测原理是利用洪流型DoS/DDoS攻击发生时的数据流量的双向不对称性。协议分析和状态跟踪模块判断收到或发送的包数量是否大于预设的包数量阈值、收包数与发包数的比值是否超出了预设的阈值范围,若收到或发送的包数量大于预设的包数量阈值而且收包数与发包数的比值超出了预设的阈值范围,则认为发生了洪流型DoS/DDoS攻击,此时,协议分析和状态跟踪模块根据该洪流型DoS/DDoS攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。
[0047] 对源IPv6地址伪造攻击的检测方法:规则分析和包检测模块在攻击的网络源端对从本地网络发出的数据包进行源地址伪造检测。以网关的介质访问控制(MAC)地址作为数据包流向的判断依据。源地址伪造有三种情况:伪造MAC地址(与IPv4下的ARP攻击类似),将源IPv6地址伪造成外网IPv6地址,将源IPv6地址伪造成本地网络的其它未被占用的IPv6地址。*对源IPv6地址伪造的检测方法流程具体如下:
[0048] A、判断从本地网络发出的数据包的源MAC地址是不是网关的,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤B操作; [0049] B、判断该数据包的源IPv6地址是不是来自外网,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤C操作;
[0050] C、判断该数据包的源MAC地址是否在系统维护的主机队列中,若不是则加入一个IPv6节点到主机队列中,此时若发现主机队列出现异常则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中,若该数据包的源MAC地址是在系统维护的主机队列中,则检查源IPv6地址是否与队列中维护的源IPv6地址一致,若一致则正常,若不一致则用该数据包的源IPv6地址更新队列中的地址,若发现该源MAC地址对应的IPv6地址变化过于频繁,则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中。
[0051] 本发明相对于现有技术具有以下优点:
[0052] (1)本发明采用数据包捕获模块采集数据包,并将通过较先进的数据包过滤器过滤非IPv6数据包,采用IPv6碎片包重组对IPv6碎片进行重组,这样做既简化了数据包的处理,又可以减少内存的开销,从而确保为后续检测操作提 供完整、准确的IPv6数据包,有效地提高了本发明数据包的检测能力;
[0053] (2)本发明中IPv6协议解析模块根据系统设置的协议集合,按照网络各层协议的数据结构对IPv6数据包进行协议解码,从而得出该数据包真正承载的应用数据,实现了IPv6各类协议的精确解码;
[0054] (3)本发明采用协议分析和状态跟踪相结合的检测方法,通过对数据包进行网络层、传输层和应用层的全面协议分析和状态跟踪,有效地提高了本IDS的安全检测能力; [0055] (4)本发明采用较为先进的模式匹配检测方法,改善了IDS的检测手段; [0056] (5)本发明中的报警及日志模块能够全面接收本发明入侵检测系统工作时所检测出的异常数据或攻击行为,为用户提供了完整、准确的检测结果。
[0057] 附图说明
[0058] 图1为本发明基于IPv6网络环境的入侵检测系统的结构示意图; [0059] 图2为本发明入侵检测系统从数据流角度分成底层模块,中层模块及高层模块时的结构示意图;
[0060] 图3为本发明入侵检测系统的入侵检测方法的工作流程图;
[0061] 图4为本发明规则分析及包检测模块进行模式匹配检测的工作流程图; [0062] 图5为TCP连接的状态变迁示意图;
[0063] 图6为本发明对源IPv6地址伪造的检测流程图;
[0064] 图7为实施本发明系统例的结构示意图。
[0065] 具体实施方式
[0066] 下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0067] 实施例
[0068] 如图1所示,本基于IPv6网络环境的入侵检测系统包括:
[0069] 可详细设置的协议集合和规则库模块;
[0070] 数据包捕获模块,用于捕获数据包并进行处理,将所捕获的数据包中的非IPv6数据包丢弃,并根据丢弃的包生成相应的记录发送并存储在报警及日志模块,然后将处理得到的完整的IPv6数据包发送到IPv6协议解析模块;
[0071] IPv6协议解析模块,用于根据系统设置的协议集合,按照网络各层协议的数据结构对数据包捕获模块传来的完整的IPv6数据包进行协议解码,得出该数据包真正承载的应用数据并发送到协议分析和状态跟踪模块;
[0072] 协议分析和状态跟踪模块,用于根据系统设置的协议集合,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,若协议分析中进行状态跟踪得到异常数据,则生成相应记录发送并存储在报警及日志模块,以供后面的数据统计使用,同时将协议分析得到的符合预设协议数据结构的数据包发送到规则分析及包检测模块; [0073] 规则分析及包检测模块,用于对系统设置的规则库中的规则进行规则分析,并根据规则分析后的规则对协议分析和状态跟踪模块传来的真正承载应用数据的数据包进行模式匹配检测,最后将检测结果发送到报警及日志模块;
[0074] 报警及日志模块,用于根据检测结果进行写报警日志、显示报警信息。 [0075] 所述数据包捕获模块、IPv6协议解析模块、协议分析和状态跟踪模块、规则分析及包检测模块依次信号连接,所述协议集合和规则库模块分别与IPv6协议解析模块、协议分析和状态跟踪模块、规则分析及包检测模块信号连接,报警及日志模块分别与数据包捕获模块、协议分析和状态跟踪模块、规则分析及包检测模块信号连接。
[0076] 为了便于分析,本发明入侵检测系统可以从数据流角度分成底层模块,中层模块及高层模块,如图2所示。其中底层模块为数据包捕获模块,其完成从网卡中读取数据包并把它传给系统的中层模块,它是计算机操作系统与本入侵检测系统交流数据的桥梁,为整个系统提供数据来源。网卡的缺省工作模式包含广播模式和直接模式,为了能够接受所有流过网卡的帧,必须将网卡设置成混杂模式。因此,在设计整个入侵检测系统时,必须保证网络数据捕获模块工作稳定可靠,从而为整个入侵检测系统提供稳定可靠的数据。具体包括抓包模块、数据包过滤器和IPv6数据包碎片重组模块,其中,该数据包过滤器为伯克利包过滤器(BPF,Berkeley Packet Filter)。
[0077] 中层模块是整个系统的核心,是分析数据,实现检测功能的关键模块,包括IPv6协议解析模块、协议分析和状态跟踪模块、规则分析及包检测模块,这些模块都与中央控制器进行通信,及时反馈各自的工作情况,并受中央控制器的控制,如可以设置协议分析和状态跟踪模块只分析和跟踪传输层的TCP协议。所述协议分析和状态跟踪模块包括:用于IP层协议分析的IP层处理模块,用于 传输层协议分析和状态跟踪的TCP处理模块、UDP处理模块、ICMPv6处理模块,用于应用层协议分析和状态跟踪的应用层处理模块。 [0078] 高层模块为报警及日志模块,其设置有报警函数模块和写日志函数模块。负责系统的数据记录,这些数据包括日志数据,报警信息及网络数据包数据。高层模块采取mysql数据库管理系统进行基础架构。根据数据库提供的信息,发现某一攻击后可实现网络流量原型重现。高层模块视图采用B/S结构,以网页形式把信息呈现给终端用户。 [0079] 上述入侵检测系统的入侵检测方法,如图3所示包括下述步骤: [0080] (1)系统启动时,系统首先解析用户输入的命令行参数、配置文件以及系统设置的协议集合和规则库,然后将网卡设置成混杂模式,数据包捕获模块用抓包软件(如litpcap软件)循环捕获原始以太网数据包,数据包过滤器判断所捕获数据包是否为IPv6数据包,如果不是则执行步骤(2)操作,如果是则执行步骤(3)操作;
[0081] (2)数据包捕获模块将捕获的非IPv6数据包丢弃,并根据丢弃的包生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用; [0082] (3)如果是IPv6数据包,则首先解析该IPv6数据包的以太头,接着解析其IPv6的固定头(如其Type等于86DD,Version等于6等),最后依次解析其扩展头,判断该IPv6数据包是否是IPv6碎片包,如果是则进行步骤(4)操作,不是则进行步骤(5)操作; [0083] (4)如果是IPv6碎片包,则要进行IPv6数据包碎片重组,进行重组的原因是攻击者可能利用IPv6碎片功能,将一个含有攻击行为的数据分散到几个碎片包中进行发送,只有对IIPv6碎片包进行重组才能发现其攻击行为。根据IPv6碎片包扩展头将具有相同源地址、目的地址的数据包进行地址覆盖并根据各个IPv6碎片包ID进行IPv6碎片包重组得到完整的IPv6数据包,然后将完整的IPv6数据包发送到IPv6协议解析模块,这样做既简化了数据包的处理,又可以减少内存的开销,而且将IPv6头中的源地址覆盖对碎片来说并没有什么额外的影响,然后进行步骤(5)操作;
[0084] (5)IPv6协议解析模块根据系统设置的协议集合,按照网络各层协议的数据结构对数据包捕获模块传来的完整的IPv6数据包进行协议解码,得出该数据包真正承载的应用数据并发送到协议分析和状态跟踪模块;
[0085] (6)协议分析和状态跟踪模块根据系统设置的规则库,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,若协议分析中进行状态跟踪得到异常数据,则生成相应记录发送并存储在报警及日志模块,以供后面的数据统计使用,同时将协议分析得到的符合预设协议数据结构的数据包发送到规则分析及包检测模块;
[0086] (7)规则分析及包检测模块对系统设置的规则特征库中的规则进行规则分析,并根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,最后将检测结果发送到报警及日志模块;
[0087] (8)报警及日志模块根据检测结果进行写报警日志、显示报警信息。 [0088] 上述方法中,步骤(6)所述协议分析和状态跟踪模块根据系统设置的协议集合,对接收到的数据包真正承载的应用数据进行协议分析和状态跟踪,其协议分析包括IP层协议分析、传输层协议和网络层协议分析,协议分析和状态跟踪的具体方法如下:根据系统设置的协议集合,首先对重组好的完整的IPv6数据包进行IP层协议分析,判断该IPv6数据包的传输层协议是TCP协议、UDP协议或者ICMPv6协议,然后对该IPv6数据包具体的传输层协议进一步解析;解析完成后,如果该IPv6数据包是ICMPv6协议则分析该IPv6数据包是否有异常数据,若发现异常数据则生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用;如果是TCP协议则判断该IPv6数据包是否要进行TCP流的重组;如果需要则进行重组,将重组好的TCP协议数据包进行应用层协议分析,而不需要重组的TCP协议数据包和解析好的UDP协议数据包直接进行应用层协议分析,若应用层协议分析TCP协议数据包、UDP协议数据包时发现数据包错误,则生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。
[0089] 上述应用层协议分析具体操作包括HTTP协议分析、Telnet协议分析、P2P协议分析和FTP协议分析。
[0090] 上述方法中,步骤(7)所述规则分析及包检测模块对系统设置的规则库中的规则进行规则分析,其具体操作如下:系统首先将系统设置的规则从规则库中读出,将规则链表分为链表头和链表选项两个部分从而组织成二维规则链表结构,然后对规则链表进行优化,将规则链表中的规则头和规则选项按其规则属性进行分类,并将其中的链表选项映射成新的链表结构,这样包在被检测的过程中就不需要遍历整个规则链表结构。 [0091] 所述规则分析及包检测模块对根据规则分析后的规则对协议分析和状态跟踪模块传来的数据包进行模式匹配检测,该模式匹配检测方法采用BM模式匹配检测方法,如图4所示,其具体操作如下:
[0092] a、将协议分析和状态跟踪模块传来的数据包的头部信息与规则链表中的规则头的信息进行匹配,若数据包的头部信息与规则头的信息不匹配,则重复本步骤a的操作进行匹配;若数据包的头部信息与规则头的信息匹配,则进行步骤b操作; [0093] b、将协议分析和状态跟踪模块传来的数据包与规则链表中的规则选项进行匹配,判断是否与规则选项相匹配,如果匹配说明该规则的数据包可能存在入侵行为,输出该数据包的警报信息,如果不匹配则说明该规则的数据包不存在入侵行为,判断规则选项是否匹配完成,如果完成回到步骤a的操作继续分析下一个数据包,如果没有匹配完成则重复步骤b的上述操作继续进行规则选项匹配。
[0094] DoS/DDoS攻击是网络攻击中最多最常见的一种攻击方式,本发明对DoS/DDoS攻击检测的方法具体包括:对TCP半开连接攻击的检测方法,对洪流型DoS/DDoS攻击的检测方法和对源IPv6地址伪造攻击的检测方法。
[0095] 对TCP半连接攻击的检测方法:首先在协议分析和状态跟踪模块对发现新的TCP连接请求进行状态跟踪,若该连接未能在一定的时间内建立或释放,则认为是一个半开连接,假如在某段时间内发现某个主机有大量的半开连接,则认为有TCP半连接攻击发生,此时,协议分析和状态跟踪模块根据该TCP半连接攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。TCP的连接会在三个状态之间转换:状态1(SYNRECEIVE)、状态2(SYN+ACK SEND)和状态3(ESTABLI SEND),如图5所示。在状态1超时时,端口处于未开放状态;若能到达状态3,则说明建立起正常的连接;若在状态2时,则说明打开了一个半连接。半连接会使主机处于等待状态,直到超时。大量这样的半连接发生很容易使得主机耗尽所有资源,从而不能给其他的TCP连接提供正常的服务。 [0096] 对洪流型DoS/DDoS攻击的检测方法:检测原理是利用洪流型DoS/DDoS攻击发生时的数据流量的双向不对称性。协议分析和状态跟踪模块判断收到或发送的包数量是否大于预设的包数量阈值、收包数与发包数的比值是否超出了预设的阈值范围,若收到或发送的包数量大于预设的包数量阈值而且收包数与发包数的比值超出了预设的阈值范围,则认为发生了洪流型DoS/DDoS攻击,此时,协议分析和状态跟踪模块根据该洪流型DoS/DDoS攻击行为生成相应的记录发送并存储在报警及日志模块的警告日志中,以供后面的数据统计使用。
[0097] 对源IPv6地址伪造攻击的检测方法:规则分析和包检测模块在攻击的网络源端对从本地网络发出的数据包进行源地址伪造检测。以网关的介质访问控制(MAC)地址作为数据包流向的判断依据。源地址伪造有三种情况:伪造MAC地址(与IPv4下的ARP攻击类似),将源IPv6地址伪造成外网IPv6地址,将源IPv6地址伪造成本地网络的其它未被占用的IPv6地址。该对源IPv6地址伪造的检测方法流程如图6所示,具体如下: [0098] A、判断新收到的数据包的源MAC地址是不是网关的,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤B操作;
[0099] B、判断该数据包的源IPv6地址是不是来自外网,若是则生成相应的记录发送并存储在报警及日志模块的警告日志中,若不是则进行步骤C操作;
[0100] C、判断该数据包的源MAC地址是否在系统维护的主机队列中,若不是则加入一个IPv6节点到主机队列中,此时若发现主机队列出现异常则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中,若该数据包的源MAC地址是在系统维护的主机队列中,则检查源IPv6地址是否与队列中维护的源IPv6地址一致,若一致则正常,若不一致则用该数据包的源IPv6地址更新队列中的地址,若发现该源MAC地址对应的IPv6地址变化过于频繁,则判定存在源IPv6地址伪造攻击并生成相应的记录发送并存储在报警及日志模块的警告日志中。
[0101] 如图7所示,本实施例提供的一个实施该发明的系统主要组成部分如下:IPV6IDS IPv6入侵检测器:所有的数据包捕获、协议分析、检测攻击、产生报警信息,包括后台的全部工作都在这里完成。IPV6IDS数据库:它是报警信息,网络事件及网络数据的记载体,IPV6IDS启动时读取配置文件数据库配置部分内容,那么数据库会以不同的方式启动,信息也会根据不同的方式写入数据表中,本实施系统采用MYSQL作为后台数据库,数据库主要存储的数据有非法的网络数据包完整内容,系统采用MYSQL提供的C语言数据库接口对其操作。Apache服务器:通过加载不同的模块,可以为多种网页设计语言提供解析服务,可以实现身份认证与通信加密功能,Apache服务器通过ADODB接口与IPV6IDS数据库进行交互。数据、日志及报警查询终端:数据库中的内容记录了入侵类,报警的信息,危害级别的分类,发生的次数,系统在运行过程中出现的一些异常信息。这些数据可以通过终端来查询并显示,终端可以有多个,可以是本地也可以远程的。用户根据终端显示的信息可以观察到目前网络的安全状况。
[0102] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。