打开网站,页面长时间加载,最后弹出服务暂时不可用。反复刷新,报错依旧。联系客服,对方告知机房正在处理。这类场景,很多时候不是服务器硬件故障,也不是程序代码bug,而是正在遭受DoS攻击。
DoS全称Denial of Service,中文名称拒绝服务攻击。目标很明确,让网站、服务、服务器无法正常处理用户请求。攻击者不需要窃取数据,不用获取服务器控制权,只要正常用户无法访问,攻击就达成目的。和传统黑客入侵思路不一样,入侵是潜入系统获取资源,DoS是占用全部服务资源,阻断所有用户访问。
最早的DoS攻击出现在上世纪八十年代末期,当时互联网规模有限,向服务器大量发送数据包,就能造成服务瘫痪。后续攻击手段不断演变,但核心不变,消耗目标服务器资源。服务器带宽、CPU、内存、并发连接数量都存在上限,攻击者用大量无效请求占满资源,正常用户请求排队等待或是直接丢弃。

很多人习惯把DoS和DDoS混在一起称呼,两者存在区别。DoS由单一主机发起,一台设备攻击一个目标。DDoS是分布式拒绝服务,攻击者控制大量肉鸡,从不同网络节点同时发起请求。DDoS更难防御,流量来源分散,封禁单个IP没有效果,封禁一批IP还有更多节点持续攻击。现在大规模造成业务瘫痪的攻击,大多属于DDoS,日常交流中很多人统一称作DoS。
DoS攻击手段种类很多。最简单是流量型攻击,使用UDP、ICMP协议持续发送数据包,打满服务器带宽。SYN Flood稍微复杂,利用TCP三次握手漏洞,创建大量半开连接,占满服务器连接表,正常用户无法建立连接。还有应用层攻击,持续请求需要查询数据库的搜索页面,单独看每条请求都属于合法访问,但大量请求耗尽服务器算力。这类攻击产生流量不大,防御难度更高,单条请求和普通访客行为没有区别。
攻击带来的损失,取决于被攻击业务类型。个人博客遭遇攻击,一般只是数小时无法访问,站长重启服务、更换IP,一段时间之后就能恢复。电商平台不一样,每一分钟停机都会造成订单流失、支付失败、用户投诉。相关统计数据显示,大型电商平台宕机一小时,损失可达几十万甚至上百万美元。金融、证券、支付系统更加敏感,交易中断会引发连锁问题,客户信任一旦受损很难修复。
除直接经济损失,DoS攻击附带其他负面影响。网站持续无法访问,用户会认定平台技术不稳定,口碑下滑。搜索引擎爬虫多次访问失败,会降低站点抓取频次,影响网站排名。客服团队被大量咨询投诉淹没,技术人员连夜排查,人力成本同样属于损耗。部分攻击带有勒索意图,先持续攻击半小时,发送邮件索要比特币,停止攻击,游戏行业、中小型电商遇到这类勒索攻击比较多。
更棘手的是,DoS攻击有时不会单独出现。它可以作为烟雾弹,大量无效流量吸引运维人员注意力,另一组攻击者利用其他漏洞尝试入侵系统。运维人员全部精力投入流量清洗,后门已经悄悄部署到服务器。这种组合攻击,危害高于单纯拒绝服务。
关键基础设施面临更高风险。医院信息系统、交通调度平台、能源企业监控网络,一旦被DoS攻击瘫痪,影响范围不止网站打不开,会干扰现实世界运转。这类系统大多部署多层防护和冗余机制,但攻击者持续寻找薄弱环节,一旦突破防护,损失无法用金钱衡量。
发起DoS攻击门槛远比多数人想象得低。网络上存在现成攻击工具,租赁压力测试服务,几十元就能持续攻击数小时。部分工具不需要专业技术,填入IP、端口,点击启动即可执行。只要设备可以联网,任何人都有可能发起攻击。而被攻击一方,防御、恢复的成本,是攻击成本的几十倍甚至上百倍。
不存在可以永久抵御DoS攻击的单一方案。常用手段包含高防IP引流至流量清洗中心,CDN分担访问压力,防火墙配置限流与黑名单,应用层部署人机验证。防护手段都有成本,攻击者也会持续调整攻击策略。可靠防御采用分层方案,带宽冗余、协议优化、应用层限流、实时监控,搭配故障后的应急响应预案。
回到开头场景,网站加载失败弹出报错,有可能只是普通故障,也代表DoS攻击正在进行。普通访客能够采取的操作有限,可以更换时间段重试,或是换其他渠道获取服务。业务运营者理解DoS攻击原理与危害,是评估是否投入防护资源的起点。攻击不会提前预警,提前做好预案,才不会在故障发生后手忙脚乱。