Agência de Segurança Nacional e Bureau Federal de Investigação dos EUA
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
Fonte: opennet.ru