什么是中间人(MITM)攻击?

中间人攻击(MITM)是一种 常见的网络安全攻击类型 这使得攻击者可以窃听两个目标之间的通信. 攻击发生在两个合法通信的主机之间, 允许攻击者“收听”他们通常无法收听的对话, 因此得名“中间人”.”

MITM attack example

Here’s an analogy: Alice and Bob are having a conversation; Eve wants to eavesdrop on the conversation but also remain transparent. 伊芙可以告诉爱丽丝她是鲍勃,告诉鲍勃她是爱丽丝.

这会让Alice相信她在和Bob说话, 同时还向伊芙透露了她的部分谈话内容. 夏娃就可以从中收集信息, alter the response,  并将信息传递给鲍勃(他认为他在和爱丽丝说话). 因此,伊芙就能够明显地劫持他们的对话.

中间人攻击的类型

Rogue Access Point 

配备无线网卡的设备通常会尝试自动连接到发出最强信号的接入点. 攻击者可以建立自己的无线接入点,并欺骗附近的设备加入其域. 所有受害者的网络流量现在都可以被攻击者操纵. 这很危险,因为攻击者甚至不必在受信任的网络上进行攻击—攻击者只需要足够近的物理距离即可.

ARP Spoofing

ARP是地址解析协议. 用于在局域网中将IP地址解析为物理MAC(媒体访问控制)地址. 当主机需要与具有给定IP地址的主机通信时, 它引用ARP缓存将IP地址解析为MAC地址. If the address is not known, 发出请求,要求获得具有IP地址的设备的MAC地址.

希望冒充另一台主机的攻击者可以用自己的MAC地址响应不应该响应的请求. 使用一些精确放置的数据包,攻击者可以嗅探两台主机之间的私有通信. 可以从交通中提取有价值的信息, 比如会话令牌的交换, 产生对应用程序帐户的完全访问权限,而攻击者不应该能够访问这些帐户.

mDNS Spoofing

组播DNS类似于DNS, 但它是在局域网(LAN)上使用像ARP这样的广播来完成的. 这使得它成为欺骗攻击的完美目标. 本地名称解析系统应该使网络设备的配置非常简单. Users don’t have to know exactly which addresses their devices should be communicating with; they let the system resolve it for them.

Devices such as TVs, printers, 娱乐系统使用这个协议,因为它们通常在可信的网络上. 当一个应用程序需要知道某个设备的地址时,比如电视.local, 攻击者可以很容易地用假数据响应该请求, 指示它解析到它所控制的地址. 因为设备保持地址的本地缓存, 受害者现在将看到攻击者的设备在一段时间内被信任.

DNS Spoofing 

类似于ARP在局域网中将IP地址解析为MAC地址的方式, DNS将域名解析为IP地址. 使用DNS欺骗攻击时, 攻击者试图将损坏的DNS缓存信息引入主机,试图使用其域名访问另一台主机, such as www.onlinebanking.com. 这将导致受害者向恶意主机发送敏感信息, 他们相信自己是在向可信的来源发送信息. 已经欺骗了IP地址的攻击者可以通过将DNS服务器的地址解析为攻击者的地址来更容易地欺骗DNS.

中间人攻击技术

Sniffing

攻击者利用抓包工具对报文进行低级检测. 使用允许进入监视或混杂模式的特定无线设备可以允许攻击者看到不打算让它看到的数据包, 比如发往其他主机的数据包.

Packet Injection

攻击者还可以利用其设备的监控模式将恶意数据包注入数据通信流. 数据包可以混入有效的数据通信流中, 似乎是交流的一部分, but malicious in nature. 数据包注入通常首先进行嗅探,以确定如何以及何时制作和发送数据包.

Session Hijacking

大多数web应用程序使用一种登录机制,生成一个临时会话令牌,用于将来的请求,以避免要求用户在每个页面输入密码. 攻击者可以嗅探敏感流量,以识别用户的会话令牌,并使用它作为用户发出请求. 攻击者拥有会话令牌后不需要欺骗.

SSL Stripping

因为使用HTTPS是防止ARP或DNS欺骗的常见保护措施, 攻击者使用SSL剥离来拦截数据包,并将基于http的地址请求更改为到达HTTP对等端点, 强制主机向未加密的服务器发出请求. 敏感信息可以以纯文本形式泄露.

如何检测中间人攻击

如果不采取适当的步骤,检测中间人攻击可能会很困难. 如果你没有主动搜索你的通讯是否被拦截, 中间人攻击可能会被忽视,直到为时已晚. 检查正确的页面身份验证和实现某种类型的篡改检测通常是检测可能的攻击的关键方法, 但这些程序可能需要额外的事后法医分析. 

在MITM攻击发生之前采取预防措施是很重要的, 而不是试图在它们积极发生时发现它们. 了解您的浏览习惯并识别潜在的有害区域对于维护安全网络至关重要. Below, 我们列出了防止MITM攻击危及通信的五个最佳实践.

MITM (man -the- middle)攻击防范

接入点上的强WEP/WAP加密

在无线接入点上使用强大的加密机制可以防止不需要的用户仅仅因为在附近就加入您的网络. 弱加密机制可以允许攻击者 brute-force 他进入网络,开始中间人攻击. 加密实现越强,越安全.

强路由器登录凭据 

确保你的默认路由器登录名被更改是很重要的. 不仅是你的Wi-Fi密码,还有你的路由器登录凭证. 如果攻击者发现您的路由器登录凭证, 他们可以把你的DNS服务器改成他们的恶意服务器. 更糟糕的是,用恶意软件感染你的路由器.

Virtual Private Network

vpn可以为局域网内的敏感信息创建一个安全的环境. 它们使用基于密钥的加密来创建一个子网,用于安全通信. This way, 即使攻击者碰巧进入了共享的网络, 他将无法破译VPN中的流量.

Force HTTPS

HTTPS可用于使用公私密钥交换在HTTP上进行安全通信. 这可以防止攻击者使用他可能正在嗅探的数据. 网站应该只使用HTTPS,而不提供HTTP替代方案. 用户可以安装浏览器插件来强制请求始终使用HTTPS.

基于公钥对的认证

中间人攻击通常包括欺骗某些东西. 像RSA这样基于公钥对的身份验证可以在堆栈的各个层中使用,以帮助确保您正在与之通信的对象是否确实是您想要与之通信的对象.