O Primeiro Sequestro da Internet: Um Voluntário Quase Derrubou o Linux

Quinhentos milissegundos.

Meio segundo.

A margem pela qual a internet não foi sequestrada.

Março de 2024. San Francisco.

Um engenheiro da Microsoft de trinta e oito anos chamado Andres Freund está fazendo um benchmark do PostgreSQL em um sistema de desenvolvimento Debian. É uma tarefa rotineira. Freund é um committer no projeto PostgreSQL. Ele testa o desempenho do banco de dados em distribuições Linux de pré-lançamento como parte regular de seu trabalho.

Algo está errado com o ambiente de teste.

Tentativas de login SSH falhas — do tipo que atingem constantemente todos os servidores públicos, bots automatizados tentando combinações aleatórias de nome de usuário e senha — estão usando muito mais CPU do que deveriam. Um login falho deveria terminar rapidamente. Estas não estão terminando rapidamente.

Freund percebe.

Ele investiga mais a fundo. Logins SSH bem-sucedidos, em sua própria máquina local, estão demorando quinhentos milissegundos a mais do que a linha de base de aproximadamente cem milissegundos.

Meio segundo.

Freund executa a conexão sob Valgrind, uma ferramenta de depuração de memória. Valgrind lança erros apontando para liblzma — uma biblioteca de compressão que o SSH daemon não tem razão legítima para invocar.

É quando a investigação se torna urgente.

Nos dias seguintes, Freund rastreia os erros. Ele descobre que o processo sshd em sua máquina de teste está executando código de liblzma durante a autenticação. Ele disseca o código-fonte do xz-utils no repositório git. O código-fonte está limpo. Mas o tarball de lançamento — o arquivo-fonte compactado que o Debian realmente baixa e constrói — contém um arquivo chamado build-to-host.m4 que não está no código-fonte do git.

Esse arquivo contém um script ofuscado. O script decodifica um script bash escondido dentro de um arquivo de teste chamado bad-3-corrupt_lzma2.xz — um arquivo disfarçado de entrada de teste corrompida para o tratamento de erros da biblioteca de compressão. O script bash decodifica um segundo arquivo, good-large_compressed.lzma, usando ofuscação personalizada combinada com descriptografia RC4.

O que sai no final da cadeia é um objeto compartilhado compilado.

O objeto compartilhado é um backdoor.

Na noite de vinte e nove de março de 2024 — enquanto, segundo sua própria conta, ouvia um podcast de segurança durante uma pausa para cozinhar — Andres Freund publica suas descobertas na lista de e-mails oss-security em Openwall.

Em 24 horas, a Red Hat atribuiu-lhe um número CVE. A pontuação de gravidade é dez ponto zero. A mais alta possível. A CISA emite um aviso de emergência. Debian, SUSE, Fedora, Arch e Kali revertem os pacotes afetados. O GitHub suspende a conta do mantenedor que cometeu o backdoor.

O backdoor, ao que parece, estava programado para ser lançado com distribuições Linux estáveis em aproximadamente duas semanas.

Freund o pegou por acidente.

Este é o arquivo do caso sobre o que aconteceu. Sobre o que quase aconteceu. E sobre o que foi a operação.

O alvo do ataque foi o xz-utils.

xz-utils é um kit de ferramentas de compressão. Sua principal ferramenta, o comando xz, produz arquivos .xz — o equivalente Unix de arquivos .zip, com maiores taxas de compressão. Abaixo da ferramenta de linha de comando está uma biblioteca chamada liblzma, que fornece o algoritmo de compressão para outros programas que precisam dela.

liblzma é carregada, direta ou indiretamente, por uma enorme quantidade de software de sistema Linux. Gerenciadores de pacotes se vinculam a ela. Utilitários de sistema se vinculam a ela. E — através de uma cadeia que os atacantes especificamente projetaram — o OpenSSH daemon se vincula a ela.

A cadeia funciona assim. Na maioria das principais distribuições Linux, o sshd é corrigido para suportar o mecanismo de notificação de serviço do systemd, chamado sd_notify. Essa correção faz com que o sshd carregue uma biblioteca chamada libsystemd. E libsystemd, por sua vez, carrega liblzma.

O resultado: na maioria dos servidores Linux de produção, o SSH daemon — o processo que aceita logins remotos — carrega uma biblioteca de compressão na inicialização, embora o SSH não comprima o tráfego de autenticação.

Comprometa a biblioteca de compressão, e você compromete o daemon que controla o acesso remoto a todos os servidores Linux na internet.

