当前位置: 首页 > news >正文

网络安全威胁——中间人攻击

中间人攻击

    • 1. 定义
    • 2. 中间人攻击如何工作
    • 3. 常见中间人攻击类型
    • 4. 如何防止中间人攻击

1. 定义

中间人攻击(Man-in-the-Middle Attack,简称MITM),是一种会话劫持攻击。攻击者作为中间人,劫持通信双方会话并操纵通信过程,而通信双方并不知情,从而达到窃取信息或冒充访问的目的。

中间人攻击是一个统称,具体的攻击方式有很多种,例如Wi-Fi仿冒、邮件劫持、DNS欺骗、SSL劫持等。中间人攻击常用于窃取用户登录凭据、电子邮件和银行账户等个人信息,是对网银、网游、网上交易等在线系统极具破坏性的一种攻击方式。

2. 中间人攻击如何工作

假设你在一家咖啡馆,使用笔记本电脑搜索到一个咖啡馆名字的Wi-Fi接入点,顺利连接上网,然后您开始登录各种在线系统。浏览器提示连接不安全的信息,但是您并没有注意,选择继续访问,此时可能中间人攻击已经发生。您的一举一动都在攻击者监视之下,账号、家庭住址、邮箱等个人信息都将被攻击者截获。

在这里插入图片描述

中间人攻击主要有两个步骤:

  • 攻击者将自己插入到通信双方的链路中,拦截通信流量,为窃取数据或冒充访问做准备

例如Wi-Fi仿冒就是很常用的一种方式,用户一旦通过虚假Wi-Fi路由器上网,后续的通信流量将完全经过虚假Wi-Fi路由器,任何行为都在攻击者的监控之下。除了Wi-Fi仿冒,投放恶意软件、DNS欺骗、ARP欺骗等技术也都是常用的中间人攻击技术。

  • 攻击者插入通信链路之后就可以操纵通信双方的通信,开始窃取数据、冒充访问等操作

涉及伪造网站、解密流量等技术。例如浏览器之所以提示不安全信息,是因为攻击者伪造用户访问的网站服务器证书,向浏览器发送虚假证书,浏览器无法验证证书真实性。用户选择继续访问后,攻击者就分别与用户和服务器建立了连接,而用户并不知情,然后攻击者即可以解密流量窃取数据或篡改数据。

3. 常见中间人攻击类型

实际攻击者可以使用多种不同的技术进行中间人攻击。以下介绍几种常用的攻击类型及使用的技术。

(1)Wi-Fi仿冒

这种攻击方式是最简单、常用的一种中间人攻击方式。攻击者创建恶意Wi-Fi接入点,接入点名称一般与当前环境相关,例如某某咖啡馆,具有极大迷惑性,而且没有加密保护。当用户不小心接入恶意Wi-Fi接入点后,用户后续所有的通信流量都将被攻击者截获,进而个人信息被窃取。

(2)ARP欺骗

ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。

ARP欺骗也称为ARP投毒,即攻击者污染用户的ARP缓存,达到使用户流量发往攻击者主机的目的。局域网用户发起访问都需要由网关进行转发,用户首先发起ARP请求获取网关IP地址对应的MAC地址,此时攻击者冒充网关向用户应答自己的MAC地址,用户将错误的MAC地址加入自己的ARP缓存,那么后续用户所有流量都将发往攻击者主机。

(3)DNS欺骗

DNS欺骗也称为DNS劫持。用户访问互联网的第一步就是向DNS服务器发起DNS请求,获取网站域名对应的IP地址,然后DNS服务器返回域名和IP地址的对应关系。攻击者利用这一过程,篡改域名对应的IP地址,达到重定向用户访问的目的。对于用户来说,浏览器访问的还是一个合法网站,但实际访问的是攻击者指定的IP地址对应的虚假网站。

例如,某次著名的DNS欺骗攻击,攻击者通过恶意软件劫持超过400万台计算机的DNS服务器设置,将DNS请求指向攻击者的DNS服务器,从而返回虚假网站IP地址,获得约1400万美元的收入。

(4)邮件劫持

攻击者劫持银行或其他金融机构的邮箱服务器,邮箱服务器中有大量用户邮箱账户。然后攻击者就可以监控用户的邮件往来,甚至可以冒充银行向个人用户发送邮件,获取用户信息并引诱用户进行汇款等操作。

