浅谈中间人攻击及防范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种“间接”的入侵攻击, 这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。然后入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或篡改传递的信息,然而两个原始计算机用户却认为他们是在互相通信,因而这种攻击方式并不很容易被发现。所以中间人攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到今天还具有极大的扩展空间。
在网络安全方面 ,MITM攻击的使用是很广泛的,曾经猖獗一时的SMB会话劫持、DNS欺骗等技术都是典型的MITM攻击手段。如今,在黑客技术越来越多的运用于以获取经济利益为目标的情况下时,MITM攻击成为对网银、网游、网上交易等最有威胁并且最具破坏性的一种攻击方式。
1、信息篡改
当主机A、和机B通信时,都由主机C来为其“转发”,如图一,而A、B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A、B却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。
2、信息窃取
当A、B通信时,C不主动去为其“转发”,只是把他们的传输的数据备份,以获取用户网络的活动,包括账户、密码等敏感信息,这是被动攻击也是非常难被发现的。
实施中间人攻击时,攻击者常考虑的方式是ARP欺骗或DNS欺骗等,将会话双方的通讯流暗中改变,而这种改变对于会话双方来说是完全透明的。以常见的DNS欺骗为例,目标将其DNS请求发送到攻击者这里,然后攻击者伪造DNS响应,将正确的IP地址替换为其他IP,之后你就登陆了这个攻击者指定的IP,而攻击者早就在这个IP中安排好了一个伪造的网站如某银行网站,从而骗取用户输入他们想得到的信息,如银行账号及密码等,这可以看作一种网络钓鱼攻击的一种方式。对于个人用户来说,要防范DNS劫持应该注意不点击不明的连接、不去来历不明的网站、不要在小网站进行网上交易,最重要的一点是记清你想去网站的域名,当然,你还可以把你常去的一些涉及到机密信息提交的网站的IP地址记下来,需要时直接输入IP地址登录。

防范MITM攻击,我们可以将一些机密信息进行加密后再传输,这样即使被“中间人”截取也难以破解,另外,有一些认证方式可以检

测到MITM攻击。比如设备或IP异常检测:如果用户以前从未使用某个设备或IP访问系统,则系统会采取措施。还有设备或IP频率检测:如果单一的设备或IP同时访问大量的用户帐号,系统也会采取措施。更有效防范MITM攻击的方法是进行带外认证,具体过程是:系统进行实时的自动电话回叫,将二次PIN码发送至SMS(短信网关),短信网关再转发给用户,用户收到后,再将二次PIN码发送到短信网关,以确认是否是真的用户。带外认证提供了多种不同的认证方式及认证渠道,它的好处是:所有的认证过程都不会被MITM攻击者接触到。例如MITM是通过中间的假网站来截获敏感信息的,相关的“带外认证”就是指通过电话认证或短信认证等方式确认用户的真实性,而MITM攻击者却不能得到任何信息。
认为通信流不会受中间人攻击的这种假设是非常危险的,因为攻击者有多种途径进入到您的通信通道中。后果可能非常严重。您已经了解中间人攻击如何能使 Kerberos 协商危险的弱密码套件。由于早期的互联网工程任务组(Internet Engineering Task Force,IETF)协议的设计不安全,地址解析协议(Address Resolution Protocol,ARP)布毒或 DNS 欺骗很完善,易于执行并且在多种环境中都非常有效。另外,网络可能包括恶意 DHCP 服务器,它可将所有可用客户机的默认网关设置到恶意路由器。即使在本地子网中没有攻击者,也很难确定所有处理两计算机间通信的路由器可抵御攻击,并以最有利于用户的方式运作。当这些路由器中的一些由不同公司或政府拥有并操作时,情况尤其如此。结果,大多数网络无法抵御简单的物理改变 - 机器背面的以太网电缆可能将您连接到目标位置以外的其他位置,而您还以为就是要找的位置。以上远未列出所有情况。
对于未对验证后的通信签署或加密的协议,此假设通常很明显。在这些条件下,攻击者可等到身份验证完成之后监视或更改之后的数据。多数情况下,这可使攻击者伪装为已通过身份验证的用户。
许多协议在身份验证之后不安全地发送出所有通信:电子邮件协议(如 IMAP 和 POP3 )就是最典型的示例。通常的解决方案是通过安全传输(IPsec 或 SSL/TLS)发送所有通信。这样,中间人不能监视通信,并且接收人可检测到任何想改变通信的企图。
在阻止攻击方面,还能做些什么呢?一个强大的身份验证协议(如 Kerberos,至少是 NTLM)可使双方协商一个共享会话密钥作为验证的一部分。此共享密钥可用于两种用途:完整性 - 签署消息从而防止篡改;隐私 - 加密通信从而防止偷听。如前所述,设计得当的身份验证协议可通过其自己的安全保证实现

以下目标:即中间人将无法获得共享会话密钥。此密钥的秘密就在于保护整个通信 - 使用它吧!
实现完整性和隐私性并不一定很困难。如果使用安全服务提供程序接口 (SSPI) 进行验证,仅几步便可引入完整性和隐私。
第 1 步是配置请求完整性和隐私的客户机和服务器。在客户端,通改在调用 InitializeSecurityContext 时添加两个标记即可完成该步。ISC_REQ_INTEGRITY 和 ISC_REQ_CONFIDENTIALITY 应添加给 fContextReq 参数。在服务器端需要添加两个标记。参数依然是 fContextReq,但在本例中,函数为 AcceptSecurityContext。此处的两个标记是 ASC_REQ_INTEGRITY 和 ASC_REQ_CONFIDENTIALITY。在客户机和服务器都使用这些标记很重要。SSPI 是一种与传输不相关的验证机制,因此它在验证和执行该验证的协议之间不进行关联。
现在考虑两种既使用 SSPI 又协商隐私的独特协议。对于协议 A,客户机要求隐私,而服务器则不要求。对于协议 B 则相反;服务器要求隐私,而客户机却不要求。表面上看,一切都挺好;所有连接应至少有一端要求隐私。不幸的是,攻击者实际上却可通过跨协议攻击利用此状况。
攻击者会建立两个连接:一个与协议 B 客户机相连,另一个与协议 A 服务器相连。建立连接后,每个连接均将通过中间人尝试 SSPI 验证。攻击者对两个验证都不必担忧,因为 SSPI 未绑定到特定协议。攻击者可从一个协议提取 SSPI 数据,然后将其插入另一个协议中。这样做几次后,攻击者将使这两个连接的验证取得成功。

相关文档
最新文档