近日,Red Hat官方发布了一份安全公告称, Linux以及FreeBSD等系统内核中存在远程DoS漏洞,它们均与Linux的TCP SACK模块有关,其中一个被命名为SACK Panic的漏洞尤为严重:攻击者可利用该漏洞攻击服务器,导致服务器崩溃或无法提供服务。

1、漏洞分析

见附录。

2、漏洞影响范围

影响Linux内核2.6.29及以上版本(4.4.182、4.9.182、4.14.127、4.19.52、5.1.11版本已修复)。

3、华为云提供一键检测和修复

漏洞爆发后,华为云立即分析和研究漏洞,并于6月19日发布了漏洞预警公告。同时,华为云企业主机安全服务提供了一键检测和修复建议。操作如下:

(1)一键检测:登录华为云安全控制台,选择“企业主机安全”“防护列表”,点击“手动检测”,选择要检测的云服务器,如下图所示:

(2)查看漏洞信息和修复建议:登录华为云安全控制台,选择“企业主机安全”“漏洞管理”,可以查看漏洞信息和修复建议,如下图所示:

注:CESA-2019:1481是修复三个漏洞的补丁包

除漏洞管理之外,华为云企业主机安全还提供资产管理、入侵检测、基线检查、网页防篡改等功能,提升云上云下主机整体安全性,也是等保测评必备安全服务之一。

附 漏洞分析

SACK(Selective ACK)是TCP的选项,用来改善TCP因丢包而引起的网络传输效率低的问题。通过SACK机制,接收方可以记录并告诉发送方丢失、重传和已经收到的报文段有哪些,根据这些信息,发送方可以只重传真正丢失、需要重发的报文段。

SACK Panic漏洞则存在于TCP的处理子系统,该处理子系统的tcp_gso_segs用于记录数据包个数,最多记录65535个。

数据包发送前,会被放置到发送队列中,数据包的详细信息会保存在控制缓冲区结构体中:

SACK机制允许TCP在重传中合并多个SKB(套接字缓冲区)队列,最多可以填充17个片段到最大容量,从而引起tcp_gso_segs整数溢出,触发BUG_ON()调用,导致内核崩溃。

攻击者可以通过在TCP连接上使用较小值的TCP MSS(最大分段大小)发送一系列特定的SACK包来触发该内核模块的整数溢出漏洞,进而实行远程拒绝服务攻击。

推荐内容