SDN架构下的防ARP攻击系统设计∗

2019-07-10 08:18陈青华乔勇军
计算机与数字工程 2019年6期
关键词:中间人交换机报文

姚 刚 陈青华 乔勇军

(海军航空工程大学岸防兵学院 烟台 264001)

1 引言

随着网络技术和互联网经济的发展,网络服务已经渗透到社会生产、生活的各个方面,承载着众多重要业务和产业信息,因此一旦因恶意攻击导致网络拥塞阻断、机密数据丢失,则会导致巨大经济损失,甚至对国家网络信息安全造成巨大威胁。软件定义网络(SDN)正在成为一个克服传统网络的局限性有吸引力的方案,它实现了网络可编程管理,为集中化、精准化地控制网络提供了方便。并促进网络在协议设计、网络管理和网络安全方面快速创新,提供了一种独特的方法来解决传统网络中存在的安全问题。

传统的ARP 绑定技术,通过关闭交换机的自动更新功能来实现。通过该机制可以防止合法的ARP表项被欺骗报文篡改,从而可以避免交换机遭受ARP 绑定和攻击。但是,上述ARP 绑定策略由于是本地的,需要在每台交换机上关闭交换机的自动更新功能。如果欺骗ARP 报文被交换机先学习到,反而正常的ARP 表项无法被正常学习到,存在很大的弊端。如果整个网络非常庞大和复杂,整个配置工作将会非常繁琐和配置过程容易出错。

SDN 的出现解决了这些问题,它具有全局视角,管理者能够通过快速且高水平地查看网络的所有区域以及修改网络来改变规则,进而快速限制以及从中央视角查看网络内部的威胁,可以有效地作出更改可以全面分析网络中的流量状况,SDN的出现为ARP 欺骗攻击提出了一种新的解决思路。针对上述问题,提出了一种在SDN 中解决ARP 欺骗攻击的方案。

2 SDN和ARP攻击形式

通过对ARP 欺骗攻击特性的分析,我们团队选择SDN 作为网络架构,设计了防ARP 欺骗攻击的方案。

1)ARP欺骗攻击的基本形式

(1)中间人攻击

中间人攻击是最典型的攻击之一,受到黑客的中间人攻击,可能会严重危害服务器和用户。中间人攻击就是攻击者扮演中间人并且实施攻击。它有时被称为 monkey-in-the-middle 攻击或man-in-the-mobile 攻击,是网络监听的一种方式。攻击者进入两台通信的计算机之间,这样他就可以完成网络数据包(以太网数据包)嗅探和分析,中间人计算机将在两台互相通信的目的主机之间转发数据包,而两台目的主机对此毫无察觉。中间人攻击方式不仅对计算机有效,还可以扩展到路由器和网关设备,从而在路由器与主机之间使用中间人攻击,攻击示意图如图1。

图1 中间人攻击示意图

(2)克隆攻击

克隆攻击是另外一种ARP 欺骗的方式。现在我们已经可以通过硬件或软件工具来修改网络接口的MAC 地址,Linux用户甚至只需要用ifconfig命令修改一个参数就能修改网络接口的MAC 地址。攻击者通过拒绝服务攻击使目标主机与外界失去联系,然后攻击者将自己的IP 和MAC 地址改成目标机的IP 和MAC 地址,这样攻击者的主机就成为和目标机一样的副本。

2)SDN技术

SDN技术作为一种新型的网络管理方式,其最大的特点在于具有松耦合的控制平面与数据平面、支持集中化的网络状态控制、实现底层网络设施对上层应用的透明。SDN 改变了网络的组织和管理模式,通过开放的接口和标准的南北向协议,使得底层网络不再依赖于具体的硬件和嵌入式网络操作系统,逻辑拓扑和流量调度不再受限于物理连接方式,取而代之的是以灵活高效的软件编程方式实现底层网络的配置。网络数据层面由通用的硬件来实现,而网络的控制层面由独立的软件来实现,网络设备与控制软件之间的通信也可以由程序实现。通过控制软件的集中化控制,SDN能够可从一个单一的逻辑点获得全网控制权,有效地解决当前网络组网灵活性差、全局性流量工程和链路调度的优化、网络设备配置复杂且各不兼容等问题。也方便从宏观角度配置网络传输带宽等资源,提高网络资源的利用率。SDN带有全局网络的视图,管理者能够通过快速且高水平地查看网络的所有区域,用SDN 架构来解决ARP 欺骗攻击,可以为复杂的环境提供更高级的网络监控,在受到攻击时进行检测并对其快速响应。

