O TrickBot reforça as defesas em camadas para impedir a pesquisa de injeção

A gangue de crimes cibernéticos que opera o Trojan TrickBot, bem como outros ataques de malware e ransomware, tem aumentado suas atividades

Este post foi escrito com contribuições de Limor Kessem e Charlotte Hammond da IBM X-Force.

Como parte dessa escalada, as injeções de malware foram equipadas com proteção adicional para manter os pesquisadores afastados e passar pelos controles de segurança. Na maioria dos casos, essas proteções extras foram aplicadas a injeções usadas no processo de fraude bancária online — a principal atividade do TrickBot desde sua criação após o fim do Dyre Trojan.

Os pesquisadores da IBM Trusteer analisaram as injeções mais recentes do TrickBot e as técnicas anti-análise usadas para ocultar sua atividade. As informações estão detalhadas neste post.

MiTB – O básico

Os ataques Man-in-the-browser (MiTB) são uma maneira de os adversários interceptarem a comunicação entre usuários ou usuários e serviços remotos. O uso mais comum dessa interceptação é por Trojans bancários durante as sessões da web. Os scripts do MiTB são projetados para modificar as informações que saem do navegador em tempo real, para que o que chegue ao servidor do banco se ajuste às instruções do criminoso.

TrickBot é um dos Trojans modernos mais modulares e sofisticados. Ele usa uma variedade de injeções, algumas das quais muito avançadas , para enganar os usuários e seus provedores de serviços para cometer fraudes bancárias. No caso do TrickBot, as injeções podem ser buscadas localmente nos arquivos de configuração ou em tempo real do servidor de injeção do invasor.

Embora seja possível extrair uma lista de alvos do TrickBot de seus arquivos de configuração, as coisas ficam muito mais difíceis para aqueles que procuram entender qual atividade será lançada em cada alvo. Tal como acontece com outros Trojans bancários, as táticas de ataque mudam para cada banco para corresponder aos desafios que os fraudadores encontrarão antes que uma transação seja autorizada.

Primeira linha de defesa: entrega de injeção no lado do servidor

Manter injeções em máquinas infectadas significa que é mais provável que elas caiam nas mãos de pesquisadores de segurança. As injeções mantidas localmente também são menos ágeis e mais difíceis de manipular em tempo real. Para ir além desses riscos, os operadores do TrickBot injetam de seu servidor, conhecidos como injeções do lado do servidor. Para facilitar a busca da injeção certa no momento certo, o malware TrickBot residente usa um downloader ou um carregador JavaScript (JS) para se comunicar com seu servidor de injeção.

Figura 1: fluxo de injeção do lado do servidor do TrickBot

Segunda linha de defesa: comunicações seguras com o C2

Para segurança operacional, o downloader JS busca injeções por meio de uma solicitação segura usando o protocolo HTTPS para o servidor de comando e controle (C2) do invasor. Ele fornece essa solicitação usando um parâmetro de política de referência com o sinalizador ‘unsafe-URL’. O sinalizador especifica que um URL completo, removido para uso como referenciador, deve ser enviado junto com solicitações de origem cruzada e solicitações de mesma origem feitas de um cliente específico. No caso do TrickBot, usar esse sinalizador provavelmente fornece informações sobre a página específica em que o usuário está navegando para o servidor C2, permitindo que o servidor C2 envie injeções personalizadas por página. O invasor também pode usar as informações para ignorar solicitações de fontes ou páginas indesejadas/desconhecidas, não enviando nada de volta ao lado do cliente.

Figura 2: solicitações HTTPS para o servidor C2 com política de referência

Para comunicação segura com um servidor de injeção remoto, o TrickBot conecta a função de verificação de certificado no dispositivo infectado. Assim, ele bloqueia quaisquer erros de certificado para os quais a vítima possa ser alertada durante a comunicação maliciosa com o servidor de ataque.

A solicitação ao servidor C2 gera uma injeção da Web que foi designada pelo invasor para cada URL de banco de destino. Cada injeção é usada para interagir com as vítimas e induzi-las a divulgar detalhes que ajudarão o ataque a finalizar a transação.