例如,2015年某国银行被攻击者窃取了600万欧元。在此次攻击中,攻击者能够访问银行电子邮箱账户,并通过恶意软件或其他社会工程学方法引诱客户向某账户汇款。

(5)SSL劫持

当今绝大部分网站采用HTTPS方式进行访问,也就是用户与网站服务器间建立SSL连接,基于SSL证书进行数据验证和加密。HTTPS可以在一定程度上减少中间人攻击,但是攻击者还是会使用各种技术尝试破坏HTTPS,SSL劫持就是其中的一种。

**SSL劫持也称为SSL证书欺骗,攻击者伪造网站服务器证书,公钥替换为自己的公钥,然后将虚假证书发给用户。**此时用户浏览器会提示不安全,但是如果用户安全意识不强继续浏览,攻击者就可以控制用户和服务器之间的通信,解密流量,窃取甚至篡改数据。

另外,攻击者还可能直接入侵数字证书发行商,窃取知名网站的真实证书。2011年某数字证书发行商就被攻击者窃取了500多个知名网站证书,从而引发大量用户个人信息泄露。

4. 如何防止中间人攻击

中间人攻击虽然多种多样、难以识别,但是我们还是可以采取一些措施,降低风险。以下列举一些常见的防止中间人攻击的措施。

  • 不随意连接公共Wi-Fi,仅连接已知可信的Wi-Fi,避免流量被恶意劫持。自有Wi-Fi不要使用路由器默认密码,设置高强度加密保护,避免被破解。
  • 确保访问HTTPS网站,可以安装开源HTTPS Everywhere浏览器插件,使浏览器自动连接HTTPS网站。
  • 不随意忽略证书不安全告警,如果产生告警说明浏览的网站可能不安全。
  • 远程访问使用VPN,保护通信流量。
  • 不打开钓鱼邮件,钓鱼邮件一般会伪装成合法来源,并要求用户点击链接。注意识别钓鱼邮件,尤其不能点击邮件中的链接,否则可能会下载恶意软件或被重定向到恶意网站。
  • 安装并及时更新杀毒软件。
  • 部署防火墙、终端安全软件,阻断恶意攻击。业务系统尽量采用多因子认证,提升黑客破解难度。

相关文章:

  • Distilling Knowledge via Knowledge Review 中文版
  • 封装PoiExcelUtils
  • GPT-Crawler一键爬虫构建GPTs知识库
  • 吉他初学者学习网站搭建系列(5)——如何做一个在线节拍器
  • Android:BackStackRecord
  • error转string
  • uniapp使用vue-i18n国际化多国语言
  • 记录 | CUDA编程中使用#ifdef指令控制生成CPU和GPU代码
  • [足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-3线性化Linearization
  • CoreDNS实战(九)-性能压测
  • IDEA连接Redis注意事项
  • Arduino项目式编程教学第三章——红外遥控灯
  • CSS单位vmin、vmax
  • 【JMeter】BeanShell了解基础知识
  • C/C++---------------LeetCode第118. 杨辉三角
  • [译] React v16.8: 含有Hooks的版本
  • 《Java编程思想》读书笔记-对象导论
  • Bytom交易说明(账户管理模式)
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript中的对象个人分享
  • js中forEach回调同异步问题
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Travix是如何部署应用程序到Kubernetes上的
  • 欢迎参加第二届中国游戏开发者大会
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 温故知新之javascript面向对象
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 选择阿里云数据库HBase版十大理由
  • (5)STL算法之复制
  • (9)目标检测_SSD的原理
  • (arch)linux 转换文件编码格式
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (八十八)VFL语言初步 - 实现布局
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .gitignore文件设置了忽略但不生效
  • .NET Core Web APi类库如何内嵌运行?
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 分布式技术比较
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [@Controller]4 详解@ModelAttribute
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [BT]BUUCTF刷题第9天(3.27)
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C++] sqlite3_get_table 的使用
  • [DM复习]关联规则挖掘(下)
  • [hdu1561] The more, The Better 【树形DP】
  • [jobdu]不用加减乘除做加法
  • [JS]Math.random()随机数的二三事