入侵防御系统中TCP数据流重组的设计与实现

摘要:网络攻击越来越隐蔽,很多攻击把特征信息隐藏在多个数据包中,这大大增加了攻击检测的难度,TCP数据流重组是可靠数据传输及网络数据内容还原的基础,也是入侵防御系统中的基础模块。论文详细介绍了入侵防御系统中TCP数据流重组的设计原理及实现,给出了核心数据结构,最后分析了重组的效率及目前存在的问题。

关键词:入侵防御系统;TCP数据流重组;哈希表;缓存;

中***分类号:TP393.01 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02

1 引言

IPS(Intrusion Prevention System)是网络安全领域的一种基本安全防护设施,是对入侵检测系统(Intrusion Detection System IDS)和各种防火墙的有力补充。在攻击检测的过程中,为了准确有效得检测出隐蔽在多个数据包中的攻击,必须进行TCP会话的还原,从而得到完整的攻击特征。完成还原后再与攻击特征库的规则进行匹配,可以有效提高检测攻击的效率和准确度。

2 TCP数据流重组的实现原理

2.1 核心数据结构

用于保存一个完整TCP连接信息的结构:

struct tcp_stream{

struct tuple4 addr; //TCP连接双方的地址信息

char nids_state; //连接的逻辑状态

struct lurker_node *listeners; //包含回调函数的链表

struct half_stream client; //客户端状态及数据

struct half_stream server; //服务器端状态及数据

struct half_stream *next_node; //HASH中同一键值的下一个节点指针

struct half_stream *prev_node; //HASH中同一键值的前一个节点指针

int hash_index; //HASH表中的索引值

struct half_stream *next_time; //用于保存TCP连接的先后顺序,构建时间链

struct half_stream *prev_time;

int read; //本次读进数据缓冲区的数据长度

struct half_stream *next_free; //指向TCP连接缓冲池中下一个空闲结构

}

用于保存TCP连接终端信息的结构体:

struct half_stream{

char state; //状态

char collect; //如果大于0,则保存其数据到缓冲区中

char collect_urg; //如果大于0,则保存紧急数据

char *data; //未处理TCP数据缓冲区

int offset; //保存到“data”缓冲区的首字节数据偏移量

int count; //自从连接建立以来保存的数据字节数

int count_new; //最近一次接收到的数据字节数

int bufsize; //data区的长度

int rmem_alloc; //该TCP连接的所有数据的长度和

int urg_count; //该终端接收到得紧急数据的总数目

u_int acked; //未用

u_int seq; //本次TCP包中的SEQ

u_int ack_seq; //ACK

u_int first_data_seq; //TCP建立连接时的初始SEQ

u_char urgdata; //紧急数据

u_char count_new_urg; //如果非0,表示有紧急数据到达

u_char urg_seen; //有新的URG数据,并且不是以前的重复数据

u_int urg_ptr; //指向URG数据在流中的位置

u_short window; //TCP窗口大小

u_char wscale_on; //窗口扩大因子标志

u_int curr_ts; //当前时间

u_int wscale; //窗口扩大因子

struct skbuff *list; //当收到的TCP包中的SEQ比期望的大时,则将该数据先保存在此双向链表中,为访问方便,此链表按包中的SEQ从小到大排列

struct skbuff *listtail; //指向list链表的链尾

}

2.2 Hash表及Hash算法的设计

在TCP数据流的重组过程中,为了提高查找连接的速度,使用了Hash算法,并通过双向链表解决了Hash冲突情况,这与普通的链表的顺序查找相比,大大提高了查找的效率。在管理连接Hash表中,针对每一个结点,加入了连接的超时机制,并通过双向时间链表根据连接的先后组建成一条时间链,在缓存不够时,则遍历时间链表并首先释放超时的连接以及最老的连接,从而释放出足够的空间来建立最近的TCP连接,Hash表的结构如下***2.1所示:

***中tcp_oldest和tcp_latest分别指向所有结点组成的以连接发起时间为基准的双向链表的表头和表尾,而tcp_free则指向缓冲池中最近释放的空闲结点,整个缓冲池组成一个双向的循环链表,tcp连接的所有结点的存储空间都从tcp连接缓冲池中分配,缓冲池是在模块启动时一次性申请足够量的内存,这样就避免了在重组过程中频繁调用malloc和free函数所带来的内核态与用户态进程切换的时间开销,从而提高了重组的效率。

在tcp会话还原中,使用四元组(源IP,源端口,目的IP,目的端口)和连接发起的时间time作为hash值的计算因子,和仅仅使用四元组作为计算hash值的方法相比,可以有效降低hash冲突,hash值的计算算法使用如下公式:

在计算hash值时,首先根据公式1和公式2初始化两个基准数组,每个数组的长度是16字节,根据公式3用源IP地址sip、目的IP地址dip、源端口sport、目的端口dport以及连接的发起时间time来初始化长度是16个字节的数组data,根据公式4迭代计算hash值res。

3 数据流重组的性能分析及存在的问题

针对本模块,测试环境的网络拓扑***如下***3.1所示:

上***中包发送终端主要用来控制ThreadEx数据包发送工具,ThreadEx设备有多个网口,其中一个网口通过网线连接控制终端,另一个网口连接入侵防御系统TCP数据流重组服务器;IPS TCP重组服务器具有两个网卡,并且把网卡配置成转发模式,这样当数据包经过IPSserver完成重组会就立即转发经过的数据包。在上***所示的网络测试环境下,发包工具在20s内发送30万个连接,系统可以正常重组所有的连接,当系统所处理的实时连接数大于50万时,开始出现丢包现象。

4 结论

本文给出了网络入侵防御系统中TCP数据流重组hash表、hash算法、缓存机制以及重组流程的设计原理和过程,给出了重组中的核心数据结构、重组中的关键技术、关键算法,并对重组的性能及存在的问题进行了分析,为研究发展IPS做了一些探讨。

参考文献:

[1]刘文涛.网络安全开发包详解[M].电子工业出版社,2005.

[2]W. Richard Stevens 著 TCP/IP Illustrated Volume 1:The Protocols.

[3]James F.Kurose Keith W.Ross 著 Computer Networking A Top-Down Approach Featuring the Internet,Third Edition.

[4]邓子宽,范明钰,王光卫,朱大勇.Snort入侵检测系统中TCP流重组的研究,2007,2.

[5]孔华锋,金波,刘恩强,候晓杰.快速无损TCP数据流重组算法研究

基金项目:四川省科技计划项目(2009GZ0148)

[作者简介]

何兴高(1964-),男,高级工程师(副教授),主要研究方向:信息安全,网络安全;车明明(1989-),男,硕士生,主要研究方向:网络安全;张凤荔(1963-),女,教授(博导),主要研究方向:网络安全,大型数据灾难恢复。

转载请注明出处学文网 » 入侵防御系统中TCP数据流重组的设计与实现

学习

践行“两个至上价值观”做好五个结合

阅读(25)

本文为您介绍践行“两个至上价值观”做好五个结合,内容包括践行两个至上价值观,怎么去践行客户至上价值观。坚持国家利益、消费者利益至上,切实做到“两个维护”是我国烟草行业20多年发展的一条基本经验。要想实现烟草行业的持续稳定协调

学习

Pantone 度代表色:翡翠绿

阅读(14)

本文为您介绍Pantone 度代表色:翡翠绿,内容包括pantone色号查询国际色卡,pantone什么色号好看。2012年12月6日,全球色彩权威机构Pantone宣布,生动、灿烂、华丽的PANTONE17-5641Emerald(翡翠绿)为2013年度代表色。鲜明动人、绿意盎然的翡翠绿

学习

世界上的七座“蛇岛”

阅读(46)