No momento da quase implantação do backdoor, o Linux estava executando aproximadamente noventa e seis por cento do milhão de principais servidores web do mundo. Todos os quinhentos dos supercomputadores mais poderosos do mundo. Aproximadamente noventa e dois por cento das máquinas virtuais em Amazon Web Services, Google Cloud e Microsoft Azure. Android, que impulsiona cerca de oitenta e cinco por cento dos smartphones do mundo, é construído sobre o Linux kernel.

O backdoor do xz-utils, se tivesse sido enviado para distribuições estáveis, teria estado presente em uma fração substancial de tudo o que foi dito acima.

Alex Stamos, o ex-diretor de segurança do Facebook, descreveu o resultado pretendido em uma frase: uma chave mestra para qualquer servidor SSH na Terra.

É por isso que o CVE foi pontuado em dez ponto zero.

O design técnico do backdoor vale a pena ser compreendido precisamente.

O atacante explorou o fato de que os tarballs de lançamento contêm arquivos gerados automaticamente que não existem no código-fonte git versionado. Especificamente, o arquivo build-to-host.m4 no tarball continha uma única linha que havia sido modificada para injetar um script ofuscado na etapa de configuração do processo de construção.

Isso significava que qualquer um que lesse o código-fonte git não conseguiria ver o backdoor. Qualquer um que compilasse a partir do git não conseguiria ativá-lo. Apenas as distribuições Linux, que compilam a partir dos tarballs lançados — que são efetivamente todas elas — executariam a injeção.

A cadeia de injeção tinha três estágios. O estágio um extraiu um script bash de um arquivo disfarçado como uma entrada de teste de compressão corrompida. O estágio dois usou esse script bash para decodificar um segundo arquivo de teste em um objeto compartilhado compilado. O estágio três vinculou o objeto compartilhado ao binário compilado liblzma.

O objeto compartilhado usou um recurso legítimo da glibc chamado IFUNC — resoluções de função indireta — para sequestrar uma função OpenSSH específica chamada RSA_public_decrypt.

RSA_public_decrypt é a função do OpenSSH que valida assinaturas RSA durante a autenticação por certificado. Cada vez que um cliente tenta se conectar usando um certificado RSA, o sshd chama esta função para verificar a assinatura.

Com o backdoor ativo, o sshd estava chamando o código do atacante em vez disso.

O código do atacante inspecionava o módulo público RSA — o grande valor inteiro passado no certificado do cliente. Normalmente, esse valor é usado na verificação RSA padrão. No backdoor, era na verdade um contêiner de payload. O código descriptografava o payload usando uma chave simétrica ChaCha20 codificada. Em seguida, verificava a assinatura do payload descriptografado usando uma chave pública Ed448 codificada.

Se a assinatura fosse verificada — significando que o payload foi assinado pela chave privada do atacante — o código executava os comandos de shell incorporados como root.

Isso é o que pesquisadores de segurança chamam de execução remota de código "gated" (com portão). O backdoor é ativado apenas quando o atacante apresenta uma assinatura criptográfica válida. Um atacante comum que tropeçasse no backdoor não conseguiria explorá-lo. Apenas o detentor da chave privada Ed448 poderia ativá-lo.

Este detalhe é importante. Um criminoso que constrói uma vulnerabilidade para venda a torna utilizável por quem a compra. Um agente estatal que constrói uma capacidade de acesso persistente a torna exclusiva. Apenas eles, e qualquer pessoa que autorizem explicitamente, podem usar a chave.

O backdoor do xz-utils foi projetado para uso exclusivo. Não era uma vulnerabilidade. Era um ativo estratégico.

A operação que produziu o backdoor começou em vinte e seis de janeiro de 2021.

Nessa data, uma conta GitHub foi criada sob o nome de usuário JiaT75. O nome de exibição era Jia Tan. A conta não tinha pegada digital anterior. Nenhuma presença em mídias sociais sob esse nome. Nenhuma palestra em conferência. Nenhuma contribuição anterior de código aberto. Nenhuma aparição em violações de dados. O nome parece ser um pseudônimo.

A primeira contribuição pública de JiaT75 para o xz-utils ocorreu em vinte e nove de outubro de 2021 — nove meses após a criação da conta. Era uma pequena correção para um arquivo de configuração de editor. Inócua. Sem importância. O tipo de contribuição que estabelece presença sem atrair escrutínio.

Nos dois anos e cinco meses seguintes, JiaT75 foi autor de mais de quinhentos commits para projetos de código aberto. A grande maioria eram melhorias legítimas — revisões de código, traduções, manutenção de integração contínua, correções de bugs. Trabalho útil. Genuinamente útil.

Aproximadamente oito desses commits eram maliciosos.