3 系统设计

3.1 整体方案设计

本设计方案是在SDN 环境下实现对ARP 攻击的防御系统,主要分为四个部分,分别为基础设备层、网络控制层、ARP 防御层、接口层,如下图所示。

基础设备层是基本的网络基础设施,包括主机、支持OpenFlow协议的交换机等。

网络控制层包括ARP 协议分析管理模块,网络拓扑结构的管理,网络流量的统计管理等。ARP防御层主要完成了对ARP 欺骗攻击的防御,主要模块包括ARP 报文处理模块、ARP 攻击检测模块和ARP攻击阻止模块。

图2 整体方案

ARP报文处理模块:对网络中所经过的数据包进行欺骗报文的过滤,以便后续模块的处理;ARP攻击检测模块:在ARP 报文处理模块的基础上,对欺骗报文进行检测,判断其为中间人攻击还是克隆攻击;

ARP攻击阻止模块:在欺骗报文处理和检测的基础上,对接收的报文采取防御措施,阻止其对网络造成进一步的危害。

接口层为网络流量的实时显示和智能提醒提供接口。

3.2 ARP防御层设计

1)ARP防御流程框图

利用控制器的全局视角,构造整个ARP 防御的流程,具体流程图如图3所示。

图3 ARP防御基本流程图

2)ARP防御规则

要阻止ARP 的攻击重点在“防”上,本作品从ARP 的代理机制入手,制定安全策略,预防ARP 攻击的发生。在ARP 防御层中,通过设定网络中主机的更新规则和ARP 报文的转发规则来保证网络中ARP 协议的正常运行,并起到防御ARP 攻击的作用。

(1)主机更新机制

在SDN 网络中,Open Flow 交换机会将接收到数据包与转发表中的流条进行匹配。当匹配到流表项后,就去执行条流表项所规定的指令,然后要么直接转发出去或者丢弃;若没有匹配项,则会默认封装成Packet-in 消息转发给控制器。在实际情形下,每条流的第一个数据包都会被转发至控制器处理,该特性被用来进行主机信息注册和更新。无论终端设备采用何种方式(动态主机配置协议或静态配置)接入网络,只要发生通信,就会向控制器发送消息。

当控制器接收到Packet-in 消息,对控制器编程实现提取主机的相关信息,包括MAC 地址、IP 地址、所连交换机识别号(dpid)和端口号(port),以及接收该消息的时间,并以条目的方式存储在控制器中,每个条目的有效时间设置为(t时间t 可根据网络的具体情况进行设定,本作品将t 设定为2s),同时提供主机MAC 地址、IP 地址以及接入点位置为键值的多种索引形式。当主机IP 地址、MAC 地址变更或退出网络时,自动更新主机列表,为ARP 防御机制提供基础。

(2)ARP报文转发规则

①请求报文

当控制器收到Packet-in 消息后解析提取请求的主机IP 地址,并以该IP 地址为键值查询主机信息表,若该主机信息存在且在有效时间范围内,则根据查询到的MAC 地址生成ARP 应答报文作为Packet-out 消息的载荷经原路返回转发给源主机。若主机信息条目存在,但不在有效时间t范围内,则将该ARP 请求通过Packet-out 消息转发至查询到的主机接入点,源主机是否会收到ARP 应答依赖于目的主机是否仍在网络中;同时将该主机信息条目标记为无效状态,若在规定时间(如2s)内没有进行状态更新则删除。若主机信息不存在,则可以选择通过Packet-out 消息将该ARP 请求广播给网络中所有主机。请求报文的处理流程图如图4 所示。

图4 请求报文处理流程图

②应答报文

对于应答报文,先判断在规定的时间内是否有请求,再进行响应。如果有请求,则是一个正常的ARP应答报文。如果没有请求而收到了响应报文,控制器不进行转发,如果在时间t内,监测应答报文的数量,如果超过规定数目,则可以判断该主机存在ARP 攻击的可能,及时提醒网管人员,并在一定时间内屏蔽该主机的ARP 应答报文。应答报文处理流程图如图5所示。

图5 应答报文处理流程图

4 系统实现

4.1 模拟环境

