Segundo os pesquisadores da Cisco Talos, foi detectada uma falha no kernel que pode permitir o roubo de informações. Conheça melhor essa ameaça.
Sim. Pesquisadores da Cisco Talos revelaram uma vulnerabilidade no kernel do Linux há alguns dias que pode ser explorada para roubar dados e também servir como meio de escalar privilégios e comprometer o sistema.
Detectada uma falha no kernel que pode permitir o roubo de informações
A vulnerabilidade é descrita como uma “vulnerabilidade de divulgação de informações que pode permitir que um invasor visualize a memória da pilha do kernel”.
CVE-2020-28588 é a vulnerabilidade que foi descoberta na funcionalidade proc /pid/syscall de dispositivos ARM de 32 bits executando o sistema operacional.
De acordo com o Cisco Talos, o problema foi descoberto pela primeira vez em um dispositivo que executa o Azure Sphere.
“Existe uma vulnerabilidade de divulgação de informações na funcionalidade /proc/pid/syscall do Linux Kernel 5.1 Stable e 5.4.66. Mais especificamente, esse problema foi introduzido na v5.1-rc4 (confirma 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) e ainda está presente na v5.10-rc4, portanto, todas as versões intermediárias provavelmente serão afetadas. Um invasor pode ler /proc/pid/syscall para ativar esta vulnerabilidade, fazendo com que o kernel perca o conteúdo da memória.”
Proc é um pseudo-sistema de arquivos especial em sistemas operacionais do tipo Unix que é usado para acessar dinamicamente os dados do processo encontrados no kernel.
Ele apresenta informações do processo e outras informações do sistema em uma estrutura hierárquica semelhante a um arquivo.
Por exemplo, ele contém subdiretórios /proc/[pid], cada um dos quais contém arquivos e subdiretórios que expõem informações sobre processos específicos, legíveis usando o ID de processo correspondente.
No caso do arquivo “syscall”, é um arquivo legítimo do sistema operacional Linux que contém logs das chamadas do sistema usadas pelo kernel.
Para a empresa, os hackers podem explorar a falha e acessar o sistema operacional e o arquivo syscall por meio de um sistema usado para interagir entre as estruturas de dados centrais, Proc.
A entrada syscall procfs poderia ser explorada se os hackers emitissem comandos para gerar 24 bytes de memória heap não inicializada, levando a um desvio da randomização do layout do espaço de endereço do kernel (KASLR).
“Olhando para esta função específica, tudo parece bem, mas é importante notar que o argsparameter passado veio da função proc_pid_syscall e, como tal, é na verdade do tipo __u64 args. Em um sistema ARM, a definição da função converte o tamanho do array arg em elementos de quatro bytes a partir de oito bytes (uma vez que o ARM longo não assinado tem 4 bytes), o que resulta na cópia de memcpy para 20 bytes (mais 4 para args [0] ).”
“Da mesma forma, para i386, onde o comprimento sem sinal é de 4 bytes, apenas os primeiros 24 bytes do argumento são gravados, deixando os 24 bytes restantes intactos.”
“Em ambos os casos, se olharmos novamente para a função proc_pid_syscall.”
“Enquanto em ARM de 32 bits e i386 copiamos apenas 24 bytes no array args, a string de formato acaba lendo 48 bytes do array args, já que a string de formato% llx tem oito bytes em sistemas de 32 e 64 bits. Portanto, 24 bytes de memória heap não inicializada acabam obtendo saída, o que pode levar a um desvio KASLR.”
Os pesquisadores afirmam que esse ataque é “impossível de detectar remotamente em uma rede” porque ele está lendo um arquivo legítimo do sistema operacional Linux.
“Se usado corretamente, um hacker pode tirar proveito desse vazamento de informações para explorar com sucesso outras vulnerabilidades do Linux não corrigidas”, diz a Cisco.
A esse respeito, o Google disse recentemente:
“As falhas de segurança de memória frequentemente ameaçam a segurança dos dispositivos, especialmente aplicativos e sistemas operacionais. Por exemplo, no sistema operacional móvel Android também suportado pelo kernel Linux, o Google afirma ter descoberto que mais da metade das vulnerabilidades de segurança abordadas em 2019 foram resultado de bugs de segurança de memória.”
Por último, mas não menos importante, é recomendado atualizar as versões 5.10-rc4, 5.4.66, 5.9.8 do kernel Linux, uma vez que foi testado e confirmado que esta vulnerabilidade pode tirar proveito das seguintes versões do kernel Linux.
Por fim, se você tiver interesse em saber mais sobre a publicação, pode conferir os detalhes no seguinte endereço.