Figura 3: injeções da Web coletando credenciais de usuário em um dispositivo infectado

Uma olhada nos dados coletados também mostra que a injeção raspa a impressão digital do dispositivo e a envia para o servidor C2.

Figura 4: injeções da Web coletando impressão digital em um dispositivo infectado

Os dados de impressão digital são bastante elaborados, incluindo parâmetros do navegador, configurações de idioma, noções básicas do sistema operacional, agente do usuário, plugins e muito mais. Os dados de impressão digital roubados ajudam os invasores a obter mais informações sobre cada sessão e a se passarem por vítimas em atividades fraudulentas.

Terceira linha de defesa: anti-depuração

Para proteger ainda mais suas injeções, o TrickBot adicionou um script antidepuração ao código JS. O objetivo é antecipar as ações típicas que os pesquisadores tomarão e garantir que sua análise falhe. Nesse caso, o TrickBot pode acionar uma sobrecarga de memória que travaria a página e atrapalharia a análise.

Uma das maneiras pelas quais o desenvolvedor do TrickBot conseguiu isso é procurando por ‘embelezamento de código’ realizado pelo pesquisador. Quando alguém encontra um grande bloco de código que é muito ‘bagunçado’ para um olho humano, eles aplicarão ‘embelezamento’ a ele. Por exemplo, ao olhar para o código de injeção ofuscado, um pesquisador pode começar decodificando-o a partir do formato Base64 e, em seguida, tornar todos os literais e funções legíveis por humanos. Os valores literais são alterados para valores reais, o código é dividido em partes, etc. Todos esses esforços fazem parte do embelezamento do código, e o TrickBot espera isso dos pesquisadores, tornando-se um bom lugar para retê-los.

