你可能听说过“中间人攻击(MiTM)”这个词,甚至可能对它还存在一个模糊的概念。但是,你仍旧会想“到底什么才是中间人攻击?”下面这篇文章就将为您提供解答。
总的来说,中间人(man-in-the-middle,MITM)攻击非常难以识别和防御。作为一种由来已久的网络入侵手段,MITM攻击依赖于控制人、计算机或服务器之间的通信路线,它并不总是需要一台受感染的计算机,这就意味着存在多种攻击途径。
那么,究竟什么才是中间人攻击?我们又该如何防止自身沦为猎物呢?
什么是中间人攻击?
中间人攻击是一种可以回溯到早期计算时代的网络入侵方式。当未授权的实体将自己置于两个通讯系统之间并试图截获正在传递的信息时,便会发生此类攻击,其本质便是窃听攻击。为了更好地理解中间人攻击的工作原理,可以参考如下两个示例。
离线中间人攻击
离线中间人攻击听起来比较基础,但目前仍在全球范围内使用。
例如,有人拦截了你发布的消息,对其进行了读取和重新打包,然后将其发回给您或您的原始收件人。然后,当对方回复您时,同样的情况会再次上演,该中间人会继续截获并阅读原本通信双方互发的所有信息。
如果操作得当的话,通信双方完全不会知道自己遭遇了中间人攻击,因为他们根本看不到这些信息曾被截获和窃取过。
接管两个参与者之间的通信通道是中间人攻击的核心。
它还为攻击者打开了其他欺骗途径。如果攻击者控制了通信方式,那么他们就可以篡改传输中的消息。就我们上述示例而言,攻击者不仅可以拦截并读取通信双方传递的信息,甚至还可以篡改消息内容,提出特定请求作为其攻击活动的一部分。
当中间人控制您的通信时,他们还可以在完成攻击后立即删除与此次攻击相关的任何信息记录,让通信双方无法察觉任何异常。
在线中间人攻击
尽管使用计算机或其他数字硬件代替了传统的信件,但是在线中间人攻击的工作原理几乎与离线中间人攻击相同。
例如,您用计算机设备连接到咖啡馆的免费公共Wi-Fi上,然后试图访问银行的网站。随后,您可能会遇到如下错误提示。
如上图所示,您会遇到一个证书错误,通知您该银行的网站不具备有效的加密证书。这表面上好像是提醒您银行的配置存在问题,真实情况却是中间人攻击正在进行中。
尽管如此,很多人仍然选择单击该错误信息并继续访问该银行网站。之后,他们进行银行账户登录、汇款、账单支付等操作,貌似一切如常。
而实际上,攻击者可能已经建立好了一个虚假的服务器和伪造的银行网站。当你连接到虚假的银行服务器时,他们会将目标银行的真实页面略作修改,并呈现给您。您所有输入的登录详细信息,都将被发送到中间人服务器的后台。
这也就解释了上图中出现的加密证书错误的安全提醒。中间人服务器根本就没有与真实银行相同的安全证书,尽管它可能也具有其他的安全证书。
中间人攻击的类型
具体来说,中间人攻击有多种不同的类型:
(1) Wi-Fi欺骗
攻击者可以创建与本地免费Wi-Fi选项同名的虚假Wi-Fi接入点(AP)。例如,在上例的咖啡馆中,攻击者可能会模仿Wi-Fi名称或创建一个名为“Guest Wi-Fi”或类似名称的伪造选项。一旦您连接到了恶意访问点,攻击者就可以监视您的一切在线活动。
(2) HTTPS欺骗
攻击者通过欺骗您的浏览器,使您认为自己访问的是可信任站点,而实际上却将流量重定向到了不安全的网站。当您输入登录凭据时,攻击者就会窃取它们。
(3) SSL劫持
当您尝试连接或访问不安全的HTTP站点时,浏览器可以将您重定向到安全的HTTPS选项。但是,攻击者可以劫持重定向过程,将指向其自建服务器的链接植入其中,进而窃取您的敏感数据以及您输入的所有凭据。
(4) DNS欺骗
为了帮您准确地浏览目标网站,域名系统会将地址栏中的URL从人类可读的文本格式转换为计算机的IP地址。然而,DNS欺骗则会迫使您的浏览器访问攻击者控制的特定地址。
(5) 电子邮件劫持
如果攻击者获得了受信任机构(例如银行)的邮箱甚至是邮件服务器的访问权限,那么他们就可能会拦截包含敏感信息的客户电子邮件,甚至开始以该机构的身份发送各种电子邮件。
这只是一些典型的中间人攻击方式。除此之外,此类攻击还存在许多变种和不同的组合。
HTTPS是否可以阻止中间人攻击?
上述情况如果发生在使用HTTPS(HTTP的安全版本)的银行网站上,用户就会收到一个弹出消息,提示其加密证书不正确。现在,几乎每个网站都使用HTTPS,您可以在地址栏中的URL旁边看到一个带锁的图标。
过去很长一段时间,只有那些提供敏感信息的网站才会使用HTTPS。但是现在情况已经发生了改变,特别是自从Google宣布它将使用HTTPS作为SEO的排名参考标准以来。据统计,2014年,在全球排名前一百万的网站中,只有1-2%使用了HTTPS。到2018年,这一数字激增,在全球排名前一百万的网站中,已有超过50%的企业实施了HTTPS。
在未加密的网站上使用标准的HTTP连接,你就不会收到上述示例中收到的警告,也就更容易遭遇中间人攻击。
那么,HTTPS是否真的可以防御MITM攻击?
MITM和SSLStrip
答案是,是的,HTTPS可以防止中间人攻击。但是,攻击者可以通过多种方法来破坏HTTPS,从而消除通过加密为您的连接提供的额外安全性。
以SSL剥离(SSLStrip)类型的中间人攻击为例。SSL剥离或SSL降级攻击是MiTM攻击的一种十分罕见的方式,但是也是最危险的一种。众所周知,SSL/TLS证书通过加密保护着我们的通讯安全。在SSL剥离攻击中,攻击者使SSL/TLS连接剥落,随之协议便从安全的HTTPS变成了不安全的HTTP。
对于这种攻击方式,你甚至可能完全察觉不到任何异常。通过细心观察Google Chrome浏览器和其他浏览器的地址栏是否带有大红叉或惊叹号的通知,可以帮助你发现一丝异常。如今,HTTPS添加的带锁标记无疑让用户能够更容易发现自己是否正在使用HTTPS。
除此之外,另一种安全升级也削弱了SSL剥离的功效,它就是HTTP严格传输安全性(HTTP Strict Transport Security,HSTS)。
HTTP严格传输安全性(HSTS)的开发旨在防止中间人攻击,尤其是SSL剥离等协议降级攻击。HSTS具有一项特殊功能,它能够强制要求Web服务器与所有用户仅使用HTTPS进行交互。
但这并不意味着HSTS能够一直奏效,因为HSTS只能在用户首次访问后与用户进行配置。因此,理论上来说,攻击者可以利用这种短暂的时间差,在HSTS配置到位之前使用SSL剥离之类的中间人攻击。
这还不是全部。如今,SSL剥离已经让位于其他现代工具,它们将许多中间人攻击类型整合到一个工具包中,开展更为复杂的攻击。
MITM恶意软件
除此之外,用户还必须应对使用中间人攻击或带有中间人模块的恶意软件变种。例如,某些针对Android用户的恶意软件类型(例如SpyEye和ZeuS),就允许攻击者窃听传入和传出智能手机的所有数据通信形式。
这些恶意软件一旦安装在Android设备上,攻击者就可以用其拦截所有形式的通信。其中最关键的信息是双因素验证码。攻击者可以在真实的安全网站上请求双因素身份验证码,然后在用户作出反应甚至了解正在发生的事情之前,对该验证码进行拦截。
如您所料,台式机也并非不存在威胁。事实上存在很多专为中间人攻击而设计的恶意软件类型和漏洞利用工具包。更别提联想曾在发货之前在其笔记本电脑上安装了支持SSL剥离的恶意软件的事件了。
如何防范中间人攻击?
中间人攻击很难防御。攻击者存在多种攻击组合,这也就意味着防范中间人攻击的方法也必须是多方位的:
- 使用HTTPS:确保您访问的每个网站都使用HTTPS标头。毕竟面对SSL剥离和中间人恶意软件,确保使用HTTPS仍然是最好的防御选择之一;
- 不要忽略警告:如果您的浏览器提示,您正在访问的网站存在安全问题,那么就请引起足够的重视。毕竟安全证书警告可以帮您直观地判定您的登录凭据是否会被攻击者截获;
- 不要使用公共Wi-Fi:如果可以的话,尽量不要使用公共Wi-Fi。有时,无法避免使用公共Wi-Fi,那么请下载并安装虚拟专用网,为连接增加安全性。此外,在使用公共Wi-Fi连接时,请留意浏览器的安全警告。如果警告的数量突然猛增,那么很可能表明存在中间人攻击或漏洞;
- 点击电子邮件前,检查电子邮件的发件人;
- 如果你是一个网站管理员,你应当执行HSTS协议;
- 如果你的网站使用了SSL,确保你禁用了不安全的SSL/TLS协议。你应当只启用了TLS 1.1和TLS 1.2;
- 运行并更新防病毒软件:请确保防病毒软件处于最新状态,此外也可以考虑使用其他安全工具,例如Malwarebytes。
本文翻译自:https://www.makeuseof.com/what-is-a-man-in-the-middle-attack/