# T1027.017 - SVG Smuggling ## Técnica Pai [[t1027-obfuscated-files-or-information|T1027 - Obfuscaté Files or Information]] ## Descrição SVG Smuggling é uma sub-técnica de [[t1027-obfuscated-files-or-information|Obfuscação de Arquivos]] na qual adversários exploram o formato SVG (Scalable Vector Graphics) para contrabandear e executar payloads maliciosos contornando filtros de conteúdo e soluções de segurança de e-mail e web. O SVG é um formato de imagem vetorial baseado em XML que, por específicação, **suporta nativamente tags `<script>`**. Isso significa que um arquivo `.svg` pode conter JavaScript executável - e navegadores modernos processam esse JavaScript ao renderizar a imagem. A maioria dos filtros de e-mail e gateways web trata arquivos SVG como imagens inofensivas, aplicando inspeção muito menos rigorosa do que aplicaria a executáveis, documentos Office ou scripts. Essa técnica é essencialmente uma **variante especializada de [[t1027-006-html-smuggling|HTML Smuggling]]**, com a distinção de usar o contêiner SVG em vez de HTML puro. Como o SVG pode ser embutido diretamente em páginas HTML ou em PDFs, e também pode ser entregue como anexo independente, a superfície de entrega é ampla. ## Como Funciona O SVG Smuggling pode assumir diversas formas, todas explorando a capacidade de execução de script do formato: ### 1. Montagem de payload em memória O JavaScript dentro do SVG constrói dinâmicamente um binário ou script usando técnicas como: - Concatenação de strings codificadas em Base64 - Arrays de bytes convertidos em `Blob` + `URL.createObjectURL` - Criação dinâmica de elemento `<a>` com `download` para forçar o salvamento do payload O payload nunca transita pela rede como arquivo executável - ele é **montado no navegador da vítima**, contornando inspeção de transferência de arquivos. ### 2. Redirecionamento para site malicioso O script dentro do SVG executa `window.location.href` apontando para infraestrutura controlada pelo adversário, geralmente hospedando phishing de credenciais ou download adicional. ### 3. Formulários falsos interativos SVGs podem renderizar elementos visuais completos - caixas de texto, botões, logotipos de empresas. Adversários criam formulários de login falsos dentro do próprio SVG que capturam credenciais e as enviam para servidores externos. ### 4. Combinação com HTML Smuggling Um SVG malicioso é embutido como elemento `<img>` ou `<object>` dentro de uma página HTML. Quando o navegador renderiza a página, o SVG é processado e seu JavaScript é executado, compondo o payload. Isso adiciona uma camada de indireção que dificulta ainda mais a detecção. ### 5. Embutido em PDFs Arquivos PDF podem referênciar ou embutir SVGs. Ao abrir o PDF em um leitor que renderiza SVG com suporte a script (menos comum, mas possível), o payload é acionado. ## Attack Flow ```mermaid graph TB A[Adversário cria arquivo SVG com script malicioso embutido] --> B[Escolha do método de entrega] B --> C[Anexo de e-mail SVG direto] B --> D[SVG embutido em HTML via phishing] B --> E[SVG dentro de documento PDF] C --> F[Vítima abre SVG no navegador] D --> F E --> G[Vítima abre PDF com SVG referenciado] G --> F F --> H{Tipo de ação do script} H --> I[Monta payload em memória e força download] H --> J[Redireciona para site de phishing ou C2] H --> K[Exibe formulário falso e captura credenciais] I --> L[Usuário executa payload baixado] J --> M[Credenciais comprometidas ou malware entregue] K --> M L --> N[Acesso inicial estabelecido] M --> N ``` ## Exemplos de Uso ### Campanha com Emotet e SVG Smuggling Em 2024, operadores do **Emotet** foram observados distribuindo SVGs maliciosos como anexos de e-mail. O arquivo SVG continha JavaScript que montava um arquivo `.zip` com um loader em memória, forçava seu download e exibia instruções para o usuário extrair e executar - simulando a aparência de um documento legítimo durante todo o processo. ### Grupos de ameaça de acesso inicial (Initial Access Brokers) Grupos especializados em venda de acessos iniciais adotaram SVG Smuggling como alternativa ao HTML Smuggling clássico após fabricantes de soluções de e-mail melhorarem a detecção de `<script>` em arquivos `.html`. O `.svg` requer assinatura específica e ainda apresenta baixa taxa de detecção em gateways não atualizados. ### Integração com [[t1566-001-spearphishing-attachment|Spearphishing]] A técnica é quase sempre usada no estágio de [[ta0001-initial-access|Acesso Inicial]], embalada como um arquivo supostamente inofensivo em campanhas de spearphishing. Nomes comuns: `fatura.svg`, `contrato_assinado.svg`, `nota_fiscal.svg` - nomenclatura deliberadamente localizada para contextos regionais, incluindo o Brasil. ### Formulário de login falso de Microsoft 365 SVGs avançados replicam visualmente a interface de login do Microsoft 365 (logotipo, cores, campos), capturando credenciais diretamente sem redirecionar para domínio externo. O payload capturado é enviado via `fetch()` para um endpoint controlado pelo adversário. ## Detecção ```yaml title: Arquivo SVG com Tag Script Detectado em Anexo de E-mail status: experimental logsource: category: file_event product: windows detection: selection_svg_download: TargetFilename|endswith: '.svg' TargetFilename|contains: - '\Downloads\' - '\Temp\' - '\AppData\Local\' condition: selection_svg_download level: medium tags: - attack.defense_evasion - attack.t1027.017 ``` ```yaml title: Navegador Cria Arquivo Executável após Abrir SVG status: experimental logsource: category: file_event product: windows detection: selection_browser_parent: Image|contains: - '\chrome.exe' - '\msedge.exe' - '\firefox.exe' selection_suspicious_ext: TargetFilename|endswith: - '.exe' - '.dll' - '.js' - '.hta' - '.zip' condition: selection_browser_parent and selection_suspicious_ext level: high tags: - attack.defense_evasion - attack.t1027.017 - attack.initial_access - attack.t1566.001 ``` ### Indicadores de comprometimento comportamentais - Navegador cria arquivos executáveis (`.exe`, `.dll`, `.lnk`, `.hta`) no diretório de downloads após acesso a `.svg` - Processo do navegador realiza conexão de rede para domínio externo imediatamente após renderizar SVG - SVG com tamanho atipicamente grande para um arquivo de imagem (> 50 KB sugere conteúdo embutido) - JavaScript em SVG contendo longas strings Base64 ou arrays de bytes - Presença de `URL.createObjectURL`, `Blob`, `msSaveOrOpenBlob` no conteúdo do SVG ### Detecção em gateway de e-mail Implementar inspeção de conteúdo de arquivos SVG em gateways de e-mail buscando presença de tags `<script>`, atributos de evento (`onload`, `onclick`, `onmouseover`) e funções JavaScript suspeitas (`fetch`, `XMLHttpRequest`, `eval`, `atob`). ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1048-application-isolation-and-sandboxing\|M1048]] | Application Isolation and Sandboxing | Usar navegadores com sandboxing reforçado; configurar políticas de grupo para bloquear execução de scripts em SVGs abertos fora do contexto de aplicações confiáveis | | [[m1021-restrict-web-based-content\|M1021]] | Restrict Web-Based Content | Configurar proxies e gateways de e-mail para inspecionar e bloquear SVGs com conteúdo de script (`<script>`, atributos `on*`); considerar bloqueio de download de `.svg` de fontes não confiáveis | | [[m1054-software-configuration\|M1054]] | Software Configuration | Desabilitar execução de JavaScript em SVGs via políticas do navegador (Chrome Group Policy, Edge Policies) em ambientes que não requerem essa funcionalidade | ## Contexto Brasil/LATAM O SVG Smuggling tem relevância crescente no Brasil e América Latina por três fatores: **1. Alta adoção de Microsoft 365**: A penetração do M365 em empresas brasileiras torna ataques de colheita de credenciais via formulários SVG falsos de Microsoft altamente eficazes. Campanhas de BEC (Business Email Compromise) direcionadas ao setor financeiro e de serviços têm usado SVG smuggling como vetor de acesso inicial. **2. Baixa cobertura em gateways legados**: Muitas organizações de médio porte no Brasil ainda utilizam soluções de segurança de e-mail desatualizadas que não incluem assinaturas para conteúdo malicioso em SVG, ao contrário das proteções para `.html` e Office. **3. Engenharia social localizada**: Adversários adaptam os SVGs com nomes de arquivos em português, logotipos de bancos brasileiros (Bradesco, Itaú, Caixa) e órgãos governamentais (Receita Federal, SEFAZ), aumentando a taxa de engajamento de vítimas. Equipes de SOC brasileiras devem adicionar detecção específica para SVG em pipelines de análise de e-mail e configurar alertas para downloads de SVG seguidos de criação de arquivos executáveis. ## Referências - Documentação oficial MITRE ATT&CK: T1027.017 - SVG Smuggling - Análises públicas de campanhas Emotet utilizando SVG como vetor - ANY.RUN, MalwareBazaar - Elastic Security Research: "HTML Smuggling and SVG as delivery vectors" (2024) - Sans Internet Storm Center: análises de SVG maliciosos em campanha de phishing corporativo - Relação com [[t1027-006-html-smuggling|HTML Smuggling]] - técnica irmã no mesmo grupo parental --- *Fonte: MITRE ATT&CK - T1027.017*