A proporção importa. Sessenta para um. Para cada commit malicioso, o operador produziu sessenta peças de trabalho real e útil. Foi isso que tornou o padrão impossível de detectar por meio da análise estatística de anomalias. O atacante dedicou dois anos e meio de esforço dedicado produzindo contribuições genuinamente valiosas, puramente para acumular a confiança necessária para cometer as oito mudanças que, em última análise, importaram.

A operação não funcionou sozinha.

A partir de abril de 2022, um usuário que se autodenominava Jigar Kumar apareceu na lista de e-mails xz-devel. Kumar não tinha histórico na lista antes de abril de 2022. Sua presença consistia inteiramente em e-mails de pressão para o mantenedor principal do projeto, reclamando dos lentos tempos de resposta e exigindo que um novo mantenedor fosse adicionado.

Em maio de 2022, uma segunda conta — Dennis Ens — apareceu, perguntando sobre o status de manutenção da versão Java do xz-utils, e acompanhando com mensagens de pressão adicionais.

Ambas as contas tinham o mesmo perfil. Nenhuma presença digital antes de 2022. Nenhuma atividade fora da lista de e-mails xz-devel. Nenhuma participação em qualquer outro projeto antes ou depois da campanha de pressão.

Em fevereiro de 2024 — semanas antes de o backdoor ser committed — uma terceira conta apareceu. Hans Jansen. O papel de Jansen era pressionar os mantenedores do Debian a adotar a versão comprometida do xz-utils o mais rápido possível. Em vinte e cinco de março de 2024, Hans Jansen abriu um relatório de bug no Debian solicitando explicitamente a atualização.

Quatro dias depois, Andres Freund publicou suas descobertas no oss-security.

Duas contas de apoio adicionais — krygorin4545 e misoeater91 — forneceram pressão de fundo em vários tópicos, seguindo o mesmo padrão. Nenhuma presença pré-operação. Participação apenas durante janelas de pressão específicas. Desaparecimento após os objetivos serem alcançados.

A análise pós-incidente da Kaspersky observou que o estilo geográfico dos nomes dos sock-puppets era inconsistente — singapuriano, europeu, indiano — sugerindo que o operador havia dispersado deliberadamente as identidades de cobertura para evitar a aparência de coordenação. Mas o padrão comportamental — tempo de aparições, pontos de pressão sincronizados, desaparecimento coletivo após cada objetivo — sugeria um único operador ou uma equipe rigidamente coordenada.

A pressão funcionou.

Em vinte e nove de junho de 2022, o mantenedor principal do xz-utils — um desenvolvedor de software finlandês chamado Lasse Collin — respondeu à lista de e-mails e afirmou que Jia Tan teria um papel maior no projeto daqui para frente, e estava, na prática, já funcionando como co-mantenedor.

Esta foi a entrega.

Para entender o que acabara de acontecer, é necessário entender qual era a posição de Lasse Collin.

Collin havia mantido o xz-utils, sozinho, desde 2009. O projeto não era remunerado. Ele trabalhava nele em seu tempo livre. No início daquele mesmo mês, em uma resposta à lista de e-mails de junho de 2022, Collin havia reconhecido publicamente que estava lidando com problemas de saúde mental de longo prazo. Ele se referiu ao projeto, em suas próprias palavras, como um projeto de hobby não remunerado.

Lasse Collin não é responsável pelo que aconteceu. A comunidade de segurança tem sido unânime neste ponto. Collin estava realizando um trabalho de hobby não remunerado. Ele estava lidando com desafios de saúde documentados. Ele estava sob pressão sustentada e coordenada do que se revelou ser uma operação de inteligência de nível estatal. O sistema que o colocou nessa posição falhou com ele. Ele não falhou com o sistema.

O que a operação explorou não foi a competência de Collin. Foi sua posição estrutural — sozinho, não remunerado, lidando com estressores do mundo real, responsável por manter uma infraestrutura usada por bilhões de pessoas, sem apoio institucional.

O atacante profissional identificou essa estrutura e a atacou.

Uma vez concluída a entrega, a preparação da infraestrutura começou.

Em outubro de 2022, Jia Tan foi adicionado à organização Tukaani no GitHub. Em dezembro de 2022, ele criou a estrutura organizacional do repositório e fez seu primeiro lançamento. Em março de 2023, ele mudou o e-mail de contato de segurança principal no OSS-Fuzz do Google — a plataforma automatizada de varredura de vulnerabilidades — do endereço de Lasse Collin para o seu próprio. Desse ponto em diante, qualquer relatório de bug relevante para segurança chegaria a Jia Tan antes de chegar a qualquer outra pessoa.

