基于全局流表的流异常检测机制

一、引言

随着信息化的快速发展,攻击者越来越多地有针对性地对某些企业发动有利可图的攻击,如探查内部消息、进行破坏或窃取数据等,而单一的安全防护手段很难防范这些复杂攻击。其一,攻击者采用多种高级攻击手段,普通的检测机制不能有效及时检测到威胁;其二,通过持续渗透,攻击者获得内部资源的权限或内部用户的身份,便会绕过白名单机制。

综合而言,对抗持续高级威胁,应该采用多种防护手段,灵活地通过软件定义的应用编排和安全资源准备,发现攻击链的某一环并及时阻断。面对大型内部网络的海量数据,检测的第一步往往可以通过流量的统计信息入手,及时发现一些异常的访问模式,进而对这些异常流量进行进一步分析。近年来SDN(Software-Defined Networking,软件定义网络)技术越来越流行,SDN控制器提供了实时全局流量的视图,无疑为上述的异常流量检测提供了有力的支撑。

本文介绍了如何使用SDN技术实现全局流表,可记录和查询历史时刻内的所有的访问记录,并能防范如伪造源地址等恶意攻击。

关键字 全局流表 SDN 流异常检测

二、全局流表

全局流表(Global Flow)是指给定网络范围内的所有网络设备上的全部流量汇聚而成的流知识,通过构建全局和实时的流表,可知任意两点间数据流向和访问细节,这对先期分析异常行为有很大的帮助。

全局流表借助安全控制平台通过SDN控制器向网络设备收集流信息,并通过安全控制平台的数据服务进行存储和查询,如图1所示。软件定义安全体系已在前几期技术内刊中已有介绍,本文不做赘述。


图1 全局流表的架构图

本文讨论的场景在OpenFlow/SDN环境中,在 SDN网络中,数据包进入交换机后,按照 Flow Entry的优先级对流表中匹配域中的字段依次进行匹配,如果一个表项匹配成功,则执行相应的指令。所以交换机上的一条流表可以指示流自身信息及其下一步动作。从 SDN通过流表控制数据转发这一机制可以分析,一条流在流经交换机的过程中,在每一台交换机上控制其转发的流表中的 match 匹配字段是一定的,如果某条流的action 域中有修改该流数据包的命令时,match 中的某些字段才会发生改变,但是改变前的 match 和改变后的 match 控制的仍然属于同一条流。

全局流表的意义在于可以将整个网络中的交换机的流表融合,给定一个匹配域(如源IP->目的IP),就能找到所有存在该匹配域的交换机,并按照数据包转发顺序(上一个交换机的output端口与下一个交换机的inport端口可匹配),形成一个路径,可真实还原某个数据包在网络中完整的转发路径。这条路径一方面包含了访问关系的两个端点,记录了所有时刻所有访问记录的详细信息,建立了详细的流数据库;另一方面还包含了访问关系在转发平面上的每个中间点,可避免恶意攻击者伪造地址、攻破网络控制器操纵转发路径等攻击。

2.1. 全局的流量信息融合

全局流表算法的主要思想是首先根据弱节点覆盖求网络最小有效测量集,需满足该有效测量集(弱节点集合)收集的流量在一定误差范围内代表全网流量,然后定时收集弱节点上的流表,经过流分类整合步骤,整合出每条流流经的弱节点集合。由于只获得了每条流流经的弱节点,为部分节点,所以最后通过路径还原算法,将流的路径由弱节点还原至整个网络路径。全局流算法流程如图2所示。


图2 基本算法流程图

为了减少收集流表对网络性能的影响,测量节点应选择的越少越好,因此应求出一个最小的有效测量集,通过该集合收集到网络的全局流量,并可以计算出每一条流的路径。大量实验证明交换机或者路由器具有流量守恒定律,利用这一特性可以有效的减少测量节点,从而减少收集流量对网带来的压力。


遍历过所有的流表信息后,可以将每一条流流经的交换机统计出来,这一操作过程称为分类。

在遍历流表在找每一条流流经的交换机时,将该交换机与其转发端口存成NodePortTuple二元组,在每个集合中保存有多个二元组,构成一个二元组集合,每个二元组可以表示为(niu),该二元组表示该数据流流经交换设备ni,通过其转发端口u转发出去。

假设一条流流经交换机dpid1,该流从该交换机的转发端口为3,那么将<dpid1,3>一起存入到hashmap中。经过分类之后的数据结构举例如图3所示。

图3 分类操作后的全局流表结构

但需要考虑一种前述的复杂场景:同一条流在流经不同交换机后,其流的某些字段的可能会被修改,所以一条流可能有多个不同匹配的流表,最终全局流表算法输出结果是一个 map

Key:是该流在整个流经过程中经历的所有交换机的 match 集合的 md5 值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值