Communitygithub.com

Auditoria de Firmware UEFI com CHIPSEC

Use o CHIPSEC da Intel para avaliar a configuração de segurança do firmware da plataforma, proteção contra gravação da SPI flash, bloqueio de BIOS, estado de SMM/SMRR e variáveis de Secure Boot, despejar a SPI flash e triar variáveis UEFI para ameaças em nível de firmware.

O que é Auditoria de Firmware UEFI com CHIPSEC?

CHIPSEC é um framework open-source de avaliação de segurança de plataforma desenvolvido pela Intel. Ele inspeciona a configuração de segurança de baixo nível do firmware e hardware x86, a camada abaixo do sistema operacional onde bootkits e implantes de firmware residem. A ferramenta carrega um driver de kernel assinado (Linux, Windows ou ambiente UEFI shell) para ler/escrever registros de hardware, MSRs, espaço de configuração PCI, SPI flash e variáveis UEFI. Em seguida, executa uma suíte de testes automatizada que verifica se os bloqueios defensivos da plataforma estão realmente ativados, como proteção contra gravação da BIOS (BIOS_CNTL BLE/SMM_BWP) e bloqueio do descritor SPI (FLOCKDN). O principal valor do CHIPSEC é verificar os pré-requisitos que impedem implantes de firmware, como a proteção contra gravação da região de firmware SPI e a configuração correta de SMRAM/SMRR. Ele também permite despejar a SPI flash para análise forense offline, listar e examinar variáveis UEFI, e mapeia os resultados para a técnica MITRE ATT&CK T1542.001 (Firmware de Sistema Pré-OS). A habilidade é útil para administradores de sistemas, profissionais de segurança e pesquisadores que precisam auditar a postura de segurança de firmware de dispositivos x86, especialmente ao verificar configurações de BIOS de fábrica, realizar forense de firmware ou validar proteções de Secure Boot. Ela suporta Linux, Windows e UEFI shell como plataformas de execução, e seu fluxo de trabalho inclui a execução da suíte completa de testes, análise de módulos individuais de proteção de firmware, verificação de variáveis Secure Boot, despejo da SPI flash e enumeração de variáveis UEFI.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/auditing-uefi-firmware-with-chipsec

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Auditoria de Firmware UEFI com CHIPSEC faz?

Uso Autorizado Apenas: CHIPSEC carrega um driver de kernel e lê/escreve registros de hardware de baixo nível, SPI flash e SMM. Execute-o apenas em sistemas que você possui ou para os quais tenha autorização explícita para avaliar, idealmente em hardware de teste dedicado. O uso indevido (especialmente módulos de escrita/modificação) pode danificar a máquina. Nunca execute módulos com capacidade de escrita em sistemas de produção.

Visão Geral

CHIPSEC é o Platform Security Assessment Framework de código aberto criado pela equipe Intel Advanced Threat Research. Ele inspeciona a configuração de segurança de baixo nível do firmware x86 e hardware — a camada abaixo do sistema operacional onde bootkits e implantes de firmware residem. O CHIPSEC carrega um driver de kernel assinado (Linux, Windows, ou pode ser executado a partir do shell UEFI) para ler e escrever registros de hardware, Model-Specific Registers (MSRs), espaço de configuração PCI, SPI flash e variáveis UEFI. Em seguida, executa uma suíte de testes automatizada que verifica se os bloqueios defensivos da plataforma estão realmente ativados.

A ameaça que o CHIPSEC aborda é a técnica MITRE ATT&CK T1542.001 — Firmware de Sistema Pré-OS (Pre-OS Boot: System Firmware): adversários que modificam o firmware do sistema (a imagem BIOS/UEFI na SPI flash) para obter controle furtivo, persistente e que sobrevive ao sistema operacional. Implantes de firmware persistem após a reinstalação do SO e substituição do disco e são invisíveis para a maioria dos EDRs. O valor do CHIPSEC está em verificar os pré-requisitos que impedem tais implantes: que a região de BIOS da SPI flash esteja protegida contra gravação (BIOS_CNTL BLE/SMM_BWP, Secure Ranges SPI), que o descritor da flash bloqueie o acesso à região, que SMRAM/SMRR estejam configurados e que as variáveis de Secure Boot estejam protegidas. Ele também despeja a SPI flash para comparação forense offline.

