AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks
Shin S , Yegneswaran V , Porras P , et al. AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks[C]// Acm Sigsac Conference on Computer & Communications Security. ACM, 2013.
本文对of作两个改进:1,利用Connection Migration对TCP连接进行中继,使其可以在data plane过虑掉未完成的TCP连接;2,actuating trigger改进OF协议,使其支持条件流表,即在某一特定条件下激活流表规则以达到网络监控的目的。 整体架构见图1
系统设计
Connection Migration
利用date plane代理TCP 三次握手,只把完成的对上层进行暴露,实现步骤: 1收到SYN,分类:三次握手完成 2报告:得到控制器允许并插入规则 3转移:找目的host,并成功shake 4报告:通知控制器 5中继,源和目的host建立TCP session 可见图2
分类(classification stage)
流程见图3
收到TCP:查flow Table,在?交付 不在?是不是SYN?是:ACK 否:RST或丢弃
收到TCP ACK处理流程
收到TCP ACK,查flow table,在?交付 不在?查SYN缓存,有:report 无:RST或丢弃
Report stage
将flow header信息抽取出来发给Controller,由controller决定是否允许migration,是:Migration 否:未说
Migration Stage
CM与目的主机shake,将shake结果报告给controller
Relay Stage
正常中继TCP
举个例子:如图5
CM的好处
- 可降低与TCP握手有关洪泛攻击的影响。
- 可收集到所有尝试连接数和连接成功数,并以此分析是否有洪泛攻击或探针攻击进行。
延迟CM
当收到一个TCP连接请求时,收到第一个数据包时才开始report,避免真实TCP连接的攻击。
Actuating Triggers
它的作用是异步报告信息给Controller,帮助Controller快速管理。它由四步组成:
- 定义触发条件 condition
- 注册到date plane
- date plane 检测包是否满足当前条件
- 满足:告诉Controller;插入指定规则
Defining a Condition:
本文支三个条件:payload-based,traffic-rate-based,rule-activation 条件格式为:${type:\qquad condition:\qquad pointer}$,并对条件的bit位数,以及每一位表示何种意义进行了解释。
数据平面发现条件满足,并有pointer,就添加pointer所指向的rule到flowtable中,图7是一个事件触发场景图解。即当数据平面发现流满足某个条件时就触发条件流表中规定好的行为 。
Condition Registration
条件流表下发到date plane即可
Traffic Rate Monitoring
监测流率,将触发条件并入date plane的计数管理逻辑中。 ###Event Notification 当date plane监测到符合条件的信号时就通知Controller。 ###例 payload-based条件中,当条件满足时将标志位置1,就可将相应包传到Controller,图8中,Controller想要10.0.0.1的所有包,告诉date plane匹配条件,若相匹配就将其交给Controller即可。
对于condition Flow Rule Activation,当某些条满足时自动在date plane激活rule,可用来自动处理DDoS这类攻击而不用通知Controller,这样的条件规则需要在date plane实现两个组件:存放规则的内存,用于发现规则的指针。图10说明如何插入并激活一个流规则。
1-3下发安装规则,检测包,4满足条件通知,5插入流规则。
系统实现
见图11
a是正常的数据平面实现结构,b是实现了我们协议的数据平面,在b中,header parser被修改以抽取TCP flags,arbiter被修改以强制packet editor来进行连接转移并应答TCP SYN/ACK,并为packet editor添加连接处理模块。 添加两个数据结构以支持中继,ACK/SEQ。可选添加Option以处理TCP Option。 实现Actuating Triggers时,利用已有的TCAM和SRAM. 图c是利用switch的CUP和DRAM简化实现。 在A-G中,Controller和switch中都要添加表1中的命令。
评估
AG用例
两个场景:AG,传统OF应用预防 三个攻击:网络饱和攻击,网络扫描攻击,网络入侵攻击。 Controller使用POX,switch运行在i5CPU和8G memory。
网络饱和攻击
拓扑如图12
测试情景分别在有,无A-G,有,无DDoS四种情况下进行,请求网络所需要平均时间如表2
攻击强度为0-800个包,10个良性客户端请求率如图13
结果一顿夸
络扫描攻击
该攻击传统OF也可容易检测出来,但使用AG更加简单,只需要定期收个TCP会话信息即可。图16,17表示使用和不使用AG的区别,16中未使用,attacker最终找到了那个打开的端口,17中使用了AG,他扫到所有的端口都是开着的。
网络入侵检测
使用的攻击是RPC buffer overflow 比较:OF只会发送无法匹配的包头到Controller,因此无法检测到该类攻击,AG可以定义指定特征包并将其发送到Controller Application进行分析.
Overhead Measurement
CM
分析使用AG和OF中建立一个新连接的时间,理论分析见图像20,21
理论一顿解释
后通过实验说明AG花费时间开销特别小。
Actuating Triggers
检测检查条件时所消费的时间,表3给出平均时间
所花时间极少。
本文不足:无法预防应用层攻击,UDP,ICMP攻击。
如果这篇文章帮到了你, 那就赞助我一瓶水吧, 这可以让我有动力去写更多的文章
Sponsor