Pesquisadores do Cisco Talos lançados Alguns dias atrás uma vulnerabilidade no kernel do Linux que pode ser explorada para roubar dados e também serve como um meio de escalar privilégios e comprometer o sistema.
Vulnerabilidade descrito como uma 'vulnerabilidade de divulgação de informações que pode permitir que um invasor veja a memória da pilha do kernel. '
CVE-2020-28588 é a vulnerabilidade que descoberto na funcionalidade proc / pid / syscall dos dispositivos ARM Dispositivos de 32 bits que executam 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 encontrado no kernel. 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, euOs hackers podem explorar a falha e acessar o sistema operacional e o arquivo syscall através de um sistema usado para interagir entre as estruturas de dados do kernel, 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
args
parâmetro passado veio deproc_pid_syscall
função e, como tal, é realmente do tipo__u64 args
. Em um sistema ARM, a definição da função converte o tamanho doarg
array em elementos de quatro bytes de oito bytes (uma vez queunsigned long
no ARM são 4 bytes), o que resulta emmemcpy
é copiado em 20 bytes (mais 4 paraargs[0]
).Da mesma forma, para i386, onde
unsigned long
são 4 bytes, apenasargs
os primeiros 24 bytes do argumento são gravados, deixando os 24 bytes restantes intactos.Em ambos os casos, se olharmos para trás, para o
proc_pid_syscall
Função.Enquanto em ARM de 32 bits e i386, nós apenas copiamos 24 bytes para o
args
array, a string de formato acaba lendo 48 bytes doargs
matriz, uma vez que o%llx
A string de formato é de 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 de KASLR.
Os pesquisadores afirmam que este ataque é "impossível de detectar remotamente em uma rede" porque está lendo um arquivo legítimo do sistema operacional Linux. “Se usado corretamente, um hacker pode tirar vantagem desse vazamento de informações para explorar com sucesso outras vulnerabilidades do Linux não corrigidas”, diz Cisco.
A esse respeito, o Google disse recentemente:
“As falhas de segurança de memória freqüentemente ameaçam a segurança dos dispositivos, especialmente aplicativos e sistemas operacionais. Por exemplo, no sistema operacional móvel Android também compatível com o 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 Recomenda-se atualizar as versões 5.10-rc4, 5.4.66, 5.9.8 do kernel Linux, uma vez que Esta vulnerabilidade foi testada e confirmada para explorar as seguintes versões do kernel Linux.
Finalmente se você estiver interessado em saber mais sobre isso Sobre a postagem, você pode verificar os detalhes no link a seguir