Cryptojacking: quando uma máquina minera para outra pessoa
Como o malware de mineração entra, por que o dono de um rig é a pessoa de quem é mais difícil escondê-lo e a mais fácil de enganar, e como verificar e limpar uma máquina do jeito certo.
O que é
Cryptojacking é alguém rodando um programa de mineração num hardware que não é dele e pelo qual ele não paga. Não é algo raro: é a coisa mais comum que um malware faz com uma máquina depois de tomá-la, porque o pagamento não depende de enganar a vítima em mais nada depois. A vítima é a conta de luz, e ela chega em silêncio.
Quase sempre é Monero. A moeda pode ser minerada com lucro em processadores comuns, então alguns milhares de computadores de escritório valem a pena, e a privacidade dela faz com que o dinheiro não possa ser rastreado. O programa costuma ser o XMRig, um programa de mineração comum de código aberto, com o nome e a configuração alterados.
Uma máquina minerando para outra pessoa não se comporta como infectada do jeito que as pessoas esperam. Nada é criptografado, nenhum arquivo some, nenhum resgate aparece. Ela só esquenta, reduz o desempenho, desgasta as ventoinhas e custa dinheiro.
Por que é diferente quando você já minera
Todo artigo genérico diz a mesma coisa: procure uso alto do processador, procure calor, procure ventoinhas. Num rig, as três coisas são o estado normal, então o conselho de sempre não detecta nada. Ser minerador faz de você a pessoa mais bem equipada para encontrar isso e a mais fácil de enganar.
A vantagem é que você tem algo que quase ninguém mais tem: um segundo registro, independente, do que o seu hardware produziu. O painel do seu pool é medido no servidor de outra pessoa, a partir do trabalho que de fato chegou. Se o rig mostra um hashrate e o painel fica bem abaixo dele, depois de descontar os shares stale, alguma coisa está consumindo a diferença.
Como ele entra
Os caminhos mudaram pouco, e nenhum deles exige um atacante sofisticado.
- Programas crackeados e piratas. Ainda a maior fonte isolada. Um keygen ou um instalador modificado de um aplicativo pago é um programa que você aceitou rodar com as suas próprias permissões, e o programa de mineração vai junto dentro do pacote.
- Qualquer coisa exposta à internet sem atualização. Falhas antigas e bem conhecidas em programas de servidor são procuradas o tempo todo, e um programa de mineração é a carga preferida porque gera dinheiro com uma máquina que não guarda nada que valha a pena roubar.
- USB. Campanhas recentes se copiam para drives removíveis e se escondem atrás de um atalho que parece o ícone do drive, e é assim que uma rede sem exposição à internet ainda é infectada.
- Imagens de contêiner e de build. Uma imagem base baixada de um registro público pode trazer um, e ela então minera em todo ambiente criado a partir dela.
- Uma aba do navegador, embora muito menos do que antes. Scripts que mineram enquanto uma página está aberta foram uma indústria até o maior fornecedor encerrar as atividades em 2019; eles ainda existem em sites de streaming e de download, mas param quando a aba é fechada.
Os sinais em uma máquina que deveria estar ociosa
- Ela nunca fica ociosa de verdade. Os ventiladores continuam acelerados e o gabinete continua quente sem nada aberto.
- Um processo que você não consegue explicar, muitas vezes com um nome parecido com o de um processo real do sistema. Um único caractere diferente em um nome conhecido é um truque comum.
- Um uso que cai no momento em que você abre o gerenciador de tarefas e volta quando você o fecha. Esse comportamento é proposital e, sozinho, já é quase uma prova.
- Uma tarefa agendada, um serviço ou uma entrada de inicialização que ninguém criou.
- Conexões de saída para um host que você não reconhece, repetidas em um ritmo fixo.
Os sinais em um rig que deveria estar minerando
Aqui a pergunta não é se algo está minerando, e sim se tudo o que está minerando é seu.
- O painel fica abaixo do que o rig informa, de forma constante, além do que os shares stale explicam.
- Dois processos de mineração onde você iniciou um. Em um rig com várias GPUs, vale a pena contar.
- Seu script de inicialização ou flight sheet tem um endereço de carteira ou um host que você não digitou. Leia com atenção, não só dê uma olhada: um endereço alterado no meio parece idêntico à primeira vista.
- Uma placa esquenta e não produz nada no seu pool, que é exatamente como fica um segundo programa de mineração preso a um único dispositivo.
- Ela continua minerando depois que você a parou. Se parar o seu próprio programa de mineração não acalma a máquina, alguma outra coisa está rodando.
A troca de carteira, que custa mais do que a eletricidade
Uma outra família de malware faz algo pior e mais simples. Ela vigia a área de transferência e, quando você copia algo com formato de endereço de carteira, troca pelo endereço do atacante, escolhendo um que começa e termina com os mesmos caracteres para que uma conferência rápida passe. Pessoas já perderam grandes quantias assim sem nenhuma mineração envolvida, e os dois costumam ser instalados juntos.
Para um minerador existe uma segunda versão da mesma ideia: o endereço dentro de um script de inicialização ou de um flight sheet é reescrito uma vez, e todo pagamento a partir daí vai para outro lugar. Nada quebra. O rig minera perfeitamente. O dinheiro simplesmente chega em outra carteira, e o jeito mais comum de descobrir é estranhar por que um pagamento nunca chegou.
A defesa é chata e funciona. Depois de colar um endereço em qualquer lugar que importe, confira o endereço inteiro e não só as pontas, e confirme que o endereço no seu painel é o que você queria. Se os seus pagamentos pararem e o seu hashrate não, confira o endereço antes de qualquer outra coisa.
Como verificar, em ordem
- Compare os dois hashrates. O informado pelo rig contra o do painel do pool, ao longo de um dia e não de um minuto.
- Leia a sua própria configuração. Cada endereço de carteira e cada host, caractere por caractere, em cada rig.
- Pare o seu programa de mineração e observe. Uma máquina que continua ocupada depois disso tem outra coisa rodando.
- Liste o que inicia sozinho. Tarefas agendadas e serviços no Windows, timers e cron no Linux, além de tudo o que roda no login.
- Olhe as conexões de saída com o seu programa de mineração parado. Qualquer coisa que continue se comunicando em um ritmo merece ser identificada.
- Faça uma varredura com algo confiável, mas não pare em um resultado limpo. Programas de mineração são modificados rotineiramente até que os antivírus não os reconheçam mais, e é por isso que este passo é o último e não o primeiro.
Remover não é apagar o arquivo
Eles são feitos para voltar. Apagar o programa enquanto aquilo que o inicia continua lá só ganha alguns minutos. Remova a tarefa agendada, o serviço, a entrada de inicialização, a linha do cron e a chave do registro, depois o arquivo, depois reinicie e verifique se nada voltou.
Em uma máquina importante, e principalmente em qualquer uma que já tenha guardado uma carteira ou uma chave privada, trate a reinstalação como a opção honesta. O mesmo acesso que instalou um programa de mineração poderia instalar qualquer outra coisa, e uma campanha moderna terá coletado credenciais no caminho. Troque as senhas que aquela máquina viu, a partir de outro dispositivo.
Como continuar limpo
As regras que realmente evitam isso são chatas, e são justamente as que as pessoas pulam porque mineração envolve baixar software não assinado de desconhecidos.
- Programas de mineração vêm da página de releases do próprio projeto, e você confere o checksum publicado. Um programa de mineração vindo de um link de fórum, da descrição de um vídeo ou de um arquivo reempacotado é a forma mais provável de uma máquina de mineração ser infectada, justamente porque você esperava um aviso e o ignorou.
- Nunca rode software pirata em uma máquina que minera ou guarda uma carteira. Nunca. Os dois hábitos não combinam.
- Atualize tudo o que estiver exposto à internet. A maioria das infecções é automatizada e escolhe máquinas pelo número de versão.
- Mantenha a carteira que recebe os pagamentos separada da máquina que minera. Um rig só precisa de um endereço, nunca de chaves.
- Confira o seu endereço de pagamento depois de qualquer mudança em um rig, e de novo depois de qualquer coisa inesperada que aconteça com ele.