论文部分内容阅读
软件定义网络作为一种新兴的网络架构,通过解耦控制平面和数据平面,为传统网络中出现的问题提供了新的解决方案。在SDN架构中,控制平面的主要功能集中于控制器之上,控制器安全是整个网络稳定运行的基础,由于其集中控制和开放的编程接口等特性,也带来了新的安全挑战。本文深入分析了控制平面存在的安全问题,设计测试方案对已知安全问题进行测试,利用模糊测试发现未知安全问题。针对存在多应用时的流规则冲突问题,提出一种基于Hash-Trie流规则冲突检测算法。同时本文还实现了SDN控制器安全与冲突检测平台,对控制器进行全面的安全测试。本文的主要工作内容如下:(1)深入分析控制器存在的安全问题,利用已知安全问题测试和未知安全问题测试相结合的方式发现控制器存在的安全问题。利用主动扫描的方式对已知安全问题进行测试,针对访问控制、身份认证、流规则一致性、安全通信、Do S/DDo S攻击、Open Flow协议合法性设计具体的测试方案来进行安全测试。利用模糊测试发现控制器存在的未知安全问题,通过对Open Flow报文进行随机化操作生成测试用例,通过对报文的传输过程执行丢包、延时、重复、重定向操作完成测试用例的执行,通过对异常状态的监测与分析来确定安全问题。(2)针对存在多应用时的流规则冲突问题,设计了一种基于Hash-Trie的流规则冲突检测算法,算法通过标准化流规则为优先级、匹配域和动作域,重构流规则存储结构为交换机dpid、流表table_id、优先级、匹配域、flow_id集合五层构成,利用哈希表和Trie树相结合的方式加快流规则的查找、匹配流程,利用集合运算快速确定存在冲突的流规则,进一步判定流规则之间冲突类型。通过设计三种数据集对算法的性能进行仿真分析,相较于对比算法,本文提出的算法在运行时间上更优。(3)为了对控制器进行全面的安全测试,本文设计并实现了控制器安全与冲突检测平台。该平台由前端界面、系统管理模块、控制器及应用模块、中间层模块、网络仿真模块五部分组成。检测平台通过构建SDN网络环境,构造各种测试场景并执行测试过程,收集网络状态信息对测试是否成功进行判定。同时该平台对本文中提出的已知安全问题测试方案、模糊测试方案以及流规则冲突检测算法进行了实现,提供了方便的前端界面对各个模块的执行日志及测试结果进行展示。