Em junho de 2023, Jia Tan introduziu a infraestrutura de resolução IFUNC em liblzma. Os commits pareciam ser um trabalho legítimo de otimização de desempenho. Em retrospecto, eram os ganchos através dos quais o backdoor seria eventualmente injetado.

Em julho de 2023, Jia Tan abriu um pull request no OSS-Fuzz para desabilitar o fuzzing IFUNC para xz. A mudança tinha como objetivo impedir que o pipeline de fuzz-testing detectasse anomalias no backdoor baseado em IFUNC quando ele eventualmente fosse lançado.

Em fevereiro de 2024, um commit separado quebrou a detecção do sistema de construção do Landlock — um recurso de segurança do Linux kernel que restringe os privilégios do processo. O commit desativou o próprio sandbox do xz em sistemas que, de outra forma, o teriam imposto.

Em vinte e três de fevereiro e nove de março de 2024, o próprio backdoor foi committed em duas etapas, empacotado como parte dos lançamentos xz-utils 5.6.0 e 5.6.1.

Dezenove dias depois, Andres Freund notou um atraso SSH de 500 milissegundos.

Pesquisadores analisando os metadados de commit deixados pela operação notaram um padrão.

Os carimbos de data/hora dos commits de Jia Tan se agrupavam principalmente nos fusos horários da Europa Central ou Oriental. As horas de trabalho correspondiam a aproximadamente das nove da manhã às cinco da tarde, Hora da Europa Central. A atividade continuou durante os principais feriados públicos chineses e pausou durante vários feriados europeus.

O nome, e a geografia operacional alegada, era asiática oriental. O padrão de trabalho real era europeu.

É o que os analistas de inteligência chamam de "signature leakage" (vazamento de assinatura). Um operador passou mais de trinta meses mantendo uma identidade de fachada. Mas os carimbos de data/hora automáticos incorporados em cada commit git periodicamente revelavam a localização real da máquina que estava fazendo o commit.

Três atribuições candidatas apareceram em análises públicas de pesquisadores de segurança com experiência relevante.

O pesquisador de segurança americano Dave Aitel, ex-cientista da computação da NSA, avaliou publicamente que a operação se encaixa no padrão atribuível ao APT29 — o grupo de ameaça persistente avançada atribuído pelos governos dos Estados Unidos e do Reino Unido ao Serviço de Inteligência Estrangeira da Rússia. O APT29 é conhecido por campanhas de espionagem de longa duração, incluindo o comprometimento da cadeia de suprimentos da SolarWinds divulgado em 2020. As horas de trabalho alinhadas com o fuso horário de Moscou correspondem ao padrão de Jia Tan.

Costin Raiu — ex-diretor da Kaspersky's Global Research and Analysis Team, com três décadas de experiência na atribuição de operações sofisticadas — identificou três candidatos plausíveis em uma entrevista de podcast em fevereiro de 2026. O APT29 da Rússia foi um. O APT41 da China, associado ao Ministério da Segurança do Estado, foi um segundo. O Lazarus Group da Coreia do Norte, já apresentado em cobertura anterior do Fragment Zero, foi um terceiro.

Até abril de 2026, nenhum serviço de inteligência atribuiu publicamente a operação. Nenhuma acusação foi apresentada. Nenhuma prisão foi feita. A verdadeira identidade de Jia Tan permanece desconhecida.

O que não está em disputa, entre pesquisadores com expertise relevante em tradecraft, é que a paciência da operação, a segurança operacional, a sofisticação criptográfica e o comprometimento de recursos são consistentes com um serviço de inteligência de estado-nação — ou um equivalente funcional próximo — e são inconsistentes com atividades criminosas individuais ou hacktivistas.

Este não foi o trabalho de um hacker solitário.

A operação xz-utils foi possível devido a uma característica estrutural de como a civilização tecnológica moderna constrói sua infraestrutura crítica.

O software que opera a internet foi construído, em grande parte, por voluntários trabalhando em seu tempo livre. As empresas que lucram com este software contribuíram com uma pequena fração de seu valor econômico.

xz-utils foi empacotado com todas as principais distribuições Linux e executado em uma enorme fração de servidores globais. Seu mantenedor não era remunerado. OpenSSL, a biblioteca que fornece criptografia para a maior parte da internet, estava notoriamente com falta de pessoal antes da vulnerabilidade Heartbleed em 2014. Log4j, a biblioteca de registro Java por trás da vulnerabilidade Log4Shell em 2021, era mantida por um punhado de voluntários — por trás da infraestrutura empresarial globalmente.

