# T1614.001 - System Language Discovery ## Técnica Pai Esta é uma sub-técnica de [[t1614-system-location-discovery|T1614 - T1614 - System Location Discovery]]. ## Descrição A descoberta do idioma do sistema é uma técnica de reconhecimento em que o adversário - ou o malware que opera em seu nome - consulta configurações regionais e de teclado do host comprometido para inferir a localização geográfica da vítima. Essa informação é usada para tomar decisões automatizadas sobre o comportamento subsequente: infectar ou não o alvo, ajustar o payload entregue, selecionar servidores C2 regionais ou simplesmente abortar a execução para evitar atrair aténção de autoridades locais. É uma lógica de autosseleção que os desenvolvedores de malware implementam para controlar o raio de impacto das campanhas. No Windows, as verificações mais comuns envolvem leitura da chave de registro `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language` via [[t1012-query-registry|Query Registry]], ou chamadas às funções da API nativa como `GetUserDefaultUILanguage`, `GetSystemDefaultUILanguage` e `GetKeyboardLayoutList` através de [[t1106-native-api|Native API]]. Em sistemas macOS e Linux, o adversário pode consultar a variável de ambiente `$LANG` via comando `locale`. O resultado é geralmente um código de idioma IETF (ex: `pt-BR`, `ru-RU`, `uk-UA`) que o malware compara contra uma lista interna de regiões a evitar. Ransomware e bankers latino-americanos frequentemente implementam lógicas inversas: em vez de evitar regiões, verificam ativamente se o idioma é `pt-BR` (português do Brasil) ou `es-*` (espanhol LATAM) para confirmar que estão em um alvo desejado antes de prosseguir com a infecção. Essa lógica é documentada em famílias como [[s1122-mispadu|Mispadu]], [[s0640-avaddon|Avaddon]] e [[s0483-icedid|IcedID]], que usam a verificação de idioma como mecanismo de geofencing para maximizar a taxa de infecção na região-alvo. **Contexto Brasil/LATAM:** O Brasil é um dos alvos mais visados por malware financeiro do mundo, e a detecção de idioma `pt-BR` é usada explicitamente por diversas famílias de banking trojans para ativar módulos específicos de fraude. O grupo [[g1026-malteiro|Malteiro]] - ator de ameaça com foco quase exclusivo em vítimas brasileiras - incorpora verificação de idioma e localidade em seus loaders para garantir que apenas sistemas em português do Brasil recebam o payload final. Ao mesmo tempo, famílias de ransomware de origem russa e do Leste Europeu usam a técnica para excluir sistemas com idiomas CIS, o que inadvertidamente inclui ou exclui países da América Latina dependendo da configuração. **Event IDs relevantes:** | Event ID | Canal | Descrição | |----------|-------|-----------| | `4657` | Security | Valor de registro modificado - monitorar leituras em `Nls\Language` | | `4663` | Security | Tentativa de acesso a objeto - arquivo ou chave de registro (requer SACL configurada) | | `13` | Sysmon | Valor de registro acessado - `HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language` | | `1` | Sysmon | Criação de processo - detectar `reg.exe` ou `powershell` consultando chaves NLS | **Regra Sigma:** ```yaml title: System Language Discovery via Registry or API id: 3d8a9b1c-4e2f-5a7b-8c9d-0e1f2a3b4c5d status: experimental description: Detecta consultas à chave de registro NLS para descoberta de idioma do sistema, padrão de malware com geofencing references: - https://attack.mitre.org/techniques/T1614/001/ logsource: product: windows category: registry_event detection: selection_registry: EventType: QueryValue TargetObject|contains: - 'CurrentControlSet\Control\Nls\Language' - 'CurrentControlSet\Control\Nls\Locale' filter_legit: Image|contains: - '\explorer.exe' - '\svchost.exe' - '\services.exe' - '\spoolsv.exe' condition: selection_registry and not filter_legit falsepositives: - Softwares de localização e instaladores legítimos - Scripts de inventário de TI level: low tags: - attack.discovery - attack.t1614.001 ``` ## Attack Flow ```mermaid graph TB A[Acesso Inicial] --> B[Execução] B --> C{T1614.001 - System Language Discovery}:::highlight C --> D{Idioma = alvo?} D -->|Sim| E[Prosseguir Infecção] D -->|Não| F[Abortar / Dormir] classDef highlight fill:#e74c3c,color:#fff ``` ## Como Funciona ### 1. Preparação O malware ou o adversário prepara a lógica de verificação de idioma como uma das primeiras rotinas a ser executada após o acesso inicial, antes de qualquer atividade ruidosa. A verificação é projetada para ser silenciosa: leitura de registro ou chamada de API sem gravação em disco, sem comunicação de rede e sem criação de processos filhos - o que torna a detecção por comportamento muito difícil. ### 2. Execução No Windows, o malware chama `GetUserDefaultUILanguage()` ou lê diretamente a chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language`. O valor retornado é comparado contra uma lista codificada no binário. No macOS/Linux, o comando `locale` ou a leitura da variável `$LANG` fornece o mesmo dado. Alguns malwares como [[cuba|Cuba]] e [[s0449-maze|Maze]] combinam essa verificação com checagem de timezone e layout de teclado para maior precisão geográfica, evitando falsos positivos de VPNs ou VMs com idioma configurado artificialmente. ### 3. Pós-execução Com base no resultado, o malware toma uma de três ações: (1) prossegue normalmente com o payload completo - típico de bankers LATAM como [[s1122-mispadu|Mispadu]] quando detecta `pt-BR`; (2) aborta silenciosamente e se autodestrói - padrão de ransomware russo quando detecta línguas CIS; (3) ajusta o comportamento - ex: [[s0483-icedid|IcedID]] seleciona módulos de fraude específicos para a região detectada. O resultado dessa decisão nunca é visível para a vítima. ## Detecção > [!tip] Estrategia de Detecção > A técnica individualmente é muito difícil de distinguir de atividade legítima (softwares localizados também consultam idioma do sistema). A detecção deve ser correlacionada com outros indicadores de comprometimento ou executada via análise de comportamento de processo. ## Mitigação > [!info] Nota sobre Mitigação > O MITRE ATT&CK não lista mitigações específicas para esta técnica, pois a consulta de idioma é uma operação legítima do sistema operacional. O foco deve estar na detecção e na correlação com outros indicadores de comprometimento. | Abordagem | Ação Prática para Organizações Brasileiras | |-----------|---------------------------------------------| | Detecção por Contexto | Correlacionar consultas à chave NLS com outros eventos suspeitos no mesmo processo (conexão de rede, escrita em registro de persistência, injeção em processo) | | Monitoramento de API | Usar EDR com capacidade de hooking de API para registrar chamadas a `GetUserDefaultUILanguage` e `GetKeyboardLayoutList` por processos não-assinados | | Análise de Malware | Em análise de ameaças, buscar strings `pt-BR`, `0416` (LCID do português do Brasil) e `1046` no binário como indicador de malware com alvo LATAM | | Sandboxing Regional | Executar amostras suspeitas em sandbox com configuração `pt-BR` para forçar a execução do payload destinado ao Brasil - muitos samples ficam inertes em sandboxes com idioma inglês | | Inteligência de Ameaças | Manter lista atualizada de famílias de malware com geofencing pt-BR, priorizando detecções de [[s1122-mispadu\|Mispadu]], [[s0640-avaddon\|Avaddon]] e seus derivados | ## Threat Actors - [[g0004-apt15|Ke3chang]] - APT com foco em organizações diplomáticas que usa descoberta de idioma para válidar que o host está no ambiente-alvo antes de ativar o payload de espionagem. - [[g1043-blackbyte|BlackByte]] - operador de ransomware que implementa verificação de idioma para excluir sistemas em países específicos e reduzir exposição a investigações de autoridades. - [[g1053-storm-0501|Storm-0501]] - grupo de ransomware-as-a-service que usa geofencing por idioma para direcionar ataques a setores específicos na América do Norte e LATAM. - [[g1026-malteiro|Malteiro]] - ator de ameaça com foco exclusivo em vítimas brasileiras; verifica ativamente a presença do idioma `pt-BR` antes de executar o payload de banking trojan. ## Software Associado - [[s1153-cuckoo-stealer|Cuckoo Stealer]] - malware infostealer que verifica idioma e timezone para válidar que está em um sistema macOS de usuário real antes de iniciar o roubo de dados. - [[s0652-markirat|MarkiRAT]] - RAT do Ke3chang que usa descoberta de idioma como parte do perfil inicial do host comprometido. - [[s0658-xcsset|XCSSET]] - malware macOS que verifica configurações de localidade para selecionar módulos de ataque específicos. - [[cuba|Cuba]] - ransomware que combina verificação de idioma com checagem de timezone para precisão geográfica antes da criptografia. - [[s0696-flagpro|Flagpro]] - downloader do BlackTech que verifica idioma do sistema como parte do reconhecimento inicial do host. - [[s0483-icedid|IcedID]] - banking trojan modular que usa verificação de idioma para ativar módulos de fraude específicos por região geográfica. - [[s0640-avaddon|Avaddon]] - ransomware com histórico de ataques ao Brasil que usa verificação de idioma para válidar alvos na América Latina. - [[s0449-maze|Maze]] - grupo de ransomware encerrado que implementava verificação de idioma e teclado para excluir sistemas em países CIS. - [[s1122-mispadu|Mispadu]] - banking trojan com foco em Brasil e México que usa detecção de `pt-BR` e `es-MX` para ativar módulos de interceptação bancária específicos para cada país. - [[s0543-spark|Spark]] - backdoor do Volatile Cedar que usa verificação de configurações regionais como parte do reconhecimento inicial do ambiente comprometido. --- *Fonte: [MITRE ATT&CK - T1614.001](https://attack.mitre.org/techniques/T1614/001)*