本文为您介绍世界上的七座“蛇岛”,内容包括世界上一共有70个蛇岛,世上有几个蛇岛。下面这七座小岛之所以得名“蛇岛”,有的是因为其上布满了蛇类,甚至是令人恐惧的毒蛇,有的则是因为别的原因;所以,下面这几座小岛,有的是无人涉足的禁地,有的则

学习

行百里者半九十,失败是创业的常态

阅读(28)

本文为您介绍行百里者半九十,失败是创业的常态,内容包括创业失败从头来过的励志名言,创业失败者的独白100条。霍洛维茨一反主流,并没有像绝大多数商业书籍那样肆意放大成功的一面,说一些正确的废话,而更是像个过来人,谆谆善诱、娓娓道来,与人

学习

陶瓷过滤膜的研究与制备技术进展

阅读(21)

本文为您介绍陶瓷过滤膜的研究与制备技术进展,内容包括陶瓷超滤膜工艺流程,陶瓷过滤膜的优化方法。陶瓷过滤膜由于具有独特优势在诸多领域中起到不可替代的作用,然而,复杂的制备工艺与高昂的成本仍然限制着陶瓷过滤膜的大规模推广应用。因

学习

孙悟空过火焰山

阅读(49)

本文为您介绍孙悟空过火焰山,内容包括孙悟空过火焰山原文,孙悟空过火焰山故事。话说孙大圣500年前大闹天宫时,被杨戬擒了。太上老君将大圣置于八卦炉中,煅烧之后开鼎,被孙大圣蹬倒丹炉,丹炉里的几块砖从天上掉落下来,内有余火,便化成了火焰山

学习

左撇子真的更聪明吗?

阅读(19)

本文为您介绍左撇子真的更聪明吗?,内容包括左撇子的人真的更聪明吗,左撇子更聪明有道理吗。奥巴马当选美国总统后,人们注意到一个有趣的现象:奥巴马是左撇子,而且,最近的这5位美国总统,除了小布什惯用右手外,里根、老布什、克林顿和奥巴

学习

鼓楼幼稚园与燕子矶幼稚园课程实践之比较

阅读(23)

本文为您介绍鼓楼幼稚园与燕子矶幼稚园课程实践之比较,内容包括燕子矶幼稚园和南京鼓楼幼稚园,鼓楼幼稚园教学实验。摘要:鼓楼幼稚园与燕子矶幼稚园是我国20世纪二十年代开展学前课程实践的典型,两所幼稚园在课程实践中都取得了一定的成

学习

浅谈《琵琶记》

阅读(41)

本文为您介绍浅谈《琵琶记》,内容包括琵琶记全文古诗,琵琶记原文阅读。《琵琶记》作为南戏之祖,是元末南戏振兴的标志之一,它与“荆、刘、拜、杀”等剧齐名,在戏剧史上占着重要的地位。它一问世就快速传遍海内,影响了明清两代作家的戏剧创作

学习

浅析股权风险溢价的测量

阅读(34)

本文为您介绍浅析股权风险溢价的测量,内容包括如何衡量股权风险溢价,股权风险溢价是什么意思。【摘要】Mehra和Prescott于1985年发表了《股权风险溢价,一个谜》,他们指出,美国历史上的股权溢价过高,因此需要非常高的风险厌恶系数才能解释,这

学习

公路客运企业实载率偏低问题研究

阅读(20)

本文为您介绍公路客运企业实载率偏低问题研究,内容包括公路运输企业油耗成本率过低,客运车辆实载率低经济效益差。摘要本文立足于提高公路客运企业竞争力,以提高客运企业实载率为依托,首先阐述了公路客运企业实载率偏低的原因,而后从公路客

学习

优等生奈特

阅读(42)

优势:奈特是一名有着优秀身材和得分能力的天才控卫,1.91米的身高而且有1.83米的臂展。速度很快,第一步启动尤其出色,在快攻中有很好的决断力,也可以很轻松地穿透防守突入内线,井用他良好的运动天赋完成得分。奈特控球能力优秀,会用无数的假动作

