转发与控制分离引入的安全威胁,从网络安全的角度看,软件定义网络将网络设备控制面与数据面分离,在实现网络流量灵活控制的同时,也引入了新的安全威胁和挑战。
根据SDN交换机对数据包的处理流程,当数据包不能匹配所有流表中的所有流表项时,交换机将包通过与控制器间的安全通道转发给控制器处理。在控制面,新引入的SDN控制器由于逻辑集中的特点,容易成为攻击的对象,脆弱的SDN控制器面临的具体安全风险如下:(1)拒绝服务攻击。攻击者通过攻击交换机,修改交换机流表中各表项的actions字符项,使交换机将所有数据包转发给控制器,从而导致控制器需要处理大量的消息。或者攻击者伪造大量在交换机流表中并不存在或无法处理的数据报文,由交换机提交伪造报文给控制器处理,从而占用控制器资源,造成拒绝服务攻击。(2)绕过安全机制。由于安全设备与被保护的节点/网络之间不再是物理连接,而是可通过流的重定向机制使流绕过安全策略所要求的安全机制,造成安全机制失效。(3)非安全的控制通道容易受到中间人的攻击,一旦控制器被攻击者劫持,不同于传统网络需要控制大规模僵尸节点,只通过SDN控制器就可以改变流转发路径,可将大量的数据流发往其他被攻击的业务节点,破坏业务可用性,造成网络服务的大面积瘫痪。针对控制器的拒绝服务攻击的主要防护机制是采用流量控制和多控制器两种思路。流量控制提供主动遏制手段。例如,通过限制控制器的访问频度,避免控制器在短时间内处理大量频繁事件(如未知流规则请求等)。多控制器结构中,可采用应用层负载均衡提供控制器在DDoS攻击下的生存性。在协议方面,OpenFlow协议1.2版已经增加了对多控制器的支持,可为不同控制器设定不同角色,但协议并未规定交换机的控制权如何在控制器之间切换,参考文献中设计了不同角色的控制器在交换机之间的切换方式,实现了一种负载均衡的弹性控制面。数据面的主要攻击对象是数据平面的关键节点——SDN交换机。除面临传统网络中的消耗交换机资源实施拒绝服务攻击、非法接入等攻击外,由于SDN交换机与控制层更多的交互,攻击者通过部署非法应用、入侵控制器等实现对交换机流表的非法操作,完成以下对用户数据流的攻击。(1)改变流转发路径,非法复制数据包并通过另外的路径转发给攻击者用以窃取信息或实施中间人攻击。(2)修改对数据包的操作动作,改变交换机在转发流时对数据包的操作动作。例如,丢弃数据包实施拒绝服务攻击。(3)设定非法的转发路径,从而占用某用户的转发端口等网络资源或通过注入精心设计的数据包进行会话劫持攻击。应对SDN交换机的拒绝服务攻击通常使用的方法就是采用流控、时间过滤、拥塞丢包和超时调整,并且在交换机上实施攻击监测。流控能够让交换机在DDoS攻击过程中保持响应,事件过滤能让控制器选择处理时间,提供系统恢复能力,拥塞丢包能够丢掉异常的数据包,并在无法隔离攻击者的时候通过QoS机制共同发挥作用,超时调整机制可以减轻DDoS攻击的危害。参考文献把检测算法分别部署在不同交换机上,创新性地提出了在SDN网络中针对数据平面隐蔽DDoS攻击的方法和检测方法,但算法的实现和升级特别复杂。SDN网络的另一个重要特征就是将封闭的网络能力进行抽象,并通过接口进行开放。控制器北向接口可将SDN网络中底层资源由控制器呈现给应用层开发者。不安全的接口可能使整个网络的安全受到威胁,例如:(1)网络行为被修改。如果恶意攻击者通过注入等手段,使某应用发送的请求参数与业务逻辑期望不符,可使该应用的网络行为被篡改,从而下发恶意指令。(2)网络通信被非法监听。如果接口是未加密的,攻击者就能监听整个调用过程,从而使敏感信息(如用户信息、调用token等)被窃取。(3)截获并修改数据包。攻击者可以采用中间人攻击,重放或修改后重发请求,达到伪造请求的目的。(4)引发DDoS攻击。如果应用接口没有检查机制,容易被攻击者反复调用,向网络设备下发大量无用的流表,影响数据面效率;或将大量流表引到性能较弱的节点,造成该节点拒绝服务。因此,接口的安全设计非常重要,它保证了接口数据交互的完整性、机密性,保证接口的可用性,具有权限管理机制,以保证底层资源被合理调用,无越权操作。对SDN网络运营者来说,在其具有更强管控能力的控制层采用必要机制应对应用层和开放接口引入的安全风险是可行的方案,如采用细粒度API访问权限控制策略,控制层针对每一个应用赋予满足其功能要求的最低限度API访问权限,并对通过API接口下发的应用层策略进行规则检查,检测下发的规则是否符合安全策略、业务逻辑及行为特征等的要求。参考文献在控制器上扩展出对应用程序的角色认证、规则冲突检测和安全规则转换等功能,构建了一个强制安全的控制器内核。近年来,嵌入式系统的广泛应用已经深刻改变了我们的生活方式。从智能手机到智能家居,从汽车到医疗设备,嵌入式技术已经成为现代社会不可或缺的...详情>>
2023-12-12 11:02:35在当今的科技世界中,嵌入式系统已经渗透到我们生活的方方面面,从智能手机、电视、汽车到医疗设备等。而在这些设备中,Linux网络编程扮演着至...详情>>
2023-12-12 09:55:55在数字化世界中,游戏已经成为了人们休闲娱乐的重要方式之一。随着科技的不断进步,游戏开发行业也在不断发展,而Java作为一门广泛使用的编程语...详情>>
2023-12-12 08:49:15在数字化的时代,网页设计已经成为了一个重要的领域。而在这个领域中,HTML(HyperTextMarkupLanguage)无疑是最基础、最重要的一环。它是构建...详情>>
2023-12-12 08:15:55嵌入式系统开发中,内存分配是一个至关重要的话题。嵌入式系统通常具有有限的内存资源,因此合理的内存分配方式对系统的性能和稳定性至关重要。...详情>>
2023-12-12 06:35:55