Desde abril de 2024, a equipe de desenvolvimento avançado do grupo Sednit ressurgiu com um conjunto moderno de ferramentas centrado em dois implantes complementares, BeardShell e Covenant, cada um utilizando um provedor de nuvem diferente para aumentar a resiliência da operação. Essa abordagem de implante duplo permitiu a realização de vigilância de longo prazo contra integrantes das forças militares ucranianas. Outro ponto relevante é que esses conjuntos de ferramentas atuais apresentam uma linhagem de código que remonta diretamente aos implantes utilizados pelo grupo ainda na década de 2010.

Principais pontos deste post:

  • Pesquisadores da ESET rastrearam a reativação da equipe responsável por implantes avançados do grupo Sednit a partir de um incidente ocorrido em 2024 na Ucrânia, no qual foi utilizado um keylogger chamado SlimAgent.

  • O código do SlimAgent deriva do Xagent, principal backdoor utilizado pelo Sednit na década de 2010.

  • Durante essa operação, também foi implantado o BeardShell, um segundo implante desenvolvido pelo grupo, capaz de executar comandos em PowerShell por meio de um provedor de nuvem legítimo utilizado como canal de comando e controle (C&C).

  • O BeardShell emprega uma técnica de ofuscação específica que também foi identificada no Xtunnel, ferramenta de tunelamento de rede usada pelo Sednit nos anos 2010.

  • Em 2025 e 2026, o grupo passou a implantar repetidamente o BeardShell em conjunto com o Covenant, outra peça central de seu conjunto moderno de ferramentas.

  • O Sednit modificou significativamente esse implante de código aberto para adaptá-lo a operações de espionagem de longo prazo, além de implementar um novo protocolo de comunicação baseado em outro provedor de nuvem legítimo.

Perfil do Sednit

O grupo Sednit, também conhecido como APT28, Fancy Bear, Forest Blizzard ou Sofacy, está ativo pelo menos desde 2004. O Departamento de Justiça dos EUA apontou o grupo como um dos responsáveis pela invasão do Comitê Nacional Democrata (DNC) pouco antes das eleições de 2016 nos EUA e vinculou o grupo à Unidade 26165 do GRU, uma agência de inteligência da Federação Russa dentro da Diretoria Principal de Inteligência das forças armadas russas. Presume-se que o grupo também esteja por trás da invasão da rede de televisão global TV5Monde, do vazamento de e-mails da Agência Mundial Antidoping (WADA) e de muitos outros incidentes.

O que aconteceu com a equipe de implantes avançados do Sednit?

O grupo Sednit é, sem dúvida, um dos grupos APT com o registro mais impressionante de alvos comprometidos. Entre os incidentes mais conhecidos atribuídos ao grupo, estão os ataques ao parlamento alemão (2015), à rede de televisão francesa TV5Monde (2015) e ao Comitê Nacional Democrático dos Estados Unidos (2016).

Durante esse período de operações de alto perfil, o Sednit contou com um amplo arsenal de implantes personalizados, que incluía desde backdoors completos voltados para espionagem, como Xagent e Sedreco, até ferramentas especializadas, como o utilitário de pivotamento de rede Xtunnel e o USBStealer, projetado para roubo de dados em máquinas isoladas da rede (air-gapped). Em 2016, documentamos detalhadamente esse sofisticado conjunto de ferramentas em nosso white paper En Route with Sednit.

No entanto, em 2019, ocorreu uma mudança. Desde então, e até recentemente, os implantes mais avançados da Sednit raramente foram observados em operações ativas (com poucas exceções, como o malware Graphite, documentado pela Trellix em 2021). Ao mesmo tempo, o grupo intensificou suas campanhas de phishing. O malware personalizado utilizado nessas operações passou a consistir, principalmente, em implantes simples baseados em scripts. As razões por trás dessa mudança técnica ainda permanecem desconhecidas.

