基于软件定义网络的防火墙系统设计与实现.pdf_第1页
基于软件定义网络的防火墙系统设计与实现.pdf_第2页
基于软件定义网络的防火墙系统设计与实现.pdf_第3页
基于软件定义网络的防火墙系统设计与实现.pdf_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 32 卷第 1 期计算机应用与软件vol. 32 no 1 2015 年 1 月 computer applications and softwarejan 2015 基于软件定义网络的防火墙系统设计与实现 成亚男 1 董晨 2 褚灵伟 2 陆肖元 2 1( 华东师范大学信息科学技术学院 上海 200241) 2( 上海宽带技术及应用工程研究中心 上海 200336) 收稿日期: 2013 05 22。国家高技术研究发展计划项目( 2011aa 01a109) 。成亚男, 硕士生, 主研领域: 未来网络, 软件定义网络。董晨, 高工。褚灵伟, 博士。陆肖元, 高工。 摘要基于软件定义网络系统架构, 提出新型防火墙安全系统。分析新型防火墙系统的架构及主要功能模块, 并详述防火墙的 数据流处理过程。最后利用 openflow 设备和 floodlight 控制器创建了一个软件定义网络防火墙验证环境, 针对不同场景进行试验, 试验结果证明了防火墙的有效性和效率。 关键词防火墙软件定义网洛openflowfloodlight 中图分类号tp317文献标识码adoi: 10 3969/j issn 1000- 386x 2015 01 072 design and implementation of softwae- defined netwoking based fiewall system cheng ya nan1dong chen2chu lingwei2lu xiaoyuan2 1( school of information science technology, east china normal universty, shanghai 200241, china) 2( future network laboratory, national engineering esearch center for broadband networks and applications, shanghai 200336, china) abstractin this paper,we propose a new firewall security system based on the architecture of software defined networking ( sdn) we analyse the architecture and main functional modules of this novel firewall system,and expatiate on the data flow procedure of the firewall finally,we use openflow switch and floodlight controller to construct a verification environment for sdn firewall,and experiment it in light of different scenes experimental result proves the availability and efficiency of the firewall system keywordsfirewallsoftware- defined networkingopenflowfloodlight 0引言 如今, 无论是生活还是生产方面都与互联网息息相关, 网络 安全问题也成为了大家关注的焦点。为了应对安全问题, 人们 普遍采用防火墙的手段来实现安全机制。防火墙被置于非信任 的网络与被保护网络之间1 , 采用边界上的过滤封锁机制。然 而传统防火墙在面对不断更新的大量网络攻击时仍然漏洞百 出, 急需对防火墙作用机制进行创新。 2008 年, 斯坦福大学的 nick meowm 教授等人提出了 open- flow2 这一概念, 是由 clean slate 计划资助的一个开放式协议 标准 3 , 后来成为了 geni4 的子项目。该技术将控制功能从 网络设备上抽离出来, 网络设备根据部署在设备上的流表对据 进行转发, 而流表的配置和维护则由控制器决定。随着对 openflow 技术的深入研究, 又进一步提出了软件定义网络 sdn ( software ddefined networking) 。sdn5 是一种全新的网络架 构, 软件模式的控制层替代了原本嵌入在各个设备上的控制部 分, 负责集中管理和决策。借助 sdn 网络架构的思想, 可以从 根本上改变网络的管理体系, 构建一种可控、 可变、 可信的软件 模式的防火墙。 本文采用基于 openflow 的 sdn 技术来实现软件防火墙, 并基于此防火墙系统进行试验验证和应用。 1结构设计和功能实现 1 1sdn 网络简介 在介绍具体的防火墙设计之前, 首先对 sdn 的网络架构进 行简介, sdn 结构如图 1 所示。sdn 网络采用分层结构体系, sdn 技术架构把原有封闭的网络管理体系解耦为数据转发层、 控制层和应用层三层, 提供了一种可编程的网络管理模式, 从而 革命性地改变现有的网络架构。 ( 1)数据转发层由支持 openflow 的底层网络设备所组成, 它保持了原有网络中数据转发的所有功能, 底层的交换机设备 仅根据流表进行数据的转发。 ( 2)软件模式的控制层替换了原本嵌入在各个网络设备上 的控制部分, 主要用于集中维护网络状态、 管理和决策。控制层 通过南向接口与数据转发层通信, 获取底层基础设施信息, 并对 上层应用开放编程端口。与原有分布式开发环境不同, 控制层 提供了集中式的管理模式, 类似于网络操作系统 nos6 ( net- working operating system) 。 第 1 期成亚男等: 基于软件定义网络的防火墙系统设计与实现287 ( 3)应用层利用控制层的开放接口, 实现不同应用程序, 完 成网络所需的不同功能, 例如 snmp、 web service、 acl 等。 图 1 sdn 网络架构7 1 2技术分析 从技术原理、 工作机制的角度来看, 防火墙技术主要有包过 滤、 应用代理、 状态监测等几大类8, 9 。防火墙技术布置在网络 边界的众多设备上, 各种技术之间很难做到统一的调度、 配置和 融合, 全网无法形成一个全方位的网络安全机制。 为此, 本文提出了一种全新的防火墙体系, 即在 sdn 网络 架构下, 将防火墙作为 sdn 网络上的一种软件应用。防火墙系 统通过 sdn 控制器提供的可编程接口, 控制网络中所有 open- flow 交换机, 构建一个可灵活应对不同安全需求的防火墙应 用。与普通防火墙相比, 防火墙不在部署于网络边界, 而是以软 件形式集中在网络的某一位置, 因此防火墙的升级、 修改、 配置 等无需在安全设备上逐一操作, 加快了防火墙开发、 部署和灵活 改进。 sdn 的控制层向防火墙应用提供统一维护和管理网络的 能力, 其中包括具有检测数据包包头能力的包过滤模块, 可根据 数据包中的包头信息决定数据包的处理过程, 并进行相应的安 全防护动作。sdn 控制层可对数据包的包头进行分析, 但是无 法获悉连接状态, 因此将状态检测技术模块布置在控制层和数 据转发层之间。代理服务器技术则以应用程序的模式运行在应 用层。 1 3主要功能模块 本文设计的基于 sdn 网络的软件防火墙, 由五大模块构 成, 如图 2 所示。 ( 1) 防火墙模块防火墙模块实际上是一个运行在应用层 的应用程序, 它定期向控制层查询网络拓扑和网络状态信息, 如 底层交换机接收到异常数据包的数量和异常数据包的分布范 围, 评估当前网络的安全需求及等级, 实时调整查询频率、 下发 包过滤规则等操作, 形成一个可应对不同网络攻击的防火墙 系统。 ( 2) est api 服务模块控制层的包过滤模块通过 est api 服务模块向应用层的防火墙模块开放编程端口。est api 服务模块将控制层的 api 可编程接口以 est api 形式向外开 放, 并遵循 http 协议。简单来说, 用户通过 http 协议提供的 get、 post 等方法来实现对模块的操作。 ( 3) 包过滤模块该模块替代了原本处于网络层的防火墙 功能, 防止不希望的通信交互。模块内含一套过滤规则, 规则定 义了包过滤模块对于数据包的具体操作, 即对所接收的每个数 据包应做出允许或拒绝的决定10 。数据包头部主要由源地址、 目标地址、 通信协议、 端口号等参数组成, 每条过滤规则都含有 一些头部参数的组合, 用于匹配数据包的包头。包过滤模块位 于 sdn 控制层, 主要依靠控制层对于数据包的拆包能力和分析 能力, 通过检查包头的头部参数决定是否让数据包通过。 ( 4) 二层转发模块本模块通过 openflow 协议与数据转 发层直接通信, 主要用于将数据包转发给底层交换设备。由于 真实网络中的设备情况相当复杂, 往往并存着真实交换机和虚 拟交换机, 同时也未知它们是否支持 openflow 协议。二层转发 模块会查询所有设备, 并收集信息进行分析, 学习并记录所有支 持 openflow 协议的交换机的位置, 并将信息汇总给控制层。当 新设备加入时, 它也能及时感知、 学习并更新记录。 ( 5) 数据转发模块由一些支持 openflow 协议的设备组 成, 仅用于数据转发。在数据转发模块内的设备上维护一些列 的流表规则, 流表同样按照 openflow 协议制定, 流表项由匹配 域、 计数器和动作三项组成11 。设备仅根据流表规则进行数据 转发, 数据包进入设备后, 按照优先级匹配流表规则, 若是匹配 成功, 则执行动作指令。若是耗尽流表仍然无法匹配, 则交给控 制层进行处理。 图 2基于 sdn 网络的软件防火墙结构 1 4工作流程 模拟当底层的转发设备接收到数据包, 经过防火墙的流程, 如图 3 所示。 ( 1)openflow 交换机接收到无法匹配流表的数据包时, 向 控制层发出异常消息。控制层接收到底层的异常消息, 并将收 集到的信息反馈给应用层的防火墙模块。防火墙模块制定安全 防护策略, 启动控制层的包过滤模块进行包过滤。 ( 2)数据转发模块强制将数据包送入控制层进行拆包 检验。 ( 3)进入控制层后, 控制层负责将包头的信息进行提取, 对 于包过滤模块来说, 主要需要的是诸如数据包源地址、 目的地 址、 端口号等标记位, 并与预先制定的规则进行匹配直到规则表 耗尽。如果匹配成功, 仅执行两个动作。如果动作是允许, 则再 次交给二层模块进行正常转发。反之就是阻止, 包过滤模块直 接将数据包丢弃, 阻隔通信。 288计算机应用与软件2015 年 ( 4)如果并未找到对应数据包的规则, 包过滤模块会通过 控制层将信息返回给上层的防火墙模块, 由防火墙模块制定相 应决策, 决定具体操作过程。 ( 5)防火墙模块下发新的规则, 对于开放的 est api 端口 来说也就是生成了一条特定的 ul 请求。再通过 est api 服 务模块处理 ul 请求, ul 请求中的 ui 指向包过滤模块, 包 过滤模块根据对应的 ul 请求生成包过滤规则。包过滤模块 根据新规则处理数据包, 决定丢包或是转发, 并将新规则存入规 则表内, 以便下次使用, 达到一个实时更新、 按需配置的防火墙。 图 3防火墙工作流程 2实验验证 2 1验证环境 本文采用软件定义网络设备搭建一个实验环境来验证防火 墙系统的有效性。验证环境各层设备如下: ( 1) 数据转发层在交换机的选择方面, 为了能够快速部 署, 采用了 openvswitch 交换机( 简称 ovs) 。ovs 能够在多种 虚拟机和操作系统上运行, 对硬件几乎没有要求, 是遵循apache 2 0 协议、 具有开源性质的主流虚拟交换机。它不仅能够模拟 真实交换机的功能, 而且支持 openflow 协议。 ( 2) 控制层选择 floodlight 作为控制器搭建控制层。 floodlight 具有跨平台的特性, 可以在三大主流开发平台( win/ mac/linux) 上使用, 开发语言基于 java, 遵循 apache 开源规则, 易于配置。 ( 3) 应用层防火墙模块, 使用 python 编写 py 文件实现 防火墙模块。python12 语言具有强大而丰富的库, 易于与各种 语言编写( c/c + ) 的模块一起使用, 利于后期的升级开发及 其他功能组件的添加。 综上所述, 实验环境部署和配置如图 4 所示。 图 4防火墙实验环境 数据转发层: ( 1)安装一台 openvswitch 软交换机、 两台 kvm 虚拟机, 分别命名为 kvm1 虚拟机和 kvm2 虚拟机。虚拟机和操作环境 均使用 ubuntu12 04 lts 系统。 ( 2)创建虚拟桥 br0, 将主机的物理网卡 eth0 端口加入软 交换机, 同时连接两台虚拟机, 虚拟机端口为 tap0 和 tap1。 ( 3)配置交换机和虚拟机的网络。软交换机的 ip 地址为 192 168 51 100, 掩码为 255 255 255 224, 网关为 192 168 51 97。kvm1 虚拟机 ip 为 192 168 51 111 掩码为 255 255 255 224, 网关为 192 168 51 97 。kvm2 虚拟机 ip 为 192 168 51 112, 掩码为 255 255 255 224, 网关为 192 168 51 97。网络配 置使它们处于同一个网段, 能够相互通信。 控制层: ( 1)安装 floodlight 控制器, 由于是单机操作环境, ip 地址 为本机地址 127 0 0 1。 ( 2)连接控制器和交换机, 默认端口为 6633。 应用层: ( 1)安装 python 开发环境。 ( 2)调用 est api 端口编写防火墙模块, 生成 py 文件。 2 2实验结果 tcp/ip 协议中提供了一种特殊的 icmp 报文协议, 也是一 种常见的调试工具。实验使用 icmp 机制验证网络的连接情 况, 采用 ping 命令发送请求报文。并使用 wireshark 抓包工具查 看每个端口的情况。 场景一: 控制层中预先设置规则指明禁止一切数据包通过 软件交换机, 即控制层收到通过软交换机数据包后全部丢包。 在 kvm1 虚拟机上向 kvm2 虚拟机发送 icmp 报文, 操作指 令为: ping 192 168 51 112 通过 wireshark 查看 tap0 端口, 发现 tap0 端口并未接收到来 自 kvm2 虚拟机的回应报文, 即使处于同一网段, kvm1 与 kvm2 仍无法通信。位于控制层的包过滤防火墙依据包过滤规 则, 直接将任何数据包丢弃。 场景二: 控制层中预先设置规则规定, 允许 kvm1 虚拟机与 br0 虚拟桥通信, 允许 kvm2 虚拟机与 kvm1 虚拟机通信, 但是 并未规定 br0 虚拟桥和 kvm2 虚拟机的通信规则。在 br0 虚拟 桥、 kvm1 虚拟机、 kvm2 虚拟机上分别向另两台发送 icmp 报文。 ( 下转第 312 页) 312计算机应用与软件2015 年 的基于 n- gram 的 svm 和 k- nn 两种机器学习方法, 实验检测的 正确率和时间耗费结果如表 3 所示。实验结果发现, 结合 svm 和 k- nn 两种典型的机器学习方法, 在检测精度方面较单纯利 用字符熵的方法具有明显优势, 但运算耗费也明显大于字符熵 方法, 而字符熵与 n- gram 熵的组合方案则同时兼顾了较高的检 测精度和运算时间性能。因此, 对偏重于检测实时性要求的一 些特定应用场合, 利用本文提出的纯字符熵方案可有效提升检 测性能, 而字符熵和 n- gram 的组合方案则更适用于检测精度和 执行效率兼顾的应用场合。 表 3各类检测方案的正确率和计算性能实验对比 正确率( %)运算时间( s) svm( 线性核) 7 9817%1420 k- nn7 9742%0990 本文方案( 纯字符熵)9010%0348 本文方案( 与 1- gram 组合)9815%0875 3结语 本文首先总结了当前 javascript 的各种混淆方法, 并给出了 各自技术特点及反混淆思路分析。根据代码混淆的共同特点, 结合 n- gram 统计模型, 提出了基于代码熵的混淆检测方法, 直 接根据代码 n- gram 熵的大小可有效判定是否混淆。尽管本文 方法无法降低漏报, 但可以较好控制误报率, 并具有简洁、高 效、易行等特点, 无需样本库即可直接判定代码是否混淆, 有利 于更有效地检测和分析 javascript 恶意脚本。 参考文献 1 吴丹飞, 王春刚, 郝兴伟 恶意代码的变形技术研究j 计算机应 用与软件, 2012, 29( 3) : 74- 77 2 free obfuscatorol http: / /www minifyjs com/javascript- obfusca- tor/ 3 javascript obfuscator ol http: / /javascriptobfuscator com/ 4 choi y h,kim t g,choi s j automatic detection for javascript ob- fuscation attacks in web pages through string pattern analysisj international journal of security and its applications, 2010, 4( 2) : 13- 26 5 kim b i,im c t,jung h c suspicious malicious web site detection with strength analysis of a javascript obfuscationj international journal of advanced science and technology, 2011, 26: 19- 32 6 ching s n- gram statistics for natural language understanding and text processingpj ieee transactions on pattern analysis and ma- chine intelligence, 1979, 1( 2) : 164- 172 7 choi j,kim h,choi c efficient malicious code detection using n- gram analysis and svmc/ /2011 14th international conference on network- based information systems ( nbis) ieee, 2011: 618- 621 8 kim h,choi j,choi d detection of unknown malicious script code using a conceptual graph and svmc/ /proceedings of the 2012 acm esearch in applied computation symposium acm, 2012: 310- 315 ( 上接第 288 页) 当控制层中的控制器接收来自 br0 和 kvm2 之间的通信数 据包时, 由于未定义它们之间的包过滤规则, 就会通知应用层的 防火墙模块进行分析决策。根据安全需求, 希望 br0 虚拟桥和 kvm2 虚拟机之间进行隔离, 故通过应用层模块下发新决策的 规则, 阻止通信。控制器则根据新规则丢弃 br0 与 kvm2 之间 的通信数据包, 并更新包过滤规则, 当控制器再次接收到 br0 和 kvm2 之间的数据包时, 按新规则处理。 实验结果为 kvm1 虚拟机能收到 br0 虚拟桥和 kvm2 虚拟 桥的回应报文, kvm2 虚拟机只能收到 kvm1 虚拟机的回应报 文,br0 虚拟桥也只能接收到 kvm1 虚拟机的回应包。结果符 合网络安全需求, 防火墙的功能验证成功。 3结语 基于 sdn 网络的软件防火墙有着独到的优势。一方面, 基 于 sdn 网络的可编程管理方式具有高度的灵活性, 防火墙功能 的升级与添加无需过度依靠硬件与专业系统的开发, 只需以模 块或应用程序的方式加入 sdn 网络中即可。另一方面,sdn 是一种全新的未来网络管理架构, 基于它的软件防火墙有着很 好的实用价值, 实现了现有网络技术和未来网络的融合。 本文对基于软件定义网络的包过滤防火墙进行了详细的设 计和说明, 实际上软件定义网络的应用远

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论