专利名称::基于协同入侵检测的大规模网络安全防御系统的制作方法
技术领域:
:本发明属于计算机安全领域,具体涉及一种基于协同入侵检测的大规模网络安全防御系统。
背景技术:
:计算机网络的安全是一个国际化的问题,每年全球因计算机网络的安全问题而造成的经济损失达数百亿美元。据统计黑客攻击在过去5年中以250%的速度增长,99%的大公司都发生过大的入侵事件。世界著名的商业网站,如Yahoo、Buy、EBay、Amazon、CNN都曾被黑客入侵,造成巨大的经济损失,甚至连专门从事网络安全的RSA也受到过黑客的攻击。我国目前面临的网络安全问题正随着信息化的飞速发展日益严峻。2003年在遭受黑客攻击最为频繁的国家中,中国已经位居第三位。公安部公布的2004年全国信息网络安全状况调查结果显示,在被调查的7072家政府、金融证券、教育科研、电信、广电、能源交通、国防和商贸企业等部门和行业的重要信息网络、信息系统使用单位中,发生网络安全事件的比例为58%。目前防御黑客攻击的产品和技术主要包括防火墙、入侵检测系统(IDS)、流量检测和加密技术等,这些产品和技术在防御传统的简单入侵行为时表现尚可;但是近年来随着黑客技术的发展,攻击行为日益倾向于分布化、协同化、复杂化,其典型特点是1)攻击持续时间长,单个攻击行为不明显;2)攻击源分布广泛,攻击危害性大;3)攻击成员之间及时交流攻击信息,可以缩短攻击时间和优化攻击手段。随着协同攻击工具的大量产生,最近大规模的协同入侵如DDoS等时有发生,给企业网络和各种大型商业网站造成了巨大的威胁和损失,对协同入侵的检测和防御成为目前网络安全关注的焦点之一。目前针对协同入侵的检测和防御方案大致可以分为两种1)通过加入一定的算法和规则,增强单个安全产品的功能,从而实现对协同入侵的检测和防御。如NetScreen-IDP防火墙、FireWall-1防火墙和天阗网络入侵检测系统NS2200等。这种方式从本质上只是将协同入侵同普通入侵等同对待,而且检测和防御手段单一,因此检测和防御效果较差。2)通过在网络中部署多种安全产品,协作实现检测和防御。采用协作方式来检测和防御协同入侵已经逐步成为安全专家的共识。但目前采用协作方式的安全产品和解决方案普遍存在以下不足一是协作规模较小,一般都是采用防火墙加入侵检测系统的模式;二是协作程度较低,各个安全产品彼此是完全独立的,并不能做到真正的协同防御和智能互动,充其量是功能的相互叠加而已。三是可扩展性不好,存在性能瓶颈,无法满足在检测和防御大规模的协同入侵时对海量数据进行复杂分析的要求。因此这种简单的协作方式在检测和防御复杂的和大规模的协同入侵时表现不佳。由国内网络安全公司提出的TOPSEC网络安全体系是一种协作程度较高的检测和防御体系,该体系划分为T-SCM((TopsecSecurityCenterManagement),T-SCP(TopsecSecuritycooperationplatform)和T-SAS(TopsecSecurityAuditionSystem)三层。T-SCM层实现对各种安全产品的综合管理;各种安全产品均位于T-SCP层;T-SAS层实现对网络中安全设备的集中审计和分析。该体系可以实现各种安全产品在内部和较高层次上的协同工作,因此较之简单的安全产品外部协作方式效果更好。但是由于该体系所划分的三个层次与现有安全产品和技术方案并不兼容,要采用这种结构,安全产品必须根据该体系的三个层次重新设计,显然这是无法实现的,而且各个安全厂商也不会愿意自己的产品完全受制于任何一种平台和体系结构。
发明内容本发明的目的在于针对上述协同入侵的特点以及现有检测及防御机制的不足,提供一种基于协同入侵检测的大规模网络安全防御系统。本发明具有三重粒度的入侵检测功能、动态可扩展架构和动态规则库,能够智能互动响应和防御协同入侵。本发明提供的一种基于协同入侵检测的大规模网络安全防御系统,包括前端调度子系统、防火墙子系统、流量检测子系统、入侵检测子系统、后端调度子系统、报警的聚类与关联子系统以及控制台子系统;前端调度子系统用于与控制台子系统进行通讯,根据获得的关于防火墙子系统的状态信息,对从外部网络进入的数据包进行基于容错散列调度算法的负载调度,并采用双机热备份的方式进行容错处理,保证主调度器在出现故障时,后备调度器能够顺利地接替主调度器的工作;防火墙子系统用于与控制台子系统进行通讯,按照用户在控制台子系统上设定的策略对进出受保护网络的数据包进行控制,定期汇报自身的状态,根据对相关数据包的分析检测入侵行为,并向控制台子系统发送报警信息;流量检测子系统采用人工神经网络模型对网络数据进行入侵检测分析;入侵检测子系统采用并行技术和基于协议流分析技术对网络中的数据包进行检测,发现入侵行为后进行报警;后端调度子系统用于将防火墙子系统检测后允许通过的从外部网络进入的数据包调度给各个入侵检测子系统,并同时发往受保护的内部网络;并将从内部网络发出的数据包调度给防火墙子系统;报警的聚类与关联子系统采用数据挖掘技术和相似性评估方法,提供报警信息的聚类处理和关联分析功能,挖掘不同入侵行为之间的关联关系,并据此生成关联规则供防火墙子系统和入侵检测子系统使用;控制台子系统用于对整个系统进行配置与监控;当外部网络访问受内部网络时,前端调度子系统将数据包调度给防火墙子系统;同时流量检测子系统获取所有数据包的镜像数据;防火墙子系统和流量检测子系统分别对数据包进行检测,当检测到入侵之后进行报警以及交互响应;防火墙子系统阻断检测到的非法数据包,将其余的数据包发往后端调度子系统;后端调度子系统一方面将数据包调度给入侵检测子系统,进行进一步的检测,另一方面将数据包调度给受保护的内部网络;防火墙子系统、流量检测子系统和入侵检测子系统的报警信息都发往报警的聚类与关联子系统;报警的聚类与关联子系统通过分层聚类技术对报警信息进行合并,将合并后的报警发往控制台子系统;报警的聚类与关联子系统通过关联分析和序列分析对报警信息进行分析,当获得报警信息的关联信息后可以生成关联规则,并将其发往控制台子系统;控制台子系统根据报警的聚类与关联子系统发来的聚类后的报警信息,通知防火墙子系统和入侵检测子系统采取响应措施,同时采用通知管理员;控制台子系统收到报警的聚类与关联子系统发来的关联规则后,将其发布给防火墙子系统;当内部网络访问外部网络时,后端调度子系统将从内部网络发出的数据包调度给各个防火墙子系统;防火墙子系统对数据包进行地址转换等处理之后,发往外部网络。上述前端调度子系统包括通讯模块,第一控制模块,容错处理模块和调度模块;通讯模块负责与控制台子系统的通讯,在预先定义的端口上建立TCP服务器进行监听,接收并解析收到的控制流信息后发给第一控制模块进行处理;接收第一控制模块的控制流并对其进行封装后通过TCP协议发往控制台子系统;第一控制模块处于Linux内核层,负责初始化各模块的公用数据结构,执行经由通讯模块解析处理后的控制命令,并通过通讯模块向控制台子系统发送控制命令;容错处理模块采用双机热备份的冗余方式,实现自身的容错机制;调度模块根据容错处理模块的容错机制,采用加权源/目的地址散列调度算法对数据包进行调度。上述防火墙子系统包括数据包采集模块、包过滤模块、SYN代理模块、信任度计算模块、分析与报警模块、控制模块和第一协同响应接口模块;数据包采集模块通过控制模块注册的Netfilter钩子,提取经由前端调度子系统发来的数据包和经由后端调度子系统发来的数据包,将数据包交由包过滤模块进行处理;包过滤模块对从数据包采集模块获取的数据包进行处理和过滤;SYN代理模块处理从外部网络向受保护的内部网络发起的TCP连接;信任度计算模块对包过滤模块发来的数据包进行分析,建立和维护信任度纪录;分析与报警模块根据包过滤模块发来的丢弃数据包信息,进行统计分析,并产生报警信息及响应规则,传送给第一协同响应接口模块发出;第二控制模块用于对防火墙子系统中的各个模块进行控制;第一协同响应接口模块实现防火墙子系统与其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。上述分析与报警模块包括分析数据的获取和维护模块、数据分析模块和报警响应模块;分析数据的获取和维护模块用于收集包过滤模块中被丢弃的数据包、服务器返回的ICMP端口不可达包以及TCPRST包,将数据包的信息存入数据库;数据分析模块该模块根据系统设置的阈值,对分析数据的获取和维护模块存入数据库中的数据包信息进行统计分析,如果超过阈值表示可能有攻击发生,则通知报警响应模块产生相应的动作;报警响应模块根据数据分析模块得到的结果产生相应的报警信息,交由第一协同响应接口模块发出。上述流量检测子系统包括数据包采集模块、人工神经网络模型、第三控制模块和每二协同响应接口模块,以及训练模块或第一检测模块;其中,数据包采集模块用于获取所有从外部网络访问内部网络的数据包,然后根据运行模式,将数据包交由训练模块或者第一检测模块处理;训练模块将从数据包采集模块获得的数据包和从第三控制模块获得的神经网络配置参数传给人工神经网络模型进行训练;人工神经网络模型采用误差逆向传播算法对数据包进行分析,建立符合网络流量特征的检测模型;第一检测模块将从数据包采集模块获得的数据包传给人工神经网络模型,进行流量检测;当收到人工神经网络模型的入侵报警后,将报警信息按照预定的格式进行规范处理后,交由每二协同响应接口模块封装后发出;第三控制模块在启动后,负责初始化公共数据结构,根据启动参数,判断运行模式;每二协同响应接口模块实现与系统中其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。上述入侵检测子系统包括数据包采集模块、数据包解析模块、第二检测模块、入侵检测规则库、第四控制模块以及每三协同响应接口模块;其中,数据包采集模块通过调用标准libpcap库函数提取后端调度子系统调度来的所有数据包,交由数据包解析模块进行处理;数据包解析模块接收数据包采集模块抓取的网络数据包,根据网络包的层次性,依次进行解析,并传给第二检测模块;第二检测模块根据入侵检测规则库的检测规则,对数据包解析模块处理后的数据,进行常规包过滤分析,并检测入侵行为,产生入侵报警,交由第三协同响应接口模块封装后发出;入侵检测规则库用于实现入侵检测规则的存取处理,并向检测模块提供检测规则;第四控制模块负责注册公共的数据结构和加载其它模块;第三协同响应接口模块实现同系统其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。上述报警的聚类与关联子系统包括分层聚类模块和关联分析模块;其中,分层聚类模块接收防火墙子系统和入侵检测子系统的报警信息,对该报警信息进行具体的分层聚类处理,并为关联分析模块提供报警信息数据源;关联分析模块运用关联算法进行分析挖掘并对结果进行性能评估,将最终有效的规则和模式提交给控制台子系统发布。上述控制台子系统包括系统监控模块和策略配置模块;其中,系统监控模块负责系统中各个子系统的注册与初始配置;它包括网络通讯模块、数据库管理模块、系统状况监控模块和系统日志管理模块;网络通讯模块通过定期与系统中其它子系统进行通讯,获取各个子系统的状态信息和整个网络的负载情况,并将控制台的控制命令通过TCP协议发送到各个子系统;数据库管理模块通过运行后台数据库线程,更新数据库信息,根据保存期限清除过期信息,向其它模块提交最新数据;系统状况监控模块通过网络通讯模块定期获取各个模块的运行状况,并显示其运行状态信息。系统日志管理模块用于记录系统的用户操作日志;策略管理模块负责防火墙子系统、流量检测子系统和入侵检测子系统的策略规则的脚本化和图形化配置;它包括策略发布模块、策略分组管理模块和规则库自动更新模块;其中,策略发布模块负责策略的发布;策略分组管理模块负责规则库的分组管理以及各分组配置文件的生成;规则库自动更新模块负责新规则的存储处理以及策略规则的自动在线更新。本发明将并行防火墙,并行入侵检测系统,流量检测技术以及数据挖掘技术有机结合,采用消息驱动机制和通用接口实现彼此协作,形成三重粒度的并行协同防御体系,通过控制台子系统进行统一管理和维护,从而有效的防止协同入侵。具体而言,本发明具有下述优点及效果。(1)三重粒度的协同检测本系统包含三个相互独立而又彼此协作的检测防御子系统,流量检测子系统主要是根据各类数据包流量特征来进行检测,防火墙子系统主要是提供会话级别的检测,而入侵检测子系统则主要提供对数据包的检测和分析,从而实现三重粒度的检测防护。(2)动态可扩展架构由于防火墙子系统和入侵检测子系统均采用了并行技术,用户可以根据情况动态增加或者减少防火墙子系统和入侵检测子系统的数目,从而实现安全性和硬件代价的平衡。(3)智能互动响应本系统各个子系统在检测和防御中可以互相提供检测信息,同时也可以根据彼此的检测信息进行适当的响应,如生成相应的规则等,做到检测防御的一体化,自动化,可以不需要人工干预。(4)动态规则库防火墙子系统和入侵检测子系统除了预定义的规则外,管理员还可以通过控制台子系统发布新规则,而且在系统运行过程中报警的聚类与关联子系统能够根据入侵报警信息之间的关联关系产生关联规则。(5)防御协同入侵本系统针对协同入侵的复杂性和分布性,从整体构架上进行防御,各个子系统联合互动,进行多层检测和拦截,而且在各个子系统采取了专门针对协同入侵的技术和措施,较之传统的检测防御技术,可以更为有效的防御协同入侵。图1为本发明基于协同入侵检测的大规模网络安全防御系统体系结构图。图2为前端调度子系统结构示意图。图3为前端调度子系统数据处理流程示意图。图4为防火墙子系统结构示意图。图5为防火墙子系统数据处理流程示意图。图6为流量检测子系统结构示意图。图7为流量检测子系统数据处理流程示意图。图8为入侵检测子系统结构示意图。图9为入侵检测子系统数据处理流程示意图。图10为报警的聚类与关联子系统结构示意图。图11为控制台子系统的结构示意图。具体实施例方式下面结合附图对本发明作进一步详细地说明。如图1所示,本发明通过前端调度子系统1、防火墙子系统2、流量检测子系统3、入侵检测子系统4、后端调度子系统5、报警的聚类与关联子系统6以及控制台子系统7内在的紧密协作来实现对协同入侵的检测和防御。前端调度子系统1用于与控制台子系统7进行通讯,根据获得的关于防火墙子系统2的状态信息,对从外部网络进入的数据包进行基于容错散列调度算法的负载调度,并采用双机热备份的方式进行容错处理,保证主调度器在出现故障时,后备调度器能够顺利地接替主调度器的工作。防火墙子系统2用于是与控制台子系统7进行通讯,按照用户在控制台子系统7上设定的策略对进出受保护网络的数据包进行控制,定期汇报自身的状态,根据对相关数据包的分析检测入侵行为,并向控制台子系统7发送报警信息。流量检测子系统3采用人工神经网络模型对网络数据进行入侵检测分析,其功能是通过对大规模网络数据进行字段提取,建立神经网络的训练样本;对神经网络进行训练,建立最佳的检测模型;依据该检测模型对实时的网络数据进行检测,同时将检测结果进行保存,建立新的神经网络的训练样本;以及依据训练周期,启动相应的训练模块,自动训练,维护神经网络检测模块的最佳参数值。入侵检测子系统4采用并行技术和基于协议流分析技术对网络中的数据包进行检测,发现入侵行为后进行报警。后端调度子系统5与前端调度子系统1功能和结构基本相同,不同之处在于调度模块的调度流程上。前端调度子系统1的调度模块1.4是将从外网进入的数据包调度到各个防火墙子系统2;而后端调度子系统5的调度模块的调度流程包括两种一是将防火墙子系统2检测后允许通过的从外部网络进入的数据包调度给各个入侵检测子系统4,并同时发往受保护的内部网络;二是将从内部网络发出的数据包调度给防火墙子系统2。报警的聚类与关联子系统6采用数据挖掘技术和相似性评估方法,提供报警信息的聚类处理和关联分析功能,改进了网络安全报警系统常规的直接报警方式,减少冗余报警;挖掘不同入侵行为之间的关联关系,并据此生成关联规则供防火墙子系统2和入侵检测子系统4使用。控制台子系统7是整个系统的控制核心,主要功能是完成对整个系统的配置与监控。当外部网络访问受保护的内部网络时,前端调度子系统1将数据包调度给防火墙子系统2;同时流量检测子系统3获取所有数据包的镜像数据;防火墙子系统2和流量检测子系统3分别对数据包进行检测,当检测到入侵之后进行报警以及交互响应;防火墙子系统2阻断检测到的非法数据包,将其余的数据包发往后端调度子系统5;后端调度子系统5一方面将数据包调度给入侵检测子系统4,进行进一步的检测,另一方面将数据包调度给受保护的内部网络。防火墙子系统2、流量检测子系统3和入侵检测子系统4的报警信息都发往报警的聚类与关联子系统6。报警的聚类与关联子系统6通过分层聚类技术对报警信息进行合并,将合并后的报警发往控制台子系统7;报警的聚类与关联子系统6通过关联分析和序列分析对报警信息进行分析,当获得报警信息的关联信息后可以生成关联规则,并将其发往控制台子系统7。控制台子系统7根据报警的聚类与关联子系统6发来的聚类后的报警信息,通知防火墙子系统2和入侵检测子系统4采取响应措施,同时采用预先设置的方式通知管理员(如发送Email等);控制台子系统7收到报警的聚类与关联子系统6发来的关联规则后,将其发布给防火墙子系统2。当受保护的内部网络访问外部网络时,后端调度子系统5将从内部网络发出的数据包调度给各个防火墙子系统2;防火墙子系统2对数据包进行地址转换等处理之后,直接发往外部网络,无需再经由前端调度子系统1,可以有效的减轻前端调度子系统1的负担。下面分别对各个子系统进行详细的说明。前端调度子系统如图2所示,前端调度子系统1包括通讯模块1.1,第一控制模块1.2,容错处理模块1.3和调度模块1.4。通讯模块1.1负责与控制台子系统7的通讯,在预先定义的端口上建立TCP服务器进行监听,接收并解析收到的控制流信息后发给第一控制模块1.2进行处理;接收第一控制模块1.2的控制流并对其进行封装后通过TCP协议发往控制台子系统7。第一控制模块1.2处于Linux内核层,负责初始化各模块的公用数据结构,注册Netfilter钩子和sockopt,启动其它模块;执行经由通讯模块1.1解析处理后的控制命令,包括启动或者停止调度模块1.4的功能以及更新容错处理模块1.3中所保存的关于防火墙子系统2的状态信息;通过通讯模块1.1向控制台子系统7发送控制命令。容错处理模块1.3的主要功能是实现自身的容错机制。容错处理模块1.3采取双机热备份的冗余方式设立一个从调度器作为主调度器的备份,在两个调度器上均运行心跳程序,通过冗余的数据线(串口线和UDP)来相互定时地汇报自己的状态;当主调度器失效时,从调度器通过ARP欺骗来接管对外的IP地址,从而接管调度工作;心跳程序在汇报状态的同时将活动调度器的当前配置信息更新到非活动调度器,以保证接管后对当前系统的影响降到最低。调度模块1.4是前端调度子系统1的核心部分,根据容错处理模块1.3的容错机制采取合适的调度算法和数据包转发。其所采用的调度算法和数据包转发技术的性能决定着整个系统的性能。调度模块1.4采用基于直接路由的数据包转发技术。其基本原理是通过改写请求报文的MAC地址,将请求通过防火墙子系统2发送到内部网络中的服务器,而服务器将响应直接通过防火墙子系统2返回给客户。同IP隧道技术一样,直接路由技术可极大地提高系统的伸缩性;直接路由相比IP隧道的方式避免了重新封装IP隧道数据包的额外开销,因此可以更好的保证性能。调度模块1.4采用了以下的加权源/目的地址散列调度算法来实现对数据包的调度1)假设有一组防火墙子系统2FW={FW0,FW1,...,FWn-1},其中FWNode[]是一个有M个桶(Bucket)的Hash表,且系统中安装的防火墙子系统2的数目小于M(表的大小是可以调整的);2)算法的初始化处理将所有防火墙子系统2按顺序循环地放置到FWNode表中。初始化处理采用素数乘法Hash函数,通过乘以素数使得散列键值尽可能地达到较均匀的分布。3)假设调度单元的权值为C(FW)={C(FW0),C(FW1),...,C(FWn-1)},FIREWALL_WEIGHT_SUM为所有的防火墙子系统2的权值和,即FIREWALL_WEIGHT_SUM=Σi=0n-1C(FWi)]]>4)对加权素数乘法Hash函数得到的结果,我们再进行一次映射处理,将散列值映射到防火墙子系统2上,映射算法如下假设并行防火墙2FW={FW0,FW1,FW2},C(FW)={2,3,4},则FIREWALL_WEIGHT_SUM=2+3+4=9。调度模块1.4通过上述加权源/目的地址散列调度算法,根据各个防火墙子系统2的不同处理能力来调度访问请求,这样可以保证处理能力强的防火墙子系统2处理更多的访问流量。前端调度子系统1的数据处理流程如图3所示1)前端调度子系统1启动后,首先由第一控制模块1.2初始化各种公共数据结构,注册调度模块1.4和容错处理模块1.3所需的Netfilter钩子和sockopt;然后通过通讯模块1.1向控制台子系统7发送注册命令。2)注册成功后,通讯模块1.1在预先定义的端口上启动TCP服务器进行监听。3)通讯模块1.1监听到控制台子系统7的连接请求后,创建处理子进程进行处理,父进程继续监听。4)处理子进程对控制台子系统7的命令进行解析后,将命令传给第一控制模块1.2,第一控制模块1.2根据接收到的命令执行以下5)到7)的操作。5)如果收到的命令是参数配置命令,则修改各种系统参数。6)如果收到的命令是停止命令,则停止调度模块1.4。7)如果收到的命令是启动命令,则启动调度模块1.4。8)当调度模块1.4启动后,重复执行以下操作从TCP/IP协议栈提取网络数据包,丢弃其中的ICMP包,根据加权源/目的地址散列调度算法将其余的数据包采用直接路由技术调度给防火墙子系统2。9)第一控制模块1.2定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和调度统计数据,通过通讯模块1.1发往控制台子系统7,作为心跳信息。后端调度子系统后端调度子系统5与前端调度子系统1功能和结构基本相同,不同之处在于调度模块的调度流程上。前端调度子系统1的调度模块1.4是将从外网进入的数据包调度到各个防火墙子系统2;而后端调度子系统5的调度模块的调度流程包括两种一是将防火墙子系统2检测后允许通过的从外部网络进入的数据包调度给各个入侵检测子系统4,并同时发往受保护的内部网络;二是将从内部网络发出的数据包调度给防火墙子系统2。防火墙子系统防火墙子系统2采用并行技术、SYN代理技术和独特的数据分析与报警技术以及基于数据包综合信任度的DDoS攻击响应策略。SYN代理技术通过代替服务器进行和客户端的三次握手工作,避免服务器遭受SYNflood攻击,但是缺点是防火墙负担加重,并行技术的采用可以有效的弥补这一缺陷;数据分析与报警技术有选择地保存某些类型的被丢弃数据包的信息,并通过周期性地对其进行分析,可以检测几种已知类型的DDoS攻击;传统防火墙DDoS响应策略采用随机丢弃的方法,往往在丢弃某些攻击数据包的同时也丢弃了一定数量的正常数据包,在一定程度上仍然对合法用户产生了拒绝服务。基于数据包综合信任度的DDoS攻击响应策略,对发往内网的每个TCP或UDP数据包P计算综合信任度Rp(Rp=Rsrc+Rdst+Rst,其中Rsrci为基于源IP的信任度,Rdst为基于协议、目的IP和目的端口对的信任度,Rst为基于状态检测模块返回状态的信任度)并将其分成不同的信任级别;DDoS攻击响应时对数据包的过滤不仅要根据该数据包的特性以及记录的状态,还要根据计算的综合信任度和由此得到的信任级别,优先过滤信任度和信任级别较低的数据包,从而降低正常数据包被丢弃的概率,提高攻击响应的准确性。如图4所示,防火墙子系统2包括数据包采集模块2.1,包过滤模块2.2,SYN代理模块2.3,信任度计算模块2.4,分析与报警模块2.5,第二控制模块2.6以及第一协同响应接口模块2.7。数据包采集模块2.1通过第二控制模块2.6注册的Netfilter钩子,提取经由前端调度子系统1发来的数据包和经由后端调度子系统5发来的数据包,将数据包交由包过滤模块2.2进行处理。包过滤模块2.2对数据包采集模块2.1获取的数据包进行处理和过滤,包括以下两个方面一是对从外部网络发来的数据包进行分析,根据Linux下的iptables规则表中的规则对数据包进行匹配过滤,丢弃不被规则允许通过的数据包;对于可能是DDoS攻击的数据包,则根据信任度计算模块2.4维护的信任度纪录,只丢弃信任度低的数据包。对于规则允许通过的包,将其中的SYN包交由SYN代理模块2.3处理,而剩下的包则直接通过Linux内核层发往后端调度子系统5。该模块同时还将所有数据包交由信任度计算模块2.4进行分析,以便建立和维护信任度纪录;将所有丢弃的数据包交由分析与报警模块2.5进行分析,以便进行DDoS检测。二是对从内部受保护网络发出的数据包,根据iptables规则表中的NAT规则,将其源地址转换成前端调度子系统1的网络地址,将其端口映射成为前端调度子系统1中的相应端口,然后将数据包直接发往外部网络。SYN代理模块2.3处理从外部网络向受保护的内部网络发起的TCP连接。首先伪装成服务器和发起连接的客户端通过三次握手建立连接,然后再伪装成客户端和内部网络建立连接,对连接建立后的数据包进行序列号转换。另外该模块还根据需要收集不成功的SYN连接的信息。具体流程如下在Netfilter的PREROUTING链注册HOOK模块SYN_Proxy;处理连接未完成阶段的数据包,维护相关状态信息;当连接完全建立后,在状态检测表中新建一条相关记录,完成序列号转换;而对于不成功的连接,则将其相关信息存放到单独的Hash表中。信任度计算模块2.4对包过滤模块2.2发来的数据包进行分析,计算综合信任度,并填入相应字段,建立和维护信任度纪录。在包过滤模块2.2匹配到可能是DDoS攻击的可疑数据包时,向其提供信任度纪录以便丢弃信任度低的数据包,同时修改信任度纪录,降低那些没有被丢弃的可疑数据包的信任度。分析与报警模块2.5根据包过滤模块2.2发来的丢弃数据包信息,进行简单的统计分析,以便发现常规的DDoS攻击,并产生报警信息及响应规则,它包括三个子模块分析数据的获取和维护模块2.5.1、数据分析模块2.5.2和报警响应模块2.5.3。1)分析数据的获取和维护模块2.5.1该模块通过扩展iptables的target,收集包过滤模块2.2中被丢弃的数据包、服务器返回的ICMP端口不可达包以及TCPRST包,将数据包的相关信息(单纯的数量信息或更多信息)存入数据库。2)数据分析模块2.5.2该模块根据系统设置的阈值,对分析数据的获取和维护模块2.5.1存入数据库中的数据包信息进行简单的统计分析,如果超过阈值表示可能有攻击发生,则通知报警响应模块2.5.3产生相应的动作。3)报警响应模块2.5.3该模块根据数据分析模块2.5.2得到的结果产生相应的报警信息,交由第一协同响应接口模块2.7发出。第二控制模块2.6是防火墙子系统2的控制核心,主要功能包括初始化各模块的公用数据结构,并注册Netfilter钩子和sockopt;根据第一协同响应接口模块2.7接收并解析的系统控制流和系统数据流,设置包过滤模块2.2所需的iptables规则,配置分析与报警模块2.5的报警阀值,以及向SYN代理模块2.3提供受保护内部网络中的服务器信息;控制防火墙子系统的注册、启动、停止等过程;定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据。第一协同响应接口模块2.7实现同系统其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能在预先定义的端口上建立TCP服务器进行监听,接收并解析收到的系统控制流信息和系统数据流信息后发给第二控制模块2.6进行处理;接收第二控制模块2.6的控制流并对其进行封装后通过TCP协议发往控制台子系统7;接收报警响应模块2.5.3的报警信息,对其进行封装后通过TCP协议发往控制台子系统7。防火墙子系统2的数据处理流程如图5所示1)防火墙子系统2启动后,第二控制模块2.6初始化各种数据结构,注册数据包采集模块2.1,包过滤模块2.2,SYN代理模块2.3,信任度计算模块2.4以及分析与报警模块2.5所需的Netfilter钩子和sockopt;然后通过第一协同响应接口模块2.7向控制台子系统7发送注册命令。2)注册成功后,第一协同响应接口模块2.7在预先定义的端口上启动TCP服务器进行监听。3)第一协同响应接口模块2.7监听到控制台子系统7发送连接请求后,创建处理子进程进行处理,父进程继续监听。4)处理子进程对控制台子系统7的命令进行解析后,将其发往第二控制模块2.6。5)第二控制模块2.6根据收到的命令,执行以下6)到10)的操作。6)如果收到的是参数配置命令,则分别设置包过滤模块2.2所需的iptables规则,配置分析与报警模块2.5的报警阀值,以及向SYN代理模块2.3提供受保护内部网络中的服务器信息。7)如果收到的是停止命令,则停止数据包采集模块2.1。8)如果收到的是启动命令,则启动数据包采集模块2.1。9)如果收到的是报警信息,则根据报警信息所提供的内容,阻断后续攻击。10)如果收到的是规则,则将其交由包过滤模块2.2。11)数据包采集模块2.1启动后,通过Netfilter钩子提取前端调度子系统1调度而来的数据包,并将其交由包过滤模块2.2。12)包过滤模块2.2根据包的源地址得知其为从外部网络进入的数据包,则根据Linux下的iptables规则表中的规则对数据包进行匹配过滤,丢弃不被规则允许通过的数据包;对于可能是DDoS攻击的数据包,则根据信任度计算模块2.4维护的信任度纪录,只丢弃信任度低的数据包。13)包过滤模块2.2对于规则允许通过的包,将其中的SYN包交由SYN代理模块2.3处理,SYN代理模块2.3伪装成服务端同客户端通过三次握手建立连接。SYN代理模块2.3丢弃未能成功完成三次握手的连接,对于成功建立的连接,伪装成连接发起的客户端同内部受保护的网络通过三次握手建立连接。14)对于规则允许通过的包,包过滤模块2.2将其中已经建立好连接的数据包,直接通过Linux内核层发往后端调度子系统5。15)包过滤模块2.2将规则不允许通过的包交给分析数据的获取和维护模块2.5.1。分析数据的获取和维护模块2.5.1将获得的数据包按照预先定义的格式提取出其中的信息,并存入数据库中,交由数据分析模块2.5.2处理。数据分析模块2.5.2对数据库中的数据包信息进行简单的统计分析,如果超过阈值表示可能有攻击发生,则通知报警响应模块2.5.3向报警的聚类与关联子系统6发送报警信息。16)第二控制模块2.6定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据,通过第一协同响应接口模块2.7发往控制台子系统7,作为心跳信息。流量检测子系统基于人工神经网络模型的流量检测子系统3,对非规则数据具有高度的识别能力。由于Internet流量数据是非平稳的时间序列,具有统计上的长相关性,人工神经网络模型较之传统流量检测模型可以更好的对此进行模拟。采用人工神经网络模型的流量检测子系统3,针对网络流量的突发性,可以从大量统计资料中分析提取宏观统计规律,不存在采用泊松分布模型时会将突发性平滑掉的缺陷,从而能够提高检测的准确率。采用人工神经网络模型的流量检测子系统3的优势还在于善于联想、概括、类比和推理,具有很强的自学习能力,通过自学习,不仅可以检测已知类型的攻击,也可以发现未知的新型攻击。如图7示,流量检测子系统3包括数据包采集模块3.1,训练模块3.2,人工神经网络模型3.3,第一检测模块3.4,第三控制模块3.5和第二协同响应接口模块3.6。流量检测子系统3可以采用训练和检测两种模式运行,在训练模式下,系统加载训练模块3.2而不加载第一检测模块3.4;在检测模式下,系统加载第一检测模块3.4而不加载训练模块3.2。数据包采集模块3.1通过调用Linux下的libpcap库函数,将网络接口设置为混杂模式后,获取所有从外部网络访问内部网络的数据包,然后根据运行模式,将数据包交由训练模块3.2或者第一检测模块3.4处理。训练模块3.2将从数据包采集模块3.1获得的数据包和从第三控制模块3.5获得的神经网络配置参数传给人工神经网络模型3.3,进行训练。人工神经网络模型3.3采用BP算法对数据包进行分析,从而建立符合网络流量特征的检测模型。基本思想如下1)根据数据包建立以下的样本集S={(X1,Y1),(X2,Y2),...,(Xs,Ys)}2)逐一地根据样本集中的样本(Xk,Yk)计算出实际输出Ok和误差测度E1,对W(1),W(2),...,W(L)各做一次调整,重复这个循环,直到∑Ep<ε。3)用输出层的误差调整输出层权矩阵,并用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的误差。如此获得所有其它各层的误差估计,并用这些估计实现对权矩阵的修改。形成将输出端表现出的误差沿着与输入信号相反的方向逐级向输入端传递的过程。4)如果是在训练模式下,则最后得出的结果是根据传入参数建立的检测模型和各种检测参数。5)如果是在检测模式下,则最后得到的结果是根据检测模型和参数对数据包进行分析的结果。如果当前数据包流量与检测模型和参数不符,则认为发生了入侵,将入侵信息传递给第一检测模块3.4。第一检测模块3.4将从数据包采集模块3.1获得的数据包传给人工神经网络模型3.3,进行流量检测;当收到人工神经网络模型3.3的入侵报警后,将报警信息按照预定的格式进行规范处理后,交由第二协同响应接口模块3.6封装后发出。第三控制模块3.5是流量检测子系统3的核心控制部分,主要完成以下功能在启动后,负责初始化公共数据结构,根据启动参数,判断运行模式,如果是训练模式,则加载训练模块3.2而不加载第一检测模块3.4,如果是检测模式,则加载第一检测模块3.4而不加载训练模块3.2;完成注册、停止、重启等管理功能;定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据。第二协同响应接口模块3.6实现同系统其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能,其功能和实现与防火墙子系统2的第一协同响应接口模块2.7相同。流量检测子系统2的数据处理流程如图7所示1)系统启动后,第三控制模块3.5执行初始化操作,并加载相关模块,然后通过第二协同响应接口模块3.6向控制台子系统7发送注册信息。2)注册成功后,第二协同响应接口模块3.6在预先定义的端口上启动TCP服务器进行监听。3)第二协同响应接口模块3.6监听到控制台子系统7发送连接请求后,创建处理子进程进行处理,父进程继续监听。4)处理子进程对控制台子系统7的命令进行解析后,将其发往第三控制模块3.5。5)第三控制模块3.5根据收到的命令,执行以下6)到8)的操作。6)如果收到的是参数配置命令,则第三控制模块3.5根据当前运行的模式,对训练模块3.2或者第一检测模块3.4进行配置。7)如果收到的是停止命令,则停止数据包采集模块3.1。8)如果收到的是启动命令,则启动数据包采集模块3.1。9)数据包采集模块3.1启动后,如果当前运行模式是训练模式,则从训练数据集中提取出数据包交由训练模块3.2;训练模块3.2对数据包进行处理,训练结束后生成相应的检测参数,将其交给人工神经网络模型3.3。10)数据包采集模块3.1启动后,如果当前运行模式是检测模式,则通过调用Linux下的libpcap库函数,提取网络数据包,将数据包交由第一检测模块3.4;第一检测模块3.4调用人工神经网络模型3.3对数据包进行检测,当发现流量异常后,通过第二协同响应接口模块3.6向报警的聚类与关联子系统6发送报警信息。11)第三控制模块3.5定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据,通过第二协同响应接口模块3.6发往控制台子系统7,作为心跳信息。入侵检测子系统入侵检测子系统4采用并行技术和基于协议流分析技术对网络中的数据包进行检测,发现入侵行为后进行报警。协议流(protocolflow)指的是应用层协议中客户端与服务器端之间的通信流。如HTTP协议,客户端和服务器端的交互通信可以看成两个独立的流客户端向服务器传输的数据流可以看作是客户流(clientflow);而服务器向客户端传输的数据流可以看作是一个独立的服务流(serverflow)。这样入侵检测系统就可以将一个特定的应用层协议划分为两个清晰的流客户流与服务流。协议流分析在高层协议执行,通常只考虑特定协议流中的几个重要字段,例如服务器的响应代码或客户端的请求类型。将某个应用层协议流划分为客户流与服务流,即可进行专门优化处理,又可以减少需要处理的信息,提高检测效率。但是协议流分析并不能取代入侵检测系统的常规检测功能,它只是入侵检测系统的一个补充。如图9所示,入侵检测子系统4包括数据包采集模块4.1,数据包解析模块4.2,检测模块4.3,入侵检测规则库4.4,第四控制模块4.5以及第三协同响应接口模块4.6。数据包采集模块4.1通过调用标准libpcap库函数提取后端调度子系统5调度来的所有数据包,交由数据包解析模块4.2进行处理。数据包解析模块4.2接收数据包采集模块4.1抓取的网络数据包,根据网络包的层次性,依次解析为网络层包(IP包),传输层包(TCP、UDP、ICMP)和应用层包(HTTP、FTP、TELNET),并传给检测模块4.3。检测模块4.3根据入侵检测规则库4.4提供的检测规则,对数据包解析模块4.2处理后的数据,进行常规包过滤分析,同时对其中的应用层包进行协议流分析,检测入侵行为;检测到入侵后,产生入侵报警,交由第三协同响应接口模块4.6封装后发出。入侵检测规则库4.4主要是实现入侵检测规则的存取处理,第三协同响应接口模块4.6接收到控制台子系统7发布的规则并进行相应的解析验证之后,交由控制模块4.3,控制模块4.3调用入侵检测规则库4.4存储收到的规则;在检测过程中,入侵检测规则库4.4向检测模块4.3提供检测规则。第四控制模块4.5是入侵检测子系统4的核心控制部分,主要完成以下功能启动时,负责注册公共的数据结构和加载其它模块;在系统运行过程中,完成注册、停止、启动等控制功能;定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据。第三协同响应接口模块4.6实现同系统其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能,其功能和实现与防火墙子系统2的第一协同响应接口模块2.7相同。入侵检测子系统4的数据处理流程如图9所示1)系统启动后,第四控制模块4.5执行初始化操作并加载相关模块,然后通过第三协同响应接口模块4.6向控制台子系统7发送注册信息。2)注册成功后,第三协同响应接口模块4.6在预先定义的端口上启动TCP服务器进行监听。3)第三协同响应接口模块4.6监听到控制台子系统7发送连接请求后,创建处理子进程进行处理,父进程继续监听。4)处理子进程对控制台子系统7的命令进行解析后,将其发往第四控制模块4.5。5)第四控制模块4.5根据收到的命令,执行以下6)到10)的操作。6)如果收到的是参数配置命令,则设置检测模块4.3的相关参数。7)如果收到的是规则命令,则将其添加到入侵检测规则库4.4中。8)如果收到的是报警信息,则根据报警信息的统计信息对入侵检测规则库4.4进行调整,将与报警信息相关的规则优先级提高,并且根据规则的优先级调整其位置。9)如果收到的是停止命令,则停止数据包采集模块4.1。10)如果收到的是启动命令,则启动数据包采集模块4.1。11)当数据包采集模块4.1启动后,通过调用标准libpcap库函数提取后端调度子系统5调度来的所有数据包,交由数据包解析模块4.2;数据包解析模块4.2对数据包进行解析,将数据包划分为普通数据包和特定协议流数据包,并将数据包交由检测模块4.3;检测模块4.3根据根据入侵检测规则库4.4的检测规则,对普通数据包进行常规包过滤分析,对特定协议流数据包进行协议流分析;当检测模块4.3检测到入侵行为之后,根据预定义的格式生成规范的报警信息,然后交由第三协同响应接口模块4.6封装后发往报警的聚类与关联子系统6。12)第四控制模块4.5定期检查系统状况,包括CPU占用率、磁盘使用率、内存使用率和报警统计数据,通过第三协同响应接口模块4.6发往控制台子系统7,作为心跳信息。报警的聚类与关联子系统报警的聚类与关联子系统6包括分层聚类模块6.1和关联分析模块6.2。分层聚类模块6.1接收防火墙子系统2和IDS子系统4的报警信息,对该报警信息进行具体的分层聚类处理,判断该报警信息与最近一段时间内的报警信息是否具有冗余性,根据判断结果决定是否将该报警信息发出;并将全部报警信息提交给数据库,为关联分析模块6.2提供报警信息数据源。关联分析模块6.2通过读取数据库,获取大量的报警信息作为关联分析事件源,运用关联算法进行分析挖掘并对结果进行性能评估,删除错误的和无用的规则和模式,将最终有效的规则和模式提交给控制台子系统7,由其进行发布。控制台子系统控制台子系统7是整个系统的控制核心,主要功能是完成对整个系统的配置与监控。包括系统监控模块7.1和策略配置模块7.2。如图11所示。系统监控模块7.1负责系统中各个子系统的注册与初始配置,系统用户权限管理,系统拓扑图产生与更新,各个子系统的负载监视和启停控制,以及系统日志分析与存储等工作。包括网络通讯模块7.1.1、数据库管理模块7.1.2、系统状况监控模块7.1.3和系统日志管理模块7.1.4。1)网络通讯模块7.1.1该模块通过定期与前端调度子系统1、防火墙子系统2、流量检测子系统3、入侵检测子系统4以及后端调度子系统5进行通讯,获取各个子系统的状态信息和整个网络的负载情况,例如CPU利用率、硬盘使用情况和内存占用情况等;并将控制台的控制命令通过TCP协议发送到各个子系统。2)数据库管理模块7.1.2该模块通过运行后台数据库线程,更新数据库信息,并根据保存期限清除过期信息,向其它模块提交最新数据。3)系统状况监控模块7.1.3该模块通过网络通讯模块7.1.1定期获取各个模块的运行状况,并以简洁直观的图表形式或文本形式显示其运行状态信息。4)系统日志管理模块7.1.4该模块记录系统的用户操作日志,描述用户的管理活动;记录攻击和病毒日志,保存系统检测到的攻击和拦截的病毒信息;记录触发器日志,根据用户自定义的规则判断各个子系统硬件资源是否正常,并登记异常情况。策略管理模块7.2负责防火墙子系统2、流量检测子系统3和入侵检测子系统4的策略规则的脚本化和图形化配置。主要包括策略发布模块7.2.1、策略分组管理模块7.2.2和规则库自动更新模块7.2.3。1)策略发布模块7.2.1该模块负责各种策略的发布,它将各个子系统的策略规则按照预定格式封装后通过TCP协议发往相应的子系统。2)策略分组管理模块7.2.2该模块负责规则库的分组管理以及各分组配置文件的生成。该模块将所有的规则和策略配置文件分成三个组PFA-IDS策略组、M-Firewall策略组和FDS策略组,各策略组在用户界面上按目录结构的方式列出。每个策略组包括规则和策略配置文件,其中PFA-IDS策略组和M-Firewall策略组还包括多个规则分组,每个规则分组中包含了若干个规则,规则被看作目录中的文件,可以方便的浏览、增加、删除和修改。3)规则库自动更新模块7.2.3该模块负责新规则(如报警的聚类与关联子系统6产生的关联规则)的存储处理以及策略规则的自动在线更新。下面举例说明本系统实施过程中的配置情况。未安装本系统之前,内部网络通过交换机A直接连接到外部网络,内部网络中的WEB服务器和FTP服务器等完全暴露在外部网络中的各种攻击者面前,毫无安全性可言。我们在网络入口处即交换机A和内部网络之间部署本系统,部署后内部网络被屏蔽在本系统之后,所有从外部网络访问内部网络的数据包都必须经过本系统的检测,只有通过检测的数据包才被允许进入内部网络。如图1所示。使用的硬件包括10台独立的计算机和一台交换机B。这10台计算机的基本配置如表1所示表1硬件配置每一个子系统都安装在单独的计算机上,其中防火墙子系统和入侵检测子系统均部署两个,以便发挥并行技术的优势。各个子系统通过交换机B连接成一个完整的系统。前端调度子系统通过网卡C连接到交换机A上,其网卡C设置真实IP地址,而受保护的内部网络和本系统其他子系统均采用内部IP地址;内部网络中的FTP服务器以及WEB服务器等都通过在前端调度子系统所在计算机上设置端口映射来向外部网络提供服务。因此前端调度子系统是从外部网络访问内部网络的唯一入口,所有访问内部网络的数据包都必须经由前端调度子系统的调度才能进入。前端调度子系统和防火墙子系统都通过各自所在计算机上的网卡D连接在交换机B上,网卡D上设置系统内部IP地址。前端调度子系统将数据包通过交换机B调度到各个防火墙子系统;防火墙子系统对数据包进行检测后,将允许通过的数据包通过交换机B发往后端调度子系统。防火墙子系统通过网卡C连接到交换机A上,但其网卡C上并不设置IP地址,同时也不回应ARP包,因此不会从交换机A上接收任何数据包,但可以通过交换机A向外部网络发送数据包。流量检测子系统通过网卡C连接到交换机A上,其网卡C上也不设置IP地址,但通过在交换机A上设置端口镜像,可以得到所有发到前端调度子系统的数据包的镜像,用于流量检测。流量检测子系统通过网卡D连接到交换机B上,其网卡D上设置系统内部IP地址,用于发送报警信息,接收控制命令和配置信息。后端调度子系统通过网卡D接到交换机B上,在其网卡D上设置系统内部IP地址;后端调度子系统通过网卡C连接到内部受保护网络,将其网卡C上设置成受保护网络的内部网关地址。后端调度子系统通过网卡D接收防火墙子系统检测后允许访问内部网络的数据包,一方面将数据包通过网卡C发往内部受保护网络,另一方面将数据包通过网卡D发往入侵检测子系统,用于进一步检测入侵;后端调度子系统通过网卡C接收从内部网络发出的数据包,然后通过网卡D调度给各个防火墙子系统进行处理后发往外部网络。入侵检测子系统的网卡C和网卡D均连接在交换机B上,其中网卡C于接收后端调度子系统调度来的数据包,网卡D用于系统内部通讯,包括控制命令的传输,策略规则的传输和报警信息的发送。报警的关联与聚类子系统和控制台子系统都是通过网卡C接在交换机B上,用于系统内部通讯,而网卡D并未使用。权利要求1.一种基于协同入侵检测的大规模网络安全防御系统,其特征在于该系统包括前端调度子系统(1)、防火墙子系统(2)、流量检测子系统(3)、入侵检测子系统(4)、后端调度子系统(5)、报警的聚类与关联子系统(6)以及控制台子系统(7);前端调度子系统(1)用于与控制台子系统(7)进行通讯,根据获得的关于防火墙子系统(2)的状态信息,对从外部网络进入的数据包进行基于容错散列调度算法的负载调度,并采用双机热备份的方式进行容错处理,保证主调度器在出现故障时,后备调度器能够顺利地接替主调度器的工作;防火墙子系统(2)用于与控制台子系统(7)进行通讯,按照用户在控制台子系统(7)上设定的策略对进出受保护网络的数据包进行控制,定期汇报自身的状态,根据对相关数据包的分析检测入侵行为,并向控制台子系统(7)发送报警信息;流量检测子系统(3)采用人工神经网络模型对网络数据进行入侵检测分析;入侵检测子系统(4)采用并行技术和基于协议流分析技术对网络中的数据包进行检测,发现入侵行为后进行报警;后端调度子系统(5)用于将防火墙子系统(2)检测后允许通过的从外部网络进入的数据包调度给各个入侵检测子系统(4),并同时发往受保护的内部网络;并将从内部网络发出的数据包调度给防火墙子系统(2);报警的聚类与关联子系统(6)采用数据挖掘技术和相似性评估方法,提供报警信息的聚类处理和关联分析功能,挖掘不同入侵行为之间的关联关系,并据此生成关联规则供防火墙子系统(2)和入侵检测子系统(4)使用;控制台子系统(7)用于对整个系统进行配置与监控;当外部网络访问受内部网络时,前端调度子系统(1)将数据包调度给防火墙子系统(2);同时流量检测子系统(3)获取所有数据包的镜像数据;防火墙子系统(2)和流量检测子系统(3)分别对数据包进行检测,当检测到入侵之后进行报警以及交互响应;防火墙子系统(2)阻断检测到的非法数据包,将其余的数据包发往后端调度子系统(5);后端调度子系统(5)一方面将数据包调度给入侵检测子系统(4),进行进一步的检测,另一方面将数据包调度给受保护的内部网络;防火墙子系统(2)、流量检测子系统(3)和入侵检测子系统(4)的报警信息都发往报警的聚类与关联子系统(6);报警的聚类与关联子系统(6)通过分层聚类技术对报警信息进行合并,将合并后的报警发往控制台子系统(7);报警的聚类与关联子系统(6)通过关联分析和序列分析对报警信息进行分析,当获得报警信息的关联信息后可以生成关联规则,并将其发往控制台子系统(7);控制台子系统(7)根据报警的聚类与关联子系统(6)发来的聚类后的报警信息,通知防火墙子系统(2)和入侵检测子系统(4)采取响应措施,同时采用通知管理员;控制台子系统(7)收到报警的聚类与关联子系统(6)发来的关联规则后,将其发布给防火墙子系统(2);当内部网络访问外部网络时,后端调度子系统(5)将从内部网络发出的数据包调度给各个防火墙子系统(2);防火墙子系统(2)对数据包进行地址转换等处理之后,发往外部网络。2.根据权利要求1所述的系统,其特征在于前端调度子系统(1)包括通讯模块(1.1),第一控制模块(1.2),容错处理模块(1.3)和调度模块(1.4);通讯模块(1.1)负责与控制台子系统7的通讯,在预先定义的端口上建立TCP服务器进行监听,接收并解析收到的控制流信息后发给第一控制模块(1.2)进行处理;接收第一控制模块(1.2)的控制流并对其进行封装后通过TCP协议发往控制台子系统(7);第一控制模块(1.2)处于Linux内核层,负责初始化各模块的公用数据结构,执行经由通讯模块(1.1)解析处理后的控制命令,并通过通讯模块(1.1)向控制台子系统(7)发送控制命令;容错处理模块(1.3)采用双机热备份的冗余方式,实现自身的容错机制;调度模块(1.4)根据容错处理模块(1.3)的容错机制,采用加权源/目的地址散列调度算法对数据包进行调度。3.根据权利要求1或2所述的系统,其特征在于防火墙子系统(2)包括数据包采集模块(2.1)、包过滤模块(2.2)、SYN代理模块(2.3)、信任度计算模块(2.4)、分析与报警模块(2.5)、控制模块(2.6)和第一协同响应接口模块(2.7);数据包采集模块(2.1)通过控制模块(2.6)注册的Netfilter钩子,提取经由前端调度子系统(1)发来的数据包和经由后端调度子系统(5)发来的数据包,将数据包交由包过滤模块(2.2)进行处理;包过滤模块(2.2)对从数据包采集模块(2.1)获取的数据包进行处理和过滤;SYN代理模块(2.3)处理从外部网络向受保护的内部网络发起的TCP连接;信任度计算模块(2.4)对包过滤模块(2.2)发来的数据包进行分析,建立和维护信任度纪录;分析与报警模块(2.5)根据包过滤模块(2.2)发来的丢弃数据包信息,进行统计分析,并产生报警信息及响应规则,传送给第一协同响应接口模块(2.7)发出;第二控制模块(2.6)用于对防火墙子系统(2)中的各个模块进行控制;第一协同响应接口模块(2.7)实现防火墙子系统(2)与其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。4.根据权利要求3所述的系统,其特征在于所述分析与报警模块(2.5)包括分析数据的获取和维护模块(2.5.1)、数据分析模块(2.5.2)和报警响应模块(2.5.3);分析数据的获取和维护模块(2.5.1)用于收集包过滤模块(2.2)中被丢弃的数据包、服务器返回的ICMP端口不可达包以及TCPRST包,将数据包的信息存入数据库;数据分析模块(2.5.2)该模块根据系统设置的阈值,对分析数据的获取和维护模块(2.5.1)存入数据库中的数据包信息进行统计分析,如果超过阈值表示可能有攻击发生,则通知报警响应模块(2.5.3)产生相应的动作;报警响应模块(2.5.3)根据数据分析模块(2.5.2)得到的结果产生相应的报警信息,交由第一协同响应接口模块(2.7)发出。5.根据权利要求3所述的系统,其特征在于所述流量检测子系统(3)包括数据包采集模块(3.1)、人工神经网络模型(3.3)、第三控制模块(3.5)和每二协同响应接口模块(3.6),以及训练模块(3.2)或第一检测模块(3.4),其中,数据包采集模块(3.1)用于获取所有从外部网络访问内部网络的数据包,然后根据运行模式,将数据包交由训练模块(3.2)或者第一检测模块(3.4)处理;训练模块(3.2)将从数据包采集模块(3.1)获得的数据包和从第三控制模块(3.5)获得的神经网络配置参数传给人工神经网络模型(3.3)进行训练;人工神经网络模型(3.3)采用误差逆向传播算法对数据包进行分析,建立符合网络流量特征的检测模型;第一检测模块(3.4)将从数据包采集模块(3.1)获得的数据包传给人工神经网络模型(3.3),进行流量检测;当收到人工神经网络模型(3.3)的入侵报警后,将报警信息按照预定的格式进行规范处理后,交由每二协同响应接口模块(3.6)封装后发出;第三控制模块(3.5)在启动后,负责初始化公共数据结构,根据启动参数,判断运行模式;每二协同响应接口模块(3.6)实现与系统中其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。6.根据权利要求3所述的系统,其特征在于入侵检测子系统(4)包括数据包采集模块(4.1)、数据包解析模块(4.2)、第二检测模块(4.3)、入侵检测规则库(4.4)、第四控制模块(4.5)以及每三协同响应接口模块(4.6);数据包采集模块(4.1)通过调用标准libpcap库函数提取后端调度子系统(5)调度来的所有数据包,交由数据包解析模块4.2进行处理;数据包解析模块(4.2)接收数据包采集模块(4.1)抓取的网络数据包,根据网络包的层次性,依次进行解析,并传给第二检测模块(4.3);第二检测模块(4.3)根据入侵检测规则库(4.4)的检测规则,对数据包解析模块(4.2)处理后的数据,进行常规包过滤分析,并检测入侵行为,产生入侵报警,交由第三协同响应接口模块(4.6)封装后发出;入侵检测规则库(4.4)用于实现入侵检测规则的存取处理,并向检测模块(4.3)提供检测规则;第四控制模块(4.5)负责注册公共的数据结构和加载其它模块;第三协同响应接口模块(4.6)实现同系统其它子系统的消息接口,负责消息通讯、命令解析以及报警响应功能。7.根据权利要求3所述的系统,其特征在于报警的聚类与关联子系统(6)包括分层聚类模块(6.1)和关联分析模块(6.2);分层聚类模块(6.1)接收防火墙子系统(2)和入侵检测子系统(4)的报警信息,对该报警信息进行具体的分层聚类处理,并为关联分析模块(6.2)提供报警信息数据源;关联分析模块(6.2)运用关联算法进行分析挖掘并对结果进行性能评估,将最终有效的规则和模式提交给控制台子系统(7)发布。8.根据权利要求3、4、5、6或7所述的系统,其特征在于控制台子系统(7)包括系统监控模块(7.1)和策略配置模块(7.2);其中,系统监控模块(7.1)负责系统中各个子系统的注册与初始配置;策略管理模块(7.2)负责防火墙子系统(2)、流量检测子系统(3)和入侵检测子系统(4)的策略规则的脚本化和图形化配置。9.根据权利要求8所述的系统,其特征在于系统监控模块(7.1)包括网络通讯模块(7.1.1)、数据库管理模块(7.1.2)、系统状况监控模块(7.1.3)和系统日志管理模块(7.1.4);其中,网络通讯模块(7.1.1)通过定期与系统中其它子系统进行通讯,获取各个子系统的状态信息和整个网络的负载情况,并将控制台的控制命令通过TCP协议发送到各个子系统;数据库管理模块(7.1.2)通过运行后台数据库线程,更新数据库信息,根据保存期限清除过期信息,向其它模块提交最新数据;系统状况监控模块(7.1.3)通过网络通讯模块(7.1.1)定期获取各个模块的运行状况,并显示其运行状态信息。系统日志管理模块(7.1.4)用于记录系统的用户操作日志。10.根据权利要求8所述的系统,其特征在于策略管理模块(7.2)包括策略发布模块(7.2.1)、策略分组管理模块(7.2.2)和规则库自动更新模块(7.2.3);其中,策略发布模块(7.2.1)负责策略的发布;策略分组管理模块(7.2.2)负责规则库的分组管理以及各分组配置文件的生成;规则库自动更新模块(7.2.3)负责新规则的存储处理以及策略规则的自动在线更新。全文摘要本发明公开了一种基于协同入侵检测的大规模网络安全防御系统。其中,并行防火墙子系统采用先进的并行技术和独特的基于信任度的模型,有效志抵御DDoS攻击;并行IDS子系统采用并行技术和流行的状态检测技术相结合;流量检测子系统基于人工神经网络模型,对非规则数据具有高度的识别能力,能检测已知攻击并发现新的攻击行为。并行防火墙子系统、并行IDS子系统、流量检测子系统以及关联分析与报警聚类子系统在功能上是彼此独立和完整的,它们通过内部提供的接口,采用消息驱动机制来交换检测信息以及传递检测和防御规则,做到协同响应和相互补充。各子系统通过控制台管理子系统进行统一管理,形成三重粒度的并行协同响应系统,从而有效的防止协同入侵。文档编号H04L12/24GK1668015SQ20041006139公开日2005年9月14日申请日期2004年12月20日优先权日2004年12月20日发明者金海,孙建华,韩宗芬,邹建平,陶智飞,何丽莉,杨志玲,易川江,涂旭平,王杰,程恩,罗雅琴申请人:华中科技大学