一种网络多路入侵检测防御方法及系统的制作方法

文档序号:7812404阅读:228来源:国知局

专利名称::一种网络多路入侵检测防御方法及系统的制作方法
技术领域
:本发明涉及网络通信,网络攻击的检测和防护,具体涉及一种网络多路入侵检测防御方法及系统。
背景技术
:针对网络监听部分,国内外主要侧重于通过一些标准函数库,调用网卡设备等,在网络上抓捕数据包,具体的分类大概可分为网络旁路监听部分和操作系统端监控部分。网络旁路端监听监听程序在不同操作系统使用的方式不同,在Windows环境下有3种方案可供选择以编程实现网络监听。具体介绍如下(I)RawSocket(原始套接字),起初是Unix上最流行的网络编程接口之一,后来微软将它引入到Windows中并得以实现。(2)NDIS(NetworkDriverInterfaceSpeci2fication)由Microsoft禾口3Com公司联合开发,是Windows中“通信协议程序”和“网络设备驱动器”之间通信的规范。它为协议通信程序操作网络设备提供标准的接口,它支持计算机通过不同的协议栈与网络相连。(3)Packet32和WinPcap(WindowsPack2etCapture)都是免费的、基于Windows平台下的网络接口,为Win32应用程序提供访问网络底层的能力,并且它们工作于驱动层,效率很高。前者是微软的一个实现版本,后者是Unix下的Lipcap移植到Windows下的产物。表1对它们的优缺点进行了简要的比较。而在Linux环境下,则有2种方案可供选择以编程实现网络监听。具体如下(1)RawSocket(原始套接字),Unix上最流行的网络编程接口,(2)Libpcap(PacketCapturelibrary),数据包捕获函数库,本文应用的开发库,使用比较广泛,ethernal,Iinux下的sniffer就在此下面开发。(3)Libnet(libnet),Iibnet提供的接口函数主要实现和封装了数据包的构造和发送过程。操作系统端监听部分操作系统端做一些监控处理,要牵扯到访问控制等方式,才能很好的控制针对操作系统做出的一些非法访问和操作,而其监视模块,写入到操作系统内核,可以更加深入的监视外部程序对现有操作系统做的系统调用。在Win32平台上,也是使用了ACL列表做访问控制,基本都是微软公司提供的wirmt.h下的安全描述符的结构(SECURITY_DESCRIPT0R)做的访问控制工作,并且用WIN32下的accesscontrolentries(ACEs)做访问控制,如果进行访问控制操作,必须用微软授权的安全API实现,但是由于windows操作系统不开源,限制了很多监控,也屏蔽了内部细节。而对应的厂家已有一些类似的专利北京启明星辰信息技术有限公司申请的“主机入侵检测方法及系统”专利号CN200710098609.7.其专利技术核心主要是基于网络和操作系统审计,并且手动在控制中心定义规则,一定程度上不能及时的抵御实时攻击。美国思科技术公司申请的“数据中心环境中的入侵检测”。专利号页CN200580031064.7。其专利核心也是在各节点设置IDS传感器,收集网络数据,记录其产生破坏的数据来源,并且加入特征签名。可以抵御已知攻击,但是每个数据流都要加入签名标识,工作量大,而且对未知攻击无法防御。西安交通大学申请的Linux环境下基于调用栈图的入侵检测方法。专利号200510042882.9。其专利主要利用Iinux系统中触发SYSCALL的技术来提取相关的特征,并且使用PTrace技术获取相关程序调用系统堆栈的情况,其缺点是改动Linux系统内核,如果内核升级,则会造成与该方法的冲突,而且在新的LinuX2.6.28内核中由LSM彻底阻止其行为。所以该方法在新的系统中已经失效。而针对Linux的访问控制方面,NSA工程师M.TimJones的相关文献中详细的说明了GNU/Linux中,利用SELinux进行授权访问控制,可以阻止操作系统本身的一些防御更改带来的新漏洞,其中在SELinux使用了其中一种权能模型(Capabilities)实现了相关访问控制技术,而由于权能模型自身漏洞,并且没有提供相应的访问控制接口,造成了安全防御程序对于操作系统监控的困难。算法检测用到的反向神经网络算法原有误差反向传播(BP)算法中,设神经网络网络共有s+1层,输入层为第0层,输出层为第s层。令G1;表示在n+l层中第j神经元与第η中第k个神经元层连接的权值,可以得出其神经元的计算公式X广1=/(ZG1I-XkIn=0,1,…,S在式中f表示S型的函数。在这里S型函数表示如下f(u)=l/(l+exp(_u))当选取L个网络攻击的样本后,调整G=的可使输出层神经元的实际输出和现有可以得到的输出的平方误差尽量小,即得出E=ZZ(df-Xfm)x2其中上述公式中为在ρ个样本输入现有的神经网络第j个神经单元的得到的已知的输出的值;X『m为第ρ个样本输入现有的神经网络,第m层第j个神经单元的得到的已知的输出的值。上述是原有的神经网络计算,但是针对现有的攻击模型,其计算收敛速度太慢,不能适应DDOS攻击分类测算。
发明内容要解决的技术问题为了避免现有技术的不足之处,本发明提出一种网络多路入侵检测防御方法及系统,在修补权能模块漏洞的基础上,设计了一套新的改进方案,不仅改进了操作系统访问控制的能力,而且能使得在内核模块监控效率更高,可以在操作系统端阻止大多数的攻击。实用性较好。但是只是针对操作系统中的监控和控制,不涉及到网络端。技术方案一种网络多路入侵检测防御方法,其特征在于步骤如下步骤1在终端的操作系统中使用数据包过滤的方法收集本网络中通过的指定或全部数据包,然后在操作系统的内核部分,使用半轮询方式对捕捉网卡驱动优化轮询效率,随后在捕捉数据包的过程中使用混杂模式进行旁路数据包监听,并且使用临界阀算法在捕捉数据包过程中计算数据包分类并检索的过程中使用排队论方法计算优化处理值提高其检索分类效率;然后利用检测审计的方式对捕获并分类的数据包提取检测的数据包特征,并集中上报;所述终端为网络中的数据包对象中分布的多个终端;同时针对网络中的各Iinux操作系统中执行的网络程序或者相应模块,使用驱动内核载入的方式对内核产生的信息进行监控;在其中的LSM模块基础上,修改Linux中POSIX.Ie标准的Capability模块,既修改原有权能模块对操作系统权限的操作,使用钩子函数执行检测中心模块生成的规则,然后对操作系统内核操作实行监控并对进入到操作系统中的个体使用安全访问控制方式监控其行为;同时对其个体产生的进程根据其进程的信任状特权来进行仲裁,如果进程对系统中inode有操作则对其操作隔离处理,等待检测后进行生效或无效化处理。对监控到的内核操作信息放入消息队列并反馈到字符设备中,最后调用此字符设备并且把内核监控产生的其他未处理信息一起反馈到应用层子程序,随后应用层子程序把收集的报文同步到检测中心,之后执行步骤2的方法进行检测处理。步骤2针对接收到的网络端和操作系统端中收集的特征信息,通过贝叶斯算法对于已知攻击产生识别,根据原有攻击概率模型计算出现现有特征信息为攻击或为未知不可信信息的概率,同时根据用户定义的安全级别进行分类,之后把通过算法分类的特征信息放入反向神经网络对规则进行训练,检测DDOS攻击、木马攻击或通过混合攻击进入操作系统产生破坏的攻击,并且根据检测出的攻击类型匹配对应的防御知识库并生成防御规贝U,然后反馈到相应端口;步骤3如果攻击行为是针对操作系统端,则把规则反馈到操作系统应用层子程序,应用层子程序解析规则并触发内核监控模块产生生效或无效化操作或者拒绝相应进程访问或调用系统进程;如果攻击行为是针对网络,则把生成的规则反馈到网络入口节点,由入口节点解析规则,并触发监控模块拒绝某源IP的报文或者数据包。一种实现所述网络多路入侵检测防御方法的系统,其特征在于包括以下子模块网卡驱动捕包模块,通过改变网卡驱动的方式,提高数据捕捉处理量,减少抓包的耗损时间;网络数据包预处理子模块,负责对数据包中的特征进行提取;网络处理模块,接收检测中心模块反馈的规则,解析并进行源抑制或部分过滤操作,实现网络攻击防护;内核监控模块,加载入内核参与内核的系统调用,并且记录反馈给上层处理模块,或接收应用控制模块指令执行访问拒绝或者对进程隔离,杀死异常进程等操作;应用控制模块,接收内核监控模块产生的记录并且分类发送到检测中心模块,接收规则解析并根据规则向内核监控模块发出相应指令,控制进入到操作系统的网络程序或者代码执行非法操作;攻击特征库模块,对网络和操作系统上报的特征和算法模块产生的规则进行分类记录,方便算法模块进行提取分析;算法检测模块,首先使用贝叶斯算法对数据进行分类处理,减少反向神经网络的计算量,加快其收敛速度;然后使用改进的反向神经网络对特征进行训练,并形成处理结果,产生规则。有益效果本发明提出的一种网络多路入侵检测防御方法及系统,针对入侵检测全过程,从攻击或从事恶意行为的网络入侵到操作系统内部监控,都可以给予其抵御,并且形成防御机制,后期完善的自适应规则也增加了防御的实时性,为自动抵抗攻击带来动力。第一点该方案通过在内核端改进文件访问控制,依托LSM模块改进处理监控方式,在执行效率上和处理效率上都有显著的提高。第二点在方案中使用访问匹配符方式使得监控和同时对文件的定位查找更加高效。现有观点也认为,任何应用程序非匹配的情况占大多数。所以该方案很好的消除了大量的数据输入。未来阶段,该方案计划在功能层改进hash算法,使操作系统与病毒数据库进行更快更高效的匹配,使之成为更牢固的安全操作系统中的重要模块。第三点针对网络端,本文提供的方法和结构实现了Linux下的高量数据包监听技术及实现,实验证明通过对于部分处理机制的改进后不仅显著提高对于数据监听的处理效率,并且在系统资源占用率等多项指标中都有显著改善,在网络状况检测和入侵检测系统的改进方面都会带来处理瓶颈的突破。在规则产生部分也可以抵御基于特征和时间片的数据包的拒绝服务攻击。并且计算复杂度低,检出度较高。图1网络多路入侵检测防御系统图2操作系统安全模块图3:内核与上层交互4应用层与核心驱动层交互5:modev构架6:检测系统框架7利用semi-polling(半轮询)机制处理数据包图8:监听处理结构9数据包处理过程10包数据检测矩阵表图11检测系统框架12:BP算法流程13改进的算法流程14系统监控性能对比表图15混杂模式下监听数据包占有量具体实施例方式现结合实施例、附图对本发明作进一步描述第一部分内核访问监控方案针对网络中的DDOS分布式拒绝服务攻击,还有针对一些主机进行的控制,我们可以利用在内核进行监控,从而抵御一些外部的进攻。1.1结构和接口模型现有的项目以驱动方式加载,其中核心模块主要处理文件访问控制,可以通过一个完整的安全模块了解内核驱动访问监控系统在现有安全模块中的位置从图2中我们可以看到,用户应用层中若干模块通过内核接口获得内核中各种模块的支持,比如文件监控模块,就是通过内核空间中的内核监控模块对文件IO访问进行控制,然后反馈给文件访问控制模块,模块执行一系列操作命令下达给在内核空间用SyS_open相应模块,从而对文件系统进行安全控制。而其中我们可以借助LSM中的一些钩子函数,在安全域中添加若干结构如索引结点和文件访问结构,而对数据包和网络设备,安全域中提供了sk_buff和net_deViCe结构。而对SystemVIPC,安全域中提供了kem_ipc_perm禾口msg_msg结构。其中LSM钩子是在全局表中是一个指针,security_ops。此表为一个security_operations的结构,在include/linux/security.h中定义。目前,这种结构包括一个收集基于内核对象子结构的组相关钩子(如task,inode,file,sk_buff等)以及一些高层钩子函数指针的系统运作。这种结构能够在系统中平稳的运行。钩子在内核的"security,ops-”字符串中能够找到。本发明提出的方案(命名为Modev,以下简称Modev)在SELinux提供的相关机制基础上,加以改进。在Linux操作系统上层提供三层结构处理,实现在与杀毒软件和用户控制访问通信的同时与内核驱动的modev中core做系统调用。其中在操作系统上提供的访问接口如图3.2所示,接口以插入的方式实现跨平台移植。其中最上层一个是用户控制接口,一个是防病毒扫描接口。它们与可见层进行通信,现有的两类公共接口可以通过可见层提供的API对Modev进行操作。并且可见层可以提供反馈信息给上层应用程序。第二层是功能层,这一层实现Modev的决策和处理,可以在这一层改变功能或者利用一些算法实现处理决策,或者自动容错,后续介绍一下决策层实现的一些扫描决策算法。最底层是平台依赖层。这里设置一些操作系统特有相应的处理方法。这层不仅与操作系统做交互工作,而且必须获得对相应操作系统完全的支持,包括对文件区块的只读或重写。使用现有三层模型主要的优势在于第一,把功能层从平台依赖层代码独立出来,能够保证现有运行和调试更加可行和方便,纯功能层的独立,也使得对此层提供的任何修改都可以自由的运行于各操作系统平台,并且提供跨平台间统一的决策。第二,在平台依赖层定义具体的接口,使得移植到其他操作系统平台不仅可以执行平台基本的功能,并且移植系统间变得十分方便,而且在任何新的操作系统建立Modev运行环境,都只涉及到交换平台依赖层,而与其他接口无关。1.2内核监控模块(Modev)初始化当上层应用程序使用modev模块的时候,首先要把生成的modev.ko注册入系统中,指定其主设备号为MAJ0R_N0,用Linux内核来实现此设备的驱动程序,如果使用linux2.4内核,则同时在Linux2.4内核中劫持execve()系统调用。注册驱动接口到核心模块中或者创建驱动节点、移除节点。其中在Iinux接口中,用新的execve()与/dev/modev设备驱动程序共同维护一个内核FIFO队列新的execveO每次取得一条命令,作为一个结点加入FIFO队列;而当有用户进程读/dev/modev设备时,/dev/modev设备驱动程序中的读操作处理函数从FIFO队列中取出一个结点并将其复制到用户空间供用户进程使用;若FIFO队列中没有数据可用,8则阻塞用户进程。而上层应用程序与Modev进行通信的时候,首先使用ModevRegister对Modev模块进行注册,与Modev建立关系。使用ModevSetAccessMask函数设置Modev所使用的访问控制列表。然后利用modevAdcHncludePath把相应的监控文件路径加入处理队列中进行监控。使用modevGetAccess可以返回监控响应。1.3Modev内核模块定义Modev在Modev_core中进行内核模块定义,在init_module()函数中首先调用module_register_chrdev()注册字符设备(即把它将设备驱动程序加载入内核的字符驱动设备表之中),后把系统调用表中的execveO放入其入口地址,以截获对execveO的调用。设备注册时需定义一个security^perations结构的slot用来指定对设备文件进行定位、读、写、释放等操作时对应的处理函数.当有进程对此设备进行操作时,则自行调用一些函数进行处理。退出时使用cleanupjiioduleO取消注册设备,并恢复execveO调回到原来的入口地址。然后在系统钩子函数中初始化并写入SyS_Call_table中。具体实现方法,首先建立系统调用函数,把模块中产生的系统调用信息写入到SyS_Call_table中。1.4Modev中断劫持现有方案在linux2.4中使用的方法是中断劫持,系统调用新的处理函数。因为考虑结构包含栈地址信息,并且针对模块接口内置标准的execve调用。利用modeV_pUt_files_struct模块负责写入taSk_Struct结构,并且把含有当前处理机上当前任务的信息写入lp_id的全局变量中。在linuX2.6内核中,从内核的任务控制结构中取出必要信息放在输出链表中,供读取此设备文件的进程使用,再配置相关信息,然后把相应的操作文件或内核调用放入Ptrace中,方便协议栈操作。1.5Modev处理LSM模块交互上层功能接口和上层应用层交互,如图3中所示。模块初始化后,分别初始化自己的系统钩子函数,写入相应的sys_call_table。同时建立相应的access_mask_cache缓冲,外部控制可以通过写入相应文件访问控制掩码对用户访问做控制。建立相应的sys_hook,实现了与内核的LSM模块进行交互,就可以通过SELINUX自带的系统钩子对i节点进行统一的控制访问,具体参照LSM钩子架构。通LSM架构中自带的系统钩子,进行统一的操作,如果不使用LSM堆栈,则在注册相关安全接口函数和字符设备函数,并使用自带的CAPABILITIES函数实现访问控制。使用M0DEV_FIST模式,则调用include/security,h中的security_operations结构,并且进行操作。建立好通信后,建立并获得向相应的modev_index2event。对于SELinux系统写入的信息装入slot_list。写入的slot_list结构中包括扫描路径,文件读写锁状态,还有对于白名单应用程序的支持。当装入扫描路径时,就可以激活模块,并且写入配置(m0deV_Set_0pti0n),然后获得相应的句柄,使用lsm_capability_compare中的capability模式对比,使得相应外部控制程序写入的能力表模块能够正常运行。守护进程对相应上层操作控制建立的进程进行守护。工作完成后,执行退出操作。在本方法中,有些应用层的处理请求,通过钩子与LSM交互,就可以通过Iinux自有的安全模块进行处理,减少系统占用,加快处理速度。1.6功能层交互技术首先modevio_core中注册modevRegister_TS,在函数lp_connection_open中连接相关上层设备。并且获得设备的major_id。如图4中所示,在process—request中处理上层请求中有如下几种通讯方式,1、COMM_REQSTREAM队列通信方式,2、C0MM_DEVffRITE设备读写,3、最早的C0MM_C0MPAT1,还有就是默认的C0MM_UNSET。其中COMM_REQSTREAM用的最广的利用队列批处理软中断,如果启用该模式失败,则回退到设备读写模式,设备读写失败,则回退到最早的匹配模式,否则为C0MM_UNSET不设置。在ModevktAccessMask_TS中设置设备id和相关文件匹配码。在modev_set_path中设置文件相关路径。完成基本监控访问处理。其中在设备请求阶段,首先分配一个4字节为一处理块的缓冲区,分别在不同的区块执行设备返回操作,并且从设备上层写入到底层字符设备中,处理完一个缓冲队列后,返回相应的参数值,返回到高层等待继续下次处理。1.7内核监控端核心层处理当核心层的modev注册的字符设备获取到上层写入的信息之后,通过在handle_user_request中的函数处理,并且在数据结构xp_daem0n_id中写入相应的值,并且通过reqstream_112hl写回上层功能层,功能层获取到后,进行处理并反馈到应用程序。1.8内核监控端整体构架描述根据项目构建的结构如图5所示。在linux_conf和linxu_lsm_conf中加入相关的配置,然后相关参数写进m0dev_set_0pti0n中数据结构进行处理,而控制程序或者编译时候只需要把相关参数写入到上述两个conf中就可以正常运行。其中configure阶段的环境变量设置过程,就可以获得相关环境,并选择合适的系统接口。其中modev_linUU6接口处理liunx2.6内核交互。modev_linux接口处理linux2.4内核。modev_unix禾口modev_freeBSD和modev_mac分别对UNIX、freeBSD和mac操作系统接口处理预留接口。之后通过接口调用,传输到modetcore主核模块进行处理。控制或扫描软件的接口,则在modevio相关模块中实现,其中modev_access禾口modev_cache_settings,modev—access结构对于操作系统内监控的记录文件访问权限、限制、标志位、模式、进程号,文件名称、文件大小、组id、文件设备等信息进行记录。然后设置第二个缓冲防止死锁。方案使用内核监控的技术,改进了原有权能模块内核传递和检测过程,加速了原有安全模块的检测传递。但是对比原有方案,劣势在于模块有版本限制,对新的内核升级还暂不支持,驱动监控模块要同步更新内核新安全模块的升级。第二部分网络端防御系统基本构架及原理在网络端,我们使用混合监听模式,捕捉到的数据包放入训练模型中进行处理,产生相应的入侵防御规则,并且处理评估样本,具体如图6所示。2.1改进的网络监控系统在上述的改进系统中,首先利用Libpcap捕捉数据源,然后使用SNORT构架输入到数据库中处理,针对产生的数据包特征,BP神经网络算法包对数据进行训练,并且对异常未反馈数据集进行记录并且重新训练,然后重放包,使得对攻击事件进行重新评估。而余下的绝大多数数据输入到数据集中进行特征模型训练,并产生针对DDOS攻击的抵御规则。对于验证的包测试并输出到事件集进行处理。2.1.1以太网网络接口设备的工作模式在基于网卡的捕捉中通常有两种工作模式,即一般模式和混杂模式。一般模式下,当接收到网络中的数据帧,网卡进行过滤,留下本地网络地址与目的地址相同的数据帧和广播帧,而丢弃其他的数据帧;在混杂模式下,网卡会接收所有出现在网络接口上的数据帧,并移交给上层协议进一步处理。以太网上的数据帧监听主要涉及TCP/IP的IP、ARP等几个协议的分析。在Linux下监听网络,首先设置参数使其工作于混杂模式下便于监听网络上的所有数据帧,然后选择用Linux中相关的函数库来截取数据帧。2.1.3半轮询机制(kmi-polling)对于现有监听的优化在standardLibpcap的捕捉处理中,要打开块设备等,逐层拷贝并且每次都产生系统调用来实现数据拷贝,并且在对换中采用软中断机制,所以此种措施对于低量的数据包处理效率比较高,但是对于高量数据包,由于频繁的换入换出,使得处理时间大大增加。而全轮询机制方法由于设置了缓冲队列,在高数据量时由于一次处理整队列的数据,大大减少了频繁的中断调用,但是在网络流量不稳定的情况下则会经常的造成空等待从而降低了处理速率。因此并不是良好的普遍适用的处理方法。所以在本文中引入半轮询机制优化措施降低网络层传输的内存拷贝次数及避免频繁的系统调用,从而减小漏包率,加快检测速度。半轮询方式是一种中断和轮询方式的集成,如图7所示。在高负载时使用轮询,在轻负载时使用中断驱动。很好的解决了低负载时,轮询方式响应时间和处理器资源消耗的问题,高负载时,中断方式的接收活锁问题,同时利用了两种方式的特点。半轮询的优势如下1)限制了中断的频率,可以看作是一种自适应的中断批处理方式;2)减少了接收活锁的发生可能;幻数据和指令的本地局部性上也得到强化。2.1.4利用排队论计算带宽参数在高量数据环境中,网络类型复杂多变,为了估算合理的带宽阀值,从而对于半轮询机制处理选择,可以用博弈论中的排队论计算新的数据流量值以达到半轮询中两种机制的最佳切换。设共有N种应用类型,不同应用的平均传输速率(每秒传输的数据包个数)为Xi=(i=l,2,…,N)平均数据包长度(单位为字节,1字节=8bit)为(i=1,2,…,N),现有的带宽利用率为PiG=1,2...N),则数据流阀限值(单位为bit/s)为B=公式⑴TtP12.2Linux下的网络数据包监听实现过程2.2.ILinux下数据监听实现项目框架及数据包处理过程如图8所述,首先利用Libpcap打开网卡等捕捉设备,而当为数据分配块处理时,在内核模块中设置缓冲队列,然后计算数据包捕获频率和数据流阀限值比较来选择相应的处理方式,而计算捕获的参数通过SK-BUFF中的换入率得到,如果换入频繁超过了网络测值,就调用轮询方式,在LinuX2.6内核下调用NAPI开启缓冲队列并且设置轮询,然后从循环缓冲队列中取出TCP报文数据部分重组,并且输出相关信息。如果用户退出,则执行撤销CN102546624A缓冲,撤销进程等操作。2.2.2Linux上数据监听处理步骤如图9描述相关处理过程所述,步骤为1、打开、读取设备,设置过滤器pCap_0pen_liVe(),pcap_read(),pcap_setfilter().2、选择网络接口并且设置网络检测模块,包括初始化检测网络用到的pcap_lookupdev(),pcaplookupnet()等相关函数。其过程为首先打开套接字(socket),然后调用一系列的ioctl来获取套接字状态,以达到检测TCP/IP第一层网络设备的目的。3、设置轮询模式判断部分捕获到数据后计算当前数据流量.利用公式(1)中排队论理论计算出现有数据流值是否大于数据流阀限值B。如果现有值大于数据流阀限值B,则启用轮询模式处理,否则使用默认软中断处理,这样在一定程度上可以达到处理的最优化。2.3高量数据包捕获程序架构描述项目以DataListener函数作为整个程序框架的主体,调用Sniffer模块设置Libpcap初始化并且调用DataPacket模块控制监听的状况和执行相应的任务,然后把相关信息反馈给用户。其中DataPacket模块主要负责数据流量判断并且初始化NAPI设置轮询方式。步骤如下所示1、初始化Sniffer,DataPacket模块过滤函数和捕捉设备。2、设置过滤表达式。3、调用Parseopts()函数获取命令参数。4、利用Libpcap函数库中打开网卡设备并且进行监听。5、用pCap_datalink(handle)设置句柄并获得网络类型。6、如果当前数据流量大于数据流阀限值,则使用默认的软中断进行处理。否则利用定时器处理半轮询设备,其中包括初始化计时器initjimer;添加半轮询计时器;设置半轮询句柄,数据放入循环队列等待处理;调用I^acketBufferO处理数据包缓冲区。7、设置主线程并且调用线程互斥机制处理。8、调用getnlpO获链接头文件的指针.其中η.P指向网络头部。把数据包推入记录栈中。9、释放资源锁。10、退出程序。上述方法描述对于网络数据包监控并分类的处理过程,通过处理,管理者获得数据包信息后对其进一步的处理就可以提取出一些重要的监听信息或者对于相应数据端连接进行阻止或者规则匹配,比如载入相应过滤规则可以防止网络攻击等功能。2.4训练数据输入结构描述通过设置相应的数据结构可以输出相关捕捉的网络包数据,并且提取关键信息,进行过滤。数据包输入到数据类型中,产生的关键元素便于神经算法对数据集训练,并产生入侵检测规则。2.5贝叶斯模型计算根据网络数据记录和内核数据记录形成的属性集Si,我们可以形成其邻接矩阵Mi,在规则模板Confi下可以把捕捉的攻击数据分类集输入进来。利用公式Confi=S(Mi)*Pn(Mi)得出其规则表达式,而其中的3为矩阵的权值,其权值取决于先前实验得出的差错率,并由公式(Mi)ε1/err(Mi)给出,而差错率包括漏报率和误报率,我们用前次的若干状态θ1,...,ΘΝeΘ表达其数据集形成的概率分布。而Ρ(θ1)是获得数据集概率。我们可以用Mi表示为前次形成的概率事件Ε,则θ1的一次概率事件为Ρ(θ1/Ε),并形成公式权利要求1.一种网络多路入侵检测防御方法,其特征在于步骤如下步骤1在终端的操作系统中使用数据包过滤的方法收集本网络中通过的指定或全部数据包,然后在操作系统的内核部分,使用半轮询方式对捕捉网卡驱动优化轮询效率,随后在捕捉数据包的过程中使用混杂模式进行旁路数据包监听,并且使用临界阀算法在捕捉数据包过程中计算数据包分类并检索的过程中使用排队论方法计算优化处理值提高其检索分类效率;然后利用检测审计的方式对捕获并分类的数据包提取检测的数据包特征,并集中上报;所述终端为网络中的数据包对象中分布的多个终端;同时针对网络中的各Iinux操作系统中执行的网络程序或者相应模块,使用驱动内核载入的方式对内核产生的信息进行监控;在其中的LSM模块基础上,修改Linux中POSIX.Ie标准的Capability模块,既修改原有权能模块对操作系统权限的操作,使用钩子函数执行检测中心模块生成的规则,然后对操作系统内核操作实行监控并对进入到操作系统中的个体使用安全访问控制方式监控其行为;同时对其个体产生的进程根据其进程的信任状特权来进行仲裁,如果进程对系统中inode有操作则对其操作隔离处理,等待检测后进行生效或无效化处理。对监控到的内核操作信息放入消息队列并反馈到字符设备中,最后调用此字符设备并且把内核监控产生的其他未处理信息一起反馈到应用层子程序,随后应用层子程序把收集的报文同步到检测中心,之后执行步骤2的方法进行检测处理。步骤2针对接收到的网络端和操作系统端中收集的特征信息,通过贝叶斯算法对于已知攻击产生识别,根据原有攻击概率模型计算出现现有特征信息为攻击或为未知不可信信息的概率,同时根据用户定义的安全级别进行分类,之后把通过算法分类的特征信息放入反向神经网络对规则进行训练,检测DDOS攻击、木马攻击或通过混合攻击进入操作系统产生破坏的攻击,并且根据检测出的攻击类型匹配对应的防御知识库并生成防御规则,然后反馈到相应端口;步骤3如果攻击行为是针对操作系统端,则把规则反馈到操作系统应用层子程序,应用层子程序解析规则并触发内核监控模块产生生效或无效化操作或者拒绝相应进程访问或调用系统进程;如果攻击行为是针对网络,则把生成的规则反馈到网络入口节点,由入口节点解析规则,并触发监控模块拒绝某源IP的报文或者数据包。2.一种实现权利要求1所述网络多路入侵检测防御方法的系统,其特征在于包括以下子模块网卡驱动捕包模块,通过改变网卡驱动的方式,提高数据捕捉处理量,减少抓包的耗损时间;网络数据包预处理子模块,负责对数据包中的特征进行提取;网络处理模块,接收检测中心模块反馈的规则,解析并进行源抑制或部分过滤操作,实现网络攻击防护;内核监控模块,加载入内核参与内核的系统调用,并且记录反馈给上层处理模块,或接收应用控制模块指令执行访问拒绝或者对进程隔离,杀死异常进程等操作;应用控制模块,接收内核监控模块产生的记录并且分类发送到检测中心模块,接收规则解析并根据规则向内核监控模块发出相应指令,控制进入到操作系统的网络程序或者代码执行非法操作;攻击特征库模块,对网络和操作系统上报的特征和算法模块产生的规则进行分类记录,方便算法模块进行提取分析;算法检测模块,首先使用贝叶斯算法对数据进行分类处理,减少反向神经网络的计算量,加快其收敛速度;然后使用改进的反向神经网络对特征进行训练,并形成处理结果,产生规则。全文摘要本发明涉及一种网络多路入侵检测防御方法及系统,在网络端在网卡驱动中使用半轮询方式捕捉数据包并形成规则判断异常流量。在操作系统端,通过在Linux的Capability模块中加入权限控制实现安全访问控制,同时对操作系统内核层进行监听和控制处理,对进程进行信任状特权仲裁、操作i节点、并且在应用层进行安全控制实现对木马等异常操作或病毒破坏的监控。形成的特征数据汇集后送入贝叶斯模型中分类并导入改进的反向传播神经网络(BPNN)进行数据训练,使产生的规则能抵御相应攻击。本发明包含网络数据包处理模块、操作系统层检测模块、检测中心模块等三大模块及其下设的五个子模块。文档编号H04L29/06GK102546624SQ20111045756公开日2012年7月4日申请日期2011年12月26日优先权日2011年12月26日发明者慕德俊,马博申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1