一种基于交换机的局域网ARP 攻击防御方法的研究及系统实现(3)

3.2.1ARP欺骗攻击的实现

        以一个简单的网络结构为例来说明 ARP 欺骗的具体实现。该网络中的三台主机在同一个广播域中,表 3.1为各主机的网络参数。

        (1)构造 ARP回应报文实现欺骗。在表3.1中,当A主机需要 ARP学习获取 B主机的 MAC 地址时,当A主机发送ARP 请求的时候,回应的并不是 B主机,而是C主机。C 主机巧妙的构造了回应报文,即 C回应的 ARP报文源IP是1010.1011,这个是B主机的IP 地址,而MAC地址是 CC-CCCC-CC-CCCC,这个是 C机的 MAC 地址,这样 A主机得到的B主机的MAC地址为CC-CC-CC-CC-CC-CC而不是B真实的MAC地址BB-BB-BB-BB-BB-BB,导致数据包封装成的时候,目标主机是C主机而不是B主机,从而达到“欺骗”的目的。
        (2)构造 ARP 请求报文实现欺骗。当C主机发送一个 ARP 请求报文,报文头部结构中源IP 为B主机的IP 地址,而不是 C主机自身的IP地址,源 MAC地址为C主机的 MAC地址,目标IP 地址为 A主机的IP地址,目标 MAC 地址为 AA-AA-AA-AA-AA-AA,即学习A 主机的 MAC地址,此时 A主机接受到这个请求时,将记录下这个请求报文中的源 IP地址和源 MAC 地址,建立IP 地址是 B主机,MAC 地址是 C主机的对应关系,由于这个对应关系已被巧妙修改,而到达“欺骗”的目的。

3.2.2ARP欺骗攻击的防御

        对于·ARP 欺骗攻击,它不像 ARP 洪泛攻击,不能使网络中出现大量虚假 MAC 地址,也就不能使交换机产生安全违例。所以,配置交换机端口的安全策略的方法不能防御 ARP 欺骗攻击。但是,由于此种攻击会伪装成网关或网络中某台主机,因此可以在网络中部署一些监测点,这些监测点实时监听网络中的 ARP 数据包,根据真实网关和主机的 IP-MAC映射对,查找出网络中出现的虚假 ARP 包,并把虚假 ARP 包中的虚假MAC 地址提交给管理系统。从交换机的转发模式中,可以知道,如果一个 ARP 包经过交换机转发,那么其 MAC 地址会在交换机的 MAC 地址表中留下记录。所以,当管理系统收到监测点发来的虚假 MAC 地址后,可以根据虚假 MAC 地址查找交换机的 MAC 地址表,从而追溯到攻击源所连接的交换机的某个端口。查找方法如下:从根节点交换机出发,深度搜索其MAC地址表(找到虚假 MAC 地址对应的端口,然后搜索端口所连接的交换机的 MAC 地址表),直到找到主机为止。所找到的主机即为攻击源。当管理系统定位攻击源后,会给用户发出警报,并关闭攻击源所连交换机的端口,使攻击源与网络进行隔离。当攻击源主机恢复成正常主机后,再重新把它加入网络。
        如图3.3所示,Manager 为管理主机,Terminal为用户主机,Monitor为监测点:


        图中Monitor1对网络进行实时监测,收集网络中的虚假 MAC地址当 Termina12发起ARP欺骗攻击后,虽然交换机不会产生安全违例,但是网络中的Monitor1能够捕获到 Terminal2所发送的虚假MAC地址。Monitor1 将捕获到的虚假 MAC地址发送给管理主机。当管理系统收到Monitor1发来的虚假 MAC 地址后,可以根据虚假 MAC地址从根节点交换机出发,深度搜索其MAC地址表,找到Switch1中 Termina2所连端口是虚假 MAC地址的最终来源。凭此就可以确定 Terminal2 为攻击源。管理系统定位攻击源 Termina12后,会给用户发出警报,并关闭 Terminal2所连交换机的端口,使它与网络进行隔离。当 Termina12 恢复成正常主机后,再重新把它加入网络。
        将对不同 ARP攻击方式的防御方法结合在一起,能够有效的防御局域网中的ARP攻击。

3.3防御优点

        本文提出的基于交换机的局域网ARP攻击防御方法克服了当前ARP防御方法所存在的缺陷,能够实时监测 ARP 攻击准确定位 ARP 攻击源并及时将攻击源隔离出网络,而且不会影响正常主机的通信。

3.4 小结

        本章详细阐述了本文提出的基于交换机的局域网 ARP 攻击防御原理,以及相对现存的防御方法所具有的优点。

第4章 基于交换机的局域网ARP 攻击防御系统的设计与实现

        根据上一章对局域网ARP 攻击防御原理的研究,本章描述一个基于交换机的局域网 ARP攻击防御系统的实现。

4.1系统方案


        获得拓扑结构之后,需要读取交换机的指令集。交换机的指令集是以配置文件的形式输入的。因此,用户只要选择所需要的品牌的交换机指令集,系统就可以对相应的交换机配置。从而实现了对交换机种类,品牌的透明化。
        系统在获得了交换机的指令集之后,就需要对交换机进行相应的初始化配置。配置交换机的端口安全级别为 RestrictTrap,用户设置端口上允许通过的 MAC地址阅值。
在完成各种配置之后,系统便可以启动运行,对网络实时监控
1.ARP洪泛攻击
        当出现 ARP洪泛攻击时会产生大量虚假的 MAC 地址,致使交换机端口产生安全违例,发送 Trap 包给管理系统 (可能多个交换机的多个端口出现安全违例),管理系统监听网络,捕获 Trap 通知,并创建单独的线程处理 Trap 包。通过算法分析出某个或某几个交换机端口连接的是ARP攻击源。
2.ARP欺骗攻击
        当系统获得监测点捕获的某个虚假的 ARP 包的时候,通过 MAC 地址定位算法分析连接 ARP攻击源的交换机端口组,定位 ARP攻击源。当找到攻击源之后,系统将会进行报警。管理员可以根据自身的需要,确定是否需要封闭相应的攻击源端口。从而消除危机,解决问题。在网络运行过程中,管理员可以通过预定义策略,自动或手动打开任何已经关闭的交换机端口,恢复问题主机的网络连接。

4.2关键技术

        1.网络数据包捕获[23][25]:用于捕获数据包。主要利用 wpcap.di1 提供的函数实现抓包功能。wpcap.d11是一个高层的强大捕获程序库与Unix下的 Libpcap 兼容,独立于下层的网络硬件和操作系统捕获原始数据包。                                                                                                                   2.Socket 编程[20]:用于描述 IP 地址和端口。是一个通信链的句柄应用程序通常通过“套接字”向网络发出请求或者应答网络请求。本系统通过 Socket 向交换机发送配置安全策略的命令。
        3.交换机安全策略:用于实时发现网络节点异常。安全策略主要是指在交换机端口上设置允许通过的源 MAC 地址的闻值,当端口的安全地址的数目超过阅值,则会产生安全违例。
        4.MFC(Microsoft Foundation Classes) 编程21][23],用于整个程序的架构。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立 Windows 下的应用程序,这是一种相对SDK(Software Development Kit)来说更为简单的方法。
        5.实时渲染技术:用于前端显示。图形区域使用了 DirectX 实时渲染绘制技术,2D空间坐标算法,DirectXInputDevice 接口,图形区域操作属于 Directx 输入底层操作。XML 动态脚本机制,使图元内容灵活性加强。 2D图元处理利用独立开发的 2D 引擎,超越了绑定的模式,独立性好,可移植性强。
        6.XML(Extensible Markup Language)数据组件[27];用于连接XML数据库,实现对程搁笨暗巴傍盎百榜爱保扒挨艾挨爆蚌扮氨邦堡叭甭拌膀拌爸拌梆版班豹熬柏搬癌靶蚌保存。便于程序保存所需要的信息。
        7.SNMP(Simple Network Management Protocol)协议:用于分析Trap 包。利用SNMP协议的格式分析捕获来的 Trap 包,获取 Trap 包类型以及攻击源的 IP 地址及交换机端口号。
        8.MultiThread:多线程技术用于控制监听和处理的及时性。在同时有多个攻击源攻击的时候,可以有条不紊的一一处理。
        9.消息机制:多进程间的不同消息实时通信技术。能够使得系统层次分明,上下协调的工作。
        10.自动生成拓扑图:在此部分中应用到了在网络管理领域中普遍用到的 SNMP++开发包技术。应用此开发包能有效地收集网络中的必要信息,包括 brige MIB,host_MIB 等关键信息,再运用相关知识和算法处理相关信息,并能动态地捕获信息自动生成拓扑图。应用 SNMP++技术能简洁准确地收集足够信息,从而能更准确地完成拓扑图的自动生成。

4.3应用范围

        系统应用范围就是在局域网中,并且位于同一网段。也就是说,系统能处理的最大节点值(交换机,主机终端,网关路由器等)为 255,IP地址必须位于同一子网内。例如:192.168.0.1----192.168.0.254一种典型的网络拓扑结构如图 4.2所示。
        系统运行在管理主机管理机上,对网络进行监听,对交换机进行控制。

