某次内部技术分享会上,下述有人把“SYN Flood”和“ARP欺骗”并列写进“常见DoS攻击类型”那一页PPT。攻击s攻台下没人吭声,手段属于但我盯着屏幕看了三秒——ARP欺骗根本不是下述DoS。它顶多算个中间人攻击的攻击s攻跳板。这个错误不算罕见,手段属于网上搜“DoS攻击手段”,下述能翻出一堆把“死亡之Ping”“泪滴攻击”“UDP洪水”和“DNS欺骗”混在一起的攻击s攻文章。分不清边界,手段属于排查故障时就会走错方向。下述
DoS的攻击s攻核心逻辑只有一条:让目标系统无法为正常用户提供服务。实现路径无非两种——耗尽它的手段属于资源,或者堵死它的下述通道。SYN Flood是攻击s攻典型的资源耗尽型。攻击者发送大量伪造源IP的手段属于TCP SYN包,服务器为每个半连接分配内存、等待ACK,等待队列塞满后,新来的正常连接请求直接被丢弃。你访问网站转圈圈,不是带宽不够,是服务器的半连接表满了。
UDP Flood更粗暴。往目标随机端口狂灌UDP数据包,目标主机逐个检查“这个端口有没有程序在听”,检查本身消耗CPU。包足够多,CPU就趴在100%下不来。Smurf攻击稍微绕一点:伪造受害者IP向广播地址发ICMP请求,整个网段的机器都往受害者回包。放大倍数取决于网段里有多少台设备。这三种攻击的共同点是——攻击流量直接作用于目标,目标要么处理不过来,要么回包回不过来。
那什么不是DoS?ARP欺骗。它的工作方式是向局域网内广播虚假的ARP响应,告诉别人“IP地址A的MAC地址是我”。结果就是流量被引到攻击者机器上。攻击者可以转发,可以篡改,也可以直接丢弃。如果丢弃,受害者确实上不了网——看起来像DoS。但机制完全不同。ARP欺骗的本质是身份伪造和流量劫持,它破坏的是网络层的地址映射关系,不是靠流量规模压垮目标。一台机器、一个伪造包,就能让整个子网断网。这跟“洪水”没关系。
另一个常被误归入DoS的是DNS欺骗。攻击者伪造DNS响应,把用户引导到恶意服务器。用户以为自己在访问银行网站,实际连的是钓鱼站。服务没中断,只是内容被换了。这是完整性攻击,不是可用性攻击。DoS攻击的是“用不了”,DNS欺骗攻击的是“用错了”。两者在安全模型里属于不同维度。
还有社会工程学。打电话给运维说“我是机房电工,需要临时断电检查线路”,运维真去关了服务器。服务确实中断了,但这是骗局,不是技术攻击。把它归入DoS,等于说“我拔了你的网线”也是DoS——物理层面当然算,但讨论攻击手段时,通常限定在协议和系统层面。
区分清楚有什么用?应急响应时,看到服务不可用,第一反应是查流量图。如果出口带宽跑满、SYN包暴涨,按DoS处理,上清洗设备或者调SYN Cookie。如果流量正常但用户投诉上不了网,抓包发现ARP表里网关MAC不对,那就得查内网ARP欺骗,跟流量清洗没关系。把ARP欺骗当DoS打,等于拿灭火器去修漏水的水管。
安全概念一旦模糊,防御就会错位。DoS是可用性问题,ARP欺骗和DNS欺骗是完整性问题,社会工程学是人的问题。它们可能造成相似的现象——服务不可用——但根因和处置路径完全不同。下次再看到有人把“ARP欺骗”写进DoS攻击列表,你可以直接告诉他:那是中间人攻击的活儿,别抢DoS的饭碗。