黄 涛 罗 宁 张 钦 沙琪松 孙飞虎
(桂林电子科技大学,广西 桂林541004)
随着信息时代的快速发展,人们的上网方式也发生了极大的变化,从台式电脑到笔记本电脑再到平板电脑、手机,到现在人们日常生活的各个方面已经离不开无线网络,而用到最多的无线网络当属WiFi。WiFi可以保证工作和娱乐活动的正常进行。但是,万事都有两面性,WiFi无线网络为人们带来便利的同时也会造成一些问题。人们在连接WiFi时,如果将个人信息放在一个相对不安全或者有漏洞的平台时,攻击者也就是不法分子可以通过共享网络和黑客技术窃取用户的个人信息,随着各种移动支付以及App的普及,WiFi安全问题必须得到重视。
钓鱼WiFi顾名思义就是用来钓“鱼”的WiFi,而“鱼”就是那些喜欢连接免费WiFi的手机、电脑用户等,一旦用户连接上了攻击者伪造或者攻击过的WiFi就有可能被窃取信息。而本文介绍的软件的应用目的就是为了防止这样的事情发生,通过有效地识别钓鱼WiFi,那么黑客利用钓鱼WiFi窃取用户信息就无从谈起。本文介绍的是由作者开发的一款软件,可以扫描出周围的可连接WiFi,并通过各种攻击检测原理在识别到钓鱼WiFi时对用户进行反馈,如果未检测到钓鱼危险,则信任该WiFi,并将其MAC地址添加到白名单。
ARP是Address Resolution Protocol的简称,中文翻译是地址解析协议,是根据IP地址获取MAC地址的一个协议,它属于TCP/IP协议簇。主机发送数据信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的MAC地址。收到返回消息后,将该IP地址和MAC地址存入本机的ARP缓存中并保留一段时间,下次请求时直接查询ARP缓存以节约资源。ARP攻击是指攻击者利用地址解析协议运作机制进行的攻击,ARP攻击分很多种,常见的有IP冲突攻击、ARP溢出攻击以及ARP欺骗攻击。其中,IP冲突攻击原理是制造出局域网上有另一台主机与目标主机共享一个IP地址的假象,这样就违反了IP地址不能共享的原则,目标主机会被警告,大量的攻击数据包会使目标主机消耗大量资源甚至导致目标主机瘫痪。而ARP溢出攻击是向目标主机发送大量的伪造的MAC—IP映射,目标主机会消耗大量资源去维护ARP高速缓存,如果进一步采用分布式攻击甚至会导致目标主机瘫痪。以上两种攻击方式都是使目标主机瘫痪或不能提供服务,而钓鱼WiFi常用的ARP攻击手段是ARP欺骗攻击。
ARP欺骗攻击是ARP常用攻击类型中最常见的一种。其原理是由攻击者发送假的ARP数据包到局域网上,特别是送到指定的网关上。其目的是要让原本应该送到特定的IP地址的数据被错误送到攻击者的主机,攻击者通过ARP欺骗使局域网内目标主机发送给网关的数据信息都发送给攻击者。目标主机刷新自己的ARP使得原本在自己的ARP缓存表中对变应的网关的MAC地址为攻击者的MAC地址,这样一来其他用户原本要通过网关发送出去的数据流就会发往攻击者主机,为了防止被发现,攻击者还会将修改或删除后的数据流再转发给网关,同时欺骗了网关和目标主机,这样就会造成用户的数据被篡改或外泄。
DNS是Domain Name System的简称,中文翻译是域名系统,是互联网的一项服务,它也属于TCP/IP协议簇。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网。
DNS作为网络的基础服务,其原理也相对比较简单,其解析过程缺乏认证机制非常容易受到欺骗攻击。DNS攻击常用DNS欺骗的手段,利用DNS协议缺少认证的特点,在目标主机发送DNS请求后,攻击者如果冒充域名服务器并发送带有错误信息的IP地址的DNS相应报文,相当于把目标主机查询的IP地址设为攻击者的IP地址,导致目标主机上网就只能看到攻击者的网页,而不是想要取得的正确的网站的主页,比如,原本用户要访问www.baidu.com,却因为DNS欺骗访问到了攻击者事先搭建的网页。DNS欺骗其实并没有真正“黑掉”对方的网站,而是一种类似重定向的冒名顶替罢了。
在Windows平台,我们利用编程语言Python下的第三方库Scapy侦听局域网,向目标主机发送数据包并通过sniff函数中的filter功能对数据包进行过滤,提取ARP数据包,而攻击者进行ARP欺骗时是向目标主机发送大量的ARP数据包,通过这个原理可以给当前局域网设置阈值,当单位时间内接收到来自同一个MAC地址发送的ARP数据包超过阈值时,软件系统将自动判定目标主机受到ARP攻击并进行警报提示,同时进行Windows操作系统的静态ARP绑定WiFi设备的MAC地址,这种方法可以极好地防止目标主机受到ARP欺骗攻击,在Windows操作系统上的ARP静态绑定的命令是:先通过ARP-a查询高速缓存下的项目,再找到并记录WiFi对应的MAC地址和IP地址,再使用命令ARP-s IP地址MAC地址进行ARP静态绑定。
DNS欺骗是欺骗目标主机访问攻击者的主页或搭建的网站,检测方式是通过网络请求以及DNS处理访问事先记录的多个常用网站,如百度、搜狐等搜索引擎的IP地址,然后在检测每隔一段单位时间IP地址并记录到数据库中进行对比,某一时刻的IP地址与之前记录的IP地址有差异时进行警报提示。
因为钓鱼WiFi的种类很多,攻击手段也大有不同,我们仅能模拟并测试两种攻击手段并以此进行研究防御措施,同时,我们不知道DNS攻击方面攻击者会对哪个URL进行重定向,我们只能将常用的www.baidu.com、www.souhu.com等常用网站作为测试目标进行检测。虽然我们可以对ARP欺骗进行预防处理,但是对于防止DNS欺骗并没有采取相关措施,原因是对于DNS欺骗的预防手段需要手动进行操作,如严格配置防火墙的控制访问策略,针对DNS服务器安全设定高优先级防护策略,严格控制内外用户对DNS服务器的访问,防止有攻击者窃取权限篡改DNS记录,还有分离内外部DNS服务器、部署入侵防御系统等,预防手段过于复杂,所以只实现了DNS欺骗检测功能。
公共场合下的WiFi给我们带来了极大的便利,弥补了有线网络的不足,但是其带来的安全问题不可忽视,在保证个人信息安全的前提下能够将无线网络的优势完全发挥是现在5G时代到来时不得不考虑的问题。为了避免钓鱼WiFi攻击,保护信息安全,必须对针对WiFi发起的攻击进行充分研究,设置更多更有效的保护措施,以保障WiFi的安全性。即使是再强大的保护系统或是检测软件,黑客等不法分子都会找到缝隙乘虚而入,所以,保护机制要不断更新,任何保护都不是牢不可破的也不是毫无漏洞的。