[关闭]
@EggGump 2019-04-20T21:01:26.000000Z 字数 3499 阅读 998

FRESCO:Modular Composable Security Services for Software-Defined Networks

security

Shin S W, Porras P, Yegneswara V, et al. Fresco: Modular composable security services for software-defined networks[C]//20th Annual Network & Distributed System Security Symposium. NDSS, 2013.

本文提供了一个应用框架FRESCO,可供研究人员和开发代人员更简单地实现各种检测、缓解模块。

基本介绍

它提供API,可用来调用Module,Module是各种安全功能,如:firewall,scan detector,attack deflector,IDS detection logic。当前提供16个Module,每个Module有5个接口:input,output,event,parameter,action,M之间可以配合使用以实现更复杂的应用。

FRESCO的架构图如图1
ECH84U.png
由应用层和安全执行内核(SEK)组成,均在NOX控制器上运行。应用层使用NOX的python模块实现,它提供两个开发功能:DE和RC(Resource Controller)。开发者可以利用应用层的脚本进行开发应用(应用是基于模块的),当收到相应触发事件时被实例化的模块就会被激活。模块也可以对相应的事件生成新的流规则,这些规则会在SEK部分被处理。

FRESCO的详细价绍

FRESCO Application Layer

应用层中,模块是其基本组成单元,应用是模块的组装。每个模块有5个接口:input,output,parameter,action,event

举个粟子:一个丢度所有HTTP包的应用。它由两个模块组成,结构图如图2.
ECOfSS.md.png
第一个Module:
input:包的端口值,parameter:80,event:当有新流到达时触发,output:端口值与80的比较结果
第二个M:
input:第一个M的输出,action:drop或forward。

action是从NOX得到且是所有的switch都支持的,它基本有三种:drop,output,group:通过具体的组来处理。还有一种可选的:set action:switch重写匹配包的字段。FRESCO将其分为三种:redirect,mirror:拷贝并交付到某个镜像端口,quarantine:交流从网络隔离,只允许交付给指定主机。

FRESCO Development Enviroment(DE)

提供API给开发者,屏蔽NOX实现和复杂的OF协议;释放安全功能相同的应用。DE提供以下四个功能:

FRESCO Resource Controller(RC)

监控switches并跟踪状态,当FRESCO要插表但表满,就会删旧表。不要功能:1.定期收集switch状态;2.垃圾处理,当表快满了(超过指定thresh)删除最长时间未用的表。

FRESCO Script Language

脚本语言需要定义六个变量:type:需要实例化模型的类型,input,output,parameter,action,event。每个变量可定义多值,用逗号分割。变量总结在表1中。图3是对图2中的例子用脚本语言描述。
EPSomF.png
EPS7TJ.md.png
图4是对应的脚本执行:1.生成脚本;2.加载到FRESCO;3.switch收到符合条件的包;4.报告事件;5,6创建实例并加载;7.发action到FRESCO;8.将action转成rule并插入switch。

FRESCO Security Enforcement Kernel(SEK)

SEK解决:1.流表冲突,保证安全流表优先级;2.解决set action会绕过规则的问题:如set action可能过虚拟隧道绕过禁止两主机建立连接的问题,这个在[31]中更详细说明。
解决问题1需要的特征:

实现

其本实现环境

FRESCO 应用是用python编写,在NOX上运行。
FRESCO SEK是NOX源码的一个扩展,C++代码,修改send_openflow_command用来接收应用rule并将其发到switch,修改的目的是解决冲突问题,保证安全规则被插入到switch中。

工作实例:

Implementing Reflector Net

实现一个反射网,将布置该服务的OF网转接到远程蜜罐。

Cooperating with a Legacy Security Application

与其他应用协作可将其他应用的alert信息利用action转成流规则。传递的消息格式有两种:FRESCO类型:MESSAGE_LEGACY:FRESCO;标准格式类型:MESSAGE_LEGACY:IDMEF。
例:见图7,1.攻击者咸染C;2.BotHunter检测到;3.BotHunter发message给FRESCO;4.5.FRESCO根据结果实现检疫action;6.c被隔离。
EPeqtf.md.png
botHunter使用FRESCO API传递感染信息包括:victim_ip,confidence_score,当score大于thresh时执行隔离,实现脚本见图8
EPmSns.md.png

评估实例:

评价环境:mininet:i3CPU,4G RAM;SEK:HP ProCurve 6600 OF-enable switch 。本部分有三个应用:

FRESCO Scan Service

扫描检测,见图10
EPnfLd.png
三个模块代码量为:205pythonk,24 script。
三个模块内容为:检测是否在表中;在:交付,不在:检测;是否扫描:是重定向,否:交付。
图11为相应的脚本。
EPnqSS.md.png

FRESCO BotMiner Service

图12为BotMiner实现;图13为相应脚本;321行python,40行script.
EPunFx.png
EPullD.md.png

FRESCO P2P Plotter Service

P2P恶意软件发现。恶意软件特征:低volume,低churn。
图14,15为说明图和脚本
EPuaff.png
EPuB6g.md.png

评估

1.代码量
比较FRESCO和非FRESCO实现的应用。
用FRESCO实现[24]中的算法并与其比较,表2为比较结果,其中FRESCO的代码量大大减少。
EPuqtx.png
2.资源消耗

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