在系统仿真模拟时,需要一台虚拟机(操作系统采用Ubuntu,英特尔i7 处理器,主频2.4 GHz,内存4 GB)运行SDN控制器和网络模拟平台。

SDN 控制器采用Ryu 开源控制器,利用了Open vSwitch 交换机,运用Mininet网络仿真器构建模拟平台,利用OpenFlow1.3 协议完成控制器和交换机之间的通信,选择的编程语言为Python。SDN环境图如图6所示。

图6 SDN环境图

SDN 的核心思想为数据平面与控制平面相分离,本作品吸收并利用这一思想,将网络拓扑集成在数据平面,Ryu 从其中独立出来存在于控制平面,由此构成整体系统架构,本组为系统设计架构如图7所示。

图7 系统整体架构

4.2 实验结果

为了验证方法的正确性,在模拟环境搭建完成后,选用Linux 下的嗅探工具dsniff 中的arpspoof 命令产生ARP 欺骗攻击,从而在网络中不断产生错误的应答报文,让网络的流量增大,并且改变主机的缓存列表,从而达到欺骗攻击的目的。

在模拟环境中执行测试,评估防ARP 欺骗攻击系统的ARP 正常响应时间、攻击响应时间、阻止ARP 攻击时间。ARP 响应时间是正常的ARP 请求到应答的时间;攻击响应时间是攻击者发起攻击时间到系统检测到攻击之间的时间;阻止时间是在系统检测到攻击后,采取相应的的流规则措施,并将流表下发到交换机上的时间。

1)ARP响应时间

结论:在图8 中,横轴是主机的数量,纵轴是响应,单位是s。在相同的网络规模下,利用普通交换机和本作品设计的系统对网络中正常的ARP 报文进行处理。通过图8 可以看出,在网络规模较小的情况下(主机数量小于100 台),两者的处理时间是差不多的,本作品的处理时间比普通的交换机略长,这是由控制器在下发流表时增加相应的判断规则所决定的。但是随着网络规模的不断扩大,本作品设计系统的优势就明显显现出来。在网络规模很大的时候,如果采用传统ARP 泛洪方式进行ARP 处理,会使网络时延急剧加大;而对于本系统来说,采用主机表查询的方式,免去了泛洪方式带来的网络阻塞,使网络规模的扩大对于时延的影响较小,因此本作品所设计的系统特别适合于网络规模较大的情况。

图8 ARP请求到应答的时间

2)ARP攻击的响应时间

结论:针对本作品设计的防ARP 攻击系统,分别采用ARP 请求攻击(ARP_REQUEST)和ARP 响应攻击(ARP_REPLY)两种类型的攻击进行了测试。普通交换机对于ARP 攻击没有处理能力,当遇到攻击时只能采用等待攻击停止或重启电脑清除ARP 缓存的方式。本作品设计的系统针对以上两种类型的攻击进行测试,通过统计平均得到攻击的响应时间在均在0.3s 以下,阻止攻击的时间在0.05s 以下。实验表明,本作品能够较好地防御ARP 攻击,当网络遭受攻击时,系统能够及时地检测攻击并对检测到的攻击采取相应的措施,反应迅速,保证了局域网的安全。

图9 ARP攻击的响应时间

3)智能提醒功能测试

当发生攻击时,本系统会立刻给出网络遭受的提示,提醒网管人员关注可疑的主机,并采取相应的阻击措施。在mininet 中使用pingall 命令,ryu 控制器加载自己编写的app 可对报文进行分析判断,可获得当前拓扑环境中主机ip与mac的缓存表,提醒功能截图如图10所示。

图10 攻击提醒截图

5 结语

本文分析了现有网络存在的问题,概括了软件定义网络所具有的特点,在分析了传统了ARP 欺骗攻击的原理和攻击方式以及防御措施的基础上,设计实现了SDN 架构下的防ARP 攻击系统,能够较好地防御各种形式的ARP 欺骗攻击。本系统仅针对局域网的ARP 欺骗攻击进行防御,但是对于跨网段的攻击没有考虑,这是下一步的完善方向。

猜你喜欢
中间人交换机报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
面向未来网络的白盒交换机体系综述
夹在妻子和弟弟中间,怎样当好中间人?
局域网交换机管理IP的规划与配置方案的探讨
浅析反驳类报文要点
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
重庆转口贸易优势分析及政策建议——利用信息不对称和中间人理论
跟杨绛学做“中间人”