# T1574.002 - DLL Side-Loading ## Descrição **T1574.002 - DLL Side-Loading** é uma subtécnica de [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] na qual adversários posicionam uma DLL maliciosa com o mesmo nome de uma DLL legítima esperada por um executável confiável, fazendo com que o processo carregue e execute código malicioso sob a identidade e reputação do binário legítimo. A técnica explora a **ordem de busca de DLLs do Windows** (DLL Search Order): quando um executável é iniciado, o sistema operacional procura as DLLs necessárias em uma sequência de diretórios - começando pelo diretório do próprio executável antes de verificar diretórios do sistema como `C:\Windows\System32`. Adversários aproveitam essa precedência colocando uma DLL maliciosa no mesmo diretório que um executável legítimo e assinado digitalmente. A eficácia da técnica reside na confiança que ferramentas de segurança depositam em processos assinados digitalmente por fornecedores reconhecidos. Um EDR que monitoriza `svchost.exe` com suspeita, mas confia implicitamente em `OneDrive.exe` ou `VLC.exe`, pode ignorar comportamentos maliciosos quando estes ocorrem dentro do espaço de processo de uma aplicação legítima. Além de [[_defense-evasion|Defense Evasion]], a técnica serve como vetor de [[persistence|Persistence]], pois o DLL malicioso é carregado cada vez que o executável legítimo é iniciado - incluindo na inicialização do sistema se o aplicativo estiver configurado para autostart. [[g1017-volt-typhoon|Volt Typhoon]], ator de ameaça vinculado ao governo chinês com foco em infraestrutura crítica ocidental, utiliza DLL side-loading como pilar central de sua abordagem "living off the land" (LotL). [[g1045-salt-typhoon|Salt Typhoon]], grupo relacionado especializado em espionagem de redes de telecomúnicações, emprega a técnica para manter backdoors persistentes e discretos em ambientes de alta segurança sem acionar alarmes de EDR. > **Técnica pai:** [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] > **Táticas:** [[_defense-evasion|Defense Evasion]], [[persistence|Persistence]] --- ## Como Funciona ### 1. Identificação do Binário Vulnerável O adversário identifica um executável legítimo e assinado que: - Carrega DLLs pelo nome sem caminho absoluto (sem `LoadLibraryEx` com flag `LOAD_WITH_ALTERED_SEARCH_PATH`) - Possui permissão de escrita no diretório onde reside (ou pode ser copiado para um diretório controlado pelo atacante) - É preferencialmente executado com privilégios elevados ou na inicialização do sistema Ferramentas como **Procmon** (Process Monitor) da Sysinternals são frequentemente usadas durante o reconhecimento para identificar chamadas `LoadLibrary` que resultam em `NAME NOT FOUND` - indicando que o executável tenta carregar uma DLL que não está presente. ### 2. Criação da DLL Maliciosa O adversário cria uma DLL que exporta todas as funções esperadas pelo executável legítimo (para não causar erros visíveis) além de executar código malicioso. Técnicas de **DLL proxying** garantem que as funções legítimas continuem funcionando normalmente - o processo hospedeiro funciona sem erros enquanto o payload malicioso executa em segundo plano. ### 3. Posicionamento e Execução A DLL maliciosa é colocada no diretório do executável legítimo. Quando o executável é iniciado (manualmente, por agendador de tarefas, na inicialização do sistema ou por outro processo), o sistema carrega automaticamente a DLL maliciosa antes mesmo de verificar os diretórios do sistema. ### 4. Execução Sob Identidade Legítima O código malicioso executa dentro do processo do aplicativo legítimo, herdando: - O token de segurança do processo - A reputação do binário assinado perante ferramentas de segurança - Acesso aos recursos e permissões do aplicativo --- ## Attack Flow ```mermaid graph TB A([Acesso Inicial<br/>ao Sistema]) --> B[Reconhecimento de<br/>Binários Vulneráveis] B --> C{Identificar EXE Legítimo\nque Carrega DLL por Nome} C --> D[Análise com Procmon<br/>ou Ferramentas Similares] D --> E[Encontrar Chamadas LoadLibrary<br/>com NAME NOT FOUND] E --> F[Criar DLL Maliciosa<br/>com Mesmo Nome] F --> G[Implementar DLL Proxying<br/>para Manter Funcionalidade] G --> H[Posicionar DLL no<br/>Diretório do EXE] H --> I{Como o EXE é\nIniciado?} I -->|Manual / Usuário| J[Execução Imediata<br/>do Payload] I -->|Autostart / Registro| K[Persistência na<br/>Inicialização do Sistema] I -->|Agendador de Tarefas| L[Execução Periódica<br/>Automática] J --> M[Código Malicioso Executa<br/>Sob Identidade do EXE Legítimo] K --> M L --> M M --> N[Comúnicação C2<br/>Disfarçada] M --> O[Movimentação<br/>Lateral] M --> P[Roubo de<br/>Credenciais] N --> Q([Comprometimento<br/>Persistente e Furtivo]) O --> Q P --> Q style A fill:#2d3748,color:#fff style Q fill:#9b2335,color:#fff style M fill:#9b2335,color:#fff style H fill:#744210,color:#fff style C fill:#2b6cb0,color:#fff style I fill:#2b6cb0,color:#fff ``` --- ## Exemplos de Uso ### Volt Typhoon - Infraestrutura Crítica [[g1017-volt-typhoon|Volt Typhoon]] (também rastreado como Bronze Silhouette e Dev-0391) é um ator de ameaça patrocinado pelo Estado chinês com foco em infraestrutura crítica dos EUA e aliados - energia, água, transporte e telecomúnicações. O grupo usa DLL side-loading como técnica central de sua métodologia "living off the land", frequentemente abusando de utilitários legítimos como `netsh.exe`, `wmic.exe` e ferramentas de gerenciamento de rede para carregar DLLs maliciosas. Em 2023, o FBI e CISA emitiram aviso conjunto sobre o grupo, destacando o uso extensivo desta técnica para manter acesso persistente sem acionar EDRs. ### Salt Typhoon - Espionagem em Telecomúnicações [[g1045-salt-typhoon|Salt Typhoon]] (GhostEmperor, FamousSparrow) comprometeu operadoras de telecomúnicações em múltiplos países, incluindo provedores que operam na América Latina. O grupo utiliza DLL side-loading com aplicações de gerenciamento de rede e segurança comumente presentes em ambientes de telecom - onde remover ou questionar ferramentas legítimas de gerenciamento é operacionalmente custoso para os defensores. ### APT41 - Dupla Missão: Espionagem e Crime [[g0096-apt41|APT41]] (Winnti, Barium) é prolífico no uso de DLL side-loading, frequentemente abusando de aplicações de segurança e antivírus de fornecedores legítimos como vetor de carregamento. Ferramentas de segurança têm alto nível de confiança implícita no sistema, tornando-as alvos ideais. O grupo tem sido documentado usando produtos de antivírus da Kaspersky, ESET e outros como hosts para DLLs maliciosas. ### PlugX / THOR - RAT Amplamente Distribuído O RAT [[s0013-plugx|PlugX]] e sua variante [[thor|THOR]] são virtualmente sinônimos de DLL side-loading - práticamente todas as variantes conhecidas utilizam a técnica. O padrão típico envolve três arquivos: um executável legítimo assinado, uma DLL side-loaded que descriptografa e carrega o payload, e um arquivo `.dat` ou `.bin` contendo o shellcode criptografado. Variantes do PlugX têm sido identificadas em campanhas contra governos e empresas no Brasil e LATAM. ### LOLBAS - Living Off The Land Binaries Binários legítimos do próprio Windows frequentemente são alvos de side-loading. Exemplos documentados incluem: - `C:\Program Files\Microsoft OneDrive\` - versões antigas carregavam DLLs vulneráveis - Aplicações da Adobe e produtos Microsoft Office - Ferramentas de gerenciamento remoto como TeamViewer e AnyDesk --- ## Detecção ```yaml # Sigma Rule - T1574.002 DLL Side-Loading # Detecta DLLs carregadas de diretórios incomuns por processos assinados title: DLL Side-Loading from Suspicious Directory id: b7e4a2c1-8d3f-4b9e-a1c2-3e5f7d8b9c0d status: experimental description: > Detecta o carregamento de DLLs por processos assinados de diretórios não-padrão (fora de System32, SysWOW64, Program Files), especialmente quando a DLL tem o mesmo nome de uma DLL legítima do sistema. references: - https://attack.mitre.org/techniques/T1574/002/ - https://github.com/wietze/HijackLibs author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.persistence - attack.t1574.002 logsource: product: windows category: image_load detection: selection_signed_process: Signed: 'true' SignatureStatus: 'Valid' selection_suspicious_dll_path: ImageLoaded|contains: - '\Users\' - '\AppData\Local\Temp\' - '\Downloads\' - '\Desktop\' - '\ProgramData\' filter_known_good: ImageLoaded|contains: - '\Windows\System32\' - '\Windows\SysWOW64\' - '\Program Files\' - '\Program Files (x86)\' condition: > selection_signed_process and selection_suspicious_dll_path and not filter_known_good falsepositives: - Instaladores portáteis legítimos - Aplicações desenvolvidas internamente sem boas práticas de instalação - Alguns jogos e softwares de entretenimento level: high --- # Sigma Rule - Detecção por Anomalia de Diretório de DLL title: Known DLL Loaded from Non-Standard Path id: c8f5b3d2-9e4a-5c0f-b2d3-4f6a8e9c1d2e status: experimental description: > Detecta DLLs de sistema conhecidas carregadas de diretórios que não são os caminhos oficiais - forte indicador de side-loading. tags: - attack.defense_evasion - attack.t1574.002 logsource: product: windows category: image_load detection: selection_known_dlls: ImageLoaded|endswith: - '\version.dll' - '\dbghelp.dll' - '\winhttp.dll' - '\cryptsp.dll' - '\msasn1.dll' - '\profapi.dll' filter_system_paths: ImageLoaded|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' condition: selection_known_dlls and not filter_system_paths falsepositives: - Pacotes de redistribuição Visual C++ em subdiretórios de aplicação level: critical ``` ### Estrategias de Detecção Complementares | Abordagem | Ferramenta | Método | |-----------|-----------|--------| | Process Monitoring | Sysmon (Event ID 7) | Registrar todos os carregamentos de DLL com hash e caminho | | Path Anomaly Detection | EDR + SIEM | Alertar quando DLLs de sistema são carregadas fora de System32 | | Hash Comparison | VirusTotal / NSRL | Comparar hash de DLL com a DLL legítima conhecida | | Behavioral Analytics | UEBA | Detectar processos assinados com comportamento de rede anômalo | | HijackLibs Database | [HijackLibs.net](https://hijacklibs.net) | Verificar executáveis conhecidamente vulneráveis a side-loading | --- ## Mitigação | ID | Mitigação | Descrição | Eficácia | |----|-----------|-----------|----------| | [[m1051-update-software\|M1051]] | Updaté Software | Manter aplicações atualizadas - vendors corrigem vulnerabilidades de DLL loading | Alta | | [[m1038-execution-prevention\|M1038]] | Execution Prevention | Usar AppLocker ou WDAC para restringir carregamento de DLLs não assinadas | Alta | | [[m1022-restrict-file-and-directory-permissions\|M1022]] | Restrict File and Directory Permissions | Restringir permissões de escrita nos diretórios de instalação de aplicações legítimas | Alta | | [[m1044-restrict-library-loading\|M1044]] | Restrict Library Loading | Configurar `SafeDllSearchMode` habilitado no registro do Windows | Média | | [[m1040-behavior-prevention-on-endpoint\|M1040]] | Behavior Prevention on Endpoint | Soluções EDR com análise comportamental que detectam carregamento anômalo | Alta | | - | Auditoria Regular | Usar ferramentas como Procmon e HijackLibs para auditar aplicações instaladas | Média | ### Hardening do Windows - DLL Safe Search O Windows pode ser configurado para usar SafeDllSearchMode via registro: ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager SafeDllSearchMode = 1 ``` Quando habilitado, diretórios do sistema têm precedência sobre o diretório atual na busca de DLLs. --- ## Contexto Brasil/LATAM DLL side-loading tem sido identificado em campanhas direcionadas ao Brasil e LATAM com crescente frequência, especialmente em ataques contra setores de [[financial|financeiro]], [[government|governo]] e [[telecommunications|telecomúnicações]]. ### Grupos Chineses e Infraestrutura LATAM [[g1017-volt-typhoon|Volt Typhoon]] e [[g1045-salt-typhoon|Salt Typhoon]] têm interesse documentado em infraestrutura de telecomúnicações que inclui cabos submarinos e provedores de internet que aténdem a América Latina. Operadoras brasileiras de grande porte foram identificadas como possíveis alvos em relatórios da [[sources|Mandiant]] e [[_crowdstrike|CrowdStrike]]. ### PlugX em Campanhas LATAM Variantes do [[s0013-plugx|PlugX]], que usa side-loading como técnica primária, foram identificadas em campanhas contra entidades governamentais em países como México, Peru e Brasil. O grupo APT41 e afiliados têm interesse crescente na região, motivados tanto por espionagem quanto por acesso a redes financeiras. ### Malware Bancário Brasileiro Embora menos sofisticados que APTs patrocinados por Estados, grupos criminosos brasileiros desenvolveram variantes de trojans bancários que usam side-loading para evasão de antivírus. A combinação com técnicas de [[t1027-obfuscated-files|ofuscação]] e [[t1036-masquerading|mascaramento]] torna estas amostras difíceis de detectar em soluções antivírus tradicionais amplamente usadas no mercado corporativo brasileiro. ### Recomendações para SOC LATAM Equipes de segurança no Brasil devem priorizar: 1. Implementação de Sysmon com política de log de Event ID 7 (carregamento de imagens) 2. Consulta periódica ao banco de dados [HijackLibs.net](https://hijacklibs.net) para identificar aplicações vulneráveis no inventário 3. Monitoramento de [[sources|CERT.br]] para alertas sobre campanhas que usam esta técnica na região --- ## Referências - [MITRE ATT&CK - T1574.002](https://attack.mitre.org/techniques/T1574/002/) - [CISA Advisory - Volt Typhoon (AA23-144A)](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-144a) - [HijackLibs - DLL Hijacking Candidates Database](https://hijacklibs.net/) - [Microsoft - Dynamic-Link Library Search Order](https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order) - [Mandiant - APT41 Double Dragon](https://www.mandiant.com/resources/apt41-double-dragon) - [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] (técnica pai) - [[t1548-002-bypass-uac|T1548.002 - Bypass User Account Control]] - [[t1027-obfuscated-files|T1027 - Obfuscated Files or Information]] - [[t1036-masquerading|T1036 - Masquerading]] - [[t1055-process-injection|T1055 - Process Injection]]