内网安全_arp的攻击与防御

标签: 未分类 | 发表时间:2011-08-24 11:37 | 作者:yunlin 雨翔
出处:http://qa.taobao.com

(本文图片和斜体内容来源于互联网,其他均为原创,转载引用请注明出处,qa.taobao.com )

    之前写过一篇小分享,现在沉淀一下,本文首先介绍ARP原理,ARP攻击原理与危害,最后给出在内网中的攻击实例以及防御方法。

    时间关系,许多内容并没有详细介绍,譬如交换机集线器传输差别,ARP协议字段解释等,需要了解这方面的信息又google不明白的同学可以旺旺联系我,云林。

    由于本人水平有限,这段时间都不曾接触网络协议,文中难免错误,敬请各位大侠不吝指教。

 

ARP原理:

ARP协议(Address Resolution Protocol),或称地址解析协议。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。他是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被icmp v6所替代。
 
    假设局域网内有以下两台主机,主机名、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就可以进行通讯。

 

 

 

图1 ARP原理

根据上图解释一下:

    在上图中服务器A如果想向服务器C传递数据,(这里不仅仅指服务器,所有遵守OSI七层模型的网络主机都应该是这样做)首先A向他所在的网段广播一个ARP包,询问C的MAC地址,(在二层网络中,主机间只有通过MAC才能通信,异构网络才需要三层的IP地址)C收到A的广播包,查看到该包中的IP地址与自己的一直,于是就回复ARP应答包给A,这个时候回复包为单播包,即只发给A。

    整个过程就是这么简单,但是其中有几个需要注意的点。首先,A发不发这个广播的ARP包给网段中的其他主机取决于他需要传递信息的主机跟他在不在一个网段中,通过掩码与IP的对比可以完成这个判断,否则A只会将信息发送给网关。其次,传统的共享网络和交换网络在处理ARP的时候发送的机制并不相同,这个具体体现在使用传统的集线器和交换机时候的差别。

 

ARP攻击原理与危害

 

 

图2 ARP攻击原理

ARP攻击的原理在于他没有对ARP请求或者应答的来源做判断,即相信局域网内所有人说的都是真话,其实这样一个判断在二层交换网络中是个很大的资源浪费,在七层模型中,二层最大的作用是快速交互转发报文,如果加上对来源的认证,对效率将会是一个极大的考验,对更上层的应用来讲,传输速度也将大大降低。所以,由此产生的这样一种无差别信任的模式导致了ARP攻击的产生。

 

具体来讲,以上面的原理举例,如果A向全网发送广播包询问C的MAC地址,这时候我们的黑客控制了主机B,在收到A的广播报文之后,通过构造ARP Response报文,可以假冒C的MAC地址给A,这里假冒的MAC地址可以是任意地址,也就是说,B可以构造自己的MAC地址给A,告诉A这是C的MAC地址,由于ARP的无差别信任,A会将B的MAC地址当成C的,那么之后A发给C的所有信息都会发送给B。

 

这里有一个点需要注意,即使B发送了应答包,他也不能改变A中对C IP地址的映射存储,因为ARP协议传递的是MAC地址的询问,即ARP协议中,唯一能够确定的即是询问的IP地址。所以不能能骗取A更改C的IP地址,只能更改C的MAC地址。

 

那么ARP欺骗到底有什么危害呢,首先是不言而喻的,可以获取他人传递的信息,并且可以在他人不知情的情况下,再次转发信息给正确的接受者,这样就不会有人知道,信息中间曾经被窃取过。第二是使他人断网,其实做法很简单,将一个不存在的MAC地址设为网关的IP之后发送给被攻击者,那么被攻击者除了能够发送内网信息之外,将不能同外网通信。还有一种ARP攻击办法类似DOS攻击,洪泛大量ARP包,抢占网络流量,导致不能上网。

 

攻击实例以及防御方法

 

这里,我的攻击实例是通过ARP欺骗使得某台主机上不起网。

需要通过ARP攻击攻击同一网段中的某台主机时,首先需要知道被攻击者的IP地址,可以通过很多中方法获取,我这里选择的方法是通过QQ或者旺旺传递文件,之后在抓包软件中获取。

获得到主机的IP地址之后,我们需要做的是构造伪造ARP请求包给被攻击者。

构造包:

l  源IP  网关IP

l  源MAC  我的MAC或者一个不存在的MAC

l  目的IP  被攻击者的IP

l  目的MAC 被攻击者的MAC

 

 

图3 arp 攻击

 

构造完成之后发送  以每秒100个报速度发送给被攻击者,很快被攻击者网卡便会接受到我们的信息,将外网通信的信息发送给我们,就算有正确的包传递过来,也会很快被我们的攻击包所覆盖。如果继续增加每秒的包传输量,就会恶意抢占带宽,也能导致被攻击者不能上网。

之后,我们在深入一步,被攻击者下载了某防火墙来应对(需要知道什么防火墙的可以旺旺我)。

抓包之后可以发现,某防火墙原理就是向网关发送ARP请求包 ,每秒10个左右 并且拦截非网关发来的请求(应答)包

 

那么只要欺骗网关即可

 

告知网关 被攻击者 的MAC地址是我

 

那么所有网关发送给被攻击者的包都会发给我 导致被攻击者还是上不了网

 

构造包

l  源IP :我的IP或者不存在的IP

l  源MAC :被攻击者MAC

l  目的IP :网关IP

l  目的MAC :网关MAC

 

 

结果还是成功,某防火墙即失效了 。。。

 

 

对于ARP攻击的防御则可以从三个方面来入手,即主机方和网关方和第三方

首先从主机方入手,可以采取的方法为:

1、 静态绑定网关MAC或固化ARP表(重启后失效)存在的问题是只能单向绑定。

从网关方入手可以采取的方法为:

1、网关绑定IP和MAC(需要网关支持)存在的问题还是只能单向绑定

第三方可以采用的方法为

1、使用ARP服务器,在局域网内架设ARP服务器,代替主机应答ARP包,存在的问题是这样搭建非常费时。

2、802.1X认证登陆时绑定MAC,这样做在使用身份认证服务器的时候非常方便,大型网络的建议方式。

3. QINQ方式,QINQ能提供一定的局域网内防止ARP洪泛攻击。

4. 主机安装ARP防火墙。

 

 

 

Thanks all

By 云林 yulin

相关 [内网 安全 arp] 推荐:

内网安全_arp的攻击与防御

- 雨翔 - Taobao QA Team
(本文图片和斜体内容来源于互联网,其他均为原创,转载引用请注明出处,qa.taobao.com ).     之前写过一篇小分享,现在沉淀一下,本文首先介绍ARP原理,ARP攻击原理与危害,最后给出在内网中的攻击实例以及防御方法.     时间关系,许多内容并没有详细介绍,譬如交换机集线器传输差别,ARP协议字段解释等,需要了解这方面的信息又google不明白的同学可以旺旺联系我,云林.

谁更安全?

- iceman.yu - 比特客栈的文艺复兴
原文:The triumph of coal marketing – Seth Godin. 翻译+整理:David Frank. 你对核能发电是不是也有一些看法. 相比其他的发电方式,它们谁更安全. 数据来自这里,图片来自这里,上图是一幅毫不夸张的数据简化图. 同样的发电量,每当核能发电误杀一个人,煤炭发电会导致4,000人的死亡.

网络安全

- - CSDN博客系统运维推荐文章
1、防止入侵者对主机进行ping探测,可以禁止Linux主机对ICMP包的回应.  iptables 防火墙上禁止ICMP应答.  关闭不必要的端口,时常检查网络端口情况.  nmap  可以扫描端口.  关闭不必要的服务和端口.  为网络服务指定非标准的端口.  开启防火墙,只允许授权用户访问相应的服务端口.

安全机制

- - 开源软件 - ITeye博客
ActiveMQ中所有安全相关的概念都是通过插件的形式实现的.这样可以通过ActiveMQ的XML. 配置文件的元素来简化配置和自定义安全认证机制.ActiveMQ提供两种认证方式:.     简单认证插件 -- 直接通过XML配置文件或者属性文件处理认证.     JAAS认证插件 -- 实现了JAAS API,提供一种更强大的可自定义的认证解决方案.

Memcached安全性

- - xiaobaoqiu Blog
1.Memcached -l参数. 1.Memcached -l参数. 最近整理了组内使用的Memcached. 发现很多问题,其中一个问题就是开发机器测试机器可以直连线上的Memcached. 这也是memcached公认的问题:memcached 是一种很简单、有效的协议,但也有其缺点,就是 memcached 自身没有 ACL 控制(或者相当弱).

sessionId安全性

- - 互联网 - ITeye博客
session id 安全性问题. 最一般的方法是自己管理session id. 用户login后,在后台加密出一个accessToken,并返回给用户. 客户端接收到accessToken,可以将它存起来,web的话可以存在session storage,手机也可以保存accessToken,用于单点登录.

HTML 安全列表

- 火锅土豆 - 酷壳 - CoolShell.cn
下面这个网站罗列了,几乎所有的关于HTML 5 在各种主流浏览器上的安全问题,这些安全问题很有可能将会是黑客攻击你的网上的敲门砖,他们几乎都和Javascript都有关系,你就要好好注意了. IE6,7,8,9,和Opera 8.x, 9.x, 10.x 都支持这样的语法. 这个问题会存在于所有的Firefox版本中,可以让用户进行XSS(跨站脚本)攻击.

王朔:安全感

- 7senchen - 每日鲜果精选
总有姑娘对我说:你给不了我安全感,对不起. 听得多了,“安全感”三个字在我脆弱的心里留下了厚重的阴影,遮心蔽肺,以至于看到安全帽、安全带、安全套之类的时候,我的心也会很忧郁. 我曾很真诚地问姑娘:什么是安全感. 姑娘说:安全感是一种感觉,我说不清,反正你给不了我这种感觉. 于是我绝望了,绝望不是因为不知道什么是安全感,而是因为我根本不相信两个人是因为安全感相爱.

tomcat安全设置

- - Web前端 - ITeye博客
原链接: http://blog.163.com/wm_at163/blog/static/13217349020112171618892/. server.xml默认有下面一行:. 这样允许任何人只要telnet到服务器的8005端口,输入"SHUTDOWN",然后回车,服务器立即就被关掉了. 从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的字符串,可以同时把端口也改了.

[原]IT安全治理

- - 阿朱=行业趋势+开发管理+架构
2、员工内鬼:IT部门人员、员工用户. 1、我不赞同在服务器上安装软件杀毒软件,往往存在应用软件文件被误杀或误阻拦的风险,使应用多莫名其妙报错. 2、及时更新系统安全类补丁,但不要什么补丁都不更新. 有些补丁的更新确实会引发遗留IT系统的报错,但安全类补丁的更新需要关注并尽量更新. 3、要从多层技术、组织/权责/流程/审批、定期检查多方面配套保证安全,单方面无法保证.