• Malware para Linux: "Penquin" Turla/Snake/Uroburos

    Recentemente, uma amostra de malware muito interessante entrou em um porcesso de "uploaded" para um serviço multi-scanner. Isso desencadeou, imediatamente, o interesse de Kust Baumgartner e Costi Raiu, pesquisadores de segurança da Kaspersky Lab. Isso ocorreu pelo fato do malware representar, previamente, uma amostra desconhecida de um quebra-cabeça maior. Esse quebra-cabeça é "Turla", um dos APTs mais complexos do mundo e que causou preocupações e grande repercussão desde o seu surgimento. Em face disso, os pesquisadores escreveram anteriormente sobre o Turla APT, com postagens sobre suas operações "Epic Turla" e "Agent.btz".


    Amostras Projetadas para Windows e Variante Recém-descoberta Voltada para Linux

    Até agora, cada amostra do Turla que foi encontrada foi projetada para a família Microsoft Windows, para os sistemas de arquitetura de 32 e de 64 bits. A amostra de "Turla" que foi recém-descoberta, é incomum no fato de que é a primeira amostra voltada para o sistema operacional Linux. Este componente do "Turla" que foi recém-encontrado, suporta o sistema Linux da maneira mais ampla possível. Além disso, a ferramenta de ataque nos leva mais longe, o que abrange o rootkit Snake e componentes de primeira linha, associados a este elemento há um par de anos. Dessa forma, os pesquisadores suspeitaram que este componente foi executado por anos com o intuito de atingir vários alvos, porém ainda não existem dados concretos que possam sustentar essa afirmação.


    O módulo Linux Turla é um elemento com base em C/C++ executável estaticamente, ligado contra várias bibliotecas, aumentando ainda mais o tamanho do arquivo. Ele foi retirado de informações simbólicas, mais propensas a uma intenção de aumentar o esforço de análise do que diminuir o tamanho do arquivo propriamente. Além de tudo, sua funcionalidade inclui comunicações ocultas de rede, funcionalidades de um comando remoto arbitrário e processos de gerenciamento remoto. Vale ressaltar que grande parte do seu código é baseado em fontes públicas.


    Características Gerais Executáveis:

    ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, stripped


    Bibliotecas Estaticamente "Linkadas":

    glibc2.3.2 - the GNU C library
    openssl v0.9.6 - an older OpenSSL library
    libpcap - tcpdump's network capture library
    Hardcoded C&C, known Turla activity: news-bbc.podzone[.]org
    The domain has the following pDNS IP: 80.248.65.183


    Descrição da Função

    O exemplo utilizado nesse contexto, é um backdoor descrito com base nas fontes do cd00r. Esta amostra de malware do Turla, com base em cd00r, mantém a discrição sem que haja a exigências de privilégios elevados durante a execução de comandos remotos arbitrários. Desssa forma, ele não pode ser descoberto através do netstat, que é uma ferramenta de administração comumente utilizada para tais finalidades. Além disso, ele utiliza técnicas que não necessitam de acesso root, o que permite que seja mais livremente executado em mais hosts. Portanto, mesmo que um usuário regular com privilégios limitados consiga liberá-lo, ele pode continuar a interceptar os pacotes de entrada e executar comandos de entrada no sistema.


    Startup e Execução

    Para iniciar a execução do processo, são requeridos dois parâmetros: ID (um valor numérico utilizado como uma parte do "magic packet for authentication"), e um nome de interface de rede existente. Os parâmetros podem ser introduzidos de duas maneiras diferentes: a partir de STDIN, ou a partir de um dropper de liberação da amostra. Vale ressaltar que este não é um parâmetro de linha de comando, é um "prompt asking" pedindo que o usuário forneça os parâmetros de entrada. Após a ID e nome de interface serem inseridos e do processo iniciado, o processo do backdoor PID é retornado.

    Embora não haja um retorno de chamada de rede inicial, uma seção do código mantém uma string codificada c2 "news-bbc.podzone [.] Org". Este nome de domínio totalmente qualificado foi instituído no ano de 2010, sugerindo que este binário é bastante recente na série na composição da série de campanhas do Turla. Além disso, enquanto não tem sido vista nenhuma atividade de download de arquivo adicional a partir deste servidor com a intervenção desta ferramenta, é provável que tenha ocorrido participação através de um servidor com tipos de arquivos específicos. Em resumo, o malware Turla Linux é baseado em um programa de intrusão, desencadeado pelo elemento chamado cd00r. Ele permite aos atacantes a execução de comandos arbitrários em um sistema comprometido.


    "Pacotes Mágicos" para Execução de Comandos Remotos

    O módulo vincula estaticamente bibliotecas PCAP, e usa este código para obter um "socket raw", aplicando um filtro sobre ele e capturando os pacotes, fazendo a verificação de uma condição específica (o primeiro cd00r original utilizou este método, com base em portas e SYN-packets). Esta condição é expressa aqui (ele é baseado na entrada valor ID na inicialização pelo atacante):

    ID = 123 Filter = (tcp[8:4] & 0xe007ffff = 0xe003bebe) or (udp[12:4] & 0xe007ffff = 0xe003bebe) ID = 321 Filter = (tcp[8:4] & 0xe007ffff = 0x1bebe) or (udp[12:4] & 0xe007ffff = 0x1bebe)

    Em termos simples, ele verifica se há um número ACK no header TCP, ou o segundo byte do corpo de pacotes UDP.

    Se tal pacote é recebido e a verificação de condição for bem sucedida, a execução passa para o conteúdo de carga útil do pacote, e isso cria um socket regular. O backdoor lida com isto como se fosse um arquivo que contenha as operações de leitura/gravação; não é o típico recv/send usado neste código: ele usa este novo socket para conectar-se ao endereço de origem dos "pacotes mágicos". Em seguida, ele relata sua própria PID e IP para o endereço remoto, e dá início a um loop infinito para receber comandos remotos. Quando um comando chega, ele é executado com um script "/bin/sh-c".


    Considerações Executivas

    Embora variantes voltadas para sistemas Linux a partir do malware Turla já tivessem sua existência confirmada, os pesquisadores disseram que ainda não viram nenhuma ocorrência na natureza. Este módulo específico, parece ter sido elaborado a partir de fontes públicas com algumas funcionalidades adicionais dos atacantes. Além disso, alguns dos códigos maliciosos parecem estar inativos, talvez por serem sobras de versões mais antigas do elemento nefasto. E talvez a parte mais interessante seja relativa ao mecanismo de comando e controle anormal com base no TCP / UDP, assim como o nome de host C & C, que se encaixa nas atividades já anteriormente conhecidas do Turla.

    A descoberta deste módulo dá ênfase a uma grande questão: como é que existem muitas outras variantes Turla ainda desconhecidas?

    Update: Desde a publicação desta publicação, foi descoberto outro módulo Turla para Linux, que aparentemente representa uma geração de malware diferente do que as amostras previamente conhecidas. A nova amostra foi, de maneira heurística, detectada por uma solução da própria Kaspersky, devido à semelhança com as amostras previamente descobertas.


    Saiba Mais:

    [1] Secure List https://securelist.com/blog/research...nquin-turla-2/