Contents

Athena: A Framework for Scalable Anomaly Detection in Software-Defined Networks

S. Lee, J. Kim, S. Shin, P. Porras and V. Yegneswaran, “Athena: A Framework for Scalable Anomaly Detection in Software-Defined Networks,” 2017 47th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), Denver, CO, 2017, pp. 249-260.

本文相当于一个框架手册,该框架作用为:一个分布式SDN弹性异常检测应用,它提供高抽象的API,可以使管理员以最小的编程代价布署异常检测应用。

challenges

  • 大多数威胁检测器未对分布式数据平面进行数据抽取和管理
  • 大多数研究只侧重于具体的某一个异常检测
  • 目前对网络异常特征和异常检测算法的研究很有限 传统的网络异常检测应用如图1

https://s2.ax1x.com/2019/04/14/AOKCf1.md.png

Athena Design

  • 设计目标: 提供可扩展特征抽取架构;抽象数据获得过程并简化异常检测服务实现;布署检测服务不需要修改SDN基础设施。

图2为Athena的一个实例,其他布式l地布署在3个Controller上。 其中,Feature Generator通过收集本地控制器和数据平面的控制信息来生成特征并放入DB cluster,Attack Detector通过指定算法进行网络检测,Attack Reactor 通过下发缓解行为到data plane来对检测到的威胁进行响应。

https://s2.ax1x.com/2019/04/14/AOMr8I.md.png

Athena System Design

Athena由:southbound element,distributed DB,computing cluster,northbound element组成。Southbound element负责对网络进行监控,从SDN控制信息中提取特征,实现检测算法,触发缓解行为。Northbound element负责提供API给应用,从而编写异常检测任务。DB cluster提供特征授权,Computing cluster提供分布式Athena 应用实例的运行。框架图如图3.

https://s2.ax1x.com/2019/04/14/AO3aQI.md.png

Southbound(SB) Element

该部分目标为隔离控制信息,抽取特征来驱动分析算法,并缓解检测到的问题。它由以下四部分组成:

SB interface

检测由数据平面和控制平面发出的控制信息,并通过Athena proxy传递由Attack Reactor发出的管理命令。当Athena Proxy发流表规则到date plane时,controller也自动更新它的状状。

Feature Generator

根据进入控制信息抽取特征和根据控制平面状态抽取行为特征特征类别可见表1

https://s2.ax1x.com/2019/04/14/AO0Xw9.md.png

Attack Detector

根据Athena NB的要求生成检测模型,根据Feature Generator的特征进行分析,使用检测算法来发现潜在威胁,可以是在线或者批处理模式。当其收到tasks时,将其转成functions和jobs,并根据情况single或分布式方式处理。

Attack Reactor

当其从Detector Manager收到缓解策略时,将其转成messages并通过Athena Proxy发送到数据平面。

The Athena Northbound(NB) element

提供API,以便开发人员实现功能。

Feature Management Manager

提供一个让应用根据用户限制索取或接收网络特征的机制(它维护一个event deliver table,并以此维护应用限制)。它从应用接收特征请求并将其转为queries,通过DB cluster查询,并将从DB cluster获得的结果传给由Detector Manager管理的compute cluster

Detector Manager

提供ML算法生成模型,并与Feature Manager一起动态验证进入的网络特征。它提供统一API使具体算法对operator透明,自动配置算法参数(如使用k-means或DT在表2中是使用想同的API的)。

Reaction Manager

提供缓解策略,使用应用发布策略请求到SB Attack Reactor,而Attack Reactor会自动将其转成flow rules

Resource Manager

导出函数以便于管理与特征收集有关的资源。它可以动态调整监控的网络实体数并根据应用的请求生成网络特征。

UI Manager

展示Athena 应用结果并提供交互机制。

Athena Off-The-Shelf Strategioes

Athena Features

特征类型可见表1,Athena有超过100个网络监控特征。特征格式见图4.

https://s2.ax1x.com/2019/04/14/AO4kgH.md.png

分为index fields和feature fields,index fields分为index和meta data,index是特征来源信息如:switch ID,port ID,OF match field.meta data 表示额外信息如时间戳等。feature fields就是网络的具体行为。

Athena Detection Algorithms

见表4

Athena Reactions

根据网络状态改变管理数据平面,方法有两种:block和quarantine。

The Athena Development Enviroment(DE)

DE提供允许使operator以抽象的方式设计和定义检测器。

Athena Northbound API

可以通过以下步骤生成一个检测模型: 1.定义检测参数 2.定义特征 3.选择想要的算法 表2提供核心函数,表3提供NB API 参数,表4列出每个参数支持的功能。

https://s2.ax1x.com/2019/04/14/AOIvuj.md.png

https://s2.ax1x.com/2019/04/14/AOoC5V.md.png

https://s2.ax1x.com/2019/04/14/AOoF8U.md.png

Athena Application

图5给出实现一个异常检测器步骤的说明

https://s2.ax1x.com/2019/04/14/AOo6qs.md.png

开发人员选择off-the-shelf策略并使用NB API构建异常检测器,Athena自动进行检测任务执行并报告结果给application,application根据结果再配置新的任务。Athena提供GUI接口进行警告和管理Athena application。

Athena USE CASE

以DDoS为例。

情景1:A Large-scale DDoS attack Detector

表5为DDoS发生时可能的特征

https://s2.ax1x.com/2019/04/14/AO7McD.md.png

1.创建DDoS检测模型:定义特征,设定参数来归一化表5中的特征。 2.DDoS特征验证 3.DDoS测试环境和结果 可见算法1伪代码

https://s2.ax1x.com/2019/04/14/AO72CV.md.png

与[10]比较见表6,测试结果见图6

https://s2.ax1x.com/2019/04/14/AO74u4.md.png https://s2.ax1x.com/2019/04/14/AO7XvD.md.png

值得注意的一点: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个物理交换机。

usability

这里就比实现同一功能所花的代码量,见图8

https://s2.ax1x.com/2019/04/14/AXpqPg.md.png

Athena所花代码量最小。

Scalability

见图10

https://s2.ax1x.com/2019/04/14/AX9KIO.md.png

从图可见,基本跟spark应用差不多

overhead

Cbench(controller benchmarker)是一款OpenFlow控制器性能测试工具,通过模拟一定数量的交换机连接到控制器,发送packet-in消息,并等待控制器下发flow-mods消息来衡量控制器的性能。

  • Cbench测试见表9

https://s2.ax1x.com/2019/04/14/AX9bex.md.png

可见Athena将吞吐量降低了50%

  • CPU usage 见图11

https://s2.ax1x.com/2019/04/14/AX9vfe.md.png

Athena的CPU消耗较高,原因可能是Mongo-DB使用的。

相关工作

表10

https://s2.ax1x.com/2019/04/14/AXP6aV.md.png
本篇有源码!