故事发生在上世纪40年代……
在解放战争初期,东北牡丹江一带,奶头山有一个土匪副官叫栾平。他计划将包含重要信息的先遣图,献给威虎山的土匪头子座山雕。
而后栾平被共军抓获,侦查员杨子荣利用审讯栾平获得的情报以及先遣团,巧妙混入威虎山。
结局不用多说,栾平和座山雕自然都倒了大霉。
虽然那个时候没有互联网,但杨子荣采取的谋略却相当于现在威胁网络安全的中间人攻击(MITMA,man in the middle attack)。
中间人攻击是一种间接的入侵攻击,这种攻击模式是将一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
黑客利用这台“中间人”计算机模拟相互通信的一端或者两端,使“中间人”能够与原通信计算机建立活动连接并允许其读取或修改通信两端所传递的信息。
在故事里,栾平与座山雕就好比网络通信端A和通信端B;杨子荣好比是攻击者C;几人传递的先遣图和联络暗号,则好比是网络传输的数据信息。大多数情况下,中间人攻击是发生在局域网中。
1.DNS欺骗:
对于DNS服务器,相信小伙伴们都很熟悉了。在互联网的世界里,DNS(Domain Name System,域名系统)用于把访问域名解析成IP地址,使得用户发出的网络请求可以寻找到正确的目标服务器。
攻击者往往可以通过入侵DNS服务器,或是篡改用户本地hosts文件,从而截获到用户发出的请求。截获请求以后,根据不同目的,攻击者既可以让用户“误入歧途”,引导用户访问一个假网站,也可以把用户请求依旧转发给目标服务器,仅仅实现监听的目的。
欺骗的流程如下图所示:
需要注意的是,这里为了便于描述,大大简化了DNS解析的过程。实际场景涉及到DNS的递归查询、root DNS、A记录解析、CName解析等概念,以后有可能专门写文介绍相关知识。
2.APR欺骗:
如果说DNS欺骗是在广域网中的拦截用户请求,那么APR欺骗就是在局域网中的拦截用户请求。ARP(Address Resolution Protocol)地址解析协议,是一种将IP地址转化成物理地址的协议。
在局域网中,主机A想要跟主机B(假设IP是123)通信,不仅需要知道对方的IP,也要需要知道对方的MAC地址。如果主机A的本地ARP缓存表没有主机B的地址缓存,主机A就会在向局域网内的所有主机发起广播,请求IP为123的主机。
主机B收到广播,检查自己的IP地址与主机A请求中的IP地址一致,就会把自己的MAC地址返回给主机A。主机A接收到反馈以后,会把主机B的MAC地址存入本地ARP缓存表,以便下次直接使用。
如何实现APR欺骗呢?攻击者利用了APR协议的漏洞,通过局域网内部的一台主机(IP并不是123),冒充主机B,向主机A发送自己的MAC地址。主机A接到消息以后,无法识别消息是真的来自主机B,还是来自一个冒名顶替者,只能照样把接受到的新MAC地址存入ARP缓存表,取代原先的记录。
下一次,当主机A想要向主机B发送请求的时候,会先查询自己的ARP缓存表,查出主机B的MAC地址是def(本来应该是abc),结果把请求发给了主机D。从而让攻击者拦截到了请求信息。
3.代理服务器:
这个概念就很简单了。所谓代理服务器,就是用户主机在访问网站时所使用的各种代理,比如wifi,比如VPN,比如翻墙工具。这些代理未必都是可靠的,有些可能会遭到黑客攻击,有些可能自身就有问题。当用户通过这些代理发送请求的时候,请求信息自然而然就会被劫持。
1.使用DNSSEC机制
Domain Name System Security Extensions (DNSSEC)DNS安全扩展,是一系列DNS安全认证的机制,可以验证用户访问的站点地址是否有效,解决DNS欺骗的问题。
2.使用防火墙和杀毒软件
在局域网内,发起ARP欺骗的主机往往是中了病毒的机器,从而被黑客控制,因此需要定期查杀病毒。而防火墙可以有效地阻挡疑似APR欺骗的消息。
3.使用HTTPS协议
HTTPS协议在HTTP协议的基础上增加了SSL层,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。这样一来,即使攻击者截获了用户发出的请求信息,也无法解密信息,更无法篡改信息。
—————END—————
喜欢本文的朋友们,欢迎长按下图关注订阅号梦见,收看更多精彩内容
原文始发于微信公众号(程序员小灰):漫画:什么是中间人攻击