ddos攻击
凌晨三点,攻击我盯着监控面板上那条几乎垂直拉起的攻击流量曲线,心里只有一个念头:又来了。攻击带宽从平时的攻击200Mbps,在90秒内飙到42Gbps,攻击服务器响应时间从80毫秒跳到12秒。攻击这不是攻击正常用户能干出来的事。
DDoS,攻击分布式拒绝服务攻击。攻击名字听着挺学术,攻击说白了就是攻击雇一大帮人堵你家门口,让你出不去也进不来。攻击只不过这帮“人”是攻击十万台被感染的摄像头、路由器、攻击旧手机。攻击攻击者用一套指挥系统把它们串起来,同一秒向目标发送请求。服务器处理不过来,正常用户就被挤掉了。
2016年那场Mirai僵尸网络攻击,很多人应该还有印象。一个叫Paras Jha的21岁年轻人,写了个恶意软件,专门扫描物联网设备——就是那些出厂默认密码是admin/admin的摄像头和DVR。感染了大约60万台设备后,他拿这个网络去打Brian Krebs的安全博客,流量冲到620Gbps。后来他又去打法国主机商OVH,峰值1.1Tbps。最后FBI找上门,他面临最高10年监禁和25万美元罚款。这事有意思的地方在于:一个没上过大学的年轻人,用一堆廉价联网设备,差点把半个互联网的基础设施打瘫。
攻击类型其实分好几层。最粗暴的是流量型,比如UDP洪水、ICMP洪水,直接拿垃圾包把带宽塞满。稍微“聪明”点的是协议型,利用TCP三次握手的漏洞——攻击者发送大量SYN包但不完成握手,服务器为每个半连接分配资源,连接表很快就被撑爆。最阴的是应用层攻击,比如HTTP洪水,请求看起来完全合法,但频率极高,专门打你的API接口或搜索功能。这种最难防,因为从流量上看跟正常用户没区别。
我见过一个电商客户被应用层DDoS打的时候,监控上流量只涨了30%,但数据库连接池直接满了。攻击者专打商品搜索接口,每个请求都带随机参数,绕过了CDN缓存。最后是加了验证码和请求频率限制才扛住。那晚他们的技术负责人跟我说了一句话:“流量清洗设备根本没报警,因为流量确实不大。”
防御这事,没有银弹。云清洗服务能挡掉大部分流量型攻击,但应用层的得靠WAF和速率限制。更根本的办法是隐藏源站IP——用CDN做前端,别让攻击者知道你的真实服务器地址。还有,别把所有鸡蛋放一个篮子里。DNS轮询、多机房部署,哪怕一个节点被打挂,其他节点还能撑着。
成本是个绕不开的话题。阿里云的高防IP,100Gbps保底一个月要两万多。对中小公司来说,这钱花得肉疼。但被打一次,业务中断几小时,损失可能更大。我认识一个游戏公司的运维,他们被竞争对手连续打了三个月,最后算下来,防御成本比直接交“保护费”还低——当然,这是灰色地带,不提倡。
说个反直觉的事:很多DDoS攻击其实不是黑客炫技,而是商业竞争手段。游戏行业、直播平台、跨境电商,是重灾区。攻击者甚至会在电商大促前夜精准出手,打你支付接口。去年双十一前,某跨境电商的支付网关被打了17分钟,损失了大约400万订单。事后追查,攻击源来自三个不同国家的云主机,背后是一个专门接单的DDoS-for-hire平台,明码标价:10Gbps打一小时,50美元。
技术层面,现在也有新玩法。比如利用DNS反射放大——攻击者伪造你的IP,向开放DNS服务器发查询请求,服务器把响应发给你的IP。一个60字节的请求能放大成4000字节的响应,放大倍数超过60倍。还有利用Memcached的,放大倍数能到5万倍。一个攻击者用几百台机器,就能打出Tbps级别的流量。
写这些不是要吓唬谁。只是觉得,很多人对DDoS的理解还停留在“黑客攻击”的层面,实际上它已经变成一种廉价、高效、难以追溯的商业打击工具。你不需要懂技术,花几百美元就能让一个网站消失几小时。而防御方要花的钱和精力,是攻击方的几十倍甚至上百倍。
凌晨四点,流量曲线终于开始回落。我关掉监控面板,给客户发了条消息:“攻击停了,明天我们聊聊源站隐藏的事。”然后靠在椅子上,想着那个21岁的Paras Jha——他要是把这脑子用在正道上,现在应该是个挺厉害的架构师。









