Nos últimos dois anos, um malware altamente sofisticado chamado “Sedexp” tem operado furtivamente em sistemas Linux, utilizando regras udev para alcançar persistência e evitar detecção. Descoberto recentemente pela Stroz Friedberg, esse malware avançado foi capaz de se esconder em plena vista, fornecendo aos invasores capacidades de shell reverso e empregando táticas de ocultação avançadas. A descoberta do Sedexp levanta sérias preocupações sobre a segurança dos sistemas Linux, tradicionalmente conhecidos por sua robustez.
Como funciona o Sedexp
O Sedexp se aproveita das regras udev, um componente crítico do sistema de gerenciamento de dispositivos do kernel Linux. As regras udev são utilizadas para gerenciar dispositivos, como criar ou remover arquivos de nós de dispositivos no diretório /dev, e configurar novos dispositivos à medida que são conectados ao sistema. Ao manipular essas regras, o Sedexp garante sua execução sempre que eventos específicos de dispositivos ocorrem, como o carregamento do arquivo /dev/random, um gerador de números aleatórios essencial para operações criptográficas e comunicações seguras.
Uma regra udev identificada que o Sedexp utiliza é a seguinte:
ACTION=="add", ENV{MAJOR}=="1", ENV{MINOR}=="8", RUN+="asedexpb run:+"
Essa regra assegura que o malware seja executado toda vez que o sistema operacional reinicia, utilizando um dos arquivos mais críticos do sistema, /dev/random.
Capacidades e técnicas de ocultação
O Sedexp é especialmente perigoso devido às suas avançadas técnicas de ocultação e persistência. Ele inclui uma função de shell reverso, permitindo que o atacante mantenha controle sobre o sistema comprometido. Além disso, o malware modifica a memória para ocultar qualquer arquivo que contenha a string “sedexp” de comandos como ls
ou find
, tornando-o virtualmente indetectável. Essa capacidade foi usada para esconder webshells, arquivos de configuração do Apache modificados e a própria regra udev que garante sua persistência.
Investigação e análise técnica
A análise técnica da Stroz Friedberg revelou que o Sedexp manipula argumentos para ofuscar sua presença, alterando o nome do processo para “kdevtmpfs”, um nome comumente associado a processos legítimos do sistema. Além disso, ele se copia para uma localização específica no sistema e cria uma regra udev para garantir sua execução em reinicializações subsequentes. Dependendo das instruções recebidas, o malware pode configurar um shell reverso, utilizando técnicas sofisticadas para se conectar ao servidor de comando e controle do atacante.
Análise de código: Profundidade na furtividade do Sedexp
void *memory = calloc(arg_count + 1, sizeof(void *));
for (int i = 0; i < arg_count; i++) {
memory[i] = strdup(arguments[i]);
memset(arguments[i], 0, strlen(arguments[i]));
}
arguments[0] = "kdevtmpfs";
prctl(PR_SET_NAME, "kdevtmpfs", 0, 0, 0);
O Sedexp exibe um nível elevado de sofisticação em sua análise de código, revelando as técnicas avançadas que ele utiliza para se manter indetectável. O malware começa manipulando os argumentos do processo para ofuscar sua presença. Ele altera o nome do processo para “kdevtmpfs” usando a função prctl
, uma prática que o ajuda a se camuflar entre os processos legítimos do sistema, imitando um processo comumente associado ao kernel do Linux. Essa tática de disfarce é fundamental para evitar que administradores de sistemas e ferramentas de monitoramento percebam algo errado.
Além disso, o Sedexp implementa uma estratégia de persistência altamente eficaz. O malware se copia para uma localização específica dentro do sistema, geralmente no diretório /lib/udev/
, onde arquivos relacionados ao gerenciamento de dispositivos são esperados. Ele então cria uma regra udev personalizada que garante que o malware seja executado sempre que o sistema for reiniciado, ou quando dispositivos específicos são conectados.
Outra técnica notável é a sua habilidade de configurar um shell reverso, permitindo que o invasor mantenha uma conexão ativa com o sistema comprometido. O Sedexp utiliza diferentes métodos, como forkpty
ou a criação de pipes e fork de novos processos, para estabelecer essa conexão de forma segura e discreta. O uso dessas técnicas evidencia o foco do Sedexp em furtividade e controle remoto, características essenciais para operações de longa duração sem serem detectadas.
Essa análise detalhada do código do Sedexp não apenas destaca a complexidade do malware, mas também serve como um alerta sobre o nível de ameaça que ele representa para os sistemas Linux. As técnicas utilizadas pelo Sedexp são um reflexo da evolução contínua das ameaças cibernéticas, exigindo que as organizações se adaptem e reforcem suas defesas contra esses tipos de ataques sofisticados.
Impacto e implicações de segurança
A presença do Sedexp em sistemas Linux desde 2022 destaca a crescente sofisticação dos atacantes cibernéticos, especialmente aqueles motivados financeiramente. Durante as investigações, foi descoberto que o malware foi utilizado para esconder código de raspagem de cartões de crédito em servidores web, indicando um foco claro em ganhos financeiros. Além disso, várias instâncias públicas deste malware em sandboxes online tinham zero detecções, evidenciando sua natureza furtiva e a necessidade de aprimoramento nas técnicas de detecção.
Medidas de prevenção e conclusão
A descoberta do Sedexp serve como um alerta para administradores de sistemas e profissionais de segurança sobre a necessidade de uma segurança contínua e proativa nos ambientes Linux. A sofisticação do Sedexp, utilizando técnicas raramente vistas como a exploração de regras udev, ressalta a importância de implementar medidas de segurança robustas e manter as práticas de auditoria atualizadas.
Organizações devem considerar as seguintes ações para mitigar o risco de infecção por malwares similares:
- Revisão Regular de Regras udev: Audite as regras udev em seus sistemas regularmente para identificar configurações suspeitas ou não autorizadas.
- Monitoramento Contínuo: Utilize soluções de monitoramento e detecção de anomalias que possam identificar alterações incomuns nos processos e arquivos críticos do sistema.
- Atualização Constante de Sistemas: Mantenha o sistema operacional e todos os pacotes instalados atualizados para garantir que todas as vulnerabilidades conhecidas estejam corrigidas.
- Auditoria de Segurança Rigorosa: Realize auditorias de segurança frequentes, incluindo análises forenses detalhadas, para identificar sinais de comprometimento antes que causem danos significativos.
A descoberta do Sedexp demonstra que mesmo os sistemas considerados seguros, como os que rodam Linux, não estão imunes a ameaças avançadas. À medida que os atacantes continuam a evoluir suas técnicas, é fundamental que as organizações se mantenham vigilantes e adaptem suas estratégias de segurança para enfrentar essas novas ameaças.
Para garantir a proteção do seu ambiente Linux, revise suas práticas de segurança e considere implementar as recomendações mencionadas. Compartilhe esta informação com sua equipe de TI para aumentar a conscientização sobre as ameaças emergentes. Mantenha-se informado sobre as últimas tendências em segurança cibernética para proteger seus sistemas contra ameaças avançadas como o Sedexp.
Exemplos de amostras
Abaixo estão os hashes de amostras públicas adicionais descobertas pela Stroz Friedberg. Muitas sandboxes online detectaram poucas ou nenhuma detecção no momento em que este blog foi lançado:
- SHA256: 43f72f4cdab8ed40b2f913be4a55b17e7fd8a7946a636adb4452f685c1ffea02
- SHA256: 94ef35124a5ce923818d01b2d47b872abd5840c4f4f2178f50f918855e0e5ca2
- SHA256: b981948d51e344972d920722385f2370caf1e4fac0781d508bc1f088f477b648