Entendendo o MBR de proteção em discos particionados GPT. Parte 1.

Introdução

Nesta série de publicações no blogue, vou aprofundar o esquema da tabela de partição GUID. O meu objetivo é fornecer uma compreensão clara do esquema GPT e de como este permite aos investigadores forenses analisar e recuperar com precisão os dados de dispositivos de armazenamento modernos. O suporte da GPT para discos maiores, várias partições e funcionalidades de integridade de dados melhoradas, como a redundância e a proteção CRC, garante que os investigadores podem aceder e verificar todos os dados necessários. Além disso, a compatibilidade da GPT com sistemas operativos contemporâneos e firmware UEFI aumenta a capacidade de realizar exames forenses abrangentes, tornando-a indispensável para descobrir provas digitais e garantir a integridade e fiabilidade das descobertas forenses. 

Começarei com o MBR Protective e como ele difere do MBR tradicional usado com unidades legadas no BIOS. Em seguida, apresentarei o cabeçalho GPT e, depois, a matriz de entrada GPT. Por fim, partilharei algumas considerações finais e dicas sobre como explicar estes conceitos a um leigo, por exemplo, ao testemunhar perante um juiz ou júri.

Em última análise, depois de ler esta série, não terá qualquer problema em enfrentar um desafio CTF encontrado na nossa plataforma CTF.

PARTE 1

O MBR de proteção

O Master Boot Record (MBR), de um ponto de vista legado, forneceu-nos um roteiro para localizar até quatro partições primárias num disco rígido. Cada entrada de partição de 16 bytes guiava-nos para a localização dessa partição, quer fosse FAT32 ou NTFS. No entanto, o antigo MBR tinha limitações, incluindo, mas não se limitando a:

  • Um limite de tamanho de 2 TB.
  • Limitado a 4 partições primárias; se forem necessárias mais, uma dessas partições primárias será designada como uma partição alargada.
  • Um único ponto de falha, uma vez que o MBR, que inclui a tabela de partições, estava localizado no sector 0 sem qualquer cópia de segurança.

O LBA 0 (setor lógico 0) de um disco rígido GPT contém o que é chamado de MBR de Proteção, em vez de MBR legado. Pense no MBR de Proteção como uma placa na entrada da biblioteca que diz a todos: "Ei, esta biblioteca está usando um sistema novo e melhorado agora. Não use o método antigo porque ele não funciona aqui".

Em vez de conter a localização de apenas quatro partições primárias na unidade, o MBR Protetor marca todo o disco como utilizado pela GPT, indicando aos sistemas mais antigos que o disco está a ser totalmente utilizado. O MBR de Proteção existe apenas para compatibilidade com versões anteriores. Ele contém APENAS uma entrada de partição, que marca o disco e evita que ferramentas legadas interpretem erroneamente a estrutura do disco. 

Estrutura do MBR de proteção

Os primeiros 440 bytes do MBR de proteção contêm código de arranque que não é utilizado pelos sistemas UEFI. Ele é ignorado.  

Abaixo está um layout hipotético de um disco com uma nova instalação do Windows 10 com apenas uma partição criada durante o processo de instalação, a unidade C:. A partição UEFI System é criada automaticamente e oculta do utilizador, e a partição reservada da Microsoft também é criada durante a instalação e oculta do utilizador. 

Aqui podemos ver o MBR de proteção a residir no LBA 0, que aponta para o cabeçalho GPT no LBA 1.

Disposição hexagonal do MBR de proteção

Aqui está um exemplo de layout hexadecimal do MBR de proteção:

Como mencionado anteriormente, os primeiros 440 bytes do código de inicialização não são usados pelos sistemas UEFI. É possível ver esses primeiros 440 bytes zerados em alguns sistemas. Aqui está o MBR Protective da estação de trabalho que estou a utilizar para escrever este blogue, onde estou a utilizar uma unidade NVME Samsung de 1TB:

Como pode ver, a totalidade do MBR Protetor neste caso contém zeros exceto os quatro bytes localizados no offset 440 (que não são utilizados), a primeira "entrada de partição primária" (que apenas aponta para o LBA 1 - o Cabeçalho GPT), e a assinatura de arranque localizada nos últimos dois bytes do sector (0x55AA). 

Agora vamos dar uma olhada mais de perto na entrada de uma partição que existe em um MBR Protetor:

O primeiro byte da entrada da partição é definido como 0x00 para indicar que não é uma partição inicializável. Em um MBR tradicional, este valor seria 0x00 (não inicializável) ou 0x80 (inicializável). Os próximos três bytes representam o Início da CHS localização (Cilindro/Cabeça/Setor), que corresponderá ao valor de 4 bytes no Início do LBA no desvio de byte 8. O valor CHS inicial será definido como 0x000200 que, quando decomposto e convertido num endereço LBA, é 1.

O seguinte valor de um byte é definido como 0xEE para o tipo de SO: Proteção GPT. O valor de três bytes no offset 5 é definido como o endereço CHS do último bloco lógico no disco. O LBA inicial, que nos leva ao Cabeçalho de Partição GPT, está localizado no deslocamento 8 para quatro bytes e o valor será definido como 0x01000000 (ou LBA 1 quando lido em little endian). Os últimos 4 bytes do registo no offset 12 representam o tamanho do disco menos um. É definido como 0xFFFFFFFF se o tamanho do disco for demasiado grande para ser representado neste campo, o que é muito provavelmente o caso.

Reparação de uma MRB de proteção

Se o MBR foi corrompido, perdido ou apagado, você pode substituir o setor 0 copiando o MBR de Proteção de outro drive. Também pode criar um de raiz, deixando 0x00 do offset 0 até 446, e depois criar uma entrada de partição genérica apontando para o LBA 1, assegurando que existe 0xEE no offset 4 para indicar o tipo de SO Protetor GPT. Finalmente, coloque a assinatura de arranque (0x55AA) nos últimos dois bytes do sector.

Entrada genérica

446447448449450451452453454455456457458459460461
00000200EEFFFFFF01000000FFFFFFFF

Assinatura da bota

510511
55AA

O seguinte seria suficiente para um MBR Protetor reconstruído:

Conclusão

Nesta primeira parte, nós exploramos o MBR Protetor e seu papel crucial em garantir a compatibilidade com sistemas legados. Examinamos como o MBR Protetor marca todo o disco como usado pelo GPT, evitando que sistemas mais antigos interpretem erroneamente a estrutura do disco. Ao entender a estrutura e a função do MBR de proteção, você agora tem uma base sólida para se aprofundar no esquema GPT.

À medida que avançamos, nosso próximo foco será o Cabeçalho GPT, a pedra angular do esquema GPT que define o layout do disco e garante a integridade dos dados. Na Parte 2, analisaremos o Cabeçalho GPT, examinando cada campo e seu significado. Fique atento à medida que continuamos a desvendar as complexidades do esquema GPT, capacitando-o com o conhecimento para gerir e recuperar eficazmente os dados de dispositivos de armazenamento modernos.

Quer aprofundar a estrutura GPT?

Em Parte 2, decompomos o Cabeçalho GPT e explicar como garante a integridade dos dados no disco.
Depois, em Parte 3, exploramos o Matriz de entrada de partição GPT e o que os analistas forenses precisam de saber ao reconstruir tabelas de partição.

Facebook
Twitter
Correio eletrónico
Imprimir

5 Respostas

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *