@EggGump
2019-04-17T09:23:46.000000Z
字数 3647
阅读 889
security
本文相当于一个框架手册,该框架作用为:一个分布式SDN弹性异常检测应用,它提供高抽象的API,可以使管理员以最小的编程代价布署异常检测应用。
图2为Athena的一个实例,其他布式l地布署在3个Controller上。
其中,Feature Generator通过收集本地控制器和数据平面的控制信息来生成特征并放入DB cluster,Attack Detector通过指定算法进行网络检测,Attack Reactor 通过下发缓解行为到data plane来对检测到的威胁进行响应。
Athena由:southbound element,distributed DB,computing cluster,northbound element组成。Southbound element负责对网络进行监控,从SDN控制信息中提取特征,实现检测算法,触发缓解行为。Northbound element负责提供API给应用,从而编写异常检测任务。DB cluster提供特征授权,Computing cluster提供分布式Athena 应用实例的运行。框架图如图3.
该部分目标为隔离控制信息,抽取特征来驱动分析算法,并缓解检测到的问题。它由以下四部分组成:
检测由数据平面和控制平面发出的控制信息,并通过Athena proxy传递由Attack Reactor发出的管理命令。当Athena Proxy发流表规则到date plane时,controller也自动更新它的状状。
根据进入控制信息抽取特征和根据控制平面状态抽取行为特征特征类别可见表1
根据Athena NB的要求生成检测模型,根据Feature Generator的特征进行分析,使用检测算法来发现潜在威胁,可以是在线或者批处理模式。当其收到tasks时,将其转成functions和jobs,并根据情况single或分布式方式处理。
当其从Detector Manager收到缓解策略时,将其转成messages并通过Athena Proxy发送到数据平面。
提供API,以便开发人员实现功能。
提供一个让应用根据用户限制索取或接收网络特征的机制(它维护一个event deliver table,并以此维护应用限制)。它从应用接收特征请求并将其转为queries,通过DB cluster查询,并将从DB cluster获得的结果传给由Detector Manager管理的compute cluster
提供ML算法生成模型,并与Feature Manager一起动态验证进入的网络特征。它提供统一API使具体算法对operator透明,自动配置算法参数(如使用k-means或DT在表2中是使用想同的API的)。
提供缓解策略,使用应用发布策略请求到SB Attack Reactor,而Attack Reactor会自动将其转成flow rules
导出函数以便于管理与特征收集有关的资源。它可以动态调整监控的网络实体数并根据应用的请求生成网络特征。
展示Athena 应用结果并提供交互机制。
特征类型可见表1,Athena有超过100个网络监控特征。特征格式见图4.
分为index fields和feature fields,index fields分为index和meta data,index是特征来源信息如:switch ID,port ID,OF match field.meta data 表示额外信息如时间戳等。feature fields就是网络的具体行为。
见表4
根据网络状态改变管理数据平面,方法有两种:block和quarantine。
DE提供允许使operator以抽象的方式设计和定义检测器。
可以通过以下步骤生成一个检测模型:
1.定义检测参数
2.定义特征
3.选择想要的算法
表2提供核心函数,表3提供NB API 参数,表4列出每个参数支持的功能。
图5给出实现一个异常检测器步骤的说明
开发人员选择off-the-shelf策略并使用NB API构建异常检测器,Athena自动进行检测任务执行并报告结果给application,application根据结果再配置新的任务。Athena提供GUI接口进行警告和管理Athena application。
以DDoS为例。
表5为DDoS发生时可能的特征
1.创建DDoS检测模型:定义特征,设定参数来归一化表5中的特征。
2.DDoS特征验证
3.DDoS测试环境和结果
可见算法1伪代码
与[10]比较见表6,测试结果见图6
值得注意的一点:Athena布署检测应用而不需要更改网络基础设施,而Spiffy就不能满足。
LFA Mitigation Service using Athena:
需求:链接阻寒检测,识别per-flow rate changes,实现flow alteration
LFA Event Handler Registration:
检测器通过link usage计算link utilization和per-flow changes来区分攻击者。Athena支持多个基于流体积的特征,可以当作候选特征。最后,调用AddEventHandler API 来检测和缓解事件。
LFA Detection Logic:
开发人员在Event_handler实现自定义检测逻辑,缓解逻辑通过基于检测结果激发Reactor来阻塞可疑主机。使用Athena,这些只要25行java代码即可实现。
Comparing Athena-based LFA mitigaiton with Spiffy:
spiffy需要配置SNMP-based 网络switch,需要布署OpenSketch-enable switch,Athena而很简单,不需要更改基础设施。
Controller:ONOS,MongoDB,Spark,JfreeChart,15000行java code。
评价 usability,network scalablity,overhead。
环境:5 servers(64GB RAM,Inter I5 quad-core I5-4690),7个物理交换机。
这里就比实现同一功能所花的代码量,见图8
Athena所花代码量最小。
Cbench(controller benchmarker)是一款OpenFlow控制器性能测试工具,通过模拟一定数量的交换机连接到控制器,发送packet-in消息,并等待控制器下发flow-mods消息来衡量控制器的性能。