@EggGump
2019-04-04T16:25:39.000000Z
字数 2605
阅读 876
security
本文对of作两个改进:1,利用Connection Migration对TCP连接进行中继,使其可以在data plane过虑掉未完成的TCP连接;2,actuating trigger改进OF协议,使其支持条件流表,即在某一特定条件下激活流表规则以达到网络监控的目的。
整体架构见图1
利用date plane代理TCP 三次握手,只把完成的对上层进行暴露,实现步骤:
1收到SYN,分类:三次握手完成
2所告:得到控制器允许并插入规则
3转移:找目的host,并成功shake
4报告:通知控制器
5中继,源和目的host建立TCP session
可见图2
流程见图3
收到TCP:查flow Table,在?交付
不在?是不是SYN?是:ACK
否:RST或丢弃
收到TCP ACK处理流程
收到TCP ACK,查flow table,在?交付
不在?查SYN缓存,有:report
无:RST或丢弃
将flow header信息抽取出来发给Controller,由controller决定是否允许migration,是:Migration
否:未说
CM与目的主机shake,将shake结果报告给controller
正常中继TCP
举个例子:如图5
当收到一个TCP连接请求时,收到第一个数据包时才开始report,避免真实TCP连接的攻击。
它的作用是异步报告信息给Controller,帮助Controller快速管理。它由四步组成:
本文支三个条件:payload-based,traffic-rate-based,rule-activation
条件格式为:,并对条件的bit位数,以及每一位表示何种意义进行了解释。
数据平面发现条件满足,并有pointer,就添加pointer所指向的rule到flowtable中,图7是一个事件触发场景图解。即当数据平面发现流满足某个条件时就触发条件流表中规定好的行为 。
条件流表下发到date plane即可
监测流率,将触发条件并入date plane的计数管理逻辑中。
当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,传统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进行分析.
分析使用AG和OF中建立一个新连接的时间,理论分析见图像20,21
理论一顿解释
最后通过实验说明AG花费时间开销特别小。
检测检查条件时所消费的时间,表3给出平均时间
所花时间极少。
本文不足:无法预防应用层攻击,UDP,ICMP攻击。