Netflix encontra falhas no Linux e no BSD

A má notícia é que um dos bugs é tão grave que causa um Kernel Panic no Linux. A boa notícia é que os patches de correção já estão á caminho.


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


Introdução

Os bugs de segurança no Linux são normalmente descobertos por pesquisadores de empresas de segurança. Desta vez, no entanto, o anúncio vem do gerente de engenharia da Netflix, Jonathan Looney. Evidentemente, o serviço de streaming quer garantir que nada impeça seus clientes de assistir à última temporada de “Designated Survivor”.

De acordo com uma publicação da Netflix no GitHub, todas essas vulnerabilidades são de rede TCP nos kernels Linux e FreeBSD, centralizando-se em torno do tamanho mínimo do segmento e dos recursos de Confirmação Seletiva TCP. Nenhuma das vulnerabilidades parece colocar dados em risco.

CVE’s

A pior dessas explorações, CVE-2019-11477 ou “SACK Panic”, é uma vulnerabilidade de estouro de inteiro que afeta todos os kernels do Linux desde 2.6.29, ou todas as versões do Linux lançadas desde março de 2009. Como o nome sugere, aqui os atacantes poderia usar uma seqüência de SACKs para criar um Kernel Panic, o que exigiria uma reinicialização para recuperação.

Outro bug, CVE-2019-11478, cobre dois exploits relacionados. “Uso excessivo de recursos” afeta todas as versões do Linux e possibilita que invasores enviem uma seqüência de SACKs criados que fragmentarão a fila de retransmissão TCP. “Sack Slowness”, que afeta as versões do kernel lançadas antes de 4.15, aproveita o mesmo exploit para explorar ainda mais a fila fragmentada para causar uma lista de links para SACKs subsequentes recebidos para a mesma conexão TCP.

Um exploit semelhante, CVE-2019-5599 e também chamado de “Sack Slowness”, afeta o FreeBSD 12 usando o RACK TCP Stack.

O erro final, CVE-2019-11479, ou “Excesso de consumo de recursos devido a valores baixos de MSS” afeta todas as versões do Linux. Aproveitando-se disso, um invasor pode forçar o kernel Linux a segmentar suas respostas em vários segmentos de TCP de 8 bytes, aumentando drasticamente a largura de banda necessária para fornecer a mesma quantidade de dados, consumindo também CPU adicional e capacidade de processamento de NIC.

A boa notícia para este último é que esse ataque exige esforço contínuo do invasor e seu impacto termina logo após o invasor parar de enviar tráfego.

Correções para esses problemas já estão sendo mescladas no kernel e devem aparecer em um lançamento pontual do kernel em breve. Soluções alternativas estão disponíveis na página de consultoria do GitHub da Netflix.

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 daqui.

Alternativa 2: Desabilitar processamento SACK com estes comandos:

Para CentOS:

$ echo “0” > /proc/sys/net/ipv4/tcp_sack
$ echo “net.ipv4.tcp_sack = 0” >> /etc/sysctl.conf

Para 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 aqui.

Alternativa 2: Desabilitar processamento SACK

Para CentOS:

$ echo “0” > /proc/sys/net/ipv4/tcp_sack
$ echo “net.ipv4.tcp_sack = 0” >> /etc/sysctl.conf

Para 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 destes filtros.

#UrbanCompassPony

Fonte: itprotoday
nexus-solutions.pt

Deixe um comentário