Artículos del equipoOperar una red

IP 欺骗攻击的类型

分清反射、放大和直接流量攻击,再看 ARP 欺骗、DNS 欺骗、僵尸网络为什么不是同一件事。

Índice

三处白色柜台前的信封沿蓝色路径汇向一栋房屋,蓝色信箱已经装满。
多个服务把回信寄给了一个从未提问的人。反射攻击正是让无辜的接收方承担这些回复。

名字里有“欺骗”的攻击,不一定都在伪造 IP 地址;流量突然暴增,也不一定用了假地址。要把事情看清楚,可以先问两句:改假的是什么信息?流量最后被送到了哪里?

反射:回信送到了无辜的人那里

想象有人同时向好几家机构发出询问,却都填上同一个无辜者的回信地址。机构照常回复,那个无辜者就收到了一堆自己根本没问过的问题的答案。

在网络上,如果服务没有先确认发送方确实能在所填地址接收消息,就直接回应,伪造源地址便可能产生这样的效果。若一个很小的请求引来很大的回复,还会产生放大效应。RFC 5358说明了开放式递归 DNS 服务如何被这样利用。“反射”说的是回复去了哪里,“放大”说的是回复比请求大多少,两者不能混为一谈。

直接打向目标的流量攻击

另一类攻击直接向目标发送大量流量,消耗带宽、处理能力或连接资源。有些使用假源地址,有些则来自被控制的设备,使用的就是那些设备的真实地址。

DDoS,即分布式拒绝服务,描述的是多个来源共同干扰服务可用性,并不意味着这些地址一定是假的。僵尸网络是一组被控制的设备,也不是一种独立的 IP 欺骗方式。拦住伪造来源有帮助,但不能据此说已经挡住所有 DDoS 攻击。

冒充熟悉的来源

有些服务看到熟悉的 IP 就放宽权限。伪造源地址可能被用于利用这种信任,但不等于已经建立了可用的连接;还要面对协议本身的连接检查,以及应用的身份验证。

你可能会见到“盲式”“非盲式”的说法。理解时可以抓住一点:攻击者看不看得到通信?不在路径上的人通常看不到回复,位于通信路径上的人则能观察经过自己的流量。同处一个局域网只是可能的场景之一,不能用它定义所有路径上的攻击。即使有人能观察数据包,正确验证身份的加密通信仍然有保护作用。

ARP 欺骗和 DNS 欺骗,改的是别的信息

ARP 帮助局域网把 IPv4 地址对应到链路层地址。假的 ARP 信息可能让本地数据送错设备。DNS 则把域名对应到包括地址在内的记录,假的 DNS 回答可能让名字查错地方。它们都不等同于修改 IP 数据包的源地址字段。

几种手段可能同时出现在一个事件中,但防护要各自对应。本地网络机制保护地址映射;DNSSEC 在信任链有效时验证签名的 DNS 数据,原理见 RFC 4033;源地址过滤检查流量声称来自哪里。一项检查不能包办三件事。

先看发生了什么,再决定怎么处理

许多服务送来从未请求过的回复,可能是反射攻击的特征。服务器被大量直接请求挤满,是另一种需要辨别的情况。域名解析异常、本地地址对应异常,也各有调查路径。日志里的 IP 是一条线索,并不能直接证明某个人的身份。

想先打好基础,可以读IP 欺骗究竟伪造了什么;需要落实防护,可以继续看来源验证、身份验证和服务防护如何配合。