集中控制和大范围自动化将是软件定义网络的核心功能——最终实现适应性自动化网络安全。这个愿景正开始变成现实。由SDN实现的集中控制最终将带来安全定义路由及其他SDN安全策略,它们可能彻底改变我们定义网络及其应用或数据的方式。
什么是安全定义路由?
德克萨斯州A&M博士生Seungwon Shin的科研工作是分析SDN将如何改变网络安全性。Shin在大学期间发表了两篇关于SDN网络安全策略的文章。第一篇是“CloudWatcher:在动态云网络中使用OpenFlow实现网络安全监控”,介绍了一种在云环境中使用SDN控制平台(如NOX和Beacon——最初由斯坦福大学开发的OpenFlow SDN控制器)执行安全监控的方法。
Shin 与其博士生同学Guofei Gu一起设计了一种新的策略语言,它可用于识别网络设备及其特殊的监控功能集。通过使用这种语言,控制器就可以直接监控指定设备之间的流量。它们还可以自动将云环境中的虚拟机迁移流量及其他动态事件的流量转发到其他网络位置。这意味着它们可以将流量传输到入侵防御系统(IDS),允许安全团队根据需要监控超动态环境的事件。在这种模型中,Shin和Gu实际上设计了安全定义路由与流量控制的基础——即使仍然使用传统网络安全控制。
OpenFlow控制的SDN安全应用
在 Shin的第二篇论文“FRESCO:模块化可组合的软件定义网络安全服务”中,Shin与同学们一起探讨了SDN(特别是OpenFlow)所缺少的决定性安全应用,并且提出一个面向SDN安全用例的新开发框架FRESCO。这个框架的脚本功能允许安全人员创建新的模块化库,整合和扩展安全功能,从而使用OpenFlow控制器和硬件进行控制和管理流量。FRESCO包括16个模块,其中每一个都有5个接口:输入、输出、事件、参数和操作。通过将这些值分配给这些接口,就可以实现许多通用网络安全平台和功能,从而替代防火墙、IDS和流量管理工具。
SDN和自动化网络安全的实践应用
虽然这些概念仍然在学术研究阶段,但是供应商和标准组织已经有许多实现基于SDN安全策略的实际例子。例如,sflow.com网站上有一篇博客 “sFlow Packet Broker”,它介绍了一个简单的Python脚本,它可以将inMon的Flow-RT控制器应用配置为监控所有流量,专门查找通向TCP端口 22(SSH)的通用路由封装(Generic Route Encapsulation)通道的流量。一旦检测有问题的流量,它就会生成一个警报,从而触发分析捕捉到的数据包。这些警报还会产生更多高级响应,如用于流量控制的防火墙集成API、开放或关闭的端口、将流量移到其他网段或VLAN,等等。
同时,虚拟防火墙也已经可以使用开放API将安全功能整合到网络中。Netuitive公司产品管理主管Richard Park写过一篇博客,其中他介绍了如何在Perl代码中使用一个RESTful API查询和更新VMware vShield的防火墙规则, 而这只是冰山之一角。在出现新的SDN工具和编制平台之后,大多数网络安全检测和响应功能很快都变得越来越自动化,支持更加快速的意外处理,而且在攻击发生时发挥像“辅助呼吸室”一样的作用。
随着越来越多像FRESCO这样的工具出现,网络和虚拟化供应商推出了面向自动化和编制的新型API,而且对于一些协议(如OpenFlow)和标准(如sFlow)的支持也越来越好,我们将最终看到更好地集成到网络中的适应性安全产品。