# DC0020 - Firmware Modification > [!info] Detecta alterações em firmware UEFI/BIOS e bootloaders — o nível mais profundo de persistência adversarial. Implantes de firmware sobrevivem a reinstalações do sistema operacional e são utilizados exclusivamente por atores de estado-nação avançados. ## Descrição Firmware Modification detecta alterações em componentes de firmware do sistema, incluindo UEFI/BIOS, firmware de dispositivos periféricos (SSD, NIC, GPU) e bootloaders. É uma das técnicas adversariais mais avançadas e persistentes, utilizada principalmente por atores de estado-nação como Equation Group e APT29. Implantes de firmware sobrevivem a reinstalações do sistema operacional e são extremamente difíceis de detectar e remediar sem acesso ao hardware físico. ## Fonte de Dados Parent: [[ds0001-firmware|DS0001 - Firmware]] ## Pipeline de Detecção ```mermaid graph TB A["🔩 Acesso a Ferramentas<br/>de Firmware Update"] --> B["🔒 Verificação de<br/>Integridade TPM/PCR"] B --> C{"📊 Medição TPM<br/>Alterada?"} C -->|Sim - UEFI vars| D["🚨 Alerta P1<br/>Possível Implante UEFI"] C -->|Sim - Bootloader| E["🚨 Alerta P1<br/>Bootkit Detectado"] C -->|Não| F{"🔐 Secure Boot<br/>Ativo e Válido?"} F -->|Desabilitado| G["🟧 Alerta P2<br/>Secure Boot Off"] F -->|Sim| H["✔️ Sistema<br/>Íntegro"] classDef p1 fill:#e74c3c,color:#ecf0f1 classDef p2 fill:#e67e22,color:#ecf0f1 classDef ok fill:#2ecc71,color:#2c3e50 classDef proc fill:#2c3e50,color:#ecf0f1 class D,E p1 class G p2 class H ok class A,B,C,F proc ``` ## O Que Monitorar - Acesso a ferramentas de atualização de firmware (fwupdate, flashrom, fptool) - Chamadas a APIs de acesso ao firmware UEFI (EFI variables via `NtSetSystemInformation`) - Medições de integridade via TPM/Secure Boot comparadas com baseline - Acesso a `/dev/sda` ou dispositivos raw em nível de bloco (Linux) - Windows Event Log - eventos de Secure Boot: `Microsoft-Windows-Kernel-Boot` - Tentativas de desabilitar Secure Boot ou modificar políticas de boot - Drivers de atualização de firmware de terceiros sendo carregados ## Técnicas Detectadas | Técnica | ID | Como Detectar | |---------|-----|---------------| | Pre-OS Boot | [[t1542-pre-os-boot\|T1542]] | Alterações em componentes de boot antes do OS | | System Firmware | [[t1542-pre-os-boot\|T1542.001]] | Modificação do UEFI/BIOS detectada via medição TPM | | Bootkit | [[t1542-pre-os-boot\|T1542.003]] | MBR/VBR modificado, detecção via Secure Boot | | Modify System Image | [[t1601-modify-system-image\|T1601]] | Imagem de firmware de dispositivo de rede alterada | ## Implementação **Windows - monitorar via Secure Boot e TPM:** ```powershell # Verificar estado do Secure Boot Confirm-SecureBootUEFI # Verificar medições TPM (Platform Configuration Registers) Get-TpmEndorsementKeyInfo ``` **Linux - verificar integridade UEFI:** ```bash # Listar variáveis UEFI suspeitas efibootmgr -v # Verificar assinatura do bootloader sbverify --list /boot/efi/EFI/ubuntu/shimx64.efi ``` **Recomendações:** Habilitar Secure Boot, usar TPM para medições de integridade (PCR measurements), monitorar variáveis EFI críticas, usar Intel Boot Guard onde disponível. **Ferramentas:** Intel Platform Trust Technology, AMD fTPM, Chipsec (análise de firmware), Microsoft UEFI Diagnostics, ESET UEFI Scanner. ## Consultas KQL — Microsoft Sentinel / Defender ### Ferramentas de Firmware Executadas ```kql // DC0020 - Execução de ferramentas de atualização de firmware fora de janela de manutenção DeviceProcessEvents | where Timestamp > ago(7d) | where FileName in~ ( "flashrom.exe", "fwupd.exe", "fwupdate.exe", "WinFlash.exe", "FWUpdLcl.exe", "H2OFFT.exe", "AFUWINx64.exe", "meinfo.exe", "fptool.exe" ) | where not( InitiatingProcessFileName in~ ("svchost.exe", "TrustedInstaller.exe") and InitiatingProcessIntegrityLevel == "System" ) | project Timestamp, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessAccountName, InitiatingProcessIntegrityLevel | order by Timestamp desc ``` ### Desabilitação do Secure Boot via Registro ```kql // DC0020 - Tentativa de modificar políticas de Secure Boot via registro DeviceRegistryEvents | where Timestamp > ago(7d) | where ActionType in ("RegistryValueSet", "RegistryKeyCreated") | where RegistryKey has_any ( @"SYSTEM\CurrentControlSet\Control\SecureBoot", @"SYSTEM\CurrentControlSet\Control\DeviceGuard", @"SYSTEM\CurrentControlSet\Control\CI\Config" ) | project Timestamp, DeviceName, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessFileName, InitiatingProcessAccountName | order by Timestamp desc ``` ## Contexto LATAM > [!latam] Relevância Regional > **Ataques de firmware são raros mas catástroficos — e crescem em relevância para infraestrutura crítica da região.** Embora implantes UEFI sejam primariamente utilizados por grupos de estado-nação (NSA Equation Group, APT29/Sandworm), o Brasil é alvo declarado de operações de espionagem cibernética patrocinada por estados — documentadas em relatórios do CERT.br e CTIR Gov. Redes de energia, telecomúnicações e governo federal são os alvos mais prováveis. Adicionalmente, a técnica **Bootkit** ganhou relevância com o surgimento do **BlackLotus** (2023) — primeiro bootkit UEFI a bypassar Secure Boot — sendo uma ameaça real mesmo para organizações sem perfil de espionagem. Monitorar o **Estado do Secure Boot** em todos os endpoints corporativos deve ser baseline em qualquer organização brasileira com dados sensíveis. ## Referências - [MITRE ATT&CK - DS0001 Firmware](https://attack.mitre.org/datasources/DS0001/) - [BlackLotus UEFI Bootkit - ESET Research](https://www.welivesecurity.com/en/) - [Chipsec - Intel Security Tool](https://github.com/chipsec/chipsec) - [Equation Group Firmware - Kaspersky](https://securelist.com/)