4.4系统结构

        本系统主要由三层构成,分别是:用户层,内核层,网络接口层。如图 4.3所示。

        1.用户层:主要给用户提供了一个友好、人性化的操作界面
        2.内核层:主要是分析处理网络接口层的数据,并将处理结果反映到用户层,以便用户做出决策。
        3.网络接口层:主要是抓取交换机发出的 Trap 包和向交换机发数据包。
        下面,分别对系统的三层协同工作模式做详细的说明。

4.4.1用户层

        用户层实际上就是一个 shel1,其目的就是给用户一个更友好、更人性化的界面。用户层不是系统的基本必须组件。
        用户层使用 C#语言开发,与内核层的唯一接口就是 UDP ( UserDatagram Protocol)数据通道。系统运行时,内核进程和shel1 进程完全独立,使用上述 UDP 接口进行数据通信。所有内核进程的数据通过数据管道在shel1进程中处理,在前端使用图形图像显示给用户。
用户层还有一个功能,即保存和读取网络拓扑图。该功能使用 XML数据库来保存和读取网络中的各种参数。

4.4.2内核层

        内核层的核心就是攻击源定位算法。通过攻击源定位算法,可以准确定位 ARP 攻击源的位置,并作出相应的处理。该算法的描述如算法 4.1所示:
        系统主要处理两种攻击方式:ARP 洪泛攻击和 ARP 欺骗攻击。

1.对于第一种攻击,攻击源定位算法主要查找的是交换机发出的Trap 包。由于交换机的 MAC 地址表是层层映射的,所以,如果网络中有一台主机发起 ARP 洪泛攻击,原则上网络中所有的交换机都将会发出Trap 包。攻击源定位算法从中找到攻击源的方法,就是在交换机中找到这样一种 Trap 包:该包中记录的交换机的端口连接的是一台主机。那么该主机就是一个 ARP 攻击源。
例 1.有如下所示的网络拓扑图(图 4.4):

        在图4.4所示的网络拓扑图中,Termina12 向网络发出随机地址攻击,当发包数量超过预先设置的阑值时,就会触发交换机的安全违例,随之发出 Trap 包。在网络中,所有的交换机都会发出 Trap 包,报出安全违例的端口情况如下:
Switch1报出本交换机链接到 Terminal2的端口出现安全违例(图中红色标出);
Switch2报出本交换机连接到 Switch1的端口出现安全违例(图中绿色出);
Switch3报出本交换机连接到 Switch2的端口出现安全违例(图中蓝色标出)。所有的 Trap 包会送到 Manager 管理主机。
        管理主机通过分析这些 Trap 包知,Switch1发出的 Trap 包报告的安全违例端口连接的是主机终端,满足上述攻击源定位算法判定攻击源条件,于是对该端口进行处理。在此过程中,Switch2,Switch3 所发出的Trap 包都不符合要求,于是放弃处理。
        2.对于第二种攻击,攻击源定位算法主要查找的是交换机的 MAC 地址表。在获得了监测点发送的虚假 ARP 包的时候,攻击源定位算法会根据虚假的 ARP包中的虚假 MAC 地址,查找交换机的 MAC 地址表。从交换机的转发模式中可以知道,如果一个 ARP 包经过交换机转发,那么该包中的源 MAC 地址会在交换机的 MAC 地址表中留下记录。所以,我们可以根据虚假 MAC 地址查找交换机的 MAC 地址表,从而追溯到攻击源所连接的交换机的某个端口。
例 2.有如下所示的网络拓扑图(图 4.5):

        在图4.5所示的网络拓扑图中Terminal2向网络发出ARP欺骗攻击其攻击方法是:向网络中发出虚假 ARP 确认包(图中红色背景的 ARPReply),把自己伪装成网关或网络中其他主机,以此来进行中间人攻击。此时若不对其进行处理,局域网中的交换机不会触发安全违例,但是网络主机之间的正常通信受到了安全威胁。实际上,此时的网络中的Monitorl 会收到虚假ARP 确认包,确认此包为虚假 ARP包后,Monitorl会将该虚假 ARP包发送给管理系统,管理系统在收到这种包之后,确认网络中出现了ARP欺骗攻击。
        在确认发出攻击之后,就需要找到攻击源,如何根据虚假的 ARP 地址找到正确的攻击源成为了 Search()方法的难题。鉴于攻击源发出 ARP确认包以后,会在交换机中的 MAC 地址表中留下 MAC 地址与端口对应号,所以我们可以根据这些对应号来找到攻击源。
Search()方法的具体实现如下:从根节点交换机出发,深度搜索其MAC 地址表(找到虚假 MAC 地址对应的端口,然后搜索端口所连接的交换机的 MAC 地址表),直到找到终端为止。所找到的终端即为攻击源同样的,找到攻击源以后,按照预先设置的 Deal 方法处理之。

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值