O complexo de malware Drovorub infecta o sistema operacional Linux

Agência de Segurança Nacional e Bureau Federal de Investigação dos EUA publicou um relatório, segundo o qual o 85º principal centro de serviços especiais Direcção Principal do Estado-Maior General das Forças Armadas Russas (85 GCSS GRU) é usado um complexo de malware chamado “Drovorub”. Drovorub inclui um rootkit na forma de um módulo de kernel Linux, uma ferramenta para transferir arquivos e redirecionar portas de rede e um servidor de controle. A parte do cliente pode fazer download e upload de arquivos, executar comandos arbitrários como usuário root e redirecionar portas de rede para outros nós da rede.

O centro de controle Drovorub recebe o caminho para o arquivo de configuração no formato JSON como argumento de linha de comando:

{
"db_host": " ",
"db_port": " ",
"db_db": " ",
"db_user": " ",
"db_password": " ",

"lportar": " ",
"host": " ",
"ping_sec": " ",

"priv_key_file": " ",
"frase": " »
}

MySQL DBMS é usado como backend. O protocolo WebSocket é usado para conectar clientes.

O cliente possui configuração integrada, incluindo a URL do servidor, sua chave pública RSA, nome de usuário e senha. Após a instalação do rootkit, a configuração é salva como um arquivo de texto no formato JSON, que fica oculto do sistema pelo módulo do kernel Drovoruba:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"chave": "Y2xpZW50a2V5"
}

Aqui “id” é um identificador único emitido pelo servidor, em que os últimos 48 bits correspondem ao endereço MAC da interface de rede do servidor. O parâmetro "key" padrão é uma string "clientkey" codificada em base64 que é usada pelo servidor durante o handshake inicial. Além disso, o arquivo de configuração pode conter informações sobre arquivos, módulos e portas de rede ocultos:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"chave": "Y2xpZW50a2V5",
"monitor" : {
"arquivo" : [
{
"ativo": "verdadeiro"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"máscara": "arquivoteste1"
}
],
"módulo": [
{
"ativo": "verdadeiro"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"máscara": "módulo de teste1"
}
],
"líquido" : [
{
"ativo": "verdadeiro"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"porta": "12345",
"protocolo": "tcp"
}
]}
}

Outro componente do Drovorub é o agente; seu arquivo de configuração contém informações para conexão ao servidor:

{
"client_login": "usuário123",
"client_pass": "pass4567",
"clientid": "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"chave_publica",
"servidor_host": "192.168.57.100",
"porta_servidor" :"45122″,
"servidor_uri" :"/ws"
}

Os campos “clientid” e “clientkey_base64” inicialmente estão faltando, eles são adicionados após o cadastro inicial no servidor.

Após a instalação, são realizadas as seguintes operações:

  • загружается модуль ядра, который регистрирует хуки для системных вызовов;
  • o cliente se registra em um módulo do kernel;
  • O módulo do kernel oculta o processo do cliente em execução e seu arquivo executável no disco.

Um pseudodispositivo, por exemplo /dev/zero, é usado para comunicação entre o cliente e o módulo do kernel. O módulo do kernel analisa todos os dados gravados no dispositivo e, para transmissão na direção oposta, envia o sinal SIGUSR1 ao cliente, após o qual lê os dados do mesmo dispositivo.

Para detectar o Lumberjack, você pode usar a análise de tráfego de rede usando NIDS (atividades de rede maliciosas no próprio sistema infectado não podem ser detectadas, pois o módulo do kernel esconde os soquetes de rede que usa, regras de netfilter e pacotes que podem ser interceptados por soquetes brutos) . No sistema onde o Drovorub está instalado, você pode detectar o módulo do kernel enviando-lhe o comando para ocultar o arquivo:

toque no arquivo de teste
echo “ASDFZXCV:hf:testfile” > /dev/zero
ls

O arquivo “testfile” criado torna-se invisível.

Outros métodos de detecção incluem análise de conteúdo de memória e disco. Para prevenir a infecção, é recomendado usar a verificação obrigatória de assinatura do kernel e dos módulos, disponível a partir do kernel Linux versão 3.7.

O relatório contém regras do Snort para detectar a atividade de rede do Drovorub e regras do Yara para detectar seus componentes.

Recordemos que o 85º GTSSS GRU (unidade militar 26165) está associado ao grupo APT28 (Urso Chique), responsável por vários ataques cibernéticos.

Fonte: opennet.ru