基于全局流表的流异常检测机制

一、引言 随着信息化的快速发展,攻击者越来越多地有针对性地对某些企业发动有利可图的攻击,如探查内部消息、进行破坏或窃取数据等,而单一的安全防护手段很难防范这些复杂攻击。其一,攻击者采用多种高级攻击手段,普通的检测机制不能有效及时检测到威胁;其二,通过持续渗透,攻击者获得内部资源的权限或内部用户的身份,便会绕过白名单机制。 综合而言,对抗持续高级威胁,应该采用多种防护手段,灵活地通过软件定义的应用编排和安全资源准备,发现攻击链的某一环并及时阻断。面对大型内部网络的海量数据,检测的第一步往往可以通过流量的统计信息入手,及时发现一些异常的访问模式,进而对这些异常流量进行进一步分析。近年来SDN(Software-Defined Networking,软件定义网络)技术越来越流行,SDN控制器提供了实时全局流量的视图,无疑为上述的异常流量检测提供了有力的支撑。 本文介绍了如何使用SDN技术实现全局流表,可记录和查询历史时刻内的所有的访问记录,并能防范如伪造源地址等恶意攻击。 关键字 全局流表 SDN 流异常检测 二、全局流表 全局流表(Global Flow)是指给定网络范围内的所有网络设备上的全部流量汇聚而成的流知识,通过构建全局和实时的流表,可知任意两点间数据流向和访问细节,这对先期分析异常行为有很大的帮助。 全局流表借助安全控制平台通过SDN控制器向网络设备收集流信息,并通过安全控制平台的数据服务进行存储和查询,如图1所示。软件定义安全体系已在前几期技术内刊中已有介绍,本文不做赘述。 图1 全局流表的架构图 本文讨论的场景在OpenFlow/SDN环境中,在 SDN网络中,数据包进入交换机后,按照 Flow Entry的优先级对流表中匹配域中的字段依次进行匹配,如果一个表项匹配成功,则执行相应的指令。所以交换机上的一条流表可以指示流自身信息及其下一步动作。从 SDN通过流表控制数据转发这一机制可以分析,一条流在流经交换机的过程中,在每一台交换机上控制其转发的流表中的 match 匹配字段是一定的,如果某条流的action 域中有修改该流数据包的命令时,match 中的某些字段才会发生改变,但是改变前的 match 和改变后的 match 控制的仍然属于同一条流。 全局流表的意义在于可以将整个网络中的交换机的流表融合,给定一个匹配域(如源IP->目的IP),就能找到所有存在该匹配域的交换机,并按照数据包转发顺序(上一个交换机的output端口与下一个交换机的inport端口可匹配),形成一个路径,可真实还原某个数据包在网络中完整的转发路径。这条路径一方面包含了访问关系的两个端点,记录了所有时刻所有访问记录的详细信息,建立了详细的流数据库;另一方面还包含了访问关系在转发平面上的每个中间点,可避免恶意攻击者伪造地址、攻破网络控制器操纵转发路径等攻击。 2.1. 全局的流量信息融合 全局流表算法的主要思想是首先根据弱节点覆盖求网络最小有效测量集,需满足该有效测量集(弱节点集合)收集的流量在一定误差范围内代表全网流量,然后定时收集弱节点上的流表,经过流分类整合步骤,整合出每条流流经的弱节点集合。由于只获得了每条流流经的弱节点,为部分节点,所以最后通过路径还原算法,将流的路径由弱节点还原至整个网络路径。全局流算法流程如图2所示。 图2 基本算法流程图 为了减少收集流表对网络性能的影响,测量节点应选择的越少越好,因此应求出一个最小的有效测量集,通过该集合收集到网络的全局流量,并可以计算出每一条流的路径。大量实验证明交换机或者路由器具有流量守恒定律,利用这一特性可以有效的减少测量节点,从而减少收集流量对网带来的压力。 … Continue reading

安全应用超市:购君所需,付君所用