学习

北京居民人均期望寿命达80.27岁等

阅读(23)

本文为您介绍北京居民人均期望寿命达80.27岁等,内容包括北京居民人均预期寿命,北京户籍人均期望寿命提至82.47岁。北京居民人均期望寿命达80.27岁据北京市卫生局最近的信息,2008年,北京居民人均期望寿命已达到80,27岁,其中男性78.46岁,女性82

学习

六三三制的学校教育论文

阅读(18)

一、学校教育制度六三三制的确立最早提出改革八四学制的是哈佛大学校长艾略特,他于1888年发表了题为《美国学校能否缩短年限而内容丰富》的报告,艾略特指责由于小学学制太长,学生读完大学时年龄偏高,人才的培养跟不上科学技术的飞速发展。

学习

办公自动化系统的设计

阅读(22)

本文为您介绍办公自动化系统的设计,内容包括智能自动化办公系统,自动化办公软件系统设计方案。随着信息科学技术的飞速发展,办公自动化(OfficeAutomation,简称OA)在技术和应用上都得到了更高层次的发展,人们逐渐意识到对办公管理系统的运用可

学习

信息管理及信息系统在企业中的应用

阅读(21)

本文为您介绍信息管理及信息系统在企业中的应用,内容包括信息管理在企业中的应用,信息管理系统应用对企业的重要性。众所周知,在信息化时代的今天,信息管理与信息系统对于完善企业的内部科学管理以及大力提升企业的工作效率起着至关重要的

学习

物流信息系统的安全管理

阅读(14)

本文为您介绍物流信息系统的安全管理,内容包括物流安全管理的论文题目,物流信息安全管理办法。在信息系统的开发过程中,企业需投入大量的人力与资金,系统的各种软硬件是企业的重要资产。在信息系统的运行过程中会产生和积累大量的信息,这些

学习

慢行交通系统评价论述

阅读(39)

本文为您介绍慢行交通系统评价论述,内容包括慢行交通和慢行系统概念辨析,慢行交通系统什么意思。1层次分析法的应用根据层次分析法的原理[11],将影响慢行交通系统的因素分成2个层次,然后两两相互比较建立判断矩阵,通过计算判断矩阵的正交化

学习

物流信息平台管理系统设计与实现

阅读(24)

本文为您介绍物流信息平台管理系统设计与实现,内容包括物流信息管理系统平台设计,物流信息管理平台设计与实现论文。【摘要】加快发展现代物流业,对于中国适应经济全球化,提高经济运行质量和效益,改善投资环境,增强综合国力和企业竞争力,具有

学习

汽轮机组油系统常见故障分析及对策

阅读(26)

本文为您介绍汽轮机组油系统常见故障分析及对策,内容包括汽轮发电机进油的原因有哪些,汽轮机油进水量大的原因。【摘要】汽轮机组油系统是发电设备的重要组成部分,对于保障各相关设备的有效、正常运转起着关键作用。本文阐述了汽轮机组油

学习

EDFA特性对WDM系统的影响

阅读(94)

本文为您介绍EDFA特性对WDM系统的影响,内容包括wdm技术具有高度的什么,edfa在wdm传输系统中的应用。我们分析了WDM系统中的EDFA性能特质。这个仿真系统是基于中国信息网络现状、噪声的影响,和在误码率对EDFA增益平坦性和输出功率的影响以

学习

对全球物流系统集成商20强榜单的分析

阅读(91)

本文为您介绍对全球物流系统集成商20强榜单的分析,内容包括物流系统集成商,物流仓储系统集成商排名。近日,美国《现代物料搬运》杂志5月刊了“2015年全球物流系统集成商20强榜单”。该排行榜上既有实力雄厚的老牌企业,也有生机勃勃的新生