
当您发现服务器的出口或入口带宽曲线突然拉成一条平直的“天花板线”,而业务响应开始变得迟缓、用户报怨增多时,第一个涌上心头的疑问往往是:这是遭遇了恶意攻击,还是业务真的迎来了爆发式增长?在缺乏专业安全团队的中小运维场景中,这个问题的误判率极高——误将攻击当正常流量,会导致服务持续受损;误将正常流量当攻击,则可能盲目启用限流或封禁策略,造成真实客户流失。
本文将从底层数据出发,系统性地拆解诊断流程,帮助您在十分钟内建立初步判断框架,并进一步定位根源。
带宽跑满只是现象,首先要看的是带宽构成。登录服务器或网关设备,查看实时流量图时,不要只看总进出速率(bps),必须同时抓取:
每秒数据包数(PPS):如果带宽已满但PPS异常低(例如千兆带宽下PPS不足五千),说明单个数据包体积很大,这通常是正常的大文件传输、视频流或数据备份业务。反之,若带宽刚过百兆但PPS已高达数万甚至数十万,则极有可能是小包攻击(如SYN Flood、ACK Flood),因为攻击包通常只有几十字节,用少量带宽就能耗尽设备的中断处理能力。
连接数状态:使用ss -ant | awk '{print $1}' | sort | uniq -c或类似命令统计TCP状态。若“SYN_RECV”或“TIME_WAIT”数量呈指数级增长且远高于历史基线,而“ESTABLISHED”占比骤降,攻击嫌疑陡增。正常业务高峰期,ESTABLISHED连接应占绝对多数。
协议分布:通过流量分析工具(如nethogs、iftop或端口镜像)查看带宽占用排名前五的协议和端口。若80/443端口以外的非标准端口(如UDP 53、UDP 123、TCP 445等)突然跃居榜首,需高度警惕反射放大攻击或扫描行为。
“满”是相对于“正常”而言的。没有基线数据的判断是盲目的。请立即调出该服务器过去7天、30天同时段的带宽趋势图,重点关注三个维度:
周期性:正常业务流量通常具备明显的日周期(如晚高峰高于凌晨)和周周期(周末与工作日不同)。若当前突增时间完全脱离该周期模式,且峰值超出历史最大值的三倍以上,基本可判定为异常事件。
斜率突变:正常流量增长是平滑的阶梯式上升,而攻击流量往往在数分钟内垂直拉升。观察突增起始点的斜率,若近乎90度垂直,则更符合自动化工具的扫描或僵尸网络的下发指令特征。
出口与入口对称性:对于提供内容服务的服务器,入口带宽(请求)通常远小于出口带宽(响应)。若突然出现入口带宽远大于出口,且请求对象均为静态小文件,可能是CC攻击(针对应用层);若出口带宽暴涨而入口正常,则需检查是否服务器本身被植入后门用于向外发送数据或充当肉鸡。
带宽层面的数据只能给出概率,而日志提供证据。按以下顺序交叉验证:
访问日志(Access Log):检查Web服务器日志中同一IP或同一User-Agent字段在单位时间内的出现频率。若某个IP每秒请求超过百次,且请求资源路径随机(如/a.jpg?123、/b.jpg?456),明显不符合人类行为,则属攻击。但需注意,现代攻击者常分散代理IP,此时需观察Referer字段——若大量请求的Referer为空或固定为同一个恶意域名,同样暴露异常。
系统认证日志(Auth Log):检查SSH、FTP等管理端口的登录尝试记录。若带宽满的同时伴随大量Failed password记录,说明服务器正遭受暴力破解,这会消耗部分带宽及大量系统资源,虽不是纯粹带宽型攻击,但会间接加剧拥塞。
防火墙或负载均衡器日志:若前置了安全设备,查看其丢弃或拒绝的数据包计数。如果丢弃量在带宽跑满期间反而下降,说明所有流量均被放行,缺乏过滤机制;若丢弃量同步飙升,则说明设备正在工作,但阈值设置可能过于宽松。
当上述数据仍模糊时,可执行两个实操动作:
动作一:停止部分业务服务(非关键时段)。短暂关闭Web服务或数据库服务,观察带宽曲线是否立即掉头向下。若带宽瞬间回落,说明流量是针对该服务的有效请求(无论是否恶意);若带宽纹丝不动,说明流量走的是其他端口或协议,此时可用tcpdump抓取少量数据包,查看目的IP和目的端口,往往能直接发现流量去向。
动作二:对比地理区域或来源AS(自治系统)分布。通过简单的地理IP库查询突增流量的来源段。正常业务用户来源应分散且符合市场分布;而攻击流量常集中来自某些特定网段或数据中心段,甚至所有源IP的TTL值高度一致——这几乎就是攻击的铁证。
在获得初步结论后,处理路径截然不同:
若判定为攻击:首要任务不是分析原因,而是止损。立即联系上游网络服务商请求黑洞路由或流量清洗,同时在本地防火墙临时限流单个IP的连接数和新建连接速率,优先保障管理端口(如22、3389)的可用性。待攻击平息后,再复盘漏洞是出在应用层(如未限流的API接口)还是网络层(如DNS放大)。
若判定为正常流量高峰:恭喜业务增长,但需快速启动扩容预案。这不是简单的升级带宽,而应分析流量构成——若是静态资源占大头,立即配置缓存策略及对象存储;若是动态请求,则考虑增加节点或读写分离。同时,务必设置带宽告警阈值,将“跑满”的触发点从95%下调至75%,给自己留出响应时间。
一次分析是救火,建立机制才是防火。建议部署如下简易规则:
设立双阈值告警:总带宽超80%且PPS超历史均值2倍时,触发“疑似攻击”告警;总带宽超80%但PPS平稳时,触发“业务扩容”告警。
启用自动化抓包保留:当带宽突发性增长超过预设斜率时,自动执行30秒的pcap抓包并循环存储,以便事后溯源。
定期演练“盲测”:每周随机选取一个历史流量高峰时刻,对照当时的日志和带宽图,模拟判断是攻击还是正常,以此训练运维直觉。
最后,请牢记一个核心原则:带宽是表象,行为是本质。攻击流量的底层逻辑是“消耗”,而正常流量的底层逻辑是“交互”。前者表现为无序、重复、无业务语义的数据搬运;后者表现为有来有回、有状态、遵循业务流程的数据交换。当您下一次看到带宽曲线触顶时,请先深呼吸,按上述步骤逐一排查,绝大多数情况都能在十五分钟内得到明确结论。若仍然存疑,宁可先按攻击预案进行最小化限流,也比放任不管或盲目扩容要安全得多——毕竟,带宽费用可以买,但业务信誉和数据的完整性,无法用流量单价衡量。