BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado

Conheça o BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado, há mais de cinco anos. Confira os detalhes dessa ameaça.

Um malware de backdoor recentemente descoberto chamado BPFdoor vem atacando furtivamente os sistemas Linux e Solaris sem ser notado há mais de cinco anos.

BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado

BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado
BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado

O BPFdoor é um backdoor Linux/Unix que permite que os agentes de ameaças se conectem remotamente a um shell Linux para obter acesso completo a um dispositivo comprometido.

O malware não precisa abrir portas, não pode ser detido por firewalls e pode responder a comandos de qualquer endereço IP na web, tornando-o a ferramenta ideal para espionagem corporativa e ataques persistentes.

O BPFdoor é um backdoor passivo, o que significa que ele pode ouvir em uma ou mais portas os pacotes recebidos de um ou mais hosts, que os invasores podem usar para enviar comandos remotamente para a rede comprometida.

O malware usa um sniffer Berkeley Packet Filter (o BPF no nome do backdoor), que funciona na interface da camada de rede sendo capaz de ver todo o tráfego da rede e enviar pacotes para qualquer destino.

Devido ao seu posicionamento em um nível tão baixo, o BPF não obedece a nenhuma regra de firewall, o que dificulta a criação de uma regra de bloqueio.

Ele tem versões para sistemas Linux e Solaris SPARC, mas também pode ser portado para BSD, segundo Craig Rowland, fundador da Sandfly Security, uma empresa que oferece uma solução sem agente para proteger sistemas Linux.

O pesquisador de segurança Kevin Beaumont, que publicou um post no blog BPFdoor, disse ao site BleepingComputer que os operadores usam uma senha “mágica” para controlar as ações do implante.

O BPFdoor analisa apenas pacotes ICMP, UDP e TCP, verificando um valor de dados específico e também uma senha para os dois últimos tipos de pacotes.

O que destaca o BPFDoor é que ele pode monitorar qualquer porta para o pacote mágico, mesmo que essas portas sejam usadas por outros serviços legítimos, como servidores web, FTP ou SSH.

Se os pacotes TCP e UDP tiverem os dados “mágicos” corretos e uma senha correta, o backdoor entrará em ação executando um comando suportado, como configurar um shell de ligação ou reverso.

BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado
BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado – Redirecionamento de firewall de malware BPFdoor fonte: Sandfly Security

Beaumont disse que os pacotes ICMP não precisam de senha, o que lhe permitiu escanear a internet para executar implantes BPFdoor usando a função ping.

Segundo Kevin Beaumont:

“A função ping permite que você especifique um endereço IP e uma porta para responder – então consegui que os implantes da vítima respondessem a um IP completamente diferente que eu controlava.”

O pesquisador conseguiu encontrar a atividade do BPFdoor em redes de organizações em várias geografias, principalmente nos EUA, Coréia do Sul, Hong Kong, Turquia, Índia, Vietnã e Mianmar.

Surpreendentemente, ele descobriu 11 servidores Speedtest infectados com BPFdoor. O pesquisador disse que não está claro como essas máquinas foram comprometidas, especialmente porque são executadas em software de código fechado.

BPFdoor Ignora o firewall local

Rowland observa em um relatório técnico abrangente no BPFdoor que o malware emprega algumas táticas anti-evasão inteligentes:

  • Reside na memória do sistema e implanta a ação anti-forense (limpa o ambiente do processo, embora sem sucesso, pois o deixa vazio)
  • Carrega um sniffer Berkeley Packet Filter (BPF), permitindo que ele funcione na frente de qualquer firewall em execução local para ver pacotes
  • Modifica as regras de ‘iptables’ ao receber um pacote relevante para permitir a comunicação do invasor através do firewall local
  • Mascara o binário sob um nome semelhante a um daemon comum do sistema Linux
  • Renomeia e executa a si mesmo como /dev/shm/kdmtmpflush
  • Altera a data do binário (timestomping) para 30 de outubro de 2008, antes de excluí-lo

Rowland acredita que uma explicação para o timestomping, como uma técnica anti-forense neste caso, pode ser que o invasor tente proteger o binário caso sua exclusão falhe.

O pesquisador diz que o objetivo da data falsa pode ser esconder o malware de uma busca em busca de novos arquivos no sistema.

Alterar as regras de firewall é de particular importância porque permite que invasores se comuniquem com o backdoor por meio de tráfego que os firewalls não podem sinalizar como suspeitos.

Rowland explica que quando o host infectado recebe um pacote BPFdoor especial, o malware “gerará uma nova instância e alterará as regras locais do iptables para fazer um redirecionamento do host solicitante para a porta do shell”.

Craig Rowland, da Sandfly Security, diz que:

“Por exemplo, o implante pode redirecionar todo o tráfego do invasor usando a porta TCP 443 (web criptografada) para o shell. Externamente, o tráfego será semelhante ao tráfego TLS/SSL, mas na verdade o invasor está interagindo com um shell de root remoto no sistema.”

Para esclarecer ainda mais, Rowland diz que, para um shell local, o malware modifica a configuração do ‘iptables’ para redirecionar todo o tráfego vindo do invasor através de uma porta legítima para um intervalo de portas definido no malware.

Dessa forma, o invasor pode escolher uma conexão em qualquer porta, pois ela seria roteada para o shell atrás do firewall.

BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado
BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado – BPFdoor redireciona o tráfego para shell no host da vítima fonte: Craig Rowland, Sandfly Security

