📖 常见的网络攻击及其防范
🎯 课程摘要:本节介绍三类常见网络攻击及其防范方法。第一类是网络扫描(主机发现、端口扫描、操作系统检测、漏洞扫描),用于获取攻击目标信息;第二类是网络监听(分组嗅探器、交换机毒化攻击、ARP 欺骗(ARP spoofing));第三类是拒绝服务攻击(基于漏洞、基于资源消耗、分布式拒绝服务(DDoS/DoS))。针对每类攻击给出相应的防范措施。
📝 详细笔记
1. 网络扫描
1.1 概述
- 网络扫描是获取攻击目标信息的重要技术
- 攻击目标信息包括:目的主机的 IP 地址、操作系统、运行的程序及存在的漏洞等
- 对目标信息掌握越全面,越能有效制定攻击策略,提高攻击成功率
四种类型:
| 类型 | 目的 |
|---|---|
| 主机发现 | 搜索要攻击的主机,确定其 IP 地址 |
| 端口扫描 | 获取目标主机所有端口的工作状态,得出开放了哪些网络服务 |
| 操作系统检测 | 检测远程目标主机使用的操作系统类型 |
| 漏洞扫描 | 根据操作系统类型和网络服务在漏洞库中查找匹配的漏洞 |
1.2 主机发现
- 主要方法:利用 ICMP 协议
- 攻击者向目标主机发送 ICMP 查询报文(如 ping),目标主机返回 ICMP 应答报文,攻击者据此判断目标主机正在运行
- 可使用 ping 命令对某 IP 地址范围内的所有地址进行连通性测试
针对防火墙阻断 ICMP 的绕过方法:
- 攻击者故意发送首部有错误的 IP 数据报
- 目标主机收到后会发送 ICMP 差错报告报文
- 一般防火墙不会阻断 ICMP 差错报告报文(否则会影响正常网络通信)
- 攻击者收到差错报告报文即知目标主机正在运行
1.3 端口扫描
| 协议 | 扫描方法 | 判断依据 |
|---|---|---|
| TCP | 作为 TCP 客户尝试与某端口建立 TCP 连接 | 连接是否成功建立 |
| UDP | 向某 UDP 目的端口发送 UDP 用户数据报 | 收到 ICMP"端口不可达"差错报告 → 端口关闭;无响应 → 端口打开 |
UDP 端口扫描原理:若目的端口关闭,目标主机发回 ICMP 差错报告(端口不可达);若端口打开,由于数据报内容不满足接收方要求,接收方不响应,攻击者收不到差错报告即可推断端口打开。
1.4 操作系统检测
| 方法 | 原理 |
|---|---|
| 获取操作系统旗标信息 | 服务器建立连接时返回独特的欢迎信息,可推断操作系统类型 |
| 获取主机端口状态信息 | 不同操作系统默认开启不同网络服务(对应不同端口),根据端口扫描结果推断 |
| 获取 TCP/IP 协议栈指纹 | RFC 未规定协议具体实现细节,不同操作系统实现不同(如 IP 数据报 TTL 默认值、TCP 窗口默认初始值不同) |
1.5 漏洞扫描
- 利用操作系统检测获知操作系统类型
- 利用端口扫描获知目标主机提供了哪些网络应用服务
- 根据操作系统类型和网络服务,在网络安全机构提供的漏洞库中查找匹配的漏洞
- 用户自己也可进行基于主机的漏洞扫描,及时修补漏洞
1.6 网络扫描的防范措施
- 仅打开确实需要使用的端口,关闭闲置和危险端口
- 限制因特网中的主机主动与内部网络中的主机进行通信
- 设置防火墙,根据安全要求设置分组过滤策略(如过滤不必要的 ICMP 报文)
- 使用 IDS 及时发现网络扫描行为和攻击者 IP 地址,配置防火墙对来自该地址的分组进行阻断
⚠️ 重点/考点:网络扫描工具是双刃剑——网络管理员可用它检测系统安全漏洞,网络攻击者可用它发现攻击目标。攻击者也会研究隐蔽手段:利用虚假源地址、减缓扫描速度、动态调整扫描顺序、分布式扫描等。
2. 网络监听
2.1 概述
- 网络中传输的数据大部分是明文形式
- 攻击者监听并截获包含明文信息的分组,可从中分析出账号、密码等敏感信息
- 常见类型:分组嗅探器、交换机毒化攻击、ARP 欺骗(ARP spoofing)
2.2 分组嗅探器
- 分组嗅探器是网络监听工具软件,运行在网络中某台主机上,被动接收所有出入该主机网络适配器的数据链路层协议数据单元
- 典型工具:Wireshark
- 若将网络适配器配置为混杂模式,网卡会接收所有进入自己接口的 MAC 帧,不管目的 MAC 地址是否指向自己
共享式以太网(集线器)vs 交换式以太网(交换机):
| 网络类型 | 嗅探效果 | 原因 |
|---|---|---|
| 共享式以太网(集线器) | 可嗅探所有帧 | 集线器广播特性,单播帧传送到所有主机 |
| 交换式以太网(交换机) | 无法直接嗅探 | 交换机根据转发表明确转发,不转发给其他主机 |
2.3 交换机毒化攻击
- 攻击者向交换机发送大量伪造不同源 MAC 地址的帧
- 交换机自学习将这些伪造的源 MAC 地址写入转发表
- 转发表很快被填满,真正需要保存的 MAC 地址被更新淘汰
- 交换机收到正常单播帧时,转发表中找不到目的 MAC 地址,被迫广播该单播帧
- 攻击者(网卡设为混杂模式)即可收到广播帧,实现监听
2.4 ARP 欺骗(ARP spoofing)
- 攻击者 C 希望监听主机 A 和 B 之间的通信
- C 向 A 发送 ARP 报文声称自己是 B → A 误认为 C 就是 B
- C 向 B 发送 ARP 报文声称自己是 A → B 误认为 C 就是 A
- A 给 B 的分组错误发送给 C,C 转发给 B;B 给 A 的分组也错误发送给 C,C 转发给 A
- A 和 B 之间的通信完全被 C 监听,而 A 和 B 不知道 C 的存在
⚠️ 重点/考点:ARP 欺骗本质上是中间人攻击。若网络中所有主机都被 ARP 欺骗,攻击者就将自己伪装成了路由器,可监听网络中的所有通信。
2.5 网络监听的防范措施
- 使用交换机替代集线器(提高性能,使监听更难实施)
- 禁用交换机自学习功能,将 IP 地址、MAC 地址与交换机接口静态绑定
- 限制非法主机接入,使交换机毒化攻击和 ARP 欺骗难以实施
- 对于 ARP 欺骗:主机或路由器仅使用静态 ARP 表,不再依据 ARP 请求/响应报文动态更新
- 划分 VLAN(虚拟局域网)限制攻击者的监听范围(分组嗅探器只能在单个局域网范围内进行)
- 最有效方法:进行数据加密和实体鉴别
3. 拒绝服务攻击
拒绝服务攻击(DoS)是最容易实现却又最难防范的攻击手段。
3.1 三种类型
| 类型 | 原理 | 典型攻击 |
|---|---|---|
| 基于漏洞的 DoS | 利用网络协议漏洞或操作系统漏洞,发送特殊分组使目标系统异常或崩溃 | 死亡之 Ping(Ping of Death) |
| 基于资源消耗的 DoS | 发送大量分组耗尽目标系统资源,使其崩溃无法提供服务 | TCP SYN 洪泛攻击 |
| 分布式拒绝服务(DDoS) | 控制大量僵尸主机同时发起攻击 | 僵尸网络攻击 |
3.2 基于漏洞的拒绝服务攻击
- 又称剧毒包或杀手包攻击
- 死亡之 Ping(Ping of Death):攻击者发送超长 ICMP 回送请求报文,封装成 IP 数据报后长度超过最大值 65535 字节,目标主机收到后发生内存分配错误,导致堆栈崩溃、系统死机
3.3 基于资源消耗的拒绝服务攻击
TCP SYN 洪泛攻击:
- 攻击者伪造大量不同 IP 地址,向 TCP 服务器发送大量 TCP 连接请求(SYN)
- 服务器无法区分正常与恶意请求,为每个请求建立 TCP 连接、分配缓存等资源,并发回确认
- 攻击者不对确认报文段进行响应,无法完成三报文握手,产生大量 TCP 半连接
- 半连接数量超过服务器允许上限时,服务器不再接受任何 TCP 连接请求,无法为正常客户提供服务
IP 数据报分片攻击:
- 攻击者构建大量不同 IP 数据报分片发送给目标主机
- 不发送完任何一个 IP 数据报的所有分片
- 目标主机一直缓存已收到的部分分片并等待所有分片,耗费越来越多系统缓存直至崩溃
反射攻击(如 Smurf 攻击):
- 攻击者向所在网络发送大量 ICMP 回送请求报文,目的 IP 为广播地址,源 IP 伪造成目标主机 C 的地址
- 网络中各主机作为反射节点,将 ICMP 回送回答报文都发往目标主机 C
- 可导致目标主机崩溃,也可能导致网络拥塞
- 具有放大攻击流量的功能,网络中主机越多放大效果越好
3.4 分布式拒绝服务攻击(DDoS)
- 基于资源消耗的 DoS 仅靠一个攻击源一般很难达到效果
- 攻击者先通过嗅探口令、漏洞渗透、木马等非法入侵手段控制因特网上的大量主机,使其成为僵尸主机
- 僵尸主机达到一定数量时,攻击者控制它们同时向目标服务器发起攻击
- 导致服务器资源耗尽而瘫痪,正常请求被拒绝服务
3.5 拒绝服务攻击的防范措施
| 措施 | 说明 |
|---|---|
| 防火墙过滤恶意分组 | 如过滤所有 ICMP 回送请求报文可防范 Smurf 攻击;但 TCP SYN 洪泛攻击难以区分恶意连接请求 |
| 源端过滤 | 使用支持源端过滤的路由器减少 IP 地址伪造;需所有路由器都支持,但目前非强制功能 |
| 追溯攻击源 | 路由器对通过的 IP 数据报首部进行标记,可追溯 DoS 攻击源;过程慢,主要用于事后追查和法律依据 |
| DoS 攻击检测 | 分析分组首部特征和流量特征,检测正在发生的 DoS 攻击并发出警报 |
⚠️ 重点/考点:上述措施不能彻底防范 DoS 攻击。DoS/DDoS 是目前最容易实现却又最难防范的攻击手段。源端过滤需要因特网上所有路由器配合,现实中难以实现。
💡 核心总结
- 网络扫描四步走:主机发现(ICMP/ping)→ 端口扫描(TCP 连接/UDP 探测)→ 操作系统检测(旗标/端口/协议栈指纹)→ 漏洞扫描(查漏洞库),是攻击的前期侦察,也是管理员自查的双刃剑
- 网络监听三手段:分组嗅探器(混杂模式抓帧)、交换机毒化攻击(填满转发表迫使广播)、ARP 欺骗(中间人攻击);防范核心是数据加密和实体鉴别
- 拒绝服务攻击三类型:基于漏洞(死亡之 Ping)、基于资源消耗(TCP SYN 洪泛、Smurf 反射攻击)、分布式(DDoS)(僵尸网络);最难防范,现有措施只能缓解
❓ 课后思考 / 经典考题
- 主机发现中,当防火墙阻断了 ICMP 查询报文时,攻击者如何利用 ICMP 差错报告报文来判断目标主机是否在线?
- UDP 端口扫描中,如何区分端口打开和端口关闭?为什么端口打开时接收方不响应?
- 共享式以太网和交换式以太网中,分组嗅探器的效果有何不同?交换机毒化攻击如何突破交换机的限制?
- ARP 欺骗(ARP spoofing)的原理是什么?为什么说它是一种中间人攻击?如何防范?
- TCP SYN 洪泛攻击是如何产生大量半连接的?为什么攻击者要伪造大量不同 IP 地址?
- Smurf 反射攻击如何实现流量放大?为什么网络中主机越多放大效果越好?
- 为什么说 DoS/DDoS 攻击是最容易实现却又最难防范的?源端过滤为何在现实中难以全面实施?