Este post apresenta o reaparecimento do arsenal personalizado de alto nível da Sednit a partir de 2024. Nosso foco está na atribuição e na contextualização dessas ferramentas modernas, já que análises anteriores publicadas pelo CERT-UA e pela Sekoia já exploraram em detalhes seu funcionamento interno.

Uma “boutique” de desenvolvimento

OSednit mantém internamente o desenvolvimento de seus implantes de espionagem, uma característica distintiva que permite uma abordagem de atribuição baseada em artefatos de código compartilhados.

Para ilustrar essa capacidade, vale considerar o Xagent, principal backdoor do grupo durante a década de 2010. Em 2015, encontramos o código-fonte do Xagent em um servidor Linux localizado na Ucrânia, deixado em um arquivo desprotegido após os atacantes compilarem o malware.

 

A Figura 1 mostra que os plug-ins e os canais de C&C eram ativados ou desativados diretamente no código, por meio de comentários, sendo selecionados para cada alvo de acordo com os requisitos operacionais. Esse detalhe deixa pouca dúvida de que os desenvolvedores e os operadores trabalhavam em estreita coordenação.

Figure 1. Xagent source code with hardcoded instantiations of plugins and communication channels (2015)
Figura 1. Código-fonte do Xagent com instanciações hardcoded de plugins e canais de comunicação (2015).

Além disso, a acusação apresentada em 2018 pelo Departamento de Justiça dos Estados Unidos afirma explicitamente que o Xagent foi desenvolvido internamente, apontando membros específicos da Unidade 26165 do GRU como responsáveis por seu desenvolvimento.

Neste post, aproveitamos esse rastro de desenvolvimento como um mecanismo de atribuição. Ao rastrear artefatos de código compartilhados entre diferentes implantes, conseguimos vincular os conjuntos de ferramentas utilizados pelo grupo na década de 2010 aos que estão em uso atualmente.

SlimAgent

Nosso relato das atividades modernas do Sednit começa com o SlimAgent, um implante de espionagem descoberto em uma máquina governamental ucraniana pelo CERT-UA em abril de 2024. O SlimAgent é uma ferramenta de espionagem simples, mas eficiente, capaz de registrar as teclas digitadas, capturar imagens de tela e coletar dados da área de transferência.

Ancestrais

Curiosamente, identificamos na telemetria da ESET amostras anteriormente desconhecidas com código semelhante ao SlimAgent, que foram implantadas já em 2018 - seis anos antes do caso ucraniano - contra órgãos governamentais em dois países europeus. Essas amostras exibem fortes semelhanças em nível de código com o SlimAgent, incluindo um loop idêntico de coleta de dados em seis etapas, mostrado na Figura 2. Cada etapa é implementada de maneira quase idêntica, conforme ilustrado na Figura 3 com a rotina responsável por registrar o executável da janela em primeiro plano; as únicas diferenças estão no layout das estruturas de dados internas.

Figure 2. Spying loop of 2024 SlimAgent (left) and 2018 samples (right)
Figura 2. Loop de espionagem das amostras SlimAgent 2024 (esquerda) e 2018 (direita).
Figure 3. Logging foreground window in 2024 SlimAgent (left) and 2018 samples (right)
Figura 3. Janela de registro em primeiro plano no SlimAgent de 2024 (esquerda) e nas amostras de 2018 (direita).

O SlimAgent inclui vários recursos que não estavam presentes nas amostras de 2018, como a criptografia dos logs coletados. Ainda assim, chama a atenção que amostras implantadas com seis anos de diferença apresentem semelhanças de código tão significativas.

Diante disso, avaliamos com alto grau de confiança que tanto as amostras de 2018 quanto a amostra do SlimAgent identificada em 2024 foram criadas a partir da mesma base de código. A questão que permanece é: qual foi a origem das amostras de 2018?

Uma linhagem infame

As amostras de 2018 têm um nome interno que pode ressoar entre os colegas analistas: RemoteKeyLogger.dll. Esse é o nome do módulo de keylogging do Xagent, o principal backdoor de espionagem da Sednit de 2012 a 2018 (documentado em nosso white paper En Route with Sednit).