刘文懋 行盼宁 摘要:安全应用超市是一种新型的安全产品交付和运维模式,通过云端商店可有效管理客户多个环境的安全应用,借助软件定义的安全架构可快速部署和更新安全应用, 1 背景 当前企业安全公司的产品交付模式大致有两类,第一类是以硬件设备的模式,即客户根据销售对产品的介绍,选择符合要求的硬件设备,然后由工程团队将该设备部署在客户网络的特定位置,最后调试完上线;第二类是以服务或咨询的模式,即用户购买相应的安全服务后,安全公司提供一定时间的人工支持,已解决某些问题。然而,在虚拟化、云计算和SDN等新型环境中,前者需部署硬件设备,已经越来越难以适应客户业务的需求,难开发难部署;而后者则需要大量的人月开销,无疑增加了企业的成本。 另一方面,安全企业往往有大量不同细分行业的客户,每个客户的安全需求和网络环境千差万别,那么安全产品的开发者在开发和测试产品的时候,不能保证与客户的实际场景完全一致,因而会产生很多技术问题无法及时解决。 那么有没有一种更适合未来新兴网络环境的安全产品交付方案呢?一种方法是将安全产品SaaS化,即为客户提供弹性可扩展的安全服务,隐藏了各种底层复杂的安全设备和安全机制。笔者在前几期内刊中曾提出过软件定义的安全架构,通过可编程、开放的安全控制平台实现安全资源抽象池化,为客户提供开放可编程的应用接口,进而实现安全应用的快速开发。 软件定义的安全应用可以满足客户需求,但还有几个问题亟待解决:首先,官方开发的安全应用毕竟是少数,不能覆盖所有业务场景,也不是所有用户都具备二次开发的能力,那么大多数用户会面临只有少量安全应用可用的尴尬境地;其次,每个应用所适配的环境不同,那么如何部署这些应用,将是极大的挑战;最后,随着安全威胁的日益增加,安全应用的升级必不可少,那么如何做到无缝升级,也是需要解决的问题。 2 安全应用超市简介 事实上,应用市场的概念源于Apple的一款软件AppStore,该模式是一个基于IOS平台的自营销体系,与广大开发者和用户共同形成了良好的生态环境,并获得了很好的商业收益。虽然个人消费市场与企业安全市场无论从营销模式还是技术实现方面,都有千差万别,但这一新概念无疑为我们提供了一个很好的思路:图1描述了安全应用超市的概念图,安全厂商在云端收集、推广和分发某些用户开发的应用,其他用户可以一键购买或租赁、部署和更新所需的应用服务。 图1 应用超市的模式概念图   安全应用超市与以往的安全产品交付模式有革命性的变化,终端用户将不需要关注具体的安全硬件功能、性能甚至型号,而只需要关注是否适合其适用的业务场景,例如WEB服务运营客户不需要了解厂商是否有WEB扫描器或WEB防火墙,或安全产品是否支持透明代理或反向代理,或需要多少台安全设备;相反,他们只需要关注WEB安全防护应用是面向游戏、电商或其他类型的站点,是否具有定时检查和实时防护功能,以及确定需要防护多大量级的WEB服务即可,应用便会自动通过软件定义的安全控制平台准备好相应的虚拟安全设备,设置好网络流向路径,配置相应的安全策略。这些复杂的操作,绝大部分对客户是透明的。 正如前述,要做到安全应用自动化运维,企业安全应用的部署和管理存在很多困难,例如: 安全应用体积巨大 一个安全应用可能包含多个安全产品,如抗APT检测应用会包含流量分析、入侵检测、行为检测和系统扫描等产品,每个安全产品都是独立庞大的系统,如果说初始化下载尚可,那不断的维护更新的开销则对安全管理员完全不可接受。 安全应用部署环境复杂 一个安全应用除了安全设备外,还包含如何准备网络、计算和存储环境的脚本和配置文件,那么这些控制信息和元数据是否能适用于不同行业的客户环境,又或另外一个问题,不同行业的客户环境出现异常,研发团队是否能够快速重现和解决问题? 认证和计费支持 以往厂商向客户交付的是硬件设备,而客户获得应用服务和更新的方式是在线购买或租赁,获得这些服务的凭据则是认证的密钥,所以对于安全控制平台和安全设备,都需要支持集中式的认证和计费 3 系统支撑技术 3.1 软件定义安全架构 软件定义安全的架构将安全设备的控制平面上移到了集中控制的安全平台,将众多底层设备抽象为安全资源池,以松耦合的方式与IaaS和SDN等新型业务环境交互,并以通过开放和可编程的方式为北向的安全应用提供高效可靠的安全接口。该架构如图2所示,已在前几期内刊中已有介绍,本文不做赘述。 图2 软件定义安全的架构 3.2 轻量级虚拟化Docker Docker是介于IaaS和PaaS之间的虚拟化方案,有高效、隔离和轻量级等优点。Docker技术涉及三大概念,包括镜像(Image)、容器(Container)、仓库(Repository)。下面结合本项目对其进行详细介绍。 Docker镜像对应预安装的操作系统和若干应用软件的系统,也是启动一个Docker容器的基础。 Docker容器是基于主机之上的操作系统虚拟化,作为普通进程运行于宿主机器之上。Docker利用容器来运行应用,而容器是基于镜像创建的运行实例,可以被启动、开始、停止、删除等。Docker镜像是静态的,而Docker容器是动态的,Docker容器启动需要先装载Docker镜像,启动之后的容器可以进行动态化管理,也可以对容器进行打包,生成新的镜像。 … Continue reading

