MITM攻击简介

标签:
攻防it |
分类: 安全 |
随着当今社会的信息化程度越来越高,人们的工作生活与网络,与电子信息的关系也越来越紧密,对电子信息数据传输的安全性要求也越来越高。即使在采取了加密等安全保护措施保护的情况下,针对电子信息数据传输的中间人攻击可能依然有效,本文将介绍中间人攻击原理及其常见攻击场景,以提高读者对此类攻击的防范意识。
文/H3C攻防团队
一、
中间人攻击原理
中间人攻击(Man-in-the-Middle Attack,简称MITM攻击)是一种通过窃取或窜改两方通信内容间接完成攻击行为的网络攻击方法。这种攻击模式通过各种攻击手段入侵控制或者直接以物理接入方式操控两台通信计算机之间的主机并通过这台主机达到攻击两台通信计算机中任意一方的目的。这个被攻击者控制的通信节点就是所谓的“中间人”。中间人攻击很早就成为了黑客常用的一种攻击手段,其思想可以追溯到上千年前的古代,春秋战国时期窃符救赵的信陵君,窃取兵符控制军队即是针对魏王与军队之间信息传递方式的典型中间人攻击。
由于网络通信设计初期,安全因素并没有被充分的考虑,互联网工程任务组(IETF)设计的ARP、DNS、DHCP等常用协议都没有考虑网络通信被人恶意窜改的情况,即使在局域网中没有攻击者,只要有个别操作人员错误的配置了网络中的一个非关键结点(如多启动一个DHCP服务器),就有可能影响网络中其它结点的正常网络通信,这些早期的协议更无法对简单的物理连接改变而可能引入的安全问题进行防御。网络的互通与向下兼容性决定了继承这些协议的现代网络中,依然会被这些问题困扰。
二、
中间人攻击有两种常见形式:基于监听的信息窃取与身份仿冒,与基于代理的信息窃取与窜改。以下为中间人攻击比较典型方式及其网络环境。
1. 基于监听的信息窃取
在同一个冲突域的局域网络中攻击者只要将网卡设为混杂模式,就可以轻松监听网络中的流量,通过Wireshark,Tcpdump等工具软件就可以过滤出密码、通信内容等敏感信息实现攻击。由于很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等,如果通信数据被监听,就会造成相当大的安全问题。
通过集线器连接的以太网络或是以太网线路中被恶意物理接入集线器及监听节点就是这种攻击方式的常见网络环境。其防御方法也很简单,就是确保物理连接不被改动,冲突域中不存在第三方节点,如改用计算机直接连接交换机的组网方式。
2.
在物理上不能保证通信不被监听的情况下,为了保护重要信息不被泄露,网络系统一般会对口令、敏感内容进行加密传输或引入Kerbose、SSL等协议对登录认证等关键通信过程进行加密保护。但是限于性能、效率等因素,并不是所有网络系统都能保证所有传输内容得到加密保护,如一般的Web网站系统,只会对登录认证过程进行加密,而后续用户与网站的交互采用明文的HTTP协议传输。基于监听的中间人攻击,在口令或认证过程加密的情况下,通过其它技术手段也会对网络造成安全威胁,比较典型的手法是针对HTTP Cookie的攻击。
网站用户在访问网站前常常需要输入用户名与密码。网站会为通过验证的登录用户建立会话,一般会用Cookie(网站储存在用户本地浏览器上的数据,并在每次访问时提交给网站)保持对会话追踪以确认访问者的身份及登陆状态,并根据身份及登录状态为访问者设置访问网站资源的权限。当会话结束时,登陆信息就会被清除,但Cookie可能不会马上失效。尽管访问者在浏览网站过程中通常没有意识到这种会话的存在,但它确实发生在每一次的链接点击过程中,是网站中最常见的会话形式。如果能够获取用于维持浏览器和登陆网站间会话状态的Cookie,攻击者可以模拟真实用户的访问,将窃取的Cookie发给网站服务器,这样就能冒充合法的会话连接获得在网站资源的相应权限(如图1所示)。攻击者一旦通过窃取Cookie完成对网站服务器的会话欺骗,受害者在网站上的个人数据将被任意查看和修改,受害者的帐号也可能被用于基于社交网络的攻击与诈骗。
防御基于Cookie的中间人攻击,服务器端可以把Cookie的有效时间设置为较短时间,以使已经结束会话的缓存状态尽快失效。另外,服务器或IPS设备在处理Cookie时,可以绑定一些用户信息如IP地址等,并对其进行验证,这样可以有效防止相当一部分的攻击。作为Web用户,在登录后结束浏览时,应该使用退出功能明确通知服务器会话已经结束,使Cookie立即失效。
http://www.h3c.com.cn/res/201211/01/20121101_1436503_image001_758700_30008_0.jpg
图1
1)
ARP欺骗(ARP Spoofing)
ARP欺骗是现代中间人攻击中最早出现的攻击形式,能够让与受害主机在相同子网的攻击者主机窃取目标主机的所有网络流,是比较容易执行且相当有效的中间人攻击形式。
从ARP工作机制可以看出,ARP协议简单易用,但是却没有任何安全机制,使用ARP协议的设备会接受在任何时间源自任何主机的ARP更新。这意味着攻击者可以向子网内另一台主机发送ARP数据包,并迫使目标主机更新其ARP缓存。ARP欺骗主要有仿冒网关或仿冒用户两类,由于子网内的主机与外网通信均需要经过网关,仿冒网关而进行的中间人攻击最为常见。
如图2所示,因为攻击主机A仿冒网关向主机B发送了伪造的网关ARP报文,导致主机B的ARP表中记录了错误的网关地址映射关系,正常的数据从而不能被网关接收。主机B原本通过网关发送到外网的所有数据报文都按照学习到的错误ARP表项发送到了攻击者控制的主机A,此时主机A可以把主机B的报文解析修改后转发给网关,并在后续将网关转回的外网回应报文解析修改后转发给主机B,成为主机B与网关之间的“中间人”。
防御ARP欺骗的主要方法有在整个局域网使用静态ARP,及通过主机ARP防护软件或交换机、路由器对ARP进行过滤及安全确认,其核心目标均是建立正确的ARP表项。静态ARP通过手动配置或自动学习后再固化的方式,在主机及网络设备上建立静态不变的正确ARP表项。而伪造ARP报文的检测,需要由主机或网络设备提借额外的安全功能。伪造ARP报文具有如下特点:源MAC地址/目的MAC地址和以太网帧封装中的源MAC地址/目的MAC地址不一致;源IP地址和源MAC地址的映射关系不是合法用户真实的映射关系。精确的过滤与安全确认能有效的阻止ARP欺骗的发生。
http://www.h3c.com.cn/res/201211/01/20121101_1436504_image002_758700_30008_0.png
图2
DNS欺骗是攻击者冒充域名服务器让目标主机把域名转换成错误IP的一种欺骗行为,其目的是让受害主机把通过域名查询到的IP地址设为攻击者所控制主机的IP地址。如果受到此类攻击,用户通过域名连接的目标服务器可能被悄无声息地替换成了伪造服务。攻击者也可以在伪服务器上把受害主机的流量解析修改后冒名转发给真实的服务器,由“冒名顶替者”变为“中间人”。DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。其常被用于与钓鱼网站配合,如将用户对银行主页的访问重定向到攻击者所控制的钓鱼网站,骗取银行密码等。
DNS机制中,DNS服务器包含着一个数据库,域名与IP地址相互映射关系存储在其中。在正常的通信中,当主机不知道域名对应的IP地址时,主机发送解析请求到DNS服务器,DNS服务器响应正确的IP地址信息。如果当前DNS服务器没有相应的映射数据,它将发送请求到外部其它DNS服务器来获取正确的响应。DNS欺骗的关键是让受害主机或没有映射数据的DNS服务器相信伪造的DNS响应的真实性。
实现DNS欺骗攻击的方法有多种,比较典型的为DNS劫持(又称域名劫持)。每个通过互联网发送的DNS请求都包含一个独特的识别码,其目的在于辨识、查询和响应,并将对应的查询和响应配对在一起。这就意味着,如果攻击主机可以拦截目标设备发送的DNS查询,攻击者只需要做一个包含该识别码的假数据包,这样目标计算机就会根据识别码而接受攻击主机发送的查询结果,从而达到DNS劫持的目的。实现DNS劫持的前提条件是,攻击者对网络的数据包有一定的拦截能力,如通过ARP缓存投毒干扰DNS查询的响应报文,以便乘机伪造替换。其它常见的DNS欺骗方法有:直入侵接控制DNS服务器或利用漏洞修改域名IP映射,通过病毒等手段修改主机上的DNS配置文件等。
SSL(Secure Sockets Layer,安全套接层)及其继任者TLS(Transport Layer Security 传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,通常与其他协议结合使用以确保该协议提供服务的安全部署,如SMTPS、IMAPS及最常见的HTTPS,最终目的是在不够安全的网络中创建安全通道。SSL欺骗通常以伪造的服务器,使用明文协议如HTTP与客户端建立连接,同时顶替客户端与真正的服务建立使用SSL加密的连接,受害者与合法服务器之间的全部通信经过“中间人”的代理转发,如图3所示。
由于人们信赖SSL所加密的服务,
http://www.h3c.com.cn/res/201211/01/20121101_1436505_image003_758700_30008_0.jpg
三、 结束语
中间人攻击是一种非常危险的攻击形式,时常与钓鱼网站、挂马网站等攻击形式结合,不仅造成信息的泄漏,还可能被借用于病毒木马的传播。更重要的是,这种攻击可能将我们认为绝对安全的网络连接变成完全被人监听控制的连接,使得网络连接的私密性得不到保障,造成重要数据轻易落入攻击者之手。由于网络环境的复杂性,我们有必要对中间人攻击有进行了解,具备初步判断网络连接安全性的能力。