Netflix identifica falhas TCP que afetam Kernels Linux e FreeBSD
Vulnerabilidade CVE-2019-11477 (e outras relacionadas, como o CVE-2019-11478, CVE-2019-11479)
A Netflix identificou várias vulnerabilidades ao nível da rede TCP em kernels FreeBSD e Linux (CVE-2019-11477, CVE-2019-11478, CVE-2019-11479) .
As vulnerabilidades referem-se especificamente ao tamanho mínimo dos segmentos (MSS) e à “TCP Selective Acknowledgement (SACK)”. A falha mais séria (com o nome “SACK Panic”) permite que seja activado remotamente o modo “kernel panic” (equivalente a “BlueScreen of Death” em Windows) em sistemas Linux.
Já existem actualizações que rectificam a maior parte destas falhas. Caso as actualizações não sejam possíveis de aplicar no sistema operativo, poderá implementar algumas mitigações que o façam. Recomendamos que siga os passos abaixo dependendo do seu ambiente.
Como mitigar as vulnerabilidades
1: CVE-2019-11477: SACK Panic (Linux >= 2.6.29)
Descrição: Uma sequência de “SACKs” poderá ser criada de uma forma que é accionado um “Integer overflow”, causando um “kernel panic”.
Solução: Aplicar o patch “PATCH_net_1_4.patch“. Adicionalmente, versões com o kernel Linux até e incluindo 4.14 necessitam de um segundo patch “PATCH_net_1a.patch“.
Alternativa 1: Bloquear conexões com um baixo valor de “MSS” utilizando um dos filtros seguintes: “https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001/block-low-mss/README.md”
Alternativa 2: Desabilitar processamento SACK
1
2
3
4
5
6
|
—CentOS—
echo “0” > /proc/sys/net/ipv4/tcp_sack
echo “net.ipv4.tcp_sack = 0” >> /etc/sysctl.conf
—Ubuntu/Debian—
sysctl –w net.ipv4.tcp_sack=0
|
2: CVE-2019-11478: SACK Slowness (Linux < 4.15) or Excess Resource Usage (all Linux versions)
Descrição: É possível enviar uma sequência de SACKs forjados que irá fragmentar a fila de retransmissão TCP.
Solução: Aplicar o seguinte patch PATCH_net_2_4.patch.
Alternativa 1: Bloquear conexões com um baixo valor de “MSS” utilizando um dos filtros seguintes: “https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001/block-low-mss/README.md”
Alternativa 2: Desabilitar processamento SACK
1
2
3
4
5
6
|
—CentOS—
echo “0” > /proc/sys/net/ipv4/tcp_sack
echo “net.ipv4.tcp_sack = 0” >> /etc/sysctl.conf
—Ubuntu/Debian—
sysctl –w net.ipv4.tcp_sack=0
|
3: CVE-2019-5599: SACK Slowness (FreeBSD 12 using the RACK TCP Stack)
Descrição: É possível enviar uma sequência de pacotes SACK forjados que irão fragmentar o mapa de envio RACK.
Alternativa 1: Aplicar o patch split_limit.patch e definir um valor limite para o tamanho da tabela SACK “net.inet.tcp.rack.split_limit
“.
Alternativa 2: Temporariamente desabilitar a stack RACK TCP.
4: CVE-2019-11479: Excess Resource Consumption Due to Low MSS Values (all Linux versions)
Descrição: Um hacker poderá forçar um kernel Linux a responder a partir de múltiplos pacotes segmentados TCP, no qual cada um tem apenas 8 bytes de informação. Isto aumenta drasticamente a largura de banda utilizado para entregar estes mesmos pacotes. Adicionalmente isto força a utilização de mais processamento por parte do CPU e da placa de rede NIC.
Solução: Estes dois patches PATCH_net_3_4.patch e PATCH_net_4_4.patch adicionam um comando que força a utilização de um mínimo de segmentos MSS, definidos por “net.ipv4.tcp_min_snd_mss
“. Desta forma um administrador de sistema poderá forçar a utilização de um mínimo de segmentos MSS apropriado para as suas aplicações.
Alternativa 1: Bloquear conexões com um baixo valor de “MSS” utilizando um dos filtros seguintes: “https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001/block-low-mss/README.md”
NOTA: Um bom sistema e uma boa programação das aplicações pode limitar o impacto deste tipo de ataques a algumas destas vulnerabilidades.
Fonte: Cloudirect