浅谈网络虚拟化安全

摘要:本文简要介绍了网络虚拟化的发展,分析了网络虚拟化方面的一些安全问题,并给出了一些可行的措施 关键字 网络虚拟化 安全 SDN OpenFlow   经过多年的技术准备和商业模式探索,云计算已然进入快速发展的阶段。当前有不少大型数据中心和的企业IT系统可为云计算提供设施级别的强大支撑平台,然而业务快速增加给数据中心和大型企业的复杂网络管理带来了极大的挑战。网络虚拟化技术和软件定义网络(SDN,Software Defined Networking)技术以软件可编程的方式管理虚拟和实体网络资源,很大程度上解决上述问题,近年来得到了极大的关注。本文主要介绍了面向数据中心和企业级应用的网络虚拟化技术,并探讨网络虚拟化对于传统安全的挑战,与之可能的安全解决技术。 1网络虚拟化技术简介 在虚拟化应用中,大规模应用对计算和存储的天然需求使得计算虚拟化和存储虚拟化技术较为成熟,与之相比,网络虚拟化的相关技术还在开发阶段,远没有达到成熟的程度。不过随着应用规模不断变大和业务快速变化,实体和虚拟网络的融合、快速管理和可扩展性将成为巨大的挑战,网络虚拟化已受到越来越多的关注,可预计其发展会进入快车道。 网络虚拟化将物理和虚拟网络资源整合成一个可管理的虚拟网络,特别SDN的出现对网络管理带来了颠覆性的变化:可通过编程的方式迁移虚拟机、动态组网,大大加快变更网络拓扑的进度。ONF指出SDN具备三个核心特征[1]:控制平面和数据平面相互分离、智能和状态在逻辑上集中以及底层网络基础设施从应用中抽象出来。SDN是层次化的集中控制架构,如图1所示:网络控制器处于SDN架构的中心,北向与应用连接,进行业务交互;南向连接底层的交换机,下发路由控制命令。功能上,网络中心的控制器掌握网络拓扑、数据转发的策略,而分布在各处的网络设备接受控制器的命令,执行数据转发和路由的行为。操作上,网络管理员可以随时更新网络拓扑、调整网络规模,或快速部署安全策略,如果操作失败或存在问题可方便的进行回滚恢复到原来的状态,可见SDN确实提供了快捷方便的网络管理途径。 图1 SDN的应用实例 需要说明的是网络虚拟化、SDN和OpenFlow三者不是等价的。网络虚拟化可以不使用SDN技术,SDN也不一定要用于虚拟化环境,但SDN的控制数据平面分离非常适合网络虚拟化的场景。同样地,OpenFlow是一种可实现SDN场景的控制器–设备协议,但非唯一的SDN实现方式,还如NVGRE等技术。本文在讨论网络虚拟化时都是基于SDN的,所采用的协议标准是OpenFlow。 主流的网络虚拟化解决方案 通过软件重构网络是大势所趋,不同厂商在SDN中根据自身情况制定各自的策略,总体来说,SDN的研发领域可能会出现三足鼎立的局面: OpenFlow标准的相关开源系、Cisco主导的Cisco One系和Vmware主导的SDN系,参与三个体系的厂商关系如图2所示。 图2 SDN厂商阵营图 1.2.1 OpenFlow/ONF 当前参与量最大的开放SDN阵营是由90多家公司组成的非盈利组织组成的ONF(Open Networking Foundation),其成员不乏IBM、Intel、Google等重量级的公司,还有BigSwitch、Citrix等专注虚拟化的公司,此外还有国内的企业如腾讯、华为和中兴等。ONF最重要的成果是OpenFlow,OpenFlow是网络控制器和交换机之间通信的协议,控制器通过统一的路由策略下发基于流的数据交换命令,实现了上层软件管理和更新路由表、底层交换机执行转发策略的软硬件分离模式。OpenFlow协议处理数据的过程如图3所示,交换机在遇到未知模式的数据包时,会向控制器上传相关特征,控制器检查自己的策略库,生成数据交换的模式,然后将这些模式以控制信息的形式下发到对应的交换机,从而底层的交换机可以根据全局的路由策略执行相应的数据交换。 由于OpenFlow定义了控制器和交换机间的通信协议和安全通道,并规定交换机应遵循的规则,交换机只执行数据交换的功能,所以各厂商容易开发出支持OpenFlow的交换机,如Nicira的虚拟交换机Openvswitch和NEC和IBM等支持OpenFlow的实体交换机。对应地,控制器负责整个SDN中的网络拓扑管理、数据包路由决策、QoS管理和安全控制等复杂的功能,所以控制器是整个网络的核心,当前比较著名的控制器有BigSwitch的floodlight、Nicira的nox和NEC的ProgrammableFlow Controller等。 OpenFlow只定义了控制器–交换机的南向通信标准,没有给出应用–控制器的北向接口标准,所以相关厂商可以针对控制器开发自己的网络应用时,需要考虑不同控制器的应用接口。 图3 基于OpenFlow协议的数据交换 1.2.2 Cisco One … Continue reading