Pesquisando algumas amostras antigas do Xagent (por exemplo, SHA-1: D0DB619A7A160949528D46D20FC0151BF9775C32), conseguimos de fato encontrar algumas semelhanças impressionantes, como a mostrada na Figura 4. Nesse código, a lógica de keylogging é executada somente se o cursor do mouse não tiver se movido mais de 10 pixels (comparando o quadrado da distância entre a última posição e a atual com 0x64, ou seja, 100) e é implementada com as mesmas chamadas de API.

Figure 4. Code comparison between SlimAgent (left) and Xagent (right)
Figura 4. Comparação de código entre SlimAgent (esquerda) e Xagent (direita).

Como outro exemplo, o SlimAgent emite seus logs de espionagem no formato HTML, com o nome do aplicativo, as teclas registradas e o nome da janela em azul, vermelho e verde, respectivamente. A Figura 5 mostra um exemplo gerado durante a digitação e a cópia de texto em um arquivo TXT recém-criado usando o notepad.exe. O keylogger Xagent também produz registros HTML usando o mesmo esquema de cores. Isso é ilustrado na Figura 6 com a definição das tags HTML de cores correspondentes no código-fonte do Xagent 2015.

Figure 5. Example of an HTML report produced by SlimAgent
Figura 5. Exemplo de um relatório HTML produzido pelo SlimAgent.
Figure 6. Xagent source code with definitions of the log colors (2015)
Figura 6. Código-fonte do Xagent com definições das cores de registro (2015).

Com base nessas semelhanças, acreditamos que o SlimAgent é uma evolução do módulo do keylogger Xagent, que foi implantado como um componente autônomo pelo menos desde 2018. Além disso, como o Xagent é um conjunto de ferramentas personalizado usado exclusivamente pelo grupo Sednit por mais de seis anos, atribuímos o SlimAgent ao Sednit com alta confiança.

Isso levanta uma questão: por que a Sednit reutilizaria um implante derivado de uma base de código tão conhecida? Uma possível explicação é a redução da capacidade de desenvolvimento. No entanto, o SlimAgent não foi o único implante encontrado na máquina ucraniana em 2024; o BeardShell - uma adição muito mais recente ao arsenal personalizado da Sednit - também foi implantado lá.

BeardShell

O BeardShell é um implante sofisticado capaz de executar comandos do PowerShell em um ambiente de tempo de execução .NET, enquanto aproveita o serviço legítimo de armazenamento em nuvem Icedrive como seu canal de C&C.

Esse componente tem as marcas de intensos esforços de desenvolvimento e é o principal motivo pelo qual acreditamos que a equipe de desenvolvimento avançado da Sednit está novamente ativa. Por exemplo, como o Icedrive não fornece uma API documentada publicamente, os desenvolvedores reimplementaram as solicitações feitas pelo cliente oficial do Icedrive. Sempre que as alterações na API privada do Icedrive interrompem as comunicações do BeardShell, os desenvolvedores da Sednit produzem uma versão atualizada em poucas horas para restaurar o acesso.

Uma explosão matemática do passado

Embora não tenhamos encontrado outras famílias de malware diretamente relacionadas ao BeardShell, descobrimos uma semelhança surpreendente com as ferramentas anteriores do Sednit, começando com um inicializador estático C++ executado logo no início do BeardShell. O objetivo dessa rotina, cujo código é mostrado na Figura 7, é descriptografar o token de autenticação para o armazenamento em nuvem do Icedrive.

Figure 7. Static initializer to decrypt Icedrive authentication token
Figura 7. Inicializador estático para descriptografar o token de autenticação do Icedrive.

A rotina contém um exemplo clássico da técnica de ofuscação conhecida como inserção de predicado opaco (destacado na caixa vermelha na Figura 7):

  • Uma expressão aritmética avaliada como zero para todas as entradas possíveis - denominadas x e y na Figura 7 - é usada como uma condição para um loop while. Na prática, o corpo do loop nunca é executado, porque o predicado 2 ( x2 + 1) + 2 = y2 + 5 não tem solução inteira.
  • O corpo desse loop artificial consiste em duas instruções originais (mostradas na caixa amarela na Figura 7), além de uma atualização fictícia da variável de entrada y para imitar a estrutura do corpo de um loop real.
  • Após o loop falso estão as duas instruções originais que serão executadas: uma chamada para a rotina de descriptografia de token do Icedrive e o registro de uma rotina de limpeza.

Os predicados opacos são normalmente usados para dificultar a análise estática, mas não são particularmente úteis em uma rotina tão pequena. Observe que outros inicializadores estáticos do BeardShell, que não estão lidando com dados importantes, são protegidos com a mesma técnica, portanto, parece que os desenvolvedores simplesmente aplicaram a proteção a todos eles indiscriminadamente.

Agora, a fórmula do predicado pode ser simplificada como (subtraindo 2 de ambos os lados) 2 ( x2 + 1) = y2 + 3 . É interessante notar que esse mesmo predicado opaco foi usado no Xtunnel, uma ferramenta de pivotamento de rede usada exclusivamente pela Sednit, de 2013 a 2016, e documentada em nosso white paper En Route with Sednit. A Figura 8 mostra um exemplo de código ofuscado do Xtunnel (SHA-1: 99B454262DC26B081600E844371982A49D334E5E), com uma instrução if cujo predicado não pode ser verdadeiro.

Figure 8. Xtunnel opaque predicate (2015)
Figura 8. Predicado opaco do Xtunnel (2015).

Não apenas o predicado é idêntico ao usado no BeardShell, mas o bloco nunca executado é construído de forma semelhante, duplicando as duas instruções originais (na caixa amarela) e fazendo uma atualização fictícia de uma das entradas do predicado (aqui, x).

Até onde sabemos, esse predicado opaco não foi observado em nenhum outro lugar, exceto no Xtunnel. Podemos até nos perguntar se ele não poderia ter sido usado como uma bandeira falsa, especialmente porque foi mencionado publicamente como sendo exclusivo do Xtunnel, por exemplo, em uma apresentação da BlackHat Europe 2016. No entanto, uma operação de bandeira falsa provavelmente teria usado o predicado idêntico, não a variante com +2 em ambos os lados da equação.

O uso compartilhado dessa rara técnica de ofuscação, combinado com sua co-localização com o SlimAgent, nos leva a avaliar com alta confiança que o BeardShell faz parte do arsenal personalizado do Sednit.

Desde o caso inicial de 2024, a Sednit continuou a implantar o BeardShell em 2025 e 2026, principalmente em operações de espionagem de longo prazo direcionadas a militares ucranianos. Para manter o acesso persistente a esses alvos de alto valor, a Sednit implementa sistematicamente outro implante junto com o BeardShell: Covenant, o componente final de seu arsenal moderno.

Covenant

O Covenant é uma estrutura de pós-exploração .NET de código aberto lançada pela primeira vez em fevereiro de 2019. Ele permite a criação e o gerenciamento de implantes .NET por meio de um painel de controle baseado na Web - veja o exemplo na Figura 9 - e fornece mais de 90 tarefas integradas, oferecendo suporte a recursos como exfiltração de dados, monitoramento de alvos e articulação de rede.

Figure 9. Covenant dashboard
Figura 9. Painel de controle do Covenant.

Desde 2023, os desenvolvedores da Sednit fizeram uma série de modificações e experimentos com o Covenant para estabelecê-lo como seu principal implante de espionagem, mantendo o BeardShell principalmente como um recurso alternativo no caso de o Covenant encontrar problemas operacionais, como a derrubada de sua infraestrutura baseada em nuvem.

Por exemplo, a Sednit substituiu o mecanismo original de geração de nomes do implante do Covenant por um método determinístico (consulte a Figura 10), produzindo identificadores derivados das características da máquina em vez de gerar um novo valor aleatório a cada execução (consulte a coluna Nome na seção Grunts da Figura 9). Essa modificação ilustra como o Sednit adaptou o Covenant para espionagem de longo prazo e não para atividades de curto prazo pós-exploração: em operações de longa duração, fazer com que a mesma máquina apareça com identificadores diferentes após cada reinicialização iria desorganizar o painel e reduzir a eficiência operacional.

Figure 10. Grunt ID generation routine added by Sednit
Figura 10. Rotina de geração de ID do Grunt adicionada pelo Sednit.

O Sednit também alterou o fluxo de execução do Covenant, que é um implante de dois estágios, provavelmente para evitar a detecção de comportamento. Em vez de fazer com que o downloader de primeiro estágio invoque o primeiro método do assembly .NET de segundo estágio usando um índice fixo (conforme implementado originalmente), eles introduziram um atributo DisplayName e iteraram sobre os atributos do método para encontrar o ponto de entrada. Nas variantes do início de 2023, os desenvolvedores do Sednit chegaram a experimentar a incorporação de ambos os estágios em um único binário.

O Covenant suporta oficialmente apenas HTTP e SMB, o que leva à modificação mais significativa do Covenant pela Sednit: a adição de um protocolo de rede baseado em nuvem. Para conseguir isso, os desenvolvedores do Sednit aproveitaram o projeto C2Bridge, uma estrutura autônoma criada pelo autor original do Covenant para facilitar a integração de novos protocolos de comunicação. Com o C2Bridge, os desenvolvedores só precisam implementar uma classe em conformidade com a interface IMessenger no lado do implante, fornecendo métodos de leitura e gravação para gerenciar comunicações de baixo nível. O C2Bridge pode então ser executado como um componente autônomo no controlador para retransmitir mensagens, enquanto os novos implantes criados pelo controlador usam os métodos de comunicação implementados.

A Figura 11 mostra as classes introduzidas pelos desenvolvedores do Sednit para se comunicar com o provedor de nuvem Filen, usado desde julho de 2025. A classe FilenMessenger implementa o IMessenger e depende do FilenClient para interagir com a API do Filen. Anteriormente, em 2023, o Covenant da Sednit abusou do serviço de nuvem legítimo pCloud e, em 2024-2025, do Koofr, usando implementações semelhantes.

Figure 11. Additional Covenant classes handling communications with a Filen cloud drive
Figura 11. Classes adicionais do Covenant lidando com comunicações com uma unidade de nuvem Filen.

Essas adaptações mostram que os desenvolvedores da Sednit adquiriram profundo conhecimento do Covenant - um implante cujo desenvolvimento oficial foi encerrado em abril de 2021 e pode ter sido considerado não utilizado pelos defensores. Essa surpreendente escolha operacional parece ter valido a pena: A Sednit tem contado com sucesso com o Covenant por vários anos, especialmente contra alvos selecionados na Ucrânia. Por exemplo, em 2025, nossa análise das unidades de nuvem do Covenant controladas pela Sednit revelou máquinas que haviam sido monitoradas por mais de seis meses. Em janeiro de 2026, a Sednit também implantou o Covenant em uma série de campanhas de spearphishing que exploravam a vulnerabilidade CVE-2026-21509, conforme relatado pelo CERT-UA.

Sednit mantém capacidade de desenvolvimento avançado

Neste post, mostramos que a equipe de desenvolvimento avançado do grupo cibercriminoso Sednit está ativa mais uma vez, operando um arsenal centrado em dois implantes - BeardShell e Covenant - implantados em conjunto e cada um deles utilizando um provedor de nuvem diferente. Essa configuração permite que os operadores restabeleçam o acesso rapidamente se a infraestrutura de um deles for desativada. Acreditamos que essa estratégia de implante duplo não é nova. Por exemplo, na campanha de 2021 documentada pela Trellix, a Sednit implantou dois implantes em paralelo: Graphite, que usava o OneDrive como seu canal de C&C, e PowerShell Empire, que dependia de uma infraestrutura dedicada separada.

A sofisticação do BeardShell e as extensas modificações feitas no Covenant demonstram que os desenvolvedores da Sednit continuam plenamente capazes de produzir implantes personalizados avançados. Além disso, o código compartilhado e as técnicas que ligam essas ferramentas aos seus antecessores da era 2010 sugerem fortemente a continuidade dentro da equipe de desenvolvimento.

Isso levanta a questão do que esses desenvolvedores estavam fazendo durante todos esses anos, quando a comunidade de segurança observou principalmente a atividade de phishing do Sednit. Uma possibilidade é que os esforços de desenvolvimento avançado tenham sido reativados após a invasão russa na Ucrânia. Outra é que eles nunca pararam de trabalhar, mas, em vez disso, tornaram-se mais cautelosos.

Para qualquer dúvida sobre nossa pesquisa publicada no WeLiveSecurity, entre em contato conosco pelo e-mail threatintel@eset.com.

Indicadores de Comprometimento

Arquivos

Uma lista abrangente de indicadores de comprometimento (IoCs) e amostras pode ser encontrada em nosso repositório GitHub.

SHA-1 Filename Detection Description
5603E99151F8803C13D48D83B8A64D071542F01B eapphost.dll Win64/Spy.KeyLogger.LS SlimAgent.
6D39F49AA11CE0574D581F10DB0F9BAE423CE3D5 tcpiphlpsvc.dll Win64/BeardShell.A BeardShell.

Técnicas do MITRE ATT&CK

Esta tabela foi criada usando a versão 18 da estrutura MITRE ATT&CK.

Tactic ID Name Description
Resource Development T1583.006 Acquire Infrastructure: Web Services BeardShell relies on Icedrive cloud storage.
Covenant relies on Filen cloud storage.
T1587.001 Develop Capabilities: Malware BeardShell and SlimAgent are custom malware.
Execution T1059.001 Command and Scripting Interpreter: PowerShell BeardShell executes PowerShell commands.
T1129 Shared Modules BeardShell and SlimAgent are full-fledged DLL files.
Privilege Escalation T1546.015 Event Triggered Execution: Component Object Model Hijacking BeardShell and SlimAgent are made persistent by hijacking COM objects.
Defense Evasion T1027 Obfuscated Files or Information BeardShell Icedrive token decryption is obfuscated.
T1140 Deobfuscate/Decode Files or Information BeardShell decrypts its strings.
T1480 Execution Guardrails BeardShell only executes in taskhost.exe or taskhostw.exe.
SlimAgent only executes in explorer.exe.
T1564 Hide Artifacts SlimAgent logs are written into a hidden file.
Discovery T1082 System Information Discovery BeardShell sends a fingerprint of the compromised machine.
Collection T1005 Data from Local System BeardShell, Covenant, and SlimAgent collect data from a compromised machine.
T1056.001 Input Capture: Keylogging SlimAgent performs keylogging.
T1113 Screen Capture SlimAgent captures screenshots of the compromised machine.
T1115 Clipboard Data SlimAgent collects clipboard data.
Command and Control T1001 Data Obfuscation BeardShell exfiltrates data in fake images.
T1071.001 Application Layer Protocol: Web Protocols BeardShell and Covenant use HTTPS for C&C.
T1102 Web Service BeardShell gets commands from Icedrive.
Covenant gets commands from Filen.
T1573.002 Encrypted Channel: Asymmetric Cryptography BeardShell communications with Icedrive are encrypted using HTTPS.
Covenant communications with its controller uses RSA-encrypted session keys.
Exfiltration T1567 Exfiltration Over Web Service BeardShell exfiltrates data to Icedrive.
Covenant exfiltrates data to Filen.