@EggGump
2019-04-20T21:01:26.000000Z
字数 3499
阅读 998
security
本文提供了一个应用框架FRESCO,可供研究人员和开发代人员更简单地实现各种检测、缓解模块。
它提供API,可用来调用Module,Module是各种安全功能,如:firewall,scan detector,attack deflector,IDS detection logic。当前提供16个Module,每个Module有5个接口:input,output,event,parameter,action,M之间可以配合使用以实现更复杂的应用。
由于Controller不存TCP公话信息而分析却需要,FRESCO-DG存储和管理这些并在FRESCO应用之间共享。
FRESCO的功能模块化可通过共享数据和事件调用API来驱动。
FRESCO的架构图如图1
由应用层和安全执行内核(SEK)组成,均在NOX控制器上运行。应用层使用NOX的python模块实现,它提供两个开发功能:DE和RC(Resource Controller)。开发者可以利用应用层的脚本进行开发应用(应用是基于模块的),当收到相应触发事件时被实例化的模块就会被激活。模块也可以对相应的事件生成新的流规则,这些规则会在SEK部分被处理。
应用层中,模块是其基本组成单元,应用是模块的组装。每个模块有5个接口:input,output,parameter,action,event
举个粟子:一个丢度所有HTTP包的应用。它由两个模块组成,结构图如图2.
第一个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:交流从网络隔离,只允许交付给指定主机。
提供API给开发者,屏蔽NOX实现和复杂的OF协议;释放安全功能相同的应用。DE提供以下四个功能:
监控switches并跟踪状态,当FRESCO要插表但表满,就会删旧表。不要功能:1.定期收集switch状态;2.垃圾处理,当表快满了(超过指定thresh)删除最长时间未用的表。
脚本语言需要定义六个变量:type:需要实例化模型的类型,input,output,parameter,action,event。每个变量可定义多值,用逗号分割。变量总结在表1中。图3是对图2中的例子用脚本语言描述。
图4是对应的脚本执行:1.生成脚本;2.加载到FRESCO;3.switch收到符合条件的包;4.报告事件;5,6创建实例并加载;7.发action到FRESCO;8.将action转成rule并插入switch。
SEK解决:1.流表冲突,保证安全流表优先级;2.解决set action会绕过规则的问题:如set action可能过虚拟隧道绕过禁止两主机建立连接的问题,这个在[31]中更详细说明。
解决问题1需要的特征:
FRESCO 应用是用python编写,在NOX上运行。
FRESCO SEK是NOX源码的一个扩展,C++代码,修改send_openflow_command用来接收应用rule并将其发到switch,修改的目的是解决冲突问题,保证安全规则被插入到switch中。
实现一个反射网,将布置该服务的OF网转接到远程蜜罐。
与其他应用协作可将其他应用的alert信息利用action转成流规则。传递的消息格式有两种:FRESCO类型:MESSAGE_LEGACY:FRESCO;标准格式类型:MESSAGE_LEGACY:IDMEF。
例:见图7,1.攻击者咸染C;2.BotHunter检测到;3.BotHunter发message给FRESCO;4.5.FRESCO根据结果实现检疫action;6.c被隔离。
botHunter使用FRESCO API传递感染信息包括:victim_ip,confidence_score,当score大于thresh时执行隔离,实现脚本见图8
评价环境:mininet:i3CPU,4G RAM;SEK:HP ProCurve 6600 OF-enable switch 。本部分有三个应用:
扫描检测,见图10
三个模块代码量为:205pythonk,24 script。
三个模块内容为:检测是否在表中;在:交付,不在:检测;是否扫描:是重定向,否:交付。
图11为相应的脚本。
图12为BotMiner实现;图13为相应脚本;321行python,40行script.
P2P恶意软件发现。恶意软件特征:低volume,低churn。
图14,15为说明图和脚本
1.代码量
比较FRESCO和非FRESCO实现的应用。
用FRESCO实现[24]中的算法并与其比较,表2为比较结果,其中FRESCO的代码量大大减少。
2.资源消耗