[关闭]
@EggGump 2019-04-04T16:25:39.000000Z 字数 2605 阅读 876

AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks

security

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
AgIoex.png

系统设计

Connection Migration

利用date plane代理TCP 三次握手,只把完成的对上层进行暴露,实现步骤:
1收到SYN,分类:三次握手完成
2所告:得到控制器允许并插入规则
3转移:找目的host,并成功shake
4报告:通知控制器
5中继,源和目的host建立TCP session
可见图2
AgI5O1.png

分类(classification stage)

流程见图3
AgIv6A.png
收到TCP:查flow Table,在?交付
不在?是不是SYN?是:ACK
否:RST或丢弃

收到TCP ACK处理流程
AgoSmt.png
收到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
AgT6GF.png

CM的好处

延迟CM

当收到一个TCP连接请求时,收到第一个数据包时才开始report,避免真实TCP连接的攻击。

Actuating Triggers

它的作用是异步报告信息给Controller,帮助Controller快速管理。它由四步组成:

Defining a Condition:

本文支三个条件:payload-based,traffic-rate-based,rule-activation
条件格式为:,并对条件的bit位数,以及每一位表示何种意义进行了解释。
AgHr3F.md.png
数据平面发现条件满足,并有pointer,就添加pointer所指向的rule到flowtable中,图7是一个事件触发场景图解。即当数据平面发现流满足某个条件时就触发条件流表中规定好的行为 。
AgHgBR.png

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即可。
AgbOsJ.png
对于condition Flow Rule Activation,当某些条满足时自动在date plane激活rule,可用来自动处理DDoS这类攻击而不用通知Controller,这样的条件规则需要在date plane实现两个组件:存放规则的内存,用于发现规则的指针。图10说明如何插入并激活一个流规则。A2Zubn.png
1-3下发安装规则,检测包,4满足条件通知,5插入流规则。

系统实现

见图11
A2ZoRS.md.png
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中的命令。A2ns2T.md.png

评估

AG用例

两个场景:AG,传统OF应用预防
三个攻击:网络饱和攻击,网络扫描攻击,网络入侵攻击。
Controller使用POX,switch运行在i5CPU和8G memory。

网络饱和攻击

拓扑如图12
A2Q8oj.png
测试情景分别在有,无A-G,有,无DDoS四种情况下进行,请求网络所需要平均时间如表2A2Qcf1.png
攻击强度为0-800个包,10个良性客户端请求率如图13 A2QRl6.png
结果一顿夸

网络扫描攻击

该攻击传统OF也可容易检测出来,但使用AG更加简单,只需要定期收个TCP会话信息即可。图16,17表示使用和不使用AG的区别,16中未使用,attacker最终找到了那个打开的端口,17中使用了AG,他扫到所有的端口都是开着的。
A2lVnU.png
A2lnAJ.png

网络入侵检测

A2luN9.png
使用的攻击是RPC buffer overflow
比较:OF只会发送无法匹配的包头到Controller,因此无法检测到该类攻击,AG可以定义指定特征包并将其发送到Controller Application进行分析.

Overhead Measurement

CM

分析使用AG和OF中建立一个新连接的时间,理论分析见图像20,21
A2la4A.md.png
理论一顿解释A2l03t.png
最后通过实验说明AG花费时间开销特别小。

Actuating Triggers

检测检查条件时所消费的时间,表3给出平均时间A28l3n.png
所花时间极少。

本文不足:无法预防应用层攻击,UDP,ICMP攻击。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注