Procurando por embelezamento de código, o TrickBot usa um RegEx para verificar uma função chamada ‘this[‘Ccmdra’].’ Se esta função for executada através da função eval(atob em seu estado original, ela aparecerá como this[‘Ccmdra’] = function(){return’newState’;} sem novas linhas ou espaços, que normalmente são adicionados quando alguém embeleza o código.

No entanto, se o código fosse embelezado por alguém, eles provavelmente removeriam a codificação base64 e substituiriam a função por seu conteúdo decodificado. Pode parecer mais ordenado.

this[‘Ccmdra’] = function(){

return’novoEstado’;

}

Figura 5: O código está embelezado?

Figura 6: Agora o código está embelezado

O TrickBot usa um RegEx para detectar a configuração embelezada e se lançar em um loop que aumenta o tamanho do array dinâmico em cada iteração. Depois de algumas rodadas, a memória acaba ficando sobrecarregada e o navegador trava.

Figura 7: O navegador trava após sobrecarga de memória

Quarta Linha de Defesa: Ofuscação e Codificação

O código que o TrickBot injeta deve ser ofuscado. Ele é primeiro codificado com Base64 para que os scripts não fiquem em texto simples. As seguintes técnicas são usadas pelos desenvolvedores do TrickBot para obter alguma ofuscação adicional:

Minify/Uglify — Por meio de uma série de transformações, como variáveis, funções, renomeação de argumentos e remoção de strings, o código do TrickBot é feito para parecer ilegível aos olhos humanos, enquanto funciona da mesma forma.

Extração e substituição de strings —  window.console.log(1) pode ser escrito como window[‘console’][‘log’](1). O ofuscador move todas as strings para um array e as criptografa, o que oculta funções, literais, argumentos e informações sobre a execução do programa.

Base numérica e representação — O  TrickBot usa representação hexadecimal para representar números e inicializar variáveis ​​em algum valor de maneira complexa. Por exemplo, em vez de escrever:

var numero = 0;

Isso pode ser substituído por:

write var num = (0x130 * 0x11 + -0x17f5 + 0x2e * 0x15, -0x24a5 + 0x68e * -0x4 + 0x3edd, -0x17f1 + -0x99b * 0x3 + 0x34c2)

Essa tática é comum a muitos ofuscadores.

Injeção de código morto — Para tornar as coisas mais confusas, os desenvolvedores do TrickBot adicionaram código redundante. Isso torna o código menos legível e torna suas ações mais difíceis de decifrar. Isso se assemelha a um malware que importa módulos redundantes para ocultar seu verdadeiro propósito.

Monkey patching —  Corrija funções nativas para alterar seu comportamento de uma forma que impossibilite entender o que está sendo ativado usando análise estática.

Dominando a Arena de Crimes Cibernéticos

O Trojan TrickBot e a gangue que o opera têm sido um elemento básico do crime cibernético desde que assumiram quando um antecessor, Dyre , faliu em 2016. O TrickBot não descansou um dia. Entre tentativas de derrubada e uma pandemia global, vem diversificando seus modelos de monetização e se fortalecendo .

Seja por meio de ataques de ransomware ou em parceria com outras gangues de crimes cibernéticos e provedores de serviços da Europa Oriental, o TrickBot continua sendo uma preocupação para as empresas em algumas frentes. O TrickBot vai atrás de dinheiro corporativo, facilita ataques de ransomware e extorsão e implanta outros malwares indesejados na rede.

O TrickBot distribui malware em vários estágios por meio de e-mails de phishing, malspam, botnets, conversas de e-mail sequestradas e até mesmo um call center malicioso conhecido como BazarCall. Embora os temas variem, geralmente um anexo com armadilhas é uma maneira de infectar os usuários. O método usado em cada campanha é embaralhado com frequência, o que pode dificultar a antecipação. O TrickBot incorpora vulnerabilidades, ferramentas de movimento lateral como Cobalt Strike e táticas de vida fora da terra, como scripts do PowerShell.

Para mitigar o risco de infecções por TrickBot, os funcionários devem estar atualizados sobre as táticas de ataque recentes e a inteligência de ameaças relevante deve ser incorporada à escolha dos controles de segurança que protegem sua organização. Além disso, você deve:

  • Use uma solução de segurança de e-mail para escanear, filtrar e remover anexos conforme necessário. Isso é especialmente importante para anexos habilitados para macro.
  • Considere o uso de protocolos de prevenção de falsificação de email para ajudar a diminuir o risco de receber emails de fontes suspeitas.
  • Siga os princípios de privilégios mínimos e minimize o número de contas privilegiadas em redes e ativos de nuvem.
  • Ative a autenticação multifator em contas privilegiadas e, de preferência, em todas as contas.
  • Projete controles de arquitetura para segregação de rede. Isso pode ajudar a limitar o movimento lateral e minimizar infecções mais amplas e roubo de dados.
  • Monitore o movimento lateral.
  • Tenha backups offline e um agendamento de backup. As infecções por TrickBot são muito prováveis ​​de se tornarem ataques de ransomware.
  • Certifique-se de que os dados classificados como confidenciais ou que possam expor os clientes e a organização à extorsão sejam criptografados (no local e na nuvem). Os ataques de ransomware geralmente incluem extorsão de dados.
  • Continue o treinamento de funcionários com base em funções para garantir que os funcionários da organização protejam a organização contra malware.
  •  Aprenda sobre confiança zero e comece sua jornada de confiança zero, se ainda não o fez.

Para saber mais sobre o IBM Trusteer, visite: www.ibm.com/security/fraud-protection/trusteer

IOCs da análise da IBM

Domínios/recursos

hxxps:\/\/myca.adprimblox.fun

hxxps:\/\/ksx.global-management-holdings.com

hxxps:\/\/on.imagestorage.xyz

hxxps:\/\/997.99722.com

hxxps:\/\/akama.pocanomics.com

hxxps:\/\/web7.albertleo.com

endereços IP

  • 94.242.58.165
  • 185.14.30.111
  • 208.115.238.183
  • 51.83.210.212
  • 103.119.112.188
  • 185.198.59.85

Hashes SHA1

  • jquery-1.10.1.js: 5acd3cddcc921bca18c36a1cb4e16624d0355de8
  • downloader js: ae1b927361e8061026c3eb8ad461b207522633f2

Fonte: https://securityintelligence.com/