Oracle Database 环境整改建议应对 Linux TCP SACK PANIC 内核安全高危漏洞 CVE-2019-11477
北京时间6月18日,Netflix信息安全研究员Jonathan Looney在Linux以及FreeBSD等系统内核中发现存在严重远程拒绝服务漏洞,在 Linux 内核处理 TCP 网络数据的操作中发现了三个相关的安全漏洞。 其最严重的安全漏洞会被远程攻击者利用在运行受影响软件的系统上触发一个内核崩溃,从而影响到系统的可用性。
这些问题已被记录为以下 CVE: CVE-2019-11477(严重性级别为Important(重要)), CVE-2019-11478 和 CVE-2019-11479 (严重性级别为Moderate(中度))。
其中前两个与 SACK(Selective Acknowledgement,选择性确认)数据包和 MSS(Maximum Segment Size,最大分段长度)相关,第三个只与 MSS 相关。
SACK
TCP 选择性确认(Selective Acknowledgment,简称 SACK)是一种确认机制,数据接收方通过它告知发送方已被成功接受的所有数据段。这样,发送方就可以重新发送那些没有出现在 ‘known good’ 数据中的数据段。如果 TCP SACK 被禁用,则需要在某些数据丢失时重新发送包括大量数据的所有数据流。
MSS
MSS(maximum segment size,最大分段长度)是在数据包的 TCP 报头中设置的一个参数,它指定了在一个重新构建的 TCP 数据段中数据的总量。
当数据包通过不同路由进行传输的过程中可能会被分隔为多个数据段,主机需要把 MSS 设置为和主机可以处理的最大 IP 数据报中实际数据量相同的值。一个大的 MSS 值可能意味着一个数据包流在传输到目的地址过程中被分隔为多个数据段,对于较小的数据包,这可以确保较少的数据段,但可能会导致一些无用的资源消耗。
到目前为止,这些安全漏洞的影响还只限于 DoS 攻击。目前还没有发现这些安全漏洞会导致访问权限升级及信息泄露的问题。
同时根据https://www.anquanke.com/post/id/180765 描述 该漏洞实际危害不大。
当然对于政策还是因为“护网”特殊时期,对于该风险的修改方案1,禁用TCP_SACK; 2, 安装安全补丁或升级kernel;
目前Red Hat, Oracle linux UEK , CentOS, Suse , Ubuntu 系列都已提供的补丁。
解决方案
一、 禁用Linux内核SACK机制(不需要重启服务器)
命令:
echo 0 > /proc/sys/net/ipv4/tcp_sack
sysctl -w net.ipv4.tcp_sack=0
二、升级Linux安全补丁(需要重启服务器)
根据不同Linux 厂家的选择,下载安装相应的补丁或升级内核 , 对于oracle 数据库环境可能还需要relink oracle。
对于RHEL 环境,可以使用https://access.redhat.com/sites/default/files/cve-2019-11477–2019-06-17-1629.sh 检查是否存在该安全风险。
Oracle 数据库环境
对于安装现在运行oracle 数据库的环境,ANBOB建议使用方案一, 禁用tcp_sack的方式解决SACK问题高危。
echo 0 > /proc/sys/net/ipv4/tcp_sack
1, 根据这篇Linux安全加固 的建议Turn off the tcp_sack
2,对于EXALOGIC 同样也是禁用tcp_stack 解决network package loss
3, UEKr4 kernel poor network performance related to network packets acknowledgement 同样也是建议禁用 tcp_sack
4, 同时注意使用NFS(非oracle标配)的环境是否在禁用tcp_sack后出现df 变慢
References :
https://www.anquanke.com/post/id/180765
https://access.redhat.com/zh_CN/security/vulnerabilities/4233431
对不起,这篇文章暂时关闭评论。