Como saber se um servidor Linux da empresa tem backdoor
Um backdoor instalado por script dá ao invasor acesso permanente ao servidor Linux da sua empresa, mesmo depois de trocar senhas. Para descobrir, a equipe confere as tarefas agendadas no cron, os arquivos de login como o .profile, a pasta .ssh e os processos com conexão de saída. O caso GSocket mostra onde olhar.
O que é um backdoor instalado por script?
Backdoor, ou porta dos fundos, é um programa que deixa o invasor voltar ao servidor quando quiser. Ele dispensa senha e sobrevive à reinicialização. Quando instalado por um script, o processo inteiro leva segundos: o script baixa o programa, esconde os arquivos e cria mecanismos para religá-lo se alguém o derrubar.
Para o negócio, o efeito é um servidor que parece normal e continua sob controle de terceiros. Trocar a senha do administrador não resolve, porque o acesso do invasor depende de outro caminho. Enquanto o backdoor estiver lá, os dados do servidor e as senhas guardadas nele estão expostos.
O que o caso GSocket de março de 2026 mostrou?
Em 20 de março de 2026, o pesquisador Xavier Mertens publicou no SANS Internet Storm Center a análise de um script Bash que instala um backdoor baseado no GSocket. Segundo o diário, só 17 antivírus do VirusTotal marcavam o script como malicioso no momento da análise. O autor também registra que não descobriu como o script chegava às vítimas.
O GSocket em si é uma ferramenta pública de conexão entre máquinas. A página oficial do projeto mostra o uso legítimo: acessar uma máquina atrás de firewall e NAT usando um segredo compartilhado. O SANS explica o ponto que interessa ao defensor. As duas pontas fazem conexão de saída para uma rede pública de retransmissão (relay) e se encontram por esse segredo, sem nenhuma porta aberta para entrada no servidor.
O diário do SANS descreve quatro truques de persistência e disfarce, úteis como lista de verificação:
- uma tarefa no cron, executada a cada hora, que religa o programa se ele não estiver rodando;
- a mesma lógica acrescentada ao arquivo
.profiledo usuário, que roda a cada login; - o programa gs-netcat salvo dentro da pasta
.sshcom o nomeid_rsa, que é o nome de uma chave SSH, e o segredo guardado num arquivo também disfarçado de chave; - funções que gravam a data original dos arquivos e a restauram depois, para que a alteração não apareça numa listagem por data (técnica chamada timestomping).
Onde procurar sinais de backdoor no servidor Linux?
A verificação abaixo cabe numa tarde para um servidor. Ela deve ser feita por quem administra a máquina, com acesso de root, e com cada achado anotado.
O agendador cron tem tarefa que ninguém reconhece?
Liste as tarefas de cada usuário com crontab -l -u nome_do_usuario e olhe os arquivos em /etc/crontab, /etc/cron.d e /var/spool/cron. O MITRE ATT&CK, catálogo público de técnicas de ataque, recomenda revisar mudanças no agendamento e conferir os registros do cron em /var/log. Desconfie de tarefa que chama arquivo em pasta oculta, em /tmp ou com nome genérico.
Os arquivos de login foram alterados?
Abra o .profile, o .bash_profile e o .bashrc de cada usuário, além do /etc/profile e da pasta /etc/profile.d. O MITRE descreve o abuso desses arquivos para executar comandos a cada login. Qualquer linha que inicia programa, baixa arquivo ou testa se um processo está rodando merece explicação.
Há chave SSH falsa ou chave autorizada desconhecida?
Rode file ~/.ssh/* em cada usuário. Uma chave privada verdadeira é texto. Se o resultado disser "ELF", o arquivo é um programa executável disfarçado, como no caso GSocket. Depois, leia o authorized_keys de cada usuário. O MITRE registra a inclusão de chaves nesse arquivo como forma de manter acesso por SSH, e recomenda bloquear o login direto de root com PermitRootLogin no.
Que processos e conexões de saída estão ativos?
Use ss -tnp state established para ver as conexões abertas e o programa responsável por cada uma. Use ps auxf para ver a árvore de processos. O nome do processo pode ser falso, então confira o executável real com ls -l /proc/NUMERO/exe. Conexão constante de saída para endereço desconhecido, feita por processo sem dono claro, é o sinal mais forte.
Como o timestomping engana a data de modificação, olhe também a coluna "Change" do comando stat. Ela registra a última mudança no conteúdo ou nas permissões do arquivo, e o touch comum não consegue voltá-la.
Como impedir que o backdoor volte?
Remover os arquivos sem fechar a entrada só adia o problema. Três controles reduzem a chance de reinstalação:
- Saída controlada. Servidor só deve falar com os destinos de que precisa. O GSocket depende de conexão de saída, então bloquear a saída livre corta o canal.
- Menos gente com root e com cron. O MITRE indica usar
/etc/cron.allowpara limitar quem agenda tarefas. - Registro de mudanças. Crie uma lista de referência com o conteúdo do cron, dos arquivos de login e das chaves autorizadas. Compare todo mês.
Encontrou algo estranho, o que fazer agora?
Antes de apagar, guarde cópia dos arquivos suspeitos e dos registros, com data e hora. Desconecte o servidor da internet se o achado for claro, troque as senhas e chaves que estavam nele e verifique as outras máquinas que ele acessava. Um servidor com backdoor confirmado costuma ser reinstalado do zero a partir de uma cópia limpa.
Se o servidor guardava dados pessoais, o art. 48 da LGPD manda o controlador comunicar à ANPD e aos titulares o incidente que possa acarretar risco ou dano relevante. Leve a decisão ao seu jurídico.
Por onde começar na sua empresa?
Comece listando os servidores Linux, quem tem acesso de administrador a cada um e para onde cada um precisa se conectar. Se o servidor fica atrás de um firewall, confira também o que fazer quando o firewall ou a VPN tem falha crítica.
Os analistas da CyberArmor fazem essa checagem no Diagnóstico de máquinas, um projeto de duas semanas que revisa tarefas agendadas, contas, chaves SSH e serviços expostos. O serviço de Hardening e conformidade de servidores fecha o que foi encontrado e deixa a referência para as próximas comparações. Falar com um especialista.
Fontes
- GSocket Backdoor Delivered Through Bash Script, Xavier Mertens, SANS Internet Storm Center, 20/03/2026
- GSocket, página oficial do projeto
- Scheduled Task/Job: Cron (T1053.003), MITRE ATT&CK
- Event Triggered Execution: Unix Shell Configuration Modification (T1546.004), MITRE ATT&CK
- Account Manipulation: SSH Authorized Keys (T1098.004), MITRE ATT&CK
- Lei nº 13.709/2018 (LGPD), art. 48, Planalto