论文部分内容阅读
随着网络技术的飞速发展和网络应用的日益广泛,互联网在社会的方方面面都发挥着越来越重要的作用。与此同时,各种安全问题也层出不穷,严重威胁着互联网的健康发展。网络流量安全监控系统作为一类互联网安全基础设施,在防范黑客入侵和攻击、恶意代码传播、重要信息失窃密、不良信息扩散等方面发挥着重要的作用。近年来随着P2P、VoIP、网络流媒体等新兴应用异军突起,网络流量和会话规模呈现爆炸式增长,在这种情况下如何实现对大规模流量的实时、复杂的管理和控制,成为网络流量安全监控面临的一项重要挑战。
针对互联网流量分布式安全监控节点的性能及效率问题,本文选取了网络会话管理、报文分类、内核协议栈套接字性能优化等几项网络流量处理关键技术进行了研究,主要包括:
(1)针对大规模网络流量会话管理问题,提出了一种适用于并行执行环境的网络会话管理方案PaSeM(Parallel Session Management),采用基于散列表的无锁会话表设计和多种并行策略,讨论并解决了在高速网络环境下面临的各种并行冲突问题,给出了会话表查询和动态管理的高效并行算法,实现了对报文和会话的并行无冲突的高效处理。基于G/G2/n1排队模型和空竭服务多重休假M/G+D/1排队模型对PaSeM的性能进行了理论分析,对于稳态下并行处理单元(PE)数量、任务队列长度、存储开销与报文到达速率、会话到达速率之间的关系以及其他关键参数应满足的条件给出了定量计算方法。最后,采用基于IXP2400网络处理器的硬件平台进行了原型开发和实验。实验结果表明,PaSeM对于会话管理和报文处理具有较好的并行加速效果,理论计算值与实验值能较好地吻合,报文处理的并行效率均值接近1,当会话管理单元个数为4时,会话处理并行效率为65.4%(亦即加速比为2.62),当会话管理单元个数为8时,会话处理并行效率仍然达到了48.3%(加速比为3.86),能够满足当前高速网络环境流量处理的性能要求:在最大吞吐量负载下排队队列长度及其变化幅度都处于合理范围,会话表垃圾比率维持在较低的水平上(实验结果为小于9%),与已有的工作相比为优。
(2)针对面向多维复杂规则集的报文分类问题,提出了一种基于自适应缓存机制的报文分类算法CSAC(Classification on Self-Adaptive Cache)。算法采用两级散列表缓存结构:第一级用于存储从规则集中提取出来的含有单IP属性值的无冲突(conflict-free)规则,第二级作为余下规则的动态缓存器。与朴素的基于流量时间局部性原理的缓存策略不同,CSAC算法引入流量空间局部性和规则集动态特征,通过缓存属性子空间内报文集合的分类查询路径,将查询结果复用于同一子空间后续报文的分类过程,获得了较好的查询命中率,而且在命中失效后也不必在原始规则集中再从头开始执行线性查询,减少了失效的时间开销。与传统的线性搜索算法和流缓存策略进行比较,CSAC算法的平均查询开销得到了显著的降低,分别为线性查询算法的2.94%-11.81%、流缓存策略的2.62%-25.16%,同时最坏情况下的查询效率与这两种算法相比也没有明显的下降。与HyperCuts、BV等基于规则集静态特征的经典算法相比较,CSAC算法改善了最坏情况下的存储开销,规则平均存储开销为93.53-226.98字节。根据网络流量变化对缓存运行状态造成的影响,算法采用自适应机制,通过动态调整缓存粒度和缓存项在散列桶中的位置,有效地保证了缓存命中率。此外,算法不需要预处理过程,支持多维复杂规则(如地址区间属性、范围匹配和逻辑匹配操作等)和规则增量更新,且易于软件实现,适合于网络监控、网络边界安全、用户流量审计和负载均衡等报文分类比较复杂的应用。
(3)根据基于透明代理模式的内容监控系统的技术特点和应用需求,针对现有内核网络协议栈套接字在流量重定向、端对端语义保持、内核空间和用户空间数据复制、数据发送开销等方面存在的问题,在向后兼容(伯克利套接字)的基础上提出了一种新的面向互联网流量监控的网络套接字SEP Socket,通过扩展套接字身份标识定义,将套接字地址与代理模块绑定的本地IP地址和监听端口解耦,实现了外部流量无需修改直接重定向至本地网络协议栈,避免了网络地址转换的性能损耗、对本地端口资源的占用以及对端对端语义的破坏;采用混杂连接粘合(hybrid connection splicing,HCS)方法,通过在内核中缓存原始报文的sk buff结构以及增加新的套接字接口调用,实现了用户层驱动的内核套接字之间的直接报文传递,减少了一次从用户空间到内核空间的数据复制,以及协议栈重新分配和构建sk buff结构、进行协议封装等复杂操作的开销;在改善性能的同时保证了业务的灵活性,向上提供数据转发(粘合)、丢弃、替换等灵活的流量控制策略,能够满足内容实时监控的需要。基于Linux v2.6.22内核实现了SEP Socket的原型并进行了实验,在访问1KB大小HTML页面文件时,基于SEP Socket的透明代理与基于NAT的传统透明代理相比,前者的最大新建连接速率和吞吐量分别达到了后者的3.96倍和3.92倍,且CPU利用率也有了显著提高。
(4)基于上述关键技术的研究,在国家高技术研究发展计划(863计划)课题和国家242信息安全计划的资助下,设计并开发了一个基于异构处理平台(IXP2400网络处理器+IA通用处理器)的网络流量监控引擎SEP(Security Engine Package)。测试结果表明,SEP网络流量监控引擎能够达到4Gbps的吞吐量、每秒8万的新建连接速率和40微秒以内的处理延迟,内部处理器间通信带宽达到双向千兆,能够满足千兆线速网络流量安全监控的需要。基于SEP网络流量监控引擎研制的P2P网络流量监控系统,已在国家相关课题项目中成功应用。