1、ARP防护概述html
经过以前的文章,咱们已经了解了ARP***的危害,***采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网***、流量被限、帐号被窃的危险。因为***门槛很是低,普通人只要拿到***软件就能够扰乱网络秩序,致使如今的公共网络、家庭网络、校园网、企业内网等变得脆弱无比。
web
因此,如何进行有效的ARP防护?做为普通用户怎么防护?做为网络/安全管理员又怎么防护?有哪些ARP防护软件?若是被ARP***了,如何揪出"内鬼",并"优雅的还手"?浏览器
接下来,咱们经过图解的方式来深刻了解ARP防护原理与解决方案。安全
2、ARP防护原理与解决方案微信
在讲解ARP防护以前,咱们先回顾下ARP***最经典的一幕=>网络
当PC1询问PC2的MAC地址时,***者PC3返回ARP欺骗回应包:个人IP地址是IP2,MAC地址是MAC3。一旦PC1记录了错误的ARP映射,则发给与PC2的数据,都会落到PC3手里。并发
也就是说,ARP***的罪魁祸首即是这种"欺骗包",若针对欺骗包的处理是不相信或不接收的话,则不会出现问题。处理这种欺骗行为咱们无法提早在***端作手脚,由于"敌在暗处我在明处"。这样的话,咱们就剩下两个解决方法:运维
①保证电脑不接收欺骗包ide
②保证电脑收到欺骗包以后不相信oop
目前网络安全行业现有的ARP防护方案,基本都是上面两个方法的具体实现。咱们来看看这张防护图:
①当***发起ARP欺骗包时,会途径局域网里面的交换机或无线路由器等网络设备;
②若是网络设备可以识别这种欺骗包,而且提早丢弃掉,则电脑/手机端就不会被欺骗;
③若是网络设备没有拦截这种欺骗包,则电脑/手机端须要作安全防护,而后再丢弃。
简单来讲,ARP防护能够在网络设备上实现,也能够在用户端实现,更能够在网络设备和用户端同时实现。接下来,咱们先来了解下网络设备(例如这里的交换机)的防护技术。
上面这张图,展示的是交换机的ARP防护能力,当PC2发送ARP回应包时,交换机将其转发给PC1,而当PC3发送ARP回应包(欺骗)时,交换机直接丢弃。
可是,人家PC3上脸上又没有写着"hacker",凭什么交换机要丢弃它的ARP回应包?凭什么判断它的包就是"欺骗"的呢?
接下来,我就要给你们介绍下局域网安全里比较经常使用的防护技术,这种防护技术被称为DAI(Dynamic ARP Inspection)- 动态ARP检测,原理能够用两句话简单归纳:
①交换机记录每一个接口对应的IP地址和MAC,即port<->mac<->ip,生成DAI检测表;
②交换机检测每一个接口发送过来的ARP回应包,根据DAI表判断是否违规,若违规则丢弃此数据包并对接口进行惩罚。
咱们知道,PC3是在交换机的Port三、MAC地址是MAC3,IP地址是IP3,因此本地DAI表项内容是<port3-mac3-ip3>。当交换机从接口Port3收到ARP回应包,内容倒是IP2和MAC3映射,即<port3-mac3-ip2>。
经判断,这个包就是虚假的欺骗包,交换机立刻丢弃这个包,而且能够对接口作惩罚(不一样设备的惩罚方式有所不一样,能够直接将接口"软关闭",直接将***者断网;也能够"静默处理",仅丢弃欺骗包,其余通讯正常)
上面这个动态ARP监测技术,能够说是目前防护ARP***最有效的方法之一。可是,做为初学者,你们可能还会有疑问:
①通常的交换机或网络设备能部署动态ARP监测技术吗?
②链接用户的交换机,怎么能识别IP地址信息呢?
③上面这张DAI表是如何生成的?是否是像CAM表同样能自动识别?
这里要给你们说个稍微悲伤一点的事实,大部分能支持这种动态ARP监测技术的交换机或者无线路由器,都基本是企业级的产品。即使是企业级交换机,具有局域网安全防护功能的设备,价格都要高出很多,因此不少中小型企业网或校园网,基本都愿意买"阉割版"网络接入产品,由于"能通就行",至于安全性怎样,这是另外要考虑的问题。
因此,简单的交换机不具有动态ARP监测技术,即使市面上有带安全防护的网络产品,企业、学校、医院等大量网络,仍然在早期采购的时候,用的是比较基础版本的交换机。固然,随着网络与安全市场的激烈竞争和网络安全意识的加强,之后会愈来愈好。
另外,交换机能识别IP地址信息吗?
从如今的网络技术来看,分层界限愈来愈模糊,融合式的网络设备才是主流,如今的接入交换机基本能被Telnet/SSH/Web管理,更专业的交换机同时支持动态ARP监测(dai)、IP源防御(ipsg)、DHCP侦听(dhcp snooping)、端口安全、AAA、802.1x等局域网安全技术,已经超越了原有二层交换机的定义。
因此,交换机能读三层甚至七层的数据包已经不是什么新鲜事了,不要被"交换机就是二层设备"给束缚了,这只是纸面上的定义。
最后一个问题,DAI检测表是如何生成的?
在上面图解中,咱们看到交换机查看的表已经不是原来的CAM表了,内容也不太同样,CAM表的内容主要是MAC和Port的映射,而DAI检测表则是Port、MAC、IP三个信息映射。
目前这张表支持两种方式来生成=>
第一种方式就是手工静态绑定:即用户接入网络以后,管理员根据此用户电脑的MAC和IP地址,而后在接口上绑死,缺点就是用户数太多的话,手工绑定管不过来。
第二种方式就是目前最主流的作法,即在交换机上开启DHCP侦听技术,当用户第一次经过DHCP获取到地址的时候,交换机就把用户电脑的IP、MAC、Port信息记录在DHCP侦听表,后面ARP检测直接调用这张DHCP侦听表便可。
小结:以上即是在网络设备上部署的ARP防护技术,经过动态ARP监测技术(DAI),能够很好的解决ARP欺骗问题。技术虽好,但局域网内的交换机、无线路由器是否支持DAI,这个则取决于实际网络状况,尤为是十面埋伏的公共WiFi网络、脆弱无比的家庭网络、能通就行的校园网络...... 咱们都应该持怀疑态度,至少不能彻底信任这些网络。
既然这样的话,普通用户有没有"自救"的方法,可以抵挡ARP***呢?答案是确定的=>
对于普通用户,陌生网络不要随意接入,确定是首选考虑的;固然,这里研究的是用户已经接入了网络,如何作安全防护的问题。从上图能够看到,用户(电脑或手机)最重要的即是经过安装ARP防火墙作安全防护,不少普通用户甚至“以电脑裸奔为豪,以骂安全厂商为荣”,这是对技术的严重藐视,对本身隐私的不负责任。普通小白必定要记住一句话:你没有被黑,只是你尚未到达被黑的价值。
ARP防火墙在技术实现上,通常都有如下功能:
①绑定正确的的IP和MAC映射,收到***包时不被欺骗。
②可以根据网络数据包特征(参考上一篇讲解的ARP***数据包溯源分析),自动识别局域网存在的ARP扫描和欺骗行为,并作出***判断(哪一个主机作了***,IP和MAC是多少)。
那么,有哪些常见的ARP安全产品呢?
自带ARP防护功能:腾讯电脑管家、360安全卫士……
专业的ARP防火墙:彩影ARP、金山贝壳、360ARP防火墙……
采用安全产品确定是普通用户最省时省力的作法,而对于技术人/工程师而言,若是不屑于使用安全产品,而且但愿解决ARP***行为,也能够经过"ARP双向绑定"的技术来实现。什么是"ARP双向绑定"呢?
从上图能够看到,PC1和PC2通讯双方都静态绑定对方的IP和MAC映射,即使收到ARP欺骗包,因为静态绑定的ARP映射条目优先级高于动态学习到的,因此能够保证不被欺骗。
这种作法很是"绿色无污染",由于不须要额外的软件安装,可是缺点也很是明显,例如普通用户不知道如何在电脑上作ARP静态绑定,另外工做量也比较大,每一个主机和网关设备都须要绑定整个局域网的ARP静态映射。如下面的家庭WiFi网络为例:
像这个WiFi网络,若是经过ARP双向绑定来解决安全问题,配置量其实蛮大的,固然,这就基本可以保障内网主机间经过以及主机访问互联网的安全性了。
Windows arp静态绑定方法=>
①进入命令行cmd界面;
② [arp -s ip地址 mac地址],例如:arp -s 192.168.1.1 00-11-22-a1-c6-09
注:家用无线路由器若要进行ARP绑定,则须要经过web登陆并进行图形操做
小结:用户端的ARP防护方法,要么安装ARP防火墙,要么作ARP双向绑定。对于绝大部分用户来说,虽然安装防火墙不是保证百分百安全了,可是可以解决很大一部分的隐患。
3、若是被ARP***了,如何揪出"内鬼"并"优雅的还手"?
相比"如何防护ARP***",我相信更多人感兴趣的是"如何揪出内鬼并进行还手",由于"揪出内鬼"的时候,咱们充当着"网络警察"的角色(把小偷逮住),而"优雅的还手"又充当着"法官"的角色(惩治小偷)。
而充当网络警察或法官这种角色,我可能算是比较有经验的...... 从我刚接触网络/安全到如今,充当的次数多的数不过来:在学校外面租房的时候(别想歪)、在网吧上网的时候、在音乐餐吧吃饭的时候、在麦当劳/德克士蹭网的时候......可能普通用户以为稀疏日常的地方,在网络世界里实则暗流涌动。
我第一次"抓内鬼当法官"应该是在2010年的时候,当时在学校旁边租了一个房子本身作技术研究。有一天晚上,网速变得特别慢,网页基本无法打开,QQ勉强还能挂着,可是租房以来网络一直还能够,虽然不算快,可是也至少知足日常上网需求啊。我心想:算了,毕竟租的房子通常,每月网费也就30快,房东拉的宽带可能比较垃圾不稳定吧,明天再看看。
次日早上爬起来,发现网络一点问题都没有,该开的网页,该下载的资料,都没有任何影响,恩,心情不错,不用专门跑回学校一趟下载资源之类的。可是到了晚上七八点的时候,网络又出现问题了,跟昨天晚上的状况如出一辙,基本无法上网,可是网卡又显示链接着,这让我很是的郁闷。
而后我忽然想起这几天,这栋楼好像新来了一个租客,这栋楼一共就四层,一层就3户租客,一共也就10来户,而一楼仍是房东本身一家人住,我本身住二楼。基本上这栋楼里的租客都能记得七七八八,因此若是有陌生面孔的话,一眼就能认出来,咱们暂且把这我的称为H,看上去是个上班族。
虽然当时仍是个小菜鸟,可是毕竟学这块的,仍是有点敏感:擦,会不会是这我的白天去上班,晚上回来宿舍,就开始限制咱们的网速啊?
你不犯我,相安无事,你若范我,我必搞你。(年轻人仍是有点浮躁啊....)
行,开干吧,多想没用。而后便拿出了P2P终结者(忘了当时用什么软件了,不过八九不离十)一扫描,想探探网络究竟。
万万没想到啊,竟然遇到老司机了,人家局域网权限比我还高(不少局域网流控软件都有权限的概念,若同一个局域网同时有多个使用这个流控软件,则权限高的优先控制,其余人的软件会自动退出),网络扫描进行一半,就提示"局域网有多人使用,因为你权限较低暂停退出"这样的提示,这样一来,就验证了个人判断,这个内鬼应该是H。自从他来了以后,这个网络就出了问题。这栋楼的网络拓扑结构是这样的=>
普通小白遇到这种状况,装个ARP防火墙,咬咬牙也就过去了。可是咋们学网络和安全的,遇到这种状况,感受就好像被人骑在头上同样。那咋办呢?做为一个理科男,作事情仍是得按步骤走,不能被脾气牵着走,虽然当时已经很是生气了,可是基本定下来这个解决流程:
第一:立刻给电脑安装防火墙,先脱离H的控制(当时电脑竟然是裸奔的...);
第二:想尽办法找到H的IP和MAC地址(不少小伙伴看到这里可能会想:直接上去楼上揍他一顿不就得了,还费什么劲找地址啊。这个有必要说明下:①我个头没人家大只 ②人家要是问:你有证据吗,你取证了吗? 因此,武力不能解决问题,可是技术能力能够。)
第三:千方百计拿到网络控制权,把他踢下去。
第一步:具体就不说了,也忘了当时装的什么安全软件了;
第二步:怎么找到***者的IP和MAC地址呢?2010年的安全软件,不像如今的ARP防火墙,可以主动告警,而且说明***次数和***源,因此仍是须要本身折腾下:熟练的打开电脑以前安装好了的wireshark,监听本身电脑网卡的流量,设置流量过滤器(仅过滤arp协议),不出意外,接下来就是一堆"带有节奏的ARP扫描包"(还记不记得以前章节说过的,ARP***通常会涉及到持续的内网扫描和欺骗***)。当时收到的数据包大概这样的:
经过流量数据包分析,很快就肯定了***者的IP和MAC地址。这里要注意:虽然抓到了***者的IP和MAC地址,可是!咱们仍是无法实锤的证实:***者就是H。
这个***者是否是真的H啊?怎么肯定就是这我的干的呢?如何把虚拟世界里的地址跟真实世界的人匹配起来?
接下来我便想到了一个方法:若是咱们能先拿到网络的控制权,而后把***者给踢下去直接断网,同时保证其余人网络连通;而后,谁要是下去跟房东沟通反馈不能上网,不就能够基本判定这我的就是***者? 说白了,就是"谁叫谁小狗"......
好,到了计划的第三步:如何拿到整个网络的控制权?这里就没走的那么顺畅了:如今的实际状况是:我和***者同时开启局域网流控软件,而是我被踢下来了,由于我权限低一些。当时的第一个想法是:我换一个流控软件不就得了?这样我不跟你拼这个软件的权限。可是仔细想了想,即使换一个流控软件能用,可是顶多也就是打个平手,我控制不了你,你也控制不了我,但最终遭殃的仍是其余普通小白,这个方法不能"斩草除根"啊。
怎么办呢?是否是只能跟他打个平手。在这里卡了好久但又心有不甘,而后到了大半夜了忽然顿悟:擦,为何要跟他"限来限去"呢,直接上整栋楼的出口路由器,把他踢出去不就得了?路由器(应该是TP-LINK)就在一楼楼梯口,而后其余楼层加一个hub级联上去,因此你们都在一个网络里面。
但问题是没有路由器的后台登陆密码,怎么解决呢?抱着侥幸的心理,查看电脑网关地址,而后浏览器输入网关地址,弹出了登陆页面,尝试admin/admin?不行,再尝试admin/123456?仍是不行...... 就这样尝试了常见的十几二十个帐号密码,都提示帐号密码错误,看来运气不是很好。
既然这样的话,就只能拿出暴力破解软件跑几个词典看看,用hydra挂着用户名和密码词典,慢慢的看着命令行输出,但输出结果基本都是failed...... 因此,次日晚上虽然发现了***者的IP和MAC地址信息,可是拿他没办法,只能先忍着。
到了第三天白天,脑子里想的都是如何登陆这个路由器后台管理界面,尝试跑了几个词典都无法登陆,心理又在想:房东不该该会设置太复杂的密码啊,四五十岁的阿姨,彻底不懂技术啊,网络应该也是叫人搞的,即使别人设置密码也应该给阿姨设置比较简单的让她好记的,方便后面维护之类的...... 一想到这里,赶忙从柜子里掏出以前的租房合约和房东名片,而后把房东的手机号码、房东的姓名拼音等信息作成简单的密码词典,再从新跑一次,还没反应过来,就显示密码尝试成功:admin/房东手机号码。万万没想到,觉得只要6位或者8位的密码,竟然是一个11位的手机号码,以前尝试的词典都是8位之内的。
接下来用浏览器访问路由器后台管理界面,进入主机列表,还没发现这个昨晚***者的IP地址上线。等到了晚上七八点的时候,终于在路由器上发现这个IP地址,并且,wireshark同时也抓到了这个***者发起的扫描包。看来是***者一回到宿舍,打开电脑,就直接挂着***软件,确实是个"惯犯"啊。好吧,看到这个状况,我直接在出口路由器上把这个IP和MAC地址禁用,看接下来发生什么。
果真,大概过了半个钟,有人从楼上下来,直接去一楼找房东阿姨去了,具体说什么这个不清楚,可是应该是询问是否是宽带欠费之类的致使不能上网。
过了一会,阿姨带着他上来二楼..... 而后敲门询问:大家二楼能不能上网啊?你们都陆续回答:能够啊、没问题啊。与此同时,我已经肯定了:眼前的这我的,H就是***者!他大概没料到,本身已经控制了内网,怎么可能被踢掉之类呢。
阿姨也不知道怎么办,只能说明天看看吧。看着他无辜的眼神回楼上去了,我也以为抓到内鬼也就算了,先把他解禁看看。而后"惯犯"又上线了,看来没有吃够苦头啊,当天晚上直接让他断网。以后的几个晚上相似的状况慢慢少了,由于只要他一扫描发起***,我这边就断他网,而后隔10分钟或者半个钟看看他反应,就这样慢慢地把他制服了,整栋楼的网络也就逐渐恢复了平静……
4、ARP防护总结
①ARP***很是低门槛,可是形成的影响却很大,包括断网***、流量被限、帐号被盗等;
②ARP防护能够在网络端(网络设备)上部署,也能够在用户端(电脑/手机)上部署;
③网络设备(例如交换机)部署ARP防护,一般须要用到DAI(动态ARP监测)技术,更加专业的局域网安全防护,还可能结合DHCP侦听、IP源防御、端口安全、AAA、802.1X等技术,这些专业的防护技术,是由网络运维和安全运维工程师来实施的。
④用户端(电脑/手机)实施ARP防护,最好的方法就是不要随意接入陌生网络,而且安装ARP防火墙。固然,技术宅的话,能够采用"ARP双向绑定"的方法,相对比较麻烦,可是也奏效。
⑤做为一名有素养的网络/安全工程师,应该不做恶。可是若是遭受***,应该揪出内鬼并"优雅的还手",作一个网络警察,还普通用户一个干净的网络环境。
【相关推荐】
新浪微博:@拼客学院陈鑫杰
微信公众号:拼客院长陈鑫杰