# M1038 — Execution Prevention
## Visão Geral
---
*Fonte: [MITRE ATT&CK — M1038](https://attack.mitre.org/mitigations/M1038)*
## Descrição
Prevenir a execução de código não autorizado ou malicioso em sistemas por meio da implementação de controle de aplicações, bloqueio de scripts e outros mecanismos de prevenção de execução.
```mermaid
graph TB
A["📋 Definir Whitelist<br/>aplicações autorizadas<br/>assinadas e aprovadas"] --> B["🔒 AppLocker / WDAC<br/>bloquear binários<br/>não autorizados"]
B --> C["📜 Script Blocking<br/>PowerShell Constrained<br/>Set-ExecutionPolicy AllSigned"]
C --> D["🚫 Bloquear Dirs Suspeitos<br/>%TEMP% / %APPDATA%<br/>sem execução de .exe"]
D --> E["🛡️ EDR Runtime<br/>análise comportamental<br/>bloqueio em tempo real"]
``` Isso garante que apenas código confiável e autorizado seja executado, reduzindo o risco de malware e ações não autorizadas. Esta mitigação pode ser implementada por meio das seguintes medidas:
Controle de Aplicações:
- Caso de uso: Utilizar ferramentas como AppLocker ou Windows Defender Application Control (WDAC) para criar whitelists de aplicações autorizadas e bloquear as não autorizadas. No Linux, utilizar ferramentas como SELinux ou AppArmor para definir políticas de controle de acesso mandatório para execução de aplicações.
- Implementação: Permitir apenas aplicações assinadas digitalmente ou pré-aprovadas para execução em servidores e endpoints. (ex.: `New-AppLockerPolicy -PolicyType Enforced -FilePath "C:\Policies\AppLocker.xml"`)
Bloqueio de Scripts:
- Caso de uso: Utilizar mecanismos de controle de scripts para bloquear a execução não autorizada de scripts, como PowerShell ou JavaScript. Navegadores Web: Utilizar extensões ou configurações do navegador para bloquear a execução de JavaScript de fontes não confiáveis.
- Implementação: Configurar PowerShell para aplicar Constrained Language Mode para usuários não-administradores. (ex.: `Set-ExecutionPolicy AllSigned`)
Bloqueio de Executáveis:
- Caso de uso: Prevenir a execução de binários de locais suspeitos, como diretórios `%TEMP%` ou `%APPDATA%`.
- Implementação: Bloquear a execução de arquivos `.exe`, `.bat` ou `.ps1` de diretórios com permissão de escrita do usuário.
Prevenção por Análise Dinâmica:
- Caso de uso: Utilizar ferramentas de prevenção de execução baseadas em comportamento para identificar e bloquear atividades maliciosas em tempo real.
- Implementação: Empregar soluções EDR que analisam o comportamento em tempo de execução e bloqueiam execução de código suspeito.
## Técnicas Mitigadas
| ID | Técnica |
|---|---------|
| T1219.001 | [[t1219-001-ide-tunneling\|T1219.001 — IDE Tunneling]] |
| T1216.002 | [[t1216-002-syncappvpublishingserver\|T1216.002 — SyncAppvPublishingServer]] |
| T1553.003 | [[t1553-003-sip-and-trust-provider-hijacking\|T1553.003 — SIP and Trust Provider Hijacking]] |
| T1059.010 | [[t1059-010-autohotkey-autoit\|T1059.010 — AutoHotKey & AutoIT]] |
| T1036.005 | [[t1036-005-match-legitimate-resource-name-or-location\|T1036.005 — Match Legitimaté Resource Name or Location]] |
| T1574.008 | [[t1574-008-path-interception-by-search-order-hijacking\|T1574.008 — Path Interception by Search Order Hijacking]] |
| T1574.006 | [[t1574-006-dynamic-linker-hijacking\|T1574.006 — Dynamic Linker Hijacking]] |
| T1546.002 | [[t1546-002-screensaver\|T1546.002 — Screensaver]] |
| T1564.003 | [[t1564-003-hidden-window\|T1564.003 — Hidden Window]] |
| T1553 | [[t1553-subvert-trust-controls\|T1553 — Subvert Trust Controls]] |
| T1176.002 | [[t1176-002-ide-extensions\|T1176.002 — IDE Extensions]] |
| T1218.005 | [[t1218-005-mshta\|T1218.005 — Mshta]] |
| T1059.005 | [[t1059-005-visual-basic\|T1059.005 — Visual Basic]] |
| T1218.004 | [[t1218-004-installutil\|T1218.004 — InstallUtil]] |
| T1204 | [[t1204-user-execution\|T1204 — User Execution]] |
| T1574.001 | [[t1574-001-dll\|T1574.001 — DLL]] |
| T1204.004 | [[t1204-004-malicious-copy-and-paste\|T1204.004 — Malicious Copy and Paste]] |
| T1129 | [[t1129-shared-modules\|T1129 — Shared Modules]] |
| T1218.009 | [[t1218-009-regsvcsregasm\|T1218.009 — Regsvcs/Regasm]] |
| T1548 | [[t1548-abuse-elevation-control-mechanism\|T1548 — Abuse Elevation Control Mechanism]] |
| T1548.004 | [[t1548-004-elevated-execution-with-prompt\|T1548.004 — Elevated Execution with Prompt]] |
| T1611 | [[t1611-escape-to-host\|T1611 — Escape to Host]] |
| T1216.001 | [[t1216-001-pubprn\|T1216.001 — PubPrn]] |
| T1547.009 | [[t1547-009-shortcut-modification\|T1547.009 — Shortcut Modification]] |
| T1218.012 | [[t1218-012-verclsid\|T1218.012 — Verclsid]] |
| T1106 | [[t1106-native-api\|T1106 — Native API]] |
| T1127.003 | [[t1127-003-jámplus\|T1127.003 — JámPlus]] |
| T1218.015 | [[t1218-015-electron-applications\|T1218.015 — Electron Applications]] |
| T1562.011 | [[t1562-011-spoof-security-alerting\|T1562.011 — Spoof Security Alerting]] |
| T1219 | [[t1219-remote-access-tools\|T1219 — Remote Access Tools]] |
| T1216 | [[t1216-system-script-proxy-execution\|T1216 — System Script Proxy Execution]] |
| T1047 | [[t1047-windows-management-instrumentation\|T1047 — Windows Management Instrumentation]] |
| T1674 | [[t1674-input-injection\|T1674 — Input Injection]] |
| T1059.007 | [[t1059-007-javascript\|T1059.007 — JavaScript]] |
| T1204.002 | [[t1204-002-malicious-file\|T1204.002 — Malicious File]] |
| T1546.010 | [[t1546-010-appinit-dlls\|T1546.010 — AppInit DLLs]] |
| T1059.004 | [[t1059-004-unix-shell\|T1059.004 — Unix Shell]] |
| T1574 | [[t1574-hijack-execution-flow\|T1574 — Hijack Execution Flow]] |
| T1562.001 | [[t1562-001-disable-or-modify-tools\|T1562.001 — Disable or Modify Tools]] |
| T1505.004 | [[t1505-004-iis-components\|T1505.004 — IIS Components]] |
| T1547.004 | [[t1547-004-winlogon-helper-dll\|T1547.004 — Winlogon Helper DLL]] |
| T1059.002 | [[t1059-002-applescript\|T1059.002 — AppleScript]] |
| T1553.001 | [[t1553-001-gatekeeper-bypass\|T1553.001 — Gatekeeper Bypass]] |
| T1036.008 | [[t1036-008-masquerade-file-type\|T1036.008 — Masquerade File Type]] |
| T1218.008 | [[t1218-008-odbcconf\|T1218.008 — Odbcconf]] |
| T1059 | [[t1059-command-and-scripting-interpreter\|T1059 — Command and Scripting Interpreter]] |
| T1574.007 | [[t1574-007-path-interception-by-path-environment-variable\|T1574.007 — Path Interception by PATH Environment Variable]] |
| T1127 | [[t1127-trusted-developer-utilities-proxy-execution\|T1127 — Trusted Developer Utilities Proxy Execution]] |
| T1490 | [[t1490-inhibit-system-recovery\|T1490 — Inhibit System Recovery]] |
| T1059.008 | [[t1059-008-network-device-cli\|T1059.008 — Network Device CLI]] |
| T1562 | [[t1562-impair-defenses\|T1562 — Impair Defenses]] |
| T1218 | [[t1218-system-binary-proxy-execution\|T1218 — System Binary Proxy Execution]] |
| T1218.002 | [[t1218-002-control-panel\|T1218.002 — Control Panel]] |
| T1059.003 | [[t1059-003-windows-command-shell\|T1059.003 — Windows Command Shell]] |
| T1546.006 | [[t1546-006-lcloaddylib-addition\|T1546.006 — LC_LOAD_DYLIB Addition]] |
| T1220 | [[t1220-xsl-script-processing\|T1220 — XSL Script Processing]] |
| T1080 | [[t1080-taint-shared-content\|T1080 — Taint Shared Content]] |
| T1059.009 | [[t1059-009-cloud-api\|T1059.009 — Cloud API]] |
| T1547.006 | [[t1547-006-kernel-modules-and-extensions\|T1547.006 — Kernel Modules and Extensions]] |
| T1574.009 | [[t1574-009-path-interception-by-unquoted-path\|T1574.009 — Path Interception by Unquoted Path]] |
| T1059.006 | [[t1059-006-python\|T1059.006 — Python]] |
| T1059.013 | [[t1059-013-container-cliapi\|T1059.013 — Container CLI/API]] |
| T1059.011 | [[t1059-011-lua\|T1059.011 — Lua]] |
| T1127.001 | [[t1127-001-msbuild\|T1127.001 — MSBuild]] |
| T1574.012 | [[t1574-012-corprofiler\|T1574.012 — COR_PROFILER]] |
| T1546.008 | [[t1546-008-accessibility-features\|T1546.008 — Accessibility Features]] |
| T1546.009 | [[t1546-009-appcert-dlls\|T1546.009 — AppCert DLLs]] |
| T1176 | [[t1176-software-extensions\|T1176 — Software Extensions]] |
| T1068 | [[t1068-exploitation-for-privilege-escalation\|T1068 — Exploitation for Privilege Escalation]] |
| T1176.001 | [[t1176-001-browser-extensions\|T1176.001 — Browser Extensions]] |
| T1553.005 | [[t1553-005-mark-of-the-web-bypass\|T1553.005 — Mark-of-the-Web Bypass]] |
| T1218.003 | [[t1218-003-cmstp\|T1218.003 — CMSTP]] |
| T1219.002 | [[t1219-002-remote-desktop-software\|T1219.002 — Remote Desktop Software]] |
| T1036 | [[t1036-masquerading\|T1036 — Masquerading]] |
| T1218.014 | [[t1218-014-mmc\|T1218.014 — MMC]] |
| T1218.001 | [[t1218-001-compiled-html-file\|T1218.001 — Compiled HTML File]] |
| T1218.013 | [[t1218-013-mavinject\|T1218.013 — Mavinject]] |
| T1564.006 | [[t1564-006-run-virtual-instance\|T1564.006 — Run Virtual Instance]] |
| T1609 | [[t1609-container-administration-command\|T1609 — Container Administration Command]] |
| T1059.001 | [[t1059-001-powershell\|T1059.001 — PowerShell]] |
## Contexto LATAM
> [!globe] Relevância Regional
> Execution Prevention é altamente relevante no Brasil dada a prevalência de ataques via scripts PowerShell e VBScript em campanhas de phishing direcionadas ao setor financeiro. Grupos de ameaças financeiras brasileiros como [[s0531-grandoreiro]] e operadores de RATs como [[s1087-asyncrat]] abusam extensivamente de LOLBins e scripts para evasão de antivírus tradicionais presentes na maioria dos endpoints corporativos nacionais.
> - Adoção em SOCs brasileiros: médio — AppLocker e WDAC adotados em bancos e grandes corporações; ausente em ~80% das PMEs que ainda dependem apenas de antivírus baseado em assinatura
> - Regulamentações relevantes: BACEN 4893/2021 (controle de execução de código em sistemas financeiros), Febraban CERT (recomendações para prevenção de malware bancário), CISA Best Practices adaptadas para contexto nacional
> - Desafios regionais: conflito de AppLocker com software legado empresarial brasileiro, licenciamento de Windows Enterprise necessário para WDAC em PMEs, resistência de times de TI ao bloqueio de ferramentas de administração