Windows7环境下轻松部署辅助系统 Windows7环境下轻松部署辅助系统 利用CiscoIPSLA技术保障校园网出口的连续性(二) 以连接跟踪为基础的安全检测技术实现(二)
技术拾萃 上一版 下一版

《江苏科技报·教育周刊》(双周刊,国内统一刊号CN32-0019),是江苏省唯一以社会立场透析当代中国教育的报纸。秉承“科技推动教育,教育改变人生”的理念,《江苏科技报·教育周刊》一直注意保持与教育前沿工作的密切联系,定位于教育宏观研究,兼顾微观探讨,注重教育文化生态的构建与引导,时刻关注鲜活的教育实态,着眼于教育文化的深层构建,努力赋予教育以深厚的文化内涵,致力打造中国最好的教育媒体。

国内统一刊号:CN32—0019
编辑部地址:江苏省南京市鼓楼区中山路55号新华大厦48楼

第252期 总第4639期 2013年06月18日 星期二
返回首页
作者 内容  上一期  当前第252期  下一期
以连接跟踪为基础的安全检测技术实现(二)
来源:南京林业大学 作者:顾炜江 发布日期:2013-06-18 14:01:14

     接上期11版
     比如,当防火墙系统接受到一个TCP/IP建立连接时的SYN(通称“握手信号”)封包时,这个封包就会在防火墙系统所设定的信息安全规则中进行序列性的比对,如有不符合信息安全规则的项目,则判断将此封包遗弃;如果通过了防火墙的信息安全规则比对,那么防火墙系统将会生成一个连接跟踪数据信息表,并注释出此封包的安全属性;生成的连接跟踪信息表以及相关的标记数据封包会被统一保存在防火墙系统的内核中,在出现问题时可以灵活地对这些记忆信息进行调取。
     四、连接跟踪相关的数据计算
     在通常的防火墙系统中,连接跟踪基本上都是在IP层和数据链路层(物理层和网络层之间控制帧在物理信道上传输的服务层)之间完成的,所以连接跟踪的完善与否、效率高低都直接影响着防火墙系统的安全掌控效果。因此,如何做好连接跟踪内相关数据的计算就显得格外重要。
     1.连接控制版块中的哈希函数
     所谓哈希表(即Hash table),也被称为散列表,就是通过Key value值(即关键码值)对目标点直接进行数据访问的结构总称。它会将每一个通过的Key value值标记在表中的一个位置,从而提高查找该值的效率。这个标记所产生的函数通常被称为映射函数(也被称为散列函数)。存放这一系列相关标记的表,则被称为散列表,也就是哈希表。
     在连接跟踪控制版块中,H表示所涉及会话中相应的HASH项,通常采用的哈希函数如下式:
     H(会话相关项)=(src+dst+协议数值参数+协议数值相关参数+源头数值相关参数)*模HASH表相关参数
     对于TCP(即传输控制协议Transmission Control Protoco的英文缩写)和UDP(即用户数据包协议UserDatagram Protocol的英文缩写)相关的哈希函数如下式:
     H(会话相关项)=(src+dst+源头数值参数+目的地数值相关参数+协议数值相关参数)*模HASH表相关参数