SOAR:软件定义安全之编排篇

摘要:自动化编排已经成为行业内讨论很多的话题,但自动化编排的场景、如何实现自动化编排,还在探索中。本文从软件定义安全的角度,讨论了安全编排的必要性、关键支撑技术、实现架构和发展方向。 关键字:安全编排 软件定义安全 一,安全为什么要编排 1.1 什么是软件定义安全 Gartner自提出了软件定义安全的理念,为安全防护指出了一个可行的方向。软件定义安全连续xx被列入了十大新技术。软件定义安全从概念上借鉴了软件定义网络,即将安全的控制平面和数据平面解耦,控制面关注安全业务逻辑,数据面关注能力抽象和性能提升,从而避免厂商锁定,提高整个安全防护的灵活性和响应速度。 图1 软件定义安全架构 需要说明的是软件定义安全虽然源于软件定义网络SDN,也可以借助SDN的流量调度、控制技术加快安全防护的速度、增加安全防护的能力,但软件定义安全强调的是安全自身的体系重构,最终分离为安全应用、安全控制器和安全设备(资源池)三层,该体系是可以独立于SDN、NFV及其他特定的业务系统。 在云中的软件定义安全落地技术有: 1 CWPP,对于云中业务变化频繁的特点,不能依赖固定的安全防护机制,需要感知业务迁移,动态部署相关的安全机制。 2 软件定义分段(或微分段),可根据业务而非固定的网络地址进行全局的网络隔离和访问控制,访问控制策略是通过控制平面下发到不同的enforcer中,可能是主机上的agent,也可能是网络设备。 所以本文讨论的软件定义安全不会聚焦于如何调度流量、如何对接虚拟化平台,而是假定安全应用具备了流量调度、资源管理和策略下发的能力,进一步关注应用间的编排:这些应用于不同场景的应用彼此间什么关系,不同应用的策略如何生效。   1.2 编排是软件定义安全的核心价值 随着云计算等应用持续发展,安全平台与业务系统的管理平台对接已日趋完善。如主流的公有云和私有云平台内部都支持了SDN和NFV技术,安全厂商的设备可以SaaS服务的方式与之对接,形成如脆弱性评估、Web安全、DDoS缓解等特定的防护能力。 这个机制可遵从软件定义安全的架构: 控制层,安全控制和分析平台对接云平台,进行流量控制和安全虚拟机部署, 应用层,租户访问SaaS应用,配置策略和查看事件 数据层,安全设备部署和接入后,根据策略对流量进行检测或阻断 然而,随着业务的发展和攻防场景的不断深化,面向单攻击场景的单个安全应用无法应对拥有多种网络武器库的攻击团伙,那就需要一种机制,能够将现有的安全应用组织起来,根据当前的上下文和攻击者行动灵活调用相应的安全应用,进而快速、稳定、一致地准备好安全应对能力。 这就需要使用到编排技术,编排(Orchestration)的本意是在如大型的交响乐演奏中,乐者各司其职,根据指挥的指令演奏乐章中自己的部分。同样,如果将安全应用比喻成乐者,那么要实现敏捷、弹性的软件定义安全机制,就需要有两个核心: 1) 剧本(即前述的乐章),体现了安全防护的逻辑,指示如何调度安全能力,我们称之为剧本(Playbook) 2) 编排引擎,一套能够根据剧本有效指挥安全应用的机制, 如果说云环境中,用户在网页中下发策略将安全防护简单化、傻瓜化,那通过编排引擎,自动化、API化地驱动各应用,却是将安全防护规模化、敏捷化、智能化了。 而且用户可以根据自己的需求,编写灵活简单的剧本,去按需调用某些应用,实现某些特定场景中的安全功能,摆脱了以往只能依靠安全厂商标准化产品的窘境。 所以安全编排大大地扩展了安全防护的场景,提升了安全防护的能力,加快了各类安全机制协同的速度,是实现软件定义安全体系的核心能力。 Gartner在XX年提出了SOAR(Security Orchestration … Continue reading