Em todos os casos, uma biblioteca tratada como infraestrutura crítica por empresas multibilionárias era mantida com recursos de projeto de hobby.

A operação xz-utils não inventou esta vulnerabilidade estrutural. Ela a explorou.

Em onze de abril de 2024 — duas semanas após a divulgação de Freund — a U.S. Cybersecurity and Infrastructure Security Agency publicou uma declaração formal reconhecendo o problema estrutural. A posição da CISA: o ônus de proteger a infraestrutura de código aberto não pode recair sobre mantenedores individuais não remunerados, e as empresas que consomem software de código aberto devem contribuir de volta, financeiramente ou através do tempo de desenvolvedor, para produzir um ecossistema sustentável.

As recomendações não eram vinculativas. Eram melhores práticas. Dependiam da adoção voluntária por empresas cuja estrutura de incentivos historicamente não recompensou o investimento.

Em um mês, a Linux Foundation e a Open Source Security Foundation publicaram um alerta conjunto avisando que tentativas semelhantes de aquisição por engenharia social já estavam em andamento contra vários outros projetos de código aberto. A OpenJS Foundation — que mantém Node.js, jQuery e infraestrutura JavaScript relacionada — divulgou publicamente que havia recebido uma campanha de pressão coordenada seguindo o mesmo padrão do xz-utils, e a havia rechaçado apenas porque a divulgação do xz-utils havia ensinado à comunidade o que procurar.

Um relatório de 2026 da Linux Foundation documentou o padrão mais amplo em todo o ecossistema. A principal descoberta do relatório: o que aconteceu com o xz-utils não foi um incidente singular. Foi um método. O método está sendo tentado em escala. A maioria das detecções bem-sucedidas está ocorrendo porque o caso do xz-utils forneceu uma assinatura para comparação.

Quantas detecções malsucedidas existem — operações já em andamento que ainda não foram capturadas — é, por construção, impossível de contar a partir de fontes públicas.

Dois episódios atrás em Fragment Zero, o arquivo do caso sobre a hipótese da Dark Forest fechou com uma observação. A doutrina que Liu Cixin formalizou em 2008 — silêncio como sobrevivência, ocultação como necessidade estratégica, revelação como perigo existencial — é o mais antigo princípio de segurança operacional na história do conflito humano.

Toda força que já operou sob condições de ameaça incerta e capacidade assimétrica convergiu para a mesma conclusão.

Fique quieto. Mova-se com cuidado. Assuma a observação.

A operação xz-utils é a Dark Forest executada dentro de um relacionamento de confiança humana.

O atacante não violou um firewall. O atacante não explorou um zero-day. O atacante não contornou nenhuma proteção criptográfica. O atacante fez algo muito mais simples. O atacante se escondeu à vista por três anos, produzindo trabalho útil, construindo credibilidade genuína, comportando-se exatamente como qualquer outro colaborador útil, enquanto preparava — silenciosamente, pacientemente, com uma paciência estratégica inimaginável para a maioria das organizações técnicas — o momento em que a infraestrutura preparada seria usada.

O ataque foi bem-sucedido quase inteiramente porque foi silencioso. Foi detectado não por qualquer ferramenta de segurança, não por qualquer auditoria, não por qualquer defesa institucional, mas pela observação acidental de um engenheiro de quinhentos milissegundos de latência inexplicável.

A declaração de Andres Freund sobre sua própria descoberta, publicada no Mastodon semanas após a divulgação, deve encerrar o caso.

Contar com a sorte no futuro é uma má estratégia.

O backdoor do xz-utils foi pego.

A versão Dark Forest da operação — aquela que visa relacionamentos de confiança em vez de sistemas de computador — está sendo tentada agora, neste exato momento, contra um número indeterminado de outros projetos críticos de código aberto. O padrão funciona. Os incentivos econômicos que o fazem funcionar não mudaram significativamente. As respostas institucionais foram reais, mas insuficientes.

O engenheiro que encontrar o próximo também precisará de sorte. Ele precisará estar olhando para o benchmark certo, no momento certo, no sistema certo. Ele precisará se importar o suficiente para rastrear uma anomalia até sua origem. Ele precisará publicar suas descobertas antes que o principal da operação já tenha enviado o payload para versões estáveis.

Eles precisarão, especificamente, dos quinhentos milissegundos.

Esse intervalo foi o que se interpôs entre a internet em março de 2024 e uma única chave criptográfica detida por um ator desconhecido que teria desbloqueado todos os servidores Linux executando SSH na Terra.

Fragment Zero acompanhará o arquivo do caso.

O arquivo do caso não se encerra. Ele aguarda.