使用arp防火墙防止arp攻击
我们先来了解下什么是arp
ARP是地址转换协议(Address Resolution Protocol)的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时对上层(网络层)提供服务。
二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标的,因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。
Windows操作系统,在命令行窗口输入”arp -a”命令可查看本机当前的ARP缓存表,ARP缓存表保存的就是IP地址与MAC地址的对应关系,我们来看一下
C:\>arp -a
Interface: 192.168.1.20 — 0×10003
Internet Address Physical Address Type
192.168.1.1 94-0c-6d-49-13-34 dynamic
“Internet Address”指的就是IP地址,”Physical Address”指的就是MAC地址。
接下来我们了解一下ARP协议工作原理
ARP数据包根据接收对象不同,可分为两种:
1. 广播包(Broadcast)。广播包目的MAC地址为FF-FF-FF-FF-FF-FF,交换机设备接收到广播包后,会把它转发给局域网内的所有主机。
2. 非广播包(Non-Broadcast)。非广播包后只有指定的主机才能接收到。
ARP数据包根据功能不同,也可以分为两种:
1. ARP请求包(ARP Request)。ARP请求包的作用是用于获取局域网内某IP对应的MAC地址。
2. ARP回复包(ARP Reply)。ARP回复包的作用是告知别的主机,本机的IP地址和MAC是什么。
广播的一般都是ARP请求包,非广播的一般都是ARP回复包。
假设局域网内有以下两台主机,主机名、IP地址、MAC地址分别如下:
主机名 IP地址 MAC地址
A 192.168.0.1 AA-AA-AA-AA-AA-AA
B 192.168.0.2 BB-BB-BB-BB-BB-BB
当主机A需要与主机B进行通讯时,它会先查一下本机的ARP缓存中,有没有主机B的MAC地址。如果有就可以直接通讯。如果没有,主机A就需要通过ARP协议来获取主机B的MAC地址,具体做法相当于主机A向局域网内所有主机喊一嗓子:“喂~谁是192.168.0.2?我是192.168.0.1,我的MAC地址是AA-AA-AA-AA-AA-AA
。你的MAC地址是什么,快告诉我”,这时候主机A发的数据包类型为:广播-请求。
当主机B接收到来自主机A的“ARP广播-请求”数据包后,它会先把主机A的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,然后它会给主机A发送一个“ARP非广播-回复”数据包,其作用相当于告诉主机A:“嘿,我是192.168.0.2,我的MAC地址是BB-BB-BB-BB-BB-BB”。当主机A接收到主机B的回复后,它会把主机B的IP地址和MAC地址对应关系保存/更新到本机的ARP缓存表中,之后主机A和B就可以进行通讯了。
从上述局域网主机通讯过程可以看出,主机在两种情况下会保存、更新本机的ARP缓存表,
1. 接收到“ARP广播-请求”包时
2. 接收到“ARP非广播-回复”包时
这种机制,或者说ARP协议的设计,会不会存在问题呢?当然,不然怎么会有人利用来攻击呢?
ARP攻击会对我们有什么影响呢?最广的一种方式就是利用arp进行挂马!
用户在浏览某些网页的时候,网页中可能会包含一些恶意的代码,这就是俗称的“网页木马”,此种行为通常被称为“挂马”。
网页中包含的恶意代码通常类似为:<iframe src=http://xxx/xxx width=50 height=0></iframe>
“网页木马”并非万能的,它一般是通过系统中的漏洞(例如浏览器的漏洞、浏览器插件的漏洞等)来对用户的主机进行攻击,进而获取用户主机中的敏感数据,例如QQ号、网银账号、游戏ID等。如果你的主机已经安装了最新的安全补丁,大多数网页木马都无法对你的主机造成伤害。但是,也有不少网页木马是通过系统未公开的漏洞来攻击用户主机,即是说,即使你的主机安装齐全所有安全补丁,也无法做到100%免疫。
网页中为何会被插入恶意代码?
1. 服务器被黑。服务器被入侵或感染病毒,硬盘上的网页文件被修改,被插入恶意代码。这种情况比较少见。表现形式:互联网上所有用户访问这台服务器上的网页时,网页上都会包含有恶意代码。
2. 服务器被ARP欺骗。服务器所处的那个局域网内,有主机被黑客控制或者感染了病毒,服务器返回给用户的网页数据,在传输过程中被ARP欺骗程序、病毒程序所篡改,插入了恶意代码。表现形式:互联网上所有用户访问这台服务器上的网页时,网页上都会包含有恶意代码。
3. 用户的局域网被ARP欺骗。用户所处的那个局域网内,有主机被黑客控制或者感染了病毒。服务器返回给用户的网页数据,在传输过程中被ARP欺骗程序、病毒程序所篡改,插入了恶意代码。表现形式:局域网的用户,在访问所有网站时,网页中都会包含恶意代码。
如何解决呢?
1. 加强服务器的安全管理,避免被黑客入侵或者感染病毒。
2. 安装ARP防火墙,避免受局域网内ARP欺骗程序、ARP病毒的影响。
在这里我介绍一个比较好的arp防火墙。经过我几年来实践测试还是非常不错的,可以有效的对arp进行防护。
彩影arp防火墙 官方网站 http://www.antiarp.com 安装过程不细说。
实践我们看看效果如何
遇到arp攻击时:
最关键的是可以知道谁在攻击我们,可以马上通知机房相关人员进行排查