Outra análise técnica no BPFdoor de Tristan Pourcelot, da empresa de inteligência de ameaças e resposta a incidentes ExaTrack, observa que o
malware vem com vários nomes codificados que correspondem às strings de comando dentro dos pacotes relevantes:

  • justtryit, justrobot e justforfun para estabelecer um shell de ligação nas portas 42391 a 42491
  • socket ou sockettcp para configurar um shell reverso para um endereço IP presente no pacote

Parte das técnicas do BPFdoor para evitar a detecção é renomear o binário para aparecer como um daemon normal do Linux usando as opções abaixo:
/sbin/udevd -d
/sbin/mingetty /dev/tty7
/usr/sbin/console-kit-daemon --no-daemon
hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event
dbus-daemon --system
hald-runner
pickup -l -t fifo -u
avahi-daemon: chroot helper
/sbin/auditd -n
/usr/lib/systemd/systemd-journald

Pourcelot diz que o agente da ameaça atualizou o BPFdoor regularmente, melhorando cada versão com nomes diferentes para comandos, processos ou arquivos.

Por exemplo, as variantes mais recentes do implante passaram do uso de palavras-chave de comando para hashes MD5, provavelmente na tentativa de evitar uma detecção trivial.

Existem pelo menos 21 versões do BPFdoor atualmente detectadas na plataforma de verificação do Virus Total, as primeiras enviadas em agosto de 2018.

Embora a taxa de detecção desse implante tenha melhorado, especialmente depois que Beaumont, Rowland e Pourcelot publicaram suas descobertas, o malware ficou praticamente invisível por um longo tempo.

Uma variante do BPFdoor para o Solaris de 2019 não foi detectada até pelo menos 7 de maio. Hoje, 28 mecanismos antivírus o sinalizam como malicioso.

Detecção para versão Solaris do backdoor passivo
BPFdoor, um malware que ataca o Linux e o Solaris sem ser detectado – Detecção para versão Solaris do backdoor passivo BPFdoor fonte: Kevin Beaumont, BleepingComputer

Em alguns casos, as detecções são genéricas e sinalizam incorretamente a variante Solaris acima como malware Linux, embora não seja um binário Linux.

Tristan Pourcelot diz que, embora o BPFdoor não use técnicas novas ou complicadas, ele ainda conseguiu permanecer furtivo por um longo período.

Isso pode ser explicado pelo fato de que a tecnologia de monitoramento de malware não é tão comum em ambientes Linux quanto no Windows. Além disso, “os fornecedores têm uma visibilidade significativamente menor”, ​​disse Beaumont ao site BleepingComputer.

Craig Rowland concorda que este é um grande problema. Mesmo que haja monitoramento, as pessoas não sabem o que procurar ou usam a abordagem errada para encontrar malware Linux.

O pesquisador disse que alguns administradores usam hashes criptográficos para verificar o sistema em busca de malware ou arquivos maliciosos. Isso não funciona bem porque a menor alteração no arquivo resulta em um novo hash.

Craig Rowland ainda complementou, referindo-se particularmente aos sistemas Linux mais antigos:

“Além disso, o EDR [Endpoint Detection and Response] quer carregar os agentes por toda parte e os agentes quebram o Linux, então eles geralmente não são uma boa escolha. Então, as pessoas voam nuas com o Linux com frequência e coisas assim acontecem.”

Rowland diz que a caça ao BPFdoor é fácil, pelo menos para a versão Linux que ele analisou, já que suas táticas mostram claramente que eles “são apenas maliciosos out of the box”.

Detecção da solução sem agente Sandfly para segurança Linux
Detecção de BPFdoor da solução sem agente Sandfly para segurança Linux fonte: Craig Rowland, Sandfly Security

O código-fonte de uma versão mais antiga do BPFdoor de 2018 foi encontrado por Florian Roth, o criador do scanner THOR APT da Nextron Systems. O código agora está disponível publicamente no Pastebin.

Os pesquisadores com a qual o site BleepingComputer falou sobre o BPFdoor não atribuíram o malware a nenhum agente de ameaça.

Mas em um relatório anual sobre ameaças cibernéticas, pesquisadores da PricewaterhouseCoopers (PwC) observam que encontraram o implante BPFdoor durante um envolvimento de resposta a incidentes.

A PwC atribuiu a invasão a um ator baseado na China que eles rastreiam como Red Menshen (anteriormente Red Dev 18), que tem usado o BPFdoor em “provedores de telecomunicações no Oriente Médio e na Ásia, bem como entidades do governo, educação e logística setores”.

Durante as investigações, os pesquisadores da PwC descobriram que, no estágio de pós-exploração de seus ataques, a Red Menshen usou variantes personalizadas do backdoor Mangzamel e da ferramenta de acesso remoto Gh0st (RAT) junto com ferramentas de código aberto como Mimikatz (para extrair credenciais) e Metasploit suíte de testes de penetração, para movimento lateral em sistemas Windows.

A PwC diz que:

“Também identificamos que o agente da ameaça envia comandos para as vítimas do BPFDoor por meio de Servidores Privados Virtuais (VPSs) hospedados em um provedor conhecido e que esses VPSs, por sua vez, são administrados por meio de roteadores comprometidos baseados em Taiwan, que o agente da ameaça usa. como túneis VPN”

Os pesquisadores observam que a atividade do Red Menshen está ocorrendo dentro de um intervalo de nove horas, entre 01:00 e 10:00 UTC, o que pode estar alinhado com o horário de trabalho local.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.