对于ICMP(即互联网控制消息协议Internet Control Message Protocol的英文缩写)相关的哈希函数如下式:
H(会话相关项)=(src+dst+数据包相关参数+协议数值相关参数)*模HASH表相关参数
     会话主控版块是根据哈希表的相关数据组建起来的,其中各连接跟踪数据包是通过信息指针完成连接标记的。
     2.哈希表两阶段效率计算分析
     (1)以连接为主导方向的哈希表效率计算
     当防火墙系统处理每一个会话连接达成时,都会自动生成至少两个阶段控制版块,即以初始为方向的会话连接控制以及以应答为方向的会话连接控制。在这两个阶段控制版块中通常采用哈希表的插入控制方式为:第一种,按计算等级的优先等级进行插入,简单说就是把最后一个接入的哈希表控制版块放在链表的最顶端,按照控制的优先等级顺列进行连接;第二种,与第一种方法相反,按计算优先等级的反次序进行插入,就是把最后一个接入的哈希表控制版块放在链表的最底端;第三种,不根据优先等级决定哈希表控制版块的插入次序,随机进行插入,当然这种方式容易造成混乱,轻易是不采用的。而在哈希表两阶段效率计算过程中,通常是假设存在着N个会话连接通过防火墙系统,假设每个会话连接存在着初始方向、应答方向以及相关方向的连接各一个,也就是说哈希表中存在的总项数为3*N个;假设每一次防火墙系统和哈希表相关项比对需要的时间长度为t,那么连接跟踪通过哈希表比对相应数据包所需的时间则可表述成3*N*t/2。
     (2)以会话为主导方向的哈希表效率计算
     如果从会话通过防火墙系统的方向作为主(下转第21版)(上接第15版)导考虑前提的话,在哈希表效率计算的过程中,可以假设每一次防火墙系统和哈希表相关项比对需要的时间长度为t0,那么连接跟踪通过哈希表比对相应数据包所需的时间则可表述成N*t0/2。这就可以看出,以会话为主导方向的哈希表查询的连接跟踪效率要远远高于以连接为主导方向的连接跟踪方式。但必须强调的是,由于连接跟踪状态的特殊性,在一些基础功能的检测过程中(比如地址变更/转换等情况),验证特定的数据封包是否属于某个连接时所消耗的时间t0基本都大于理想时间t,所以即使以会话为主导方向的哈希表效率计算有着理论上的优势,但更多的防火墙系统还是采用以连接为主导的连接跟踪计算模式。
     五、连接跟踪过程中对传输控制协议的处理
     在当前面临的众多网络安全问题中,有许多攻击手段是通过频繁进行状态转移以达到被攻击方出现某种异常错误来实现的。所以对连接时状态变迁的跟踪处理或不按常规进行的数据包变迁进行跟踪是防火墙系统连接跟踪检测的一个重点步骤。其跟踪的重点一般在连接产生的三个阶段中,分别是:
     1.握手阶段的处理
     当src到dst建成连接时,TCP/IP协议发出的握手信号用SYN表示,接受了该信号(也就是应答)则用SYN-ACK来表示,那么三个握手阶段可分别表示为:第一次,src→SYN→dst;第二次,dst→SYN-ACK→src;第三次,src→ACK→dst。
     而当这三次握手状态完成后,防火墙系统会认为连接完成,这时传输控制协议(即TCP协议)会默认地将这次连接中通过的每一个数据封包设置为ACK封包。在这个过程中,如果没有连接跟踪的辅助处理,防火墙系统将无法有效地辨别每个ACK封包的来源。而连接跟踪的处理方式通常是设定一个不大于40秒的跟踪周期,在周期内如果出现该数据包的状态变迁,那么该数据包将会被丢弃;反之则会让数据包通过检测。这样做的目的:第一是为了缩短防火墙安全检测的溢出值,提高效率;第二是防止一些类似拒绝服务、过负荷运行的攻击方式发生。
     2.产生连接超时的处理
     通常超时值的设定就是每个哈希表存在的极限时间,这个数值的大小往往是根据不同的防火墙系统来决定的。通常的表述方式如图2所示:
     
     (图2)
     连接跟踪对超时状态的处理的目的是有效地节约信道资源(连接两端出现连接异常或变迁时都容易造成信道资源的浪费),同时也有效避免黑客进行消耗攻击所导致的防火墙系统崩溃。
     3.产生连接中断时的处理
     当会话连接出现中断时,防火墙系统的连接跟踪处理的方式可分成两种情况来考虑:第一种,在会话连接中的任意一方出现某种原因引发的非法数据请求或连接异常状态,那么该方通过传输控制协议即时会话发送出一个RST标识(错误标识),当连接跟踪接收到该标识时,无需应答,会立刻做出断开会话连接处理,相关的会话连接表将在5~10秒内自行删除掉;第二种,由会话连接中的任意一方发送TCP报文段的报头(即FIN)为1时,此时表示发出方要终止此次对话连接,当接收方确定了这个FIN的所属连接时,将会做出拒绝接受数据处理,连接状态也会变成Wait,如没有追加命令,则连接状态表将在1~2分钟后自行删除。

发表评论
评论标题:
评论内容:
(500字符)
验证码: 看不清楚,请点击我
    
本网站所有内容属《江苏科技报·教育周刊》所有,未经许可不得转载
编辑部地址:江苏省南京市鼓楼区中山路55号新华大厦48楼
ICP备案编号:ICP备案编号:苏ICP备05076602号