SDN安全渗透测试系统的设计与实现
发布时间:2021-03-30 05:25
自软件定义网络(SDN)这一概念被提出,软件定义网络技术发展迅猛,以全新的网络架构逐步替换传统的网络架构。早在2012年,谷歌就将SDN技术使用在谷歌数据中心的内部骨干网上,这标志着SDN的商用化已经开始。但随着SDN网络的高速发展,SDN的众多漏洞逐渐暴露出来,SDN网络的安全性越来越受到重视。要想构建SDN网络安全大厦,首先需要知道SDN网络都有哪些脆弱点。鉴于业界至今尚未出现一个灵活可扩展覆盖整个SDN的安全性测试工具,本文从已知脆弱性的验证和未知脆弱性的发现两个角度出发,对SDN网络安全性进行研究,设计并实现了SDN网络测试系统,并对当前SDN做了系统地评估。主要工作如下:(1)研究了当前SDN的脆弱性,详细描述了30多种脆弱性场景和脆弱性原理,设计并实现了SDN安全已知脆弱性验证测试系统,该系统可自动化地实现攻击场景构建,并针对不同的脆弱性测试生成不同的攻击场景。利用该系统测试了当前主流的五种SDN开源控制器:ONOS、OpenDaylight、Floodlight、Ryu和Pox,测试了Open vSwitch交换机,以及对五种控制器所涵盖的应用层和控制层做了安全性评估,对...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:100 页
【学位级别】:硕士
【部分图文】:
核心控制和结果分析部分目录
第三章SDN安全已知脆弱性验证测试系统19制器会监听6653或者6633端口。此时,由于交换机会不断尝试连接控制器,直到连接上,控制管理模块会监测连接上控制器的交换机个数,如果个数和预设拓扑中交换机的个数一致,则说明交换机全部连接上控制器了,否则,则定时监测,直到超时或者连接上的个数与预设一致。如果交换机全都连接上控制器,则可以开始所选测试案例的测试了,当测试结束便会开始结果信息收集与分析,最后停止控制器和网络拓扑,结束本次测试。具体的测试案例测试流程如图3-2所示。控制管理模块的目录结构控制管理模块的目录由五部分组成,包括analysis、core、hander、testcase和utils。最外层的Main.java是整个系统的启动函数。核心控制部分和结果分析部分的目录如图3-3所示。ResultInfo.java用于存储一个测试案例针对七大评判标准的收集到的信息。而ResultAnalyer.java用于综合分析收集到的信息并给出测试结果。AgentManager.java用于和用户交互,执行用户输入的命令。AttackConductor.java综合调用各个控制工具。Configuration.java用于管理配置信息。AppAgentManager.java用于管理应用层。ControllerManager.java用于管理控制器。HostAgentManager.java用于管理基础设施层。图3-3核心控制和结果分析部分目录图3-4控制器管理部分目录控制器管理部分的目录如图3-4所示。控制器管理部分包含五种主流的控制器ONOS、OpenDaylight、Floodlight、Ryu和Pox管理。
电子科技大学硕士学位论文20测试案例的管理和工具部分的目录如图3-5所示。CaseInfo.java用于存储测试案例信息。TestAdvancedCase.java用于执行综合类测试案例。TestControllerCase.java用于执行针对控制器的测试案例。TestSwitchCase.java用于执行针对基础设施层的测试案例。图3-5测试案例管理和工具部分目录控制管理模块核心接口结果分析将在每次测试结束后进行,针对七大脆弱性评判标准,即控制器异常或崩溃、应用程序崩溃、内部存储污染、交换机断连、交换机性能下降、主机间断连和产生错误报文,都有对应的检测接口,最终判是否测试出网元设备的脆弱性的评判方法是调用checkResult接口对每个判断标准取并集。现整理出结果分析部分中的关键接口名称与对应功能如表3-1所示。核心控制管理部分提供了一个用户交互的终端界面,系统启动后,系统便会自动调用showMenu接口打印系统LOGO和系统信息,并调用scpModule接口将相关控制器管理和基础设施层管理所需脚本和Jar包远程传输到对应的虚拟机。随后便会启动一个Socket服务器,用于和控制器代理、交换机代理和主机代理通信,下发相关命令控制测试案例测试流程的进行。现整理出核心控制管理部分的关键接口名称与对应功能如表3-2所示。表3-1结果分析部分中的关键接口名称与对应功能表接口名称对应功能checkCommunication检测网络是否互通checkLatency检测网络延时checkAppAgentResponse分析恶意应用响应结果checkTopoInfo检测并分析拓扑checkControllerState检测控制器状态
【参考文献】:
期刊论文
[1]软件定义网络:安全模型、机制及研究进展[J]. 王蒙蒙,刘建伟,陈杰,毛剑,毛可飞. 软件学报. 2016(04)
本文编号:3108948
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:100 页
【学位级别】:硕士
【部分图文】:
核心控制和结果分析部分目录
第三章SDN安全已知脆弱性验证测试系统19制器会监听6653或者6633端口。此时,由于交换机会不断尝试连接控制器,直到连接上,控制管理模块会监测连接上控制器的交换机个数,如果个数和预设拓扑中交换机的个数一致,则说明交换机全部连接上控制器了,否则,则定时监测,直到超时或者连接上的个数与预设一致。如果交换机全都连接上控制器,则可以开始所选测试案例的测试了,当测试结束便会开始结果信息收集与分析,最后停止控制器和网络拓扑,结束本次测试。具体的测试案例测试流程如图3-2所示。控制管理模块的目录结构控制管理模块的目录由五部分组成,包括analysis、core、hander、testcase和utils。最外层的Main.java是整个系统的启动函数。核心控制部分和结果分析部分的目录如图3-3所示。ResultInfo.java用于存储一个测试案例针对七大评判标准的收集到的信息。而ResultAnalyer.java用于综合分析收集到的信息并给出测试结果。AgentManager.java用于和用户交互,执行用户输入的命令。AttackConductor.java综合调用各个控制工具。Configuration.java用于管理配置信息。AppAgentManager.java用于管理应用层。ControllerManager.java用于管理控制器。HostAgentManager.java用于管理基础设施层。图3-3核心控制和结果分析部分目录图3-4控制器管理部分目录控制器管理部分的目录如图3-4所示。控制器管理部分包含五种主流的控制器ONOS、OpenDaylight、Floodlight、Ryu和Pox管理。
电子科技大学硕士学位论文20测试案例的管理和工具部分的目录如图3-5所示。CaseInfo.java用于存储测试案例信息。TestAdvancedCase.java用于执行综合类测试案例。TestControllerCase.java用于执行针对控制器的测试案例。TestSwitchCase.java用于执行针对基础设施层的测试案例。图3-5测试案例管理和工具部分目录控制管理模块核心接口结果分析将在每次测试结束后进行,针对七大脆弱性评判标准,即控制器异常或崩溃、应用程序崩溃、内部存储污染、交换机断连、交换机性能下降、主机间断连和产生错误报文,都有对应的检测接口,最终判是否测试出网元设备的脆弱性的评判方法是调用checkResult接口对每个判断标准取并集。现整理出结果分析部分中的关键接口名称与对应功能如表3-1所示。核心控制管理部分提供了一个用户交互的终端界面,系统启动后,系统便会自动调用showMenu接口打印系统LOGO和系统信息,并调用scpModule接口将相关控制器管理和基础设施层管理所需脚本和Jar包远程传输到对应的虚拟机。随后便会启动一个Socket服务器,用于和控制器代理、交换机代理和主机代理通信,下发相关命令控制测试案例测试流程的进行。现整理出核心控制管理部分的关键接口名称与对应功能如表3-2所示。表3-1结果分析部分中的关键接口名称与对应功能表接口名称对应功能checkCommunication检测网络是否互通checkLatency检测网络延时checkAppAgentResponse分析恶意应用响应结果checkTopoInfo检测并分析拓扑checkControllerState检测控制器状态
【参考文献】:
期刊论文
[1]软件定义网络:安全模型、机制及研究进展[J]. 王蒙蒙,刘建伟,陈杰,毛剑,毛可飞. 软件学报. 2016(04)
本文编号:3108948
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3108948.html