Atores de ameaças que espalham e gerenciam malware há muito abusam de serviços online legítimos. Como descobrimos durante nossa investigação sobre o uso de TLS por malware, mais da metade do tráfego de rede gerado por malware usa criptografia TLS, e 20% disso envolveu o malware se comunicando com serviços on-line legítimos.
Durante o período dessa pesquisa, descobrimos que quatro por cento dos downloads gerais de malware protegidos por TLS vieram de um serviço em particular: Discord. A crescente popularidade da plataforma de bate-papo por voz e texto centrada em jogos não deixou de chamar a atenção dos operadores de malware.
A Discord opera sua própria rede de entrega de conteúdo, ou CDN, onde os usuários podem fazer upload de arquivos para compartilhar com outras pessoas. O serviço também publica uma API, permitindo que os desenvolvedores criem novas maneiras de interagir com o Discord, exceto por meio de seu aplicativo cliente. Observamos volumes significativos de malware hospedados no próprio CDN do Discord, bem como malware interagindo com APIs do Discord para enviar e receber dados.
Várias famílias de malware sequestradoras de senha visam especificamente contas Discord. O SophosLabs também encontrou malware que aproveitou as APIs do bot de bate-papo Discord para comando e controle, ou para exfiltrar informações roubadas em servidores ou canais privados do Discord.
Como as origens do serviço estavam ligadas aos jogos online, o público do Discord inclui um grande número de jogadores, incluindo jogadores de títulos voltados para a juventude, como Fortnite, Minecraft ou Roblox. Entre os arquivos maliciosos que descobrimos na rede do Discord, encontramos ferramentas de trapaça de jogos que visam jogos que se integram ao Discord, no jogo. As ferramentas supostamente tornam possível, explorando fraquezas nos protocolos do Discord, que um jogador trave o jogo de outro jogador. Também encontramos aplicativos que servem como nada mais do que brincadeiras inofensivas, embora disruptivas.
Mas a maior porcentagem do malware que encontramos tem foco em roubo de credenciais e informações pessoais, uma grande variedade de malwares roubadores, bem como RATs mais versáteis. Os atores de ameaças por trás dessas operações empregaram engenharia social para espalhar malware de roubo de credenciais e, em seguida, usar as credenciais Discord coletadas pelas vítimas para atingir usuários adicionais do Discord.
Também encontramos várias famílias de ransomware hospedadas na CDN Discord – em grande parte mais antigas, utilizáveis apenas para causar danos, já que não há mais uma maneira de pagar o resgate. Os arquivos hospedados no Discord também incluíam vários pacotes de malware Android, desde spyware até aplicativos falsos que roubam informações financeiras ou transações.
Abuso crescente de todos os tipos
Abuso de Discórdia, como abuso de qualquer serviço baseado na web, não é um fenômeno novo, mas está crescendo rapidamente: os produtos Sophos detectaram e bloquearam, apenas nos últimos dois meses, quase 140 vezes o número de detecções no mesmo período de 2020. Em abril, relatamos mais de 9.500 URLs exclusivas hospedando malware no CDN da Discord para representantes da Discord.
No segundo trimestre, detectamos 17.000 URLs exclusivas no CDN do Discord apontando para malware. E isso exclui o malware não hospedado no Discord que aproveita as interfaces de aplicativos do Discord de várias maneiras. Logo antes do horário de publicação, mais de 4.700 dessas URLs, apontando para um arquivo malicioso do Windows .exe, permaneceram ativos.
As razões para esse crescimento parecem muito fáceis de entender. O Discord fornece uma rede de distribuição global persistente e altamente disponível que os operadores de malware podem aproveitar, bem como uma API de mensagens que pode ser adaptada facilmente ao comando e controle de malware – da mesma forma que o Internet Relay Chat e, mais recentemente, o Slack e o Telegram, têm sido usados como canais C2.
Ele também fornece um ambiente cada vez maior e rico em alvos para golpistas e operadores de malware espalharem códigos maliciosos para roubar informações e credenciais pessoais por meio de engenharia social. E alguns usuários do Discord claramente procuram usar a plataforma para prejudicar os computadores de outros por despeito, e não por ganho financeiro.
O Discord não é o único serviço que está sendo abusado por distribuidores de malware e golpistas por qualquer meio, e a empresa responde a solicitações de retirada. Mas os usuários do Discord devem permanecer vigilantes à ameaça de conteúdo malicioso no serviço, e os defensores nunca devem considerar qualquer tráfego de um serviço em nuvem como inerentemente “seguro” com base na legitimidade do próprio serviço.
Usando os dados de telemetria mais recentes, conseguimos recuperar milhares de amostras de malware exclusivas e mais de 400 arquivos de arquivo dessas URLs – uma contagem que não representa todo o corpus de malware, pois não inclui arquivos que foram removidos pelo Discord (ou pelos atores que os carregaram originalmente). Estes foram divulgados ao Discord, e a maioria deles já foi removida; no entanto, novos malwares continuam a ser postados no CDN do Discord, e continuamos a encontrar malware usando o Discord como rede de comando e controle.
O tipo errado de impulso
Discord é um serviço baseado em nuvem otimizado para grandes volumes de mensagens de texto e voz dentro das comunidades de interesse. O Discord obtém receita de serviços premium fornecidos através da plataforma, incluindo “impulsionos de servidor” que permitem que os grupos aumentem o desempenho da transmissão ao vivo e bate-papo por voz de suas instâncias de servidor e adicionem recursos personalizados.
Mas a plataforma básica — que inclui acesso à interface de programação de aplicativos (API) Discord — é gratuita. Os servidores Discord, incluindo os gratuitos, também podem ser configurados para interagir com aplicativos de terceiros – robôs que publicam conteúdo em canais de servidor, aplicativos que fornecem funcionalidades adicionais construídas sobre o Discord e jogos que se conectam diretamente à plataforma de mensagens do Discord.
Os “servidores” do Discord são instâncias do Google Cloud de máquinas virtuais Elixir Erlang, front-endadas pela Cloudflare. Os servidores podem ser públicos ou privados – um “proprietário” de servidor pode exigir chaves de convite para que indivíduos entrem nos canais do servidor e acessem o conteúdo.
Além do roteamento de mensagens e fluxos, o Discord também atua como uma rede de entrega de conteúdo para conteúdo digital de todos os tipos. Em sua forma mais simples, esse conteúdo são anexos de mensagens – arquivos que são carregados por usuários do Discord em bate-papo ou mensagens privadas. O Discord usa o Google Cloud Storage para armazenar anexos de arquivos; uma vez que um arquivo tenha sido carregado como parte de uma mensagem, ele é acessível de qualquer lugar da web através de um URL que representa um endereço de objeto de armazenamento. Como as instâncias do servidor do Discord, os objetos de armazenamento são front-endados pelo Cloudflare.
Essa arquitetura torna o Discord escalável o suficiente para lidar com suas centenas de milhões de usuários ativos e resiliente contra ataques de negação de serviço – uma vantagem para lidar com a comunidade de jogos. Também o torna uma plataforma ideal para abuso por atores maliciosos. Depois que os arquivos são carregados no Discord, eles podem persistir indefinidamente, a menos que sejam relatados ou excluídos.
Embora o Discord tenha alguns recursos de triagem de malware, muitos tipos de conteúdo malicioso passam sem aviso prévio. E quando os usuários são pegos, eles podem gravar sua conta e criar uma nova. A discórdia depende muito de denúncias de usuários de abuso policial. Mas quando a arquitetura Discord é usada para atividades limitadas a alvos não necessariamente dentro da comunidade de usuários Discord, eles podem ficar sem relatório e persistir por meses.
Jogando os jogadores
Uma das principais maneiras pelas quais observamos malware sendo implantado a partir do CDN do Discord é através da engenharia social – usando canais de bate-papo ou mensagens privadas para postar arquivos ou links externos com descrições enganosas como uma atração para fazer com que outras pessoas as baixem e executem. Encontramos muitos arquivos cujos nomes sugeriam que serviam a alguma função para os jogadores, e alguns de fato eram: fraudes de jogos, “melhorias” de jogos que afirmavam ser capazes de desbloquear conteúdo pago, geradores de chaves de licença e desvios. Mas enquanto alguns eram realmente o que foi anunciado, a grande maioria deles eram de fato hacks de outro tipo – destinados a uma forma ou outra de roubo de credenciais.
Uma porcentagem significativa desses ladrões de credenciais tem como alvo o próprio Discórdia. Registradores de tokens Discord roubam os tokens OAuth usados para autenticar usuários Discord, frequentemente junto com outros dados de credenciais e informações do sistema, incluindo tokens para Steam e outras plataformas de jogos. Eles “logam” tokens roubados de volta a um canal Discord através de uma conexão de webhook, permitindo que seus operadores coletem os tokens OAuth e tentem sequestrar o acesso às contas.
A curva de aprendizado para construir um registrador de tokens não é muito íngreme. Um registrador de token de prova de conceito baseado em Python pode ser encontrado no GitHub e facilmente transformado em um executável personalizado para se comunicar com o servidor de escolha do operador de malware. Uma campanha de registro de tokens ativa foi espalhada por meio de um golpe de engenharia social em andamento aproveitando contas roubadas, pedindo aos usuários que testem um jogo em desenvolvimento. O “jogo” é um script Python compilado semelhante à prova de conceito.
Uma vez que as credenciais são roubadas, elas são frequentemente usadas para continuar roubando outras credenciais por meio da engenharia social. O registrador de tokens também coleta dados de impressão digital da máquina e tenta raspar outros cookies e tokens de credenciais da máquina do alvo também, para que possa haver mais danos causados do que apenas a perda de uma conta.
Outro ladrão, chamado PirateMonsterInjector por seu autor, usa a própria API do Discord para despejar tokens OAuth do Discord e outras informações roubadas de volta a um bate-papo privado do servidor Discord. Ele faz isso recuperando JavaScript de um site malicioso (monster[.]casa) que contém código da API Discord e raspa dados do sistema relacionados ao Discord e outros aplicativos.
Outros esquemas de roubo de credenciais vão além. Vários dos arquivos de malware também derrubaram executáveis e/ou DLLs de carga útil que eles usaram para se envolver em um roubo de dados mais abrangente.
Entre os arquivos estavam dispersas muitas cópias de um malware ladrão amplamente utilizado conhecido como Agente Tesla. Em um exemplo, o arquivo inicial que espalhou a infecção foi chamado PURCHASE_ORDER_1_1.exe. Não é incomum que o malware Agent Tesla baixe cargas úteis como parte de seu processo de infecção, mas foi inesperado descobrir que a carga útil também estava hospedada na CDN da DIscord.
O malware derrubou um executável de carga útil chamado midnight.exe diretamente do CDN e o executou. Essa carga útil, por sua vez, baixou uma DLL chamada TextEditor.dll de um site diferente e a injetou em um processo de sistema em execução. (Escrevemos anteriormente sobre as capacidades do Agente Tesla.)
Em outro caso, encontramos um instalador malicioso de uma versão modificada do Minecraft. O instalador realmente oferece uma versão completa do onipresente jogo criativo de construção de blocos, mas com uma reviravolta. Disfarçado como um “mod” com recursos especiais chamados Saint, o instalador Minecraft empacotou um aplicativo Java capaz de capturar pressionamentos de teclas e capturas de tela do sistema do alvo, bem como imagens da câmera no computador infectado. As classes Java dentro do arquivo são uma indicação inconfundível dos recursos do malware.
Encontramos muitos exemplos de informações roubando malware e backdoors usando nomes de arquivos que indicavam que eles eram usados como parte de campanhas de engenharia soclal. Um arquivo chamado fortniat.exe, anunciado como uma “multiferramenta para FortNite”, era na verdade um empacotador de malware que deixa cair um backdoor Meterpreter.
Outra amostra de malware que encontramos se anunciou como um instalador para o Browzar, um navegador da web orientado para a privacidade. Mas enquanto instalou o navegador, também deixou cair um infostealer Agent Tesla.
Havia também coleções de arquivos que pretendem instalar versões rachadas de software comercial popular (mas caro), como o Adobe Photoshop. E, é claro, havia ferramentas que afirmam dar ao usuário acesso aos recursos pagos do Discord Nitro, a edição premium do serviço.
Geradores de chaves Discord ‘Nitrogen’
Pelo menos cinquenta dos arquivos da coleção foram nomeados para implicar que poderiam desbloquear os recursos do Discord Nitro em uma conta pertencente a um usuário que não se inscreveu no serviço de US$ 100/ano ou gerar “códigos de presente” que concedem uma atualização Nitro de um mês. Muitas das ferramentas se referem a si mesmas como um utilitário de “nitrogênio”, uma concatenação de Nitro e “gerador de código”.
Embora alguns dos arquivos tenham gerado códigos que se assemelham aos usados para atualizar uma conta Discord padrão para a versão Discord Nitro, a maioria não o fez. Uma das amostras solta um script em lote que tenta excluir chaves de registro e encerrar os processos ou serviços de dezenas de ferramentas de segurança de endpoint. Este script “antiav.bat” é executado a partir do diretório %TEMP% no sistema imediatamente após o usuário iniciar o programa.
O script em lote do mesmo utilitário “nitrogen” desativou vários dos principais recursos de segurança do Windows, evidenciados pelo fato de que o Windows solicita que o usuário reinicie o computador “para desativar o Controle de Conta de Usuário”, o recurso que solicita que um usuário do Windows permita que um aplicativo seja executado com privilégios elevados. Sem o UAC, os executáveis podem ser executados com privilégios administrativos sem exigir que o usuário o permita.
Muitos dos programas usaram uma variedade de métodos para traçar o perfil do sistema infectado e gerar um arquivo de dados que tentam carregar em um servidor de comando e controle. Como muitos dos arquivos estavam lá há meses, os servidores de destino não responderam, mas pudemos observar os dados de criação de perfil sendo gravados no disco rígido.
Além de criar o perfil do sistema, muitas das amostras tentaram recuperar “tokens” do navegador que permitiriam que seus operadores fizessem login no Discord usando a conta da vítima, ou instalaram componentes do registrador de pressionamento de tecla que monitoravam a entrada do usuário e tentavam passá-la para um servidor de comando e controle. A maioria dos ladrões de tokens não conseguiu recuperar um token do banco de testes porque as únicas credenciais usadas para o Discord no sistema de teste foram usadas no aplicativo Discord Windows; A vítima falsa nunca havia feito login no serviço usando o navegador.
Em muitos casos, esses valores de token foram enviados diretamente para outros canais ou contas de usuário do Discord através do uso da própria API do Discord, por meio de uma solicitação HTTPS POST para um URL específico no Discord. Ocasionalmente, também nos deparemos com um malware que tentava enviar os dados para um canal no Slack.
Alguns desses malwares “ladrão de tokens” incluem o gráfico do avatar da vítima e seu endereço IP voltado para o público, que eles recuperaram usando serviços como ifconfig.me, ipify.org, iplogger.com, orwtfismyip.com. Esses ladrões mais sofisticados conseguiram extrair o token do aplicativo cliente Discord, não apenas do navegador.
O ladrão produziria então um envio bem formatado para uma URL de canal específica do Discord.
Alguns dos ladrões tentaram baixar um arquivo malicioso do Visual Basic Script diretamente do Github ou do Pastebin. Felizmente, nesses casos, os sites já haviam bloqueado ou retirado o script de carga útil, então o ladrão não conseguiu concluir sua tarefa.
Ransomware como uma brincadeira?
Havia outros malwares distribuídos via Discord rotulados com nomes relacionados a jogos que claramente tinham a intenção apenas de prejudicar os computadores de outras pessoas. O E um arquivo rotulado como “Roblox_hack.exe” realmente carregava uma variante do ransomware WinLock, uma das várias variantes de ransomware que encontramos no CDN da Discord. Em vez de criptografar arquivos, este ransomware bloqueia a vítima do ambiente de desktop.
Outra família de malwares de armário de tela também foi amplamente representada no CDN da Discord é Somhoveran / LockScreen, que adiciona uma contagem regressiva à ameaça de resgate. Somhoveran usa a Instrumentação de Gerenciamento do Windows para coletar uma “impressão digital” do sistema afetado e exibe alguns desses dados na tela.
Há uma amostra de ransomware ainda mais desagradável que encontramos na CDN da Discord: Petya, um cripto-ransomware visto pela primeira vez em 2016.
Como o site Tor para Petya está morto, não está claro se esse arquivo foi compartilhado com a intenção de extorsão ou se foi feito para simplesmente desativar o computador do destinatário. A maioria dos produtos antimalware (incluindo o Windows Defender) bloqueará o Petya, então essa é uma curiosidade mais do que uma ameaça para a maioria das máquinas Windows – mas ainda é potencialmente perigosa para computadores mais antigos e nas mãos de alguém que está convencido de que precisa correr para melhorar o desempenho do jogo.
Malware Android
O problema de malware do Discord não é apenas baseado no Windows. Caçando através da telemetria, encontramos 58 aplicativos maliciosos exclusivos que podem ser executados em dispositivos Android. Estes incluíram vários malwares e spyware focados em bancos, conforme indicado pelas detecções da Sophos abaixo:
Andr/Banco-GTV | 41 |
Andr/Banco-GZA | 1 |
Andr/Banco-HAC | 4 |
Andr/FakeApp-BK | 1 |
Andr/Xgen2-LP | 1 |
Andr/Xgen2-XN | 1 |
Andr/Xgen2-XP | 3 |
Andr/Xgen2-YD | 2 |
Em nosso retrospecto de telemetria de 90 dias, encontramos 205 URLs no domínio Discord apontando para executáveis .apk do Android (com vários links redundantes para arquivos duplicados). Depois de relatar a lista ao Discord, o serviço derrubou os arquivos, mas uma consulta subsequente algumas semanas depois mostrou que mais apareceram enquanto isso.
Entre os que permaneceram disponíveis pouco antes da publicação estavam um aplicativo que realiza cliques fraudulentos em anúncios (classificado como Andr/Hiddad-P); aplicativos que soltam outros malwares (Andr/Dropr-IC e Andr/Dropr-IO) no dispositivo; backdoors que permitem que um invasor remoto acesse o dispositivo móvel da vítima, incluindo
Os arquivos de malware do Android receberam nomes e ícones que poderiam levar alguém a acreditar que são aplicativos legítimos bancários ou atualizados de jogos. Um dos aplicativos parecia usar o ícone e o nome de um aplicativo de rastreamento de contatos COVID-19. Vários pop-ups gerados dentro do dispositivo que exigiam que o usuário os ativasse como um “administrador do dispositivo”, o que dá aos aplicativos controle quase total sobre o dispositivo.
Ferramentas de ataque direcionadas a usuários do Discord
Como qualquer plataforma amigável ao desenvolvedor, esses recursos estão prontos para abuso. Entre os aplicativos maliciosos que descobrimos estavam aplicativos anunciados como fraudes de jogos – programas que alteram ou afetam o ambiente de jogo. Por exemplo, “Conrado’s FiveM Crasher”, uma trapaça de jogo para servidores multiplayer Grand Theft Auto hospedados em servidores administrados pela comunidade, extrai dados da integração da FiveM com Discord para “trair” jogadores próximos no jogo:
Um dos arquivos maliciosos baseados em Linux que recuperamos foi este arquivo, chamadovirus_de_prost_ce_esti.rar, que se traduz do idioma romeno original para o vírus estúpido que você é. O conteúdo deste arquivo incluía 11 binários ELF, 7 arquivos de texto (contendo longas listas de endereços IP) e um script Python que os executa em várias sequências. A intenção do pacote era interromper os servidores de jogos, fazendo com que eles ficassem para trás ou travassem.
Os comentários internos do script Python indicam que ele foi projetado para atacar servidores hospedados em duas plataformas: AWS da Amazon e Servidores NFO (um serviço que hospeda servidores de jogos privados para MineCraft, Counter Strike, Battlefield, Medal of Honor e outros jogos multiplayer).
Um bairro difícil
O Discord respondeu aos nossos relatórios retirando a maioria dos arquivos maliciosos que relatamos a eles. De acordo com algumas comunicações, a empresa está atualmente se esforçando internamente para elevar sua postura de segurança. Mas a plataforma continua sendo um lixão para malware. E mesmo para malware não hospedado no Discord, a API Discord é um terreno fértil para o comando malicioso e controle de recursos de rede que se escondem no tráfego de rede protegido por TLS do Discord (bem como por trás da reputação do serviço).
Embora seja claro que alguns dos malwares no Discord destinam-se especificamente a desativar computadores ou interromper a capacidade dos jogadores de alcançar suas plataformas de escolha, a prevalência de ladrões de informações, ferramentas de acesso remoto e outros malwares criminosos representa riscos muito além da esfera entusiasta de jogos. Com mais organizações usando o Discord como uma plataforma de colaboração de baixo custo, o potencial de danos representado pela perda de credenciais do Discord abre vetores de ameaças adicionais para as organizações.
Mesmo que você não tenha um usuário do Discord em sua casa ou escritório, o abuso do Discord por operadores de malware representa uma ameaça. A proteção de endpoint (e no nível corporativo, a inspeção TLS) pode oferecer proteção contra essas ameaças, mas o Discord fornece pouca proteção contra malware ou a própria engenharia social – os usuários do Discord só podem relatar as ameaças que encontram e se automoderar, enquanto novos golpes surgem diariamente.
Proteção Sophos
Analisamos mais de 9.000 amostras de malware no decorrer deste projeto. Embora seja impraticável listar o conjunto completo de detecções estáticas e comportamentais que esses arquivos podem acionar se executados em uma máquina protegida, podemos dizer com segurança que o conjunto completo de arquivos foi processado pela equipe Labs, que garantiu que nossas defesas existentes pudessem impedir que qualquer um deles causasse danos.
Indicadores de compromisso são hashes para os arquivos recuperados na execução mais recente de downloads e foram publicados no SophosLabs Github. A SophosLabs gostaria de agradecer à equipe de Confiança e Segurança da Discord por responder rapidamente às nossas solicitações de derrubar malware.
FONTE: SOPHOS