DDoS 攻击时服务器日志分析排查要点

流量特征分析

  • 流量峰值排查
    • 查看日志中记录的网络流量数据,重点关注流量突然增大的时间段。正常情况下,服务器的流量会在一定范围内波动,如果发现某个时段流量远超平时的峰值,很可能是遭受了 DDoS 攻击。例如,一个电商网站平时的流量高峰是每秒 1000 个请求,而在某个时刻突然上升到每秒 10000 个请求,这就需要进一步调查。
    • 分析流量的增长模式,是缓慢上升还是瞬间爆发。DDoS 攻击中的流量增长通常是非常迅速的,尤其是在流量洪泛型攻击(如 UDP Flood、ICMP Flood)中,流量可能在短时间内呈指数级增长。
  • 流量来源分析
    • 检查日志中的源 IP 地址分布。在正常情况下,服务器的访问来源是多样化的,来自不同的地区和网络。如果发现日志中出现大量来自同一网段或者相同几个 IP 地址段的请求,且这些请求数量异常庞大,有可能是攻击者利用僵尸网络发起的攻击。例如,发现有数千个请求都来自于某一个子网,而这个子网并不属于网站的正常用户群。
    • 对于有多个服务器的系统,对比不同服务器的流量来源。如果只有某一台服务器受到来自特定源 IP 的大量请求,而其他服务器没有,这可能是针对性的攻击行为。

请求特征分析

  • 请求频率分析
    • 查看单个 IP 地址或者用户代理(User – Agent)的请求频率。正常用户的操作一般会有一定的时间间隔,比如浏览网页时,用户在查看一个页面后会稍作停留再请求下一个页面。但在 DDoS 攻击中,攻击者控制的僵尸主机可能会以极高的频率发送请求。例如,一个 IP 地址在一秒内发送了上百个 HTTP 请求,这远远超出了正常用户的行为范围。
    • 关注请求频率的变化趋势。有些攻击可能会逐渐增加请求频率,以试探系统的防御能力或者避免被快速检测到。
  • 请求类型分析
    • 分析请求的类型,如 HTTP 请求中的 GET、POST 等方法。在攻击场景下,可能会出现大量异常的请求类型。例如,出现大量 POST 请求用于向服务器提交数据,而这些请求可能包含恶意数据或者是为了耗尽服务器资源。
    • 检查请求的 URL 路径。攻击者可能会针对特定的 URL 进行攻击,比如频繁请求一些动态脚本页面(如.php、.asp 文件),试图通过执行这些脚本来消耗服务器资源或者触发漏洞。如果日志中显示某一个特定的 URL 路径被频繁访问,这可能是攻击的迹象。

错误码和响应时间分析

  • 错误码分析
    • 关注服务器返回的错误码。在 DDoS 攻击中,由于服务器资源被大量占用,可能会频繁返回如 503(服务不可用)、500(内部服务器错误)等错误码。大量的 404(未找到资源)错误码也可能暗示攻击,因为攻击者可能在尝试访问一些不存在的资源来扰乱服务器。
    • 分析错误码的分布与流量、请求的关联。例如,如果在流量高峰时段,503 错误码的出现频率也同步增加,这很可能是由于服务器不堪重负导致的,而这种情况可能是 DDoS 攻击引起的。
  • 响应时间分析
    • 查看服务器的响应时间记录。正常情况下,服务器对请求的响应时间相对稳定。当遭受 DDoS 攻击时,由于资源竞争激烈,服务器的响应时间可能会显著增加。例如,原本一个网页的响应时间在 1 – 2 秒,在攻击发生时可能会延长到十几秒甚至无法响应。
    • 对比不同类型请求的响应时间变化。例如,对于静态资源(如图片、CSS 文件)和动态资源(如数据库查询后的网页内容)的响应时间可能会受到不同程度的影响,通过这种对比可以更好地了解攻击的影响范围和方式。

系统资源利用情况分析

  • CPU 和内存利用分析
    • 检查服务器日志中记录的 CPU 和内存使用情况。在 DDoS 攻击期间,服务器的 CPU 使用率可能会飙升到接近 100%,内存也可能被快速耗尽。这是因为大量的恶意请求会导致服务器进程不断消耗资源来处理这些请求。例如,在日志中看到 CPU 使用率从平时的 30% – 40% 突然上升到 90% 以上,并且一直居高不下,这是一个危险的信号。
    • 分析 CPU 和内存使用的波动与流量、请求的关系。如果 CPU 和内存使用率的峰值与流量峰值和异常请求的出现时间相吻合,那么很有可能是遭受了 DDoS 攻击。
  • 磁盘 I/O 分析
    • 查看磁盘 I/O 操作记录。某些 DDoS 攻击可能会导致大量的磁盘读写操作,比如攻击者通过大量请求数据库或者频繁写入日志文件来占用磁盘 I/O 资源。如果日志显示磁盘 I/O 等待时间过长或者读写速度异常缓慢,这可能是攻击导致的。
    • 注意是否存在大量的临时文件生成或者异常的文件访问模式。有些攻击可能会利用服务器的文件系统来存储临时数据或者恶意文件,通过分析日志可以发现这些异常的文件操作。