Técnicas de Randomização de Impressão Digital JARM: Evadindo a Detecção em Infraestruturas C2
Este artigo explora a tecnologia de randomização de impressão digital JARM, um método crucial para evadir a detecção em infraestruturas de Comando e Controle (C2). A técnica visa ofuscar a identidade de servidores C2, tornando mais difícil para as equipes de segurança identificarem e neutralizarem ameaças.
MundiX News·10 de julho de 2026·8 min de leitura·👁 1 views
A identificação de servidores de Comando e Controle (C2) é um desafio constante na cibersegurança. Uma das técnicas utilizadas para essa finalidade é a análise de impressões digitais JARM. O JARM (Just Another Randomizer Method) funciona enviando ativamente 10 pacotes TLS Client Hello especialmente construídos para um servidor TLS alvo. O objetivo é extrair respostas únicas do servidor, capturando atributos específicos do TLS Server Hello. Essas respostas agregadas são então processadas por um algoritmo de hash para gerar a impressão digital JARM.
O princípio por trás do JARM reside na variação dos parâmetros dentro do Client Hello. Diferentes versões de TLS, cifras e extensões, enviados em ordens variadas, resultam em respostas Server Hello distintas. Ao enviar pacotes de handshake Client Hello customizados, é possível obter respostas Server Hello específicas que, quando combinadas e hasheadas, formam a impressão digital TLS do servidor. Questões como o suporte ao protocolo TLS 1.3, a negociação de TLS 1.3 com cifras do TLS 1.2, ou a escolha de cifras de uma lista ordenada de fracas para fortes, são exemplos de anomalias que o JARM explora para extrair as respostas mais únicas possíveis. A agregação e o hash dessas 10 respostas geram a impressão digital JARM.
Embora as impressões digitais JARM sejam frequentemente usadas para corroborar e marcar serviços TLS, associando-os a serviços específicos, a realidade é que elas nem sempre são únicas para diferentes implantações de C2. Diversos fatores podem influenciar os resultados da varredura JARM, impedindo que a impressão digital aponte diretamente para uma instalação C2 específica. Portanto, ela serve mais como um elemento de corroboração do que como um identificador direto para fins de mapeamento de comportamento. Durante o desenvolvimento de ferramentas como o RedGuard, que visa ocultar serviços C2 através do controle de tráfego de ponta, observou-se que as impressões digitais JARM para o RG, em ambientes com diversas diferenças, tendem a ser consistentes. Isso significa que, durante a análise, essa impressão digital pode servir como um indicador de instalações de ataque, minando o objetivo de ocultação.
Mudanças na infraestrutura, como endereços IP ou plataformas de hospedagem, geralmente não afetam as assinaturas JARM, tornando a evasão por métodos convencionais difícil. Os fatores que influenciam a impressão digital JARM do lado do servidor incluem o sistema operacional e sua versão, as bibliotecas utilizadas e suas versões, a ordem de chamada das bibliotecas e configurações personalizadas. Para influenciar o resultado da varredura JARM em um servidor, é necessário intervir nesses fatores. Atualmente, existem duas soluções principais: a repetição de respostas TLS Server Hello e a alteração da configuração TLS Server CipherSuites (conjuntos de cifras).
A primeira abordagem envolve a escuta de um servidor TCP que responde a Client Hellos específicos. Ao capturar esses Client Hellos específicos no servidor C2 (identificados por bytes repetidos em cada solicitação) e reproduzir de forma estável as respostas aos 10 Client Hellos especialmente construídos, é possível alterar a impressão digital JARM real. Um exemplo de código demonstra a lógica de identificar e reproduzir respostas específicas. No entanto, essa técnica pode ser considerada um tanto quanto passiva e monótona. É crucial notar que a resposta original do Server Hello não pode ser modificada arbitrariamente, pois a interação normal do tráfego é essencial para o funcionamento das ferramentas. Modificações indevidas podem levar a problemas de comunicação. Portanto, os pacotes Server Hello reproduzidos precisam ser obtidos a partir da varredura JARM de um serviço legítimo, o que pode não ser ideal para ofuscação em ferramentas. Uma extensão dessa abordagem é obter aleatoriamente uma lista de sites legítimos, realizar varreduras JARM para obter suas respostas Server Hello e, em seguida, reproduzir essas respostas como as respostas para pacotes de handshake JARM identificados. Esta é considerada uma forma mais razoável de implementação.
A segunda abordagem, popularizada em uma apresentação da HITB Amsterdam 2021 intitulada "COMMSEC: JARM Randomizer: Evading JARM Fingerprinting", envolve a modificação dos conjuntos de cifras (CipherSuites). O código-fonte derivado, como o JARM Randomizer no GitHub, revela que a influência nos fatores JARM é exercida através da seleção de CipherSuites. A configuração do TLS para um proxy reverso pode incluir 15 conjuntos de cifras diferentes. A combinação de 1, 2 ou mais desses conjuntos de cifras resulta em impressões digitais JARM distintas. A seleção aleatória de 1 a 2 conjuntos de cifras pode gerar dezenas de impressões digitais JARM aleatórias. O efeito final é que, a cada inicialização do RedGuard, sua impressão digital JARM é diferente, gerada automaticamente através dos métodos de ofuscação descritos. Isso impede a detecção por varreduras de mapeamento espacial e a associação da infraestrutura RG na rede pública. Muitas plataformas de mapeamento atuais integram a varredura de impressões digitais JARM devido à sua eficiência, baixo custo de recursos e capacidade de fornecer indícios sobre instalações C2.
O RedGuard é uma ferramenta de controle de tráfego de ponta para infraestruturas C2, projetada para evadir a detecção por Blue Teams, antivírus (AVs) e EDRs (Endpoint Detection and Response). A randomização da impressão digital JARM é uma tática essencial para manter a discrição e a eficácia dessa ferramenta contra as crescentes capacidades de detecção.
🛡️⚡
Pare de pesquisar. Comece a hackear.
O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.
Sem cartão para começar · Planos a partir de R$49/mês
A identificação de servidores de Comando e Controle (C2) é um desafio constante na cibersegurança. Uma das técnicas utilizadas para essa finalidade é a análise de impressões digitais JARM. O JARM (Just Another Randomizer Method) funciona enviando ativamente 10 pacotes TLS Client Hello especialmente construídos para um servidor TLS alvo. O objetivo é extrair respostas únicas do servidor, capturando atributos específicos do TLS Server Hello. Essas respostas agregadas são então processadas por um algoritmo de hash para gerar a impressão digital JARM.
O princípio por trás do JARM reside na variação dos parâmetros dentro do Client Hello. Diferentes versões de TLS, cifras e extensões, enviados em ordens variadas, resultam em respostas Server Hello distintas. Ao enviar pacotes de handshake Client Hello customizados, é possível obter respostas Server Hello específicas que, quando combinadas e hasheadas, formam a impressão digital TLS do servidor. Questões como o suporte ao protocolo TLS 1.3, a negociação de TLS 1.3 com cifras do TLS 1.2, ou a escolha de cifras de uma lista ordenada de fracas para fortes, são exemplos de anomalias que o JARM explora para extrair as respostas mais únicas possíveis. A agregação e o hash dessas 10 respostas geram a impressão digital JARM.
Embora as impressões digitais JARM sejam frequentemente usadas para corroborar e marcar serviços TLS, associando-os a serviços específicos, a realidade é que elas nem sempre são únicas para diferentes implantações de C2. Diversos fatores podem influenciar os resultados da varredura JARM, impedindo que a impressão digital aponte diretamente para uma instalação C2 específica. Portanto, ela serve mais como um elemento de corroboração do que como um identificador direto para fins de mapeamento de comportamento. Durante o desenvolvimento de ferramentas como o RedGuard, que visa ocultar serviços C2 através do controle de tráfego de ponta, observou-se que as impressões digitais JARM para o RG, em ambientes com diversas diferenças, tendem a ser consistentes. Isso significa que, durante a análise, essa impressão digital pode servir como um indicador de instalações de ataque, minando o objetivo de ocultação.
Mudanças na infraestrutura, como endereços IP ou plataformas de hospedagem, geralmente não afetam as assinaturas JARM, tornando a evasão por métodos convencionais difícil. Os fatores que influenciam a impressão digital JARM do lado do servidor incluem o sistema operacional e sua versão, as bibliotecas utilizadas e suas versões, a ordem de chamada das bibliotecas e configurações personalizadas. Para influenciar o resultado da varredura JARM em um servidor, é necessário intervir nesses fatores. Atualmente, existem duas soluções principais: a repetição de respostas TLS Server Hello e a alteração da configuração TLS Server CipherSuites (conjuntos de cifras).
A primeira abordagem envolve a escuta de um servidor TCP que responde a Client Hellos específicos. Ao capturar esses Client Hellos específicos no servidor C2 (identificados por bytes repetidos em cada solicitação) e reproduzir de forma estável as respostas aos 10 Client Hellos especialmente construídos, é possível alterar a impressão digital JARM real. Um exemplo de código demonstra a lógica de identificar e reproduzir respostas específicas. No entanto, essa técnica pode ser considerada um tanto quanto passiva e monótona. É crucial notar que a resposta original do Server Hello não pode ser modificada arbitrariamente, pois a interação normal do tráfego é essencial para o funcionamento das ferramentas. Modificações indevidas podem levar a problemas de comunicação. Portanto, os pacotes Server Hello reproduzidos precisam ser obtidos a partir da varredura JARM de um serviço legítimo, o que pode não ser ideal para ofuscação em ferramentas. Uma extensão dessa abordagem é obter aleatoriamente uma lista de sites legítimos, realizar varreduras JARM para obter suas respostas Server Hello e, em seguida, reproduzir essas respostas como as respostas para pacotes de handshake JARM identificados. Esta é considerada uma forma mais razoável de implementação.
A segunda abordagem, popularizada em uma apresentação da HITB Amsterdam 2021 intitulada "COMMSEC: JARM Randomizer: Evading JARM Fingerprinting", envolve a modificação dos conjuntos de cifras (CipherSuites). O código-fonte derivado, como o JARM Randomizer no GitHub, revela que a influência nos fatores JARM é exercida através da seleção de CipherSuites. A configuração do TLS para um proxy reverso pode incluir 15 conjuntos de cifras diferentes. A combinação de 1, 2 ou mais desses conjuntos de cifras resulta em impressões digitais JARM distintas. A seleção aleatória de 1 a 2 conjuntos de cifras pode gerar dezenas de impressões digitais JARM aleatórias. O efeito final é que, a cada inicialização do RedGuard, sua impressão digital JARM é diferente, gerada automaticamente através dos métodos de ofuscação descritos. Isso impede a detecção por varreduras de mapeamento espacial e a associação da infraestrutura RG na rede pública. Muitas plataformas de mapeamento atuais integram a varredura de impressões digitais JARM devido à sua eficiência, baixo custo de recursos e capacidade de fornecer indícios sobre instalações C2.
O RedGuard é uma ferramenta de controle de tráfego de ponta para infraestruturas C2, projetada para evadir a detecção por Blue Teams, antivírus (AVs) e EDRs (Endpoint Detection and Response). A randomização da impressão digital JARM é uma tática essencial para manter a discrição e a eficácia dessa ferramenta contra as crescentes capacidades de detecção.
📤 Compartilhar & Baixar
🧰 Ferramentas recomendadas
Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.