# T1417.002 - Input Capture: GUI Input Capture > [!warning] Captura de credenciais via sobreposição de tela falsa > Malware móvel exibe interfaces gráficas fraudulentas sobre aplicativos legítimos para capturar credenciais e dados financeiros inseridos pelo usuário, sem que a vítima perceba que está interagindo com uma tela falsa. ## Visão Geral O GUI Input Capture em dispositivos móveis é uma das técnicas mais eficazes para roubo de credenciais no Android e iOS. O ataque se baseia na capacidade do sistema operacional de sobrepor janelas de outros aplicativos — recurso legítimo usado por gerenciadores de senha e assistentes de acessibilidade — que é abusado por trojans bancários para apresentar telas de login falsas sobre aplicativos financeiros reais. No Android, a permissão `SYSTEM_ALERT_WINDOW` (conhecida como "aparecer em cima de outros apps") é o principal vetor de exploração. Quando concedida, permite que um aplicativo malicioso detecte quando um app bancário é aberto e imediatamente sobreponha uma tela de login falsa idêntica à interface legítima. O usuário insere suas credenciais acreditando interagir com o aplicativo real. Para o contexto LATAM, essa técnica é central na operação de [[grandoreiro]], [[ghimob]] e [[coyote-banking-trojan]] — trojans bancários desenvolvidos por grupos brasileiros que visam específicamente clientes de bancos como Itaú, Bradesco, Caixa Econômica Federal e Santander. A disseminação via aplicativos falsos em lojas não-oficiais e phishing por SMS (smishing) amplifica o alcance do ataque no Brasil. ## Attack Flow ```mermaid graph TB A["📦 Distribuição<br/>APK malicioso / smishing"] --> B["🔐 Permissão<br/>SYSTEM_ALERT_WINDOW solicitada"] B --> C["👀 Monitoramento<br/>Detector de app em foreground"] C --> D["🎭 Overlay<br/>Tela falsa sobre app bancário"] D --> E["⌨️ Captura<br/>Credenciais inseridas pelo usuário"] E --> F["📡 Exfiltração<br/>Dados enviados ao C2"] classDef attack fill:#e74c3c,color:#ecf0f1 classDef collection fill:#9b59b6,color:#ecf0f1 classDef neutral fill:#2c3e50,color:#ecf0f1 class D,E collection class A,B,C,F attack ``` *Legenda: Fluxo de ataque de overlay — monitoramento de foreground → sobreposição → captura de credenciais* ## Como Funciona ### Mecanismo Android — SYSTEM_ALERT_WINDOW O Android fornece a permissão `SYSTEM_ALERT_WINDOW` para casos de uso legítimos como chat heads do Facebook Messenger e assistentes de acessibilidade. Trojans bancários abusam dessa permissão para criar overlays fraudulentos: 1. **Detecção de foreground:** O malware usa `ActivityManager.getRunningTasks()` ou `UsageStatsManager` (API 21+) para detectar qual aplicativo está ativo no momento. 2. **Trigger de overlay:** Quando o app-alvo (ex: aplicativo do banco) é detectado em foreground, o malware instancia uma `WindowManager.LayoutParams` do tipo `TYPE_APPLICATION_OVERLAY` e renderiza a tela falsa. 3. **Bloqueio de navegação:** O overlay pode interceptar eventos de toque (`MotionEvent`) e suprimir o botão Voltar para prender o usuário na tela falsa. 4. **Captura e exfiltração:** As credenciais digitadas são capturadas e enviadas via HTTP/HTTPS para o servidor de comando e controle (C2). ### Abuso de AccessibilityService Uma variante mais agressiva usa o `AccessibilityService` para: - Ler o conteúdo de campos de texto de outros aplicativos (`AccessibilityNodeInfo.getText()`) - Injetar eventos de toque e teclado - Capturar screenshots da tela durante a interação com apps financeiros ### Injeção via WebView Alguns trojans mais sofisticados como [[grandoreiro]] utilizam WebView com JavaScript injection para modificar páginas de login de bancos abertas no navegador do dispositivo, substituindo formulários legítimos por versões que exfiltram dados antes de enviá-los ao servidor real. ### iOS — Limitações e Adaptações No iOS, a sandbox mais restritiva torna overlays diretos impossíveis para apps de terceiros. Técnicas equivalentes incluem: - Phishing via Web Clips (atalhos para páginas fraudulentas na tela inicial) - Exploração de apps Testflight ou MDM profiles para instalar perfis de configuração maliciosos - Ataques baseados em falhas em WebKit e Safari (requerem acesso físico ou exploração prévia) ## Detecção ### Indicadores no Dispositivo | Indicador | Método de Detecção | |-----------|-------------------| | Permissão `SYSTEM_ALERT_WINDOW` concedida a app não-sistema | MDM policy audit / app inventory | | `AccessibilityService` habilitado para app desconhecido | Monitoramento de serviços de acessibilidade | | Novo APK instalado de fonte não-oficial | Play Protect / MDM app allowlist | | Tráfego HTTP com campos de formulário em texto claro | Network traffic inspection (MDM proxy) | | App consumindo `UsageStatsManager` em background | Behavioral analytics via EDR móvel | ### Detecção via MDM/EMM Plataformas de gerenciamento como Microsoft Intune, VMware Workspace ONE e MobileIron permitem: - Criar políticas que **bloqueiam a concessão** de `SYSTEM_ALERT_WINDOW` para apps fora de allowlist - Detectar apps com `AccessibilityService` ativo e gerar alertas - Implementar Android Enterprise Work Profile para isolar apps corporativos de apps pessoais ### Comportamento em Rede - Requisições HTTP/HTTPS para domínios recém-registrados contendo campos de formulário (username, password, token) - Uso de DNS sobre HTTPS (DoH) para ocultar resolução de domínios C2 - Checkins periódicos ao C2 para receber a lista de apps-alvo atualizada ## Mitigação | Controle | Wikilink | Plataforma | |----------|----------|------------| | Restringir instalação de fontes desconhecidas | [[m1013-application-developer-guidance\|M1013]] | Android | | Gerenciamento de aplicativos via MDM | [[m1051-update-software\|M1051]] | Android/iOS | | Comúnicação de rede criptografada | [[m1031-network-intrusion-prevention\|M1031]] | Android/iOS | | Política de uso aceitável | [[m1036-account-use-policies\|M1036]] | Android/iOS | | Autenticação multifator fora do dispositivo | [[m1032-multi-factor-authentication\|M1032]] | Android/iOS | **Recomendações específicas:** - Habilitar **Google Play Protect** e manter atualizado - Configurar **Android Enterprise Work Profile** em dispositivos corporativos - Nunca instalar APKs de fontes não-oficiais (lojas de terceiros, links em SMS) - Usar **hardware security keys** (FIDO2) para autenticação bancária quando disponível - Revisar regularmente quais apps têm permissão `SYSTEM_ALERT_WINDOW` em Configurações > Apps > Acesso especial ## Contexto LATAM > [!latam] Relevância Brasil e América Latina > O GUI Input Capture é a técnica central dos maiores trojans bancários do Brasil. **Grandoreiro**, **Ghimob** e **Coyote** usam overlays sofisticados com interfaces pixel-perfect dos principais bancos brasileiros (Itaú, Bradesco, Caixa, Nubank). O Brasil lidera o ranking global de dispositivos Android infectados por banking trojans segundo ESET e Kaspersky. A adoção massiva de PIX acelerou o desenvolvimento de overlays específicos para capturar chaves PIX e autenticações de transferência, representando vetor crítico de fraude financeira no ecossistema brasileiro. ## Referências - [MITRE ATT&CK T1417.002](https://attack.mitre.org/techniques/T1417/002/) — Definição oficial e exemplos de procedimento - [ESET — Ghimob: a Tethys banking trojan](https://www.welivesecurity.com/2020/11/19/ghimob-tethys-financial-cybercrime-latin-america/) — Análise do trojan brasileiro com overlay - [Kaspersky — Coyote Banking Trojan](https://securelist.com/coyote-banking-trojan/115055/) — Análise técnica do Coyote com foco em LATAM - [Securelist — Grandoreiro overview](https://securelist.com/grandoreiro-global-malspam-campaign/110018/) — Campanha global do Grandoreiro - [Android Developers — SYSTEM_ALERT_WINDOW](https://developer.android.com/reference/android/Manifest.permission#SYSTEM_ALERT_WINDOW) — Documentação oficial da permissão