# T1036.012 - Browser Fingerprint > [!warning] Técnica de Evasão e Perfilamento de Alvo > Browser Fingerprinting é utilizado por adversários tanto para **verificar se o alvo é humano e adequado** antes de entregar um payload, quanto para **disfarçar tráfego de C2** mimetizando atributos de navegadores legítimos - tornando o tráfego malicioso indistinguível de navegação normal. ## Descrição **Browser Fingerprint** (T1036.012) é uma sub-técnica de [[t1036-masquerading|Mascaramento]] pela qual adversários coletam e/ou falsificam atributos do navegador e do sistema operacional do alvo para dois propósitos primários: 1. **Perfilamento defensivo (gaté de entrega):** Antes de entregar um exploit ou payload, a página de destino do adversário coleta um conjunto de atributos do navegador da vítima (user agent, resolução de tela, fuso horário, plugins instalados, idioma, plataforma de hardware). Somente se os atributos corresponderem ao perfil esperado da vítima - confirmando que é um alvo humano real e não um sandbox ou scanner automatizado - o payload é entregue. 2. **Camuflagem de tráfego C2:** O implante malicioso falsifica seu próprio `User-Agent` e outros headers HTTP para mimetizar um navegador legítimo (ex: Chrome 122 no Windows 11), tornando o tráfego de comando e controle indistinguível de navegação web comum ao ser inspecionado por firewalls, proxies e SIEMs. Esta técnica está diretamente relacionada a [[t1082-system-information-discovery|System Information Discovery]] (para coleta) e a [[t1071-001-web-protocols|Application Layer Protocol: Web Protocols]] (para camuflagem de C2). É amplamente usada em campanhas de **spear-phishing direcionado**, **watering hole attacks** e **malvertising** sofisticado. O [[s0512-fatduke|FatDuke]], backdoor associado ao grupo [[g0016-apt29|APT29]] (Cozy Bear), é um exemplo documentado de malware que implementa falsificação de User-Agent para mimetizar tráfego legítimo de navegadores, complicando a identificação do implante em logs de proxy. --- ## Como Funciona ### Fase 1 - Coleta de Fingerprint (Gaté de Entrega) Quando a vítima acessa uma página controlada pelo adversário (via phishing, watering hole ou malvertising), JavaScript é executado silenciosamente para coletar: | Atributo | Método JavaScript | Uso pelo Adversário | |----------|------------------|---------------------| | User-Agent string | `navigator.userAgent` | Identificar SO e browser real | | Resolução de tela | `screen.width`, `screen.height` | Distinguir humano de headless browser | | Fuso horário | `Intl.DateTimeFormat().resolvedOptions().timeZone` | Confirmar localização geográfica alvo | | Idioma do browser | `navigator.language` | Validar alvo (ex: PT-BR para campanha no Brasil) | | Plugins instalados | `navigator.plugins` | Detectar ambiente sandbox (sem plugins) | | Capacidades de Canvas/WebGL | `canvas.getContext('2d')` | Fingerprint único de hardware GPU | | Toque/mobile | `navigator.maxTouchPoints` | Distinguir desktop de mobile | | Cookies habilitados | `navigator.cookieEnabled` | Detectar navegação incógnita/sandbox | Se os atributos **não correspondem** ao perfil esperado (ex: sandbox sem plugins, resolução 1024x768 padrão de VM, user-agent de crawler), a página exibe conteúdo benigno. Se **correspondem**, o exploit ou redirect malicioso é ativado. ### Fase 2 - Falsificação de User-Agent no Implante (Camuflagem C2) Após comprometer o sistema, o implante malicioso configura headers HTTP customizados para simular tráfego de navegador legítimo: ``` User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ``` Esse tráfego se mistura ao tráfego legítimo de usuários e passa despercebido por firewalls e proxies que não realizam inspeção profunda de conteúdo ou correlação comportamental. --- ## Attack Flow ```mermaid graph TB A([Reconhecimento - Definição do Perfil Alvo]) --> B[Adversário prepara landing page maliciosa<br/>com JavaScript de fingerprinting] B --> C[Vítima acessa página via phishing<br/>watering hole ou malvertising] C --> D{Coleta de Fingerprint<br/>navigator.userAgent, screen, timezone,<br/>plugins, canvas, idioma} D --> E{Verificação de Gaté} E -->|Atributos NÃO correspondem<br/>sandbox / scanner / AV| F[Exibe página benigna<br/>Nenhum payload entregue] E -->|Atributos correspondem<br/>alvo humano real| G[Entrega exploit / redirect malicioso<br/>ou download de stager] G --> H[Comprometimento do sistema] H --> I[Implante configurado com<br/>User-Agent falsificado] I --> J[Comúnicação C2 via HTTP/HTTPS<br/>mimetizando tráfego de browser legítimo] J --> K([Persistência e exfiltração<br/>imperceptível em logs de proxy]) subgraph EVASAO["Técnicas Relacionadas"] LT1082 System Information Discovery MT1071 001 Web Protocols NT1566 Phishing end ``` --- ## Exemplos de Uso ### APT29 / Cozy Bear - FatDuke O backdoor [[s0512-fatduke|FatDuke]], atribuído ao [[g0016-apt29|APT29]] (Cozy Bear / Nobelium), implementa falsificação sofisticada de User-Agent. Em análise da ESET (Operation Ghost, 2019), o FatDuke alternava entre múltiplos User-Agents de browsers populares a cada sessão de C2, dificultando a criação de assinaturas estáticas. A campanha alvejou ministérios de relações exteriores na Europa. ### TA569 - SocGholish (Watering Hole) O grupo [[g1020-mustard-tempest|TA569]], responsável pela infraestrutura **SocGholish**, usa JavaScript extensivo de fingerprinting em sites de watering hole comprometidos. O script verifica: - Se o visitante usa um navegador real (não headless) - Se veio de um link corporativo (referrer) - Se o idioma e timezone correspondem ao alvo Somente após aprovação no gaté, um falso alerta de "atualização de browser" é exibido, entregando o NetSupport RAT ou Cobalt Strike. ### Grupos de Malvertising (Magecart / TA2101) Campanhas de **malvertising** como as do cluster [[magecart|Magecart]] usam fingerprinting para garantir que o payload de skimming de cartão de crédito sejá injetado somente em sessões de checkout reais - evitando detecção em ambientes de teste e sandboxes de pesquisadores de segurança. ### Campaigns de Phishing Direcionado a Brasil Campanhas de banking trojans voltados ao Brasil (ex: [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]]) implementam verificação de idioma (`navigator.language === 'pt-BR'`) e timezone (`America/Sao_Paulo`, `America/Fortaleza`) como gaté antes de ativar redirecionamentos maliciosos - assegurando entrega apenas a alvos brasileiros e evitando análise por pesquisadores internacionais. --- ## Detecção A detecção de Browser Fingerprinting é desafiadora porque o JavaScript de coleta pode ser ofuscado e se mistura a scripts de analytics legítimos (Google Analytics, Hotjar, etc.). ### Indicadores de Comprometimento | Indicador | Relevância | Método de Detecção | |-----------|-----------|---------------------| | JavaScript coletando múltiplos atributos de navegador em sequência rápida | Média | Content Security Policy + WAF logging | | Tráfego HTTP com User-Agent incomum para o perfil do usuário | Alta | Proxy logs + UEBA | | User-Agent string inconsistente com versão real do browser (verificável via JA3/JA4) | Alta | Network inspection (JA3 fingerprinting) | | Requisições HTTP sem cookies, com User-Agent perfeito mas comportamento de bot | Alta | Honeypot + behavior analytics | | JavaScript ofuscado acessando `screen`, `navigator.plugins`, `canvas` juntos | Média | Browser security extensions / CSP | ### Regra Sigma ```yaml title: Suspicious User-Agent Spoofing in HTTP Traffic id: 3c1a9f2e-7b4d-4e8f-a2c1-5d6e7f8a9b0c status: experimental description: > Detecta inconsistências entre o User-Agent declarado no header HTTP e o fingerprint TLS (JA3/JA4) da conexão - indicativo de spoofing por malware para camuflar tráfego C2. references: - https://attack.mitre.org/techniques/T1036/012/ - https://engineering.salesforce.com/tls-fingerprinting-with-já3-and-já3s-247362855967 author: RunkIntel Detection Engineering daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1036.012 logsource: product: zeek service: http detection: selection_chrome_ua: user_agent|contains: 'Chrome/' filter_chrome_já3: # JA3 hash legítimo do Chrome 122 no Windows já3|startswith: '772,4865-4866-4867' condition: selection_chrome_ua and not filter_chrome_já3 falsepositives: - Aplicações legítimas que definem User-Agent customizado - Ferramentas de automação corporativa (RPA) - Alguns SDKs mobile level: medium fields: - src_ip - dest_ip - user_agent - já3 - uri - referrer ``` ### Detecção via JA3/JA4 A técnica mais eficaz é o **fingerprinting TLS** com JA3/JA4: o handshake TLS de uma sessão revela características do cliente real (cifras suportadas, extensões, curvas elípticas) que raramente correspondem ao User-Agent falsificado. Um processo malicioso declarando ser Chrome 122 mas com JA3 de uma biblioteca Python (`requests`) é imediatamente identificável. --- ## Mitigação | ID | Mitigação | Implementação Recomendada | |----|-----------|--------------------------| | [[m1047-audit\|M1047]] | Audit | Auditar regularmente logs de proxy e firewall para User-Agents anômalos. Implementar baseline de User-Agents legítimos por departamento e alertar sobre desvios. | | Content Security Policy | Hardening Web | Implementar CSP restritivo que limite execução de scripts inline e de origens externas - reduz eficácia do JavaScript de fingerprinting em sites próprios. | | Browser Isolation | Controle de Acesso | Adotar soluções de **Remote Browser Isolation (RBI)** para acessos a URLs externas de alto risco - o fingerprinting JavaScript enxerga o perfil do browser remoto, não do cliente real. | | JA3/JA4 Inspection | Monitoramento de Rede | Configurar Zeek ou Suricata para coletar JA3/JA4 em todos os fluxos TLS e correlacionar com User-Agent declarado. Exportar para SIEM para detecção de inconsistências. | | Proxy com TLS Inspection | Inspeção de Tráfego | Inspecionar tráfego HTTPS via proxy com SSL/TLS interception (em ambientes corporativos controlados) para analisar conteúdo de requisições e headers reais. | --- ## Contexto Brasil/LATAM > [!danger] Alta Relevância para o Brasil > O Brasil é um dos países mais afetados globalmente por campanhas de banking trojans e phishing financeiro. Browser Fingerprinting com verificação de `pt-BR` é um mecanismo padrão nesses ataques. ### Banking Trojans com Gaté de Fingerprint As famílias [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]], [[bizarro|Bizarro]] e [[s0528-javali|Javali]] - todas originárias ou focadas em Brasil/LATAM - utilizam verificações de fingerprint como primeira linha de defesa contra análise. Scripts verificam: - `navigator.language` deve ser `pt-BR` ou variante ibérica - Timezone deve ser Brasil (`America/Sao_Paulo`, `America/Manaus`, etc.) - Resolução de tela típica de usuário corporativo (1920x1080+) - Ausência de extensões típicas de pesquisadores (NoScript, uMatrix) ### Phishing contra Setor Financeiro Brasileiro Campanhas direcionadas a clientes de bancos brasileiros (Itaú, Bradesco, Caixa, Nubank) empregam páginas de phishing com fingerprinting para entregar overlays maliciosos apenas a usuários com perfil brasileiro confirmado - reduzindo a taxa de detecção por soluções de threat intelligence globais que usam IPs e navegadores estrangeiros. ### Recomendação para Equipes de SOC no Brasil - Configurar JA3/JA4 collection em proxies corporativos - Criar alertas para User-Agent strings de Chrome/Firefox com JA3 inconsistente - Incluir [[sources|CERT.br]] e feeds LATAM ([[kaspersky-latam|Kaspersky LATAM]]) como fontes de IOCs de campanhas que usam fingerprinting --- ## Referências - [MITRE ATT&CK - T1036.012](https://attack.mitre.org/techniques/T1036/012/) - [ESET - Operation Ghost: The Dukes aren't back (FatDuke)](https://www.welivesecurity.com/2019/10/17/operation-ghost-dukes-never-left/) - [JA3/JA3S TLS Fingerprinting (Salesforce)](https://engineering.salesforce.com/tls-fingerprinting-with-já3-and-já3s-247362855967) - [Kaspersky - LATAM banking trojans com fingerprint gaté](https://latam.kaspersky.com/blog/) - [[t1036-masquerading|T1036 - Masquerading]] (técnica pai) - [[t1082-system-information-discovery|T1082 - System Information Discovery]] (técnica relacionada) - [[t1071-001-web-protocols|T1071.001 - Web Protocols]] (técnica relacionada - C2) - [[t1566-phishing|T1566 - Phishing]] (vetor de entrega comum) - [[s0512-fatduke|FatDuke]] - malware que implementa User-Agent spoofing - [[g0016-apt29|APT29]] - grupo que usa FatDuke com esta técnica - [[m1047-audit|M1047 - Audit]] --- *Fonte: [MITRE ATT&CK - T1036.012](https://attack.mitre.org/techniques/T1036/012)*