正在载入数据……

他们彼此深信,是瞬间迸发的热情让他们相遇。这样的确定是美丽的,但变幻无常更为美丽……
正在载入数据……

留言簿

公告

最新日志

最新评论

搜索

登陆

友情连接

统计

2007-11-22 20:13:00
局域网病毒的攻击原理与对策
一、以太网愿望很好,也很简单
  我们上网时所处的环境,一般都是以太网规范的局域网。
  在以太局域网技术被广泛使用的今天——在家中、办公室、无线上网、宾馆饭店等娱乐场所,并没有考虑安全。它假设每台计算机连接到局域网,是可以信赖的。1973年(我出生的同一年)以太网诞生时,34年前这个假设是可行的,但今天的以太局域网,这种假设显然是危险无比的。
  以太网采用带冲突检测的载波监听多路访问协议(CSMA/CD),是一种广播网络(就如同在教室里讲话一样)。它的工作过程如下:
  当以太网中的一台主机要传输数据时,它将按如下步骤进行:
  1、侦听信道上是否有信号在传输。如果有的话,就继续侦听,直到信道空闲为止。
  2、若没有侦听到任何信号,就传输数据。
  3、传输的时候继续侦听,如发现冲突则执行退避算法,随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会回到侦听状态。)
  4、若未发现冲突则发送成功,在试图再一次发送数据之前,必须在最近一次发送后再等待一定时间。
  从以上看出来,跟在教室里发言一样,每次只能有一个人讲话,并保证人人都有随时发言的机会。
二、广播让我们没了隐私
  因为是广播方式传输,所以每一台都能接受到信号。当数字信号到达一台主机的网络接口时,在正常情况下,网络接口读入数据帧,并进行检查,如果数据帧中携带的物理地址是自己的(给自己的),或者物理地址是广播地址(给每一个人的),则将数据帧交给上层协议软件处理,否则就将这个帧丢弃。也就是说计算机只关心是给自己的信息,别人的聊天即使听到也不继续关注。——多有君子风范。
  由此可见,我们可以改变为窃听方式。要使主机工作在监听模式下,只需要向网络接口发送控制命令,将其设置为监听模式。因此在,一个局域网内窃听信息是很容易的事情。当然在不同的局域网内是无法窃听的。一台计算机只能监听经过自己网络接口的那些数据包,不同的局域网的广播包是不能穿透的。就象我们不能听到隔壁教室的声音一样。以前的总线结构和以HUB为中心的星型联接都存在这种隐患。看到这里我相信很多人已经很害怕了,我们的上网已没有隐私可言了。不过,随着的交换机的出现,这种现象得到了一定的改善。因为在以交换机为中心的星型网内,交换机会学习和记忆,它只会把数据包转交给目的计算机(除了广播包),而不会总把数据包在整个网络内广播。就相当于教师给每一位同学发了一个手机,互想打电话就行了,当然除了要发布通知。所以,在交换式网络内,监听是有困难的。大家可以,松一口气了。
三、ARP协议会让我们被蒙上眼睛
  计算机的每一次联网(断网后重新联接),就象是人的一生。从出生到正常地和周围的人打交道。人能够通过外貌区分不同的人,那么计算机是怎样区分不同的计算机呢?计算机可以随意组装,千变万化,所以,要唯一确定一台计算机的身份是很难的,而且我们有时也不需要区分出来(不通信时)。但在联网时却要区分出来,否则数据包就找不到目标。因此联网的计算机只要联网的设备能唯一识别就可以了,因为计算机是通过网络设备跟网络进行通信的。大部分计算机是通过网卡(网络适配器)联网的,每一块网卡在出厂时有一个物理地址(MAC),它由厂商写在网卡的BIOS里。MAC地址采用6字节(48比特)表示。这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,后24位由厂商自行分配,这样的分配使得网卡都有唯一的标识。局域网内的数据包里都包含了目的计算机的MAC,正常情况下网卡也只把给自己的数据包传给上层协议,否则丢弃。
  但MAC地址是基于物理的,不能修改,也不容易记住。在互联网上一般使用IP地址进行区分不同的计算机,IP地址基于逻辑,比较灵活。IP地址是根据需要来指定的,IP地址对计算机来说不是固定的,有不确定性,ARP协议就是负责把IP地址转换为MAC地址。
  ARP原理:计算机A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址Ia与物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机(包括B)都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。如果目的计算机B不在同一个局域网内,则计算机A会把数据包发向网关,由网关负责后面的传输工作。如果计算机A在ARP缓存表内也找不到网关的IP地址对应的MAC地址,则也会发一个寻找网关MAC地址的ARP请求广播包。

  在正常情况下,局域网内计算机使用arp协议获取和记住,每一台与它通信的计算机的mac地址。

  从这里我们看来,ARP协议也是基于可信赖机理的。也就是我们相信是正确的计算机对ARP请求发出响应,但如果第三方恶意计算机对ARP请求也作出了响应,则请求计算机将被欺骗了,并且ARP缓存受到了污染。ARP缓存在动态更新之前,或者得到正确MAC地址之前一直被污染着。


  但arp协议没有提供防止滥用的保护。一台同一局域网的攻击电脑,可以简单地给其他电脑发送欺骗性的arp答复,告诉他们它的mac地址应该绑定到某个ip地址。
 
  “arp缓存污染”可以用来重定向整个局域网的传输方向。恶意计算机可以把自己插入到任何电脑的通信流之间达到监测的目的,甚至改变跨局域网的数据流。
  利用arp响应欺骗达到arp缓存污染,使得局域网的任何计算机能获得危险而强大的攻击条件,网络安全中称谓“中间人”(Man In The Middle,MITM) 。这个中间人能监控、过滤、修改和编辑局域网内任何毫无戒备和持信任态度的所有电脑之间的传输的数据。实际上,没有什么可以阻止它填充每个计算机的arp的缓存条目并指向它,使之成为一个局域网内的掌控者。
  典型案例就是局域网内Arp挂马——局域网内所有用户打开的任何网页都包含指向病毒网站的代码(<iFrame src=病毒网页 width=0 height=0 frameborder=0></IfRaMe>)。局域网的电脑打开的网页其实都是由“中间人”(中毒的计算机)代理或转手的,它在经过的数据包内指定的部分插入恶意代码。
四、如何防范
1、尽可能使用加密协议,虽然有些加密协议已能被破译。
2、使用802.1x和802.11x中基础端口的接入访问。这在公共场合比如酒店中是根本无法实现的。
3、静态绑定IP与MAC,定时用arp -d清理Arp缓存,安装Arp防火墙。对于Arp挂马源头上解决应该是打补丁,杀毒。
posted @ 2007-11-22 20:13:00 吴海忠 阅读全文 | 回复(0) | 引用通告 | 编辑
  • 标签:arp 以太网 
  • 发表评论:

      大名:
      密码: (游客无须输入密码)
      主页:
      标题:
      正在载入数据……
    Powered by Oblog.