Fontes: Projeto Intel/CHIPSEC (https://github.com/chipsec/chipsec), Documentação do CHIPSEC (https://chipsec.github.io/).

Quando Usar

  • Avaliação de segurança de firmware de linha de base de uma nova plataforma de laptop/servidor ou imagem de frota
  • Verificar se a proteção contra gravação da BIOS e os bloqueios da SPI flash estão ativados corretamente pelo OEM
  • Forense de firmware: despejar a SPI flash para comparar com uma imagem conhecida como boa
  • Validar a proteção de variáveis de Secure Boot e a proteção do script de boot S3
  • Procurar evidências de um implante de firmware ou configuração incorreta que o permita

Pré-requisitos

  • Acesso físico ou de administrador/root à plataforma x86 alvo (Intel ou AMD)
  • Linux (root) ou Windows (Administrador), ou um ambiente UEFI shell
  • Capacidade de carregar um driver de kernel (Secure Boot pode precisar permitir o driver CHIPSEC, ou use --no_driver para verificações limitadas)
  • Python 3.8+ e um compilador C/ferramentas de build para o módulo do kernel no Linux
  • Hardware de teste dedicado fortemente recomendado

Instale o CHIPSEC:

# Do PyPI
pip install chipsec

# Ou da fonte (compila o helper/driver do kernel)
git clone https://github.com/chipsec/chipsec
cd chipsec
python setup.py install        # compila e instala, incluindo o driver Linux

# Verifique
sudo chipsec_main --help
sudo chipsec_util --help

Objetivos

  • Executar a suíte completa de testes automatizados de segurança da plataforma e interpretar os resultados PASS/FAIL/WARNING
  • Verificar a proteção contra gravação da BIOS (BIOS_CNTL) e os Secure Ranges SPI
  • Verificar se o descritor da SPI flash bloqueia o acesso de leitura/gravação às regiões
  • Verificar as proteções de SMRAM/SMRR e manipulador SMI
  • Verificar a proteção de variáveis de Secure Boot e a proteção do script de boot S3
  • Despejar a SPI flash e decodificá-la para análise offline
  • Enumerar variáveis UEFI e detectar entradas anômalas/inesperadas

Mapeamento MITRE ATT&CK

ID da TécnicaNomeTática
T1542.001Firmware de Sistema Pré-OS (Pre-OS Boot: System Firmware)Persistência / Evasão de Defesa

O CHIPSEC defende contra T1542.001 verificando se os controles que impedem a modificação não autorizada do firmware estão ativados. Um FAIL em common.bios_wp (BIOS não protegida contra gravação) ou chipsec.modules.common.spi_lock (descritor da flash desbloqueado) significa que um invasor com privilégios de SO poderia regravar a SPI flash e implantar firmware persistente — exatamente a pré-condição para esta técnica.

Fluxo de Trabalho

Passo 1: Executar a suíte completa de testes automatizados

chipsec_main sem argumento de módulo executa todas as verificações de segurança aplicáveis para a plataforma detectada e imprime um resumo dos resultados PASS/FAIL/WARNING/INFORMATION.

sudo chipsec_main

# Salve a saída legível por máquina para relatórios / diffing
sudo chipsec_main -j results.json -x results.xml -l chipsec.log

Passo 2: Executar os módulos principais de proteção de firmware individualmente

O grupo de módulos common contém as verificações de segurança independentes de OEM. Execute o grupo ou módulos específicos:

# Execute todo o grupo common
sudo chipsec_main -m common

# Proteção contra gravação da BIOS: verifica BIOS_CNTL BLE/SMM_BWP e ranges protegidos SPI
sudo chipsec_main -m common.bios_wp

# Bloqueio do descritor SPI (FLOCKDN) — os acessos às regiões da flash estão bloqueados?
sudo chipsec_main -m common.spi_lock

# Programação SMRR — protege SMRAM contra ataques baseados em cache
sudo chipsec_main -m common.smrr

# Proteção contra gravação da BIOS em SMM
sudo chipsec_main -m common.smm

# Proteção do script de boot de retomada S3 (contra ataques à tabela de script de boot)
sudo chipsec_main -m common.uefi.s3bootscript

Passo 3: Verificar a proteção de variáveis de Secure Boot

# Verifica se as variáveis UEFI do Secure Boot estão protegidas adequadamente
sudo chipsec_main -m common.secureboot.variables

# Para testar ativamente a proteção contra gravação das variáveis (SOMENTE em hardware de teste):
sudo chipsec_main -m common.secureboot.variables -a modify

Passo 4: Inspecionar as permissões de acesso às regiões da SPI flash

# Relatar regiões da SPI flash, descritor e permissões de acesso
sudo chipsec_util spi info

# Verificar o módulo de controle de acesso SPI
sudo chipsec_main -m common.spi_access

Passo 5: Despejar a SPI flash para forense offline

Despejar a flash permite decodificar os volumes de firmware e comparar com uma imagem OEM conhecida como boa.

# Despejar a SPI flash inteira em um arquivo
sudo chipsec_util spi dump rom.bin

# Decodificar a imagem despejada: extrai volumes de firmware, arquivos, variáveis NVRAM, etc.
sudo chipsec_util decode rom.bin

Passo 6: Enumerar e triar variáveis UEFI

# Listar todas as variáveis UEFI da interface de tempo de execução
sudo chipsec_util uefi var-list

# Listar variáveis diretamente da imagem SPI (offline)
sudo chipsec_util uefi var-find PK
sudo chipsec_util uefi var-read db <GUID> db.bin

# Decodificar a estrutura de firmware UEFI
sudo chipsec_util uefi decode rom.bin

Passo 7: Avaliação limitada sem driver de kernel

Onde carregar o driver é impossível (Secure Boot bloqueado), algumas verificações ainda são executadas em modo somente leitura.

sudo chipsec_main -n            # --no_driver: pula verificações que precisam do driver
sudo chipsec_main -p <PLATFORM> # forçar código de plataforma se a detecção automática falhar

Passo 8: Triar resultados e relatar

  • FAIL em bios_wp / spi_lock → o firmware é regravável a partir do SO: alto risco para T1542.001.
  • FAIL em secureboot.variables → a política de Secure Boot pode ser violada.
  • Compare o spi dump com a imagem OEM conhecida como boa (hash dos volumes de firmware) para detectar modificação não autorizada.
  • Registre a plataforma, versão da BIOS e cada FAIL/WARNING com os valores de registro relevantes para o relatório.

Ferramentas e Recursos

FerramentaPropósitoFonte
chipsec_mainSuíte de testes automatizados de segurança da plataformahttps://github.com/chipsec/chipsec
chipsec_utilAcesso manual a hardware/firmware (spi, uefi, decode)https://chipsec.github.io/
UEFIToolAnálise GUI/CLI de imagens UEFI despejadashttps://github.com/LongSoft/UEFITool
Binarly fwhuntRegras de caça a vulnerabilidades/implantes de firmwarehttps://github.com/binarly-io/fwhunt-scan
Orientação NSA de Secure Boot UEFIReferência de hardeninghttps://media.defense.gov/

Referência de Módulos Principais

MóduloVerificações
common.bios_wpBIOS_CNTL BLE / SMM_BWP e Secure Ranges SPI
common.spi_lockFLOCKDN do descritor SPI
common.spi_accessPermissões de leitura/gravação das regiões da SPI flash
common.smrrProgramação dos System Management Range Registers
common.smmProteção contra gravação da BIOS em SMM
common.secureboot.variablesProteção de variáveis de Secure Boot
common.uefi.s3bootscriptProteção do script de boot de retomada S3

Critérios de Validação

  • CHIPSEC instalado e driver carregado (ou -n documentado se não)
  • Suíte completa chipsec_main executada com saída JSON/XML/log salva
  • Resultado common.bios_wp interpretado (estado da proteção contra gravação)
  • Resultados common.spi_lock / spi_access interpretados (bloqueio do descritor)
  • Resultados dos módulos SMRR/SMM registrados
  • Proteção de variáveis de Secure Boot verificada
  • SPI flash despejada e decodificada para análise offline
  • Variáveis UEFI enumeradas e triadas
  • Todas as descobertas de FAIL/WARNING documentadas com plataforma/versão da BIOS
  • Módulos de escrita/modificação NÃO executados em hardware de produção

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Habilidades Relacionadas