Suojaavan MBR:n ymmärtäminen GPT-osioiduissa levyissä. Osa 1.

Johdanto

Tässä blogikirjoitussarjassa sukellan syvälle GUID-osiointitaulukon skeemaan. Pyrin antamaan selkeän käsityksen GPT-kaaviosta ja siitä, miten sen avulla rikostutkijat voivat analysoida ja palauttaa tietoja tarkasti nykyaikaisista tallennuslaitteista. GPT:n tuki suuremmille levyille, useille osioille ja parannetuille tietojen eheysominaisuuksille, kuten redundanssille ja CRC-suojaukselle, varmistaa, että tutkijat voivat käyttää ja tarkistaa kaikki tarvittavat tiedot. Lisäksi GPT:n yhteensopivuus nykyaikaisten käyttöjärjestelmien ja UEFI-firmware-ohjelmistojen kanssa parantaa mahdollisuuksia suorittaa kattavia rikosteknisiä tutkimuksia, mikä tekee siitä välttämättömän digitaalisten todisteiden paljastamisessa ja rikosteknisten löydösten eheyden ja luotettavuuden varmistamisessa. 

Aloitan suojaavasta MBR:stä ja siitä, miten se eroaa perinteisestä MBR:stä, jota käytetään BIOS:ssa vanhojen asemien kanssa. Seuraavaksi käyn läpi GPT-otsikon ja sitten GPT Entry Array -muodon. Lopuksi jaan joitakin loppupäätelmiä ja vinkkejä näiden käsitteiden selittämiseen maallikolle, esimerkiksi tuomarin tai valamiehistön edessä todistettaessa.

Kun olet lukenut tämän sarjan, sinulla ei ole mitään ongelmaa ratkaista CTF-haastetta, joka löytyy CTF-alustaltamme.

OSA 1

Suojaava MBR

Master Boot Record (MBR) tarjosi meille vanhasta näkökulmasta suunnitelman, jonka avulla kiintolevyllä voi olla enintään neljä ensisijaista osiota. Kukin 16 tavun osiomerkintä opasti meidät kyseisen osion sijaintiin, olipa kyseessä sitten FAT32- tai NTFS-osio. Vanhassa MBR:ssä oli kuitenkin rajoituksia, joihin kuuluivat muun muassa seuraavat:

  • 2 TB:n kokorajoitus.
  • Rajoitettu neljään ensisijaiseen osioon; jos tarvitaan enemmän, yksi ensisijaisista osioista nimetään laajennetuksi osioksi.
  • Yksittäinen vikapiste, koska MBR, joka sisältää osiotaulukon, sijaitsi sektorilla 0 ilman varmuuskopiota.

GPT-kiintolevyn LBA 0 (looginen sektori 0) sisältää niin sanotun Protective MBR:n vanhan MBR:n sijasta. Ajattele Protective MBR:ää kirjaston sisäänkäynnillä olevana kylttinä, joka kertoo kaikille: "Hei, tämä kirjasto käyttää nyt uutta ja parannettua järjestelmää. Älkää käyttäkö vanhaa menetelmää, koska se ei toimi täällä.".

Sen sijaan, että Protective MBR sisältäisi vain neljän ensisijaisen osion sijainnin asemalla, se merkitsee koko levyn GPT:n käyttöön, mikä osoittaa vanhemmille järjestelmille, että levy on täysin käytössä. Protective MBR on olemassa vain taaksepäin yhteensopivuuden vuoksi. Se sisältää VAIN yhden osiomerkinnän, joka merkitsee levyn ja estää vanhoja työkaluja tulkitsemasta levyn rakennetta väärin. 

Suojaavan MBR:n rakenne

Suojaavan MBR:n ensimmäiset 440 tavua sisältävät käynnistyskoodia, jota UEFI-järjestelmät eivät käytä. Se jätetään huomiotta.  

Alla on hypoteettinen ulkoasu levystä, jolla on tuore Windows 10 -asennus ja jolla on vain yksi asennusprosessin aikana luotu osio, C: -asema. UEFI-järjestelmäosio luodaan automaattisesti ja piilotetaan käyttäjältä, ja Microsoftin varattu osio luodaan myös asennuksen aikana ja piilotetaan käyttäjältä. 

Tässä näemme suojaavan MBR-levyn, joka sijaitsee LBA 0:lla ja joka osoittaa GPT-otsikkoon LBA 1:llä.

Suojaavan MBR:n kuusikulmainen asettelu

Tässä on esimerkki suojaavan MBR:n heksasuunnittelusta:

Kuten aiemmin mainittiin, UEFI-järjestelmät eivät käytä käynnistyskoodin 440 ensimmäistä tavua. Joissakin järjestelmissä nämä ensimmäiset 440 tavua saatetaan nollata. Tässä on Protective MBR työasemasta, jota käytän tämän blogin kirjoittamiseen ja jossa käytän Samsungin 1TB NVME-asemaa:

Kuten näet, tässä tapauksessa koko Protective MBR sisältää nollia lukuun ottamatta neljää tavua, jotka sijaitsevat siirtokohdassa 440 (joita ei käytetä), ensimmäistä "ensisijaista osiomerkintää" (joka osoittaa vain LBA 1:een eli GPT-otsikkoon) ja käynnistyssignaatiota, joka sijaitsee sektorin kahdessa viimeisessä tavussa (0x55AA). 

Tarkastellaan nyt tarkemmin yhtä osiomerkintää, joka on olemassa Protective MBR:ssä:

Osiomerkinnän ensimmäiseksi tavuksi asetetaan 0x00 osoittaakseen, että kyseessä ei ole käynnistettävä osio. Perinteisessä MBR:ssä tämä arvo olisi joko 0x00 (ei-käynnistettävä) tai 0x80 (käynnistettävä). Seuraavat kolme tavua edustavat CHS:n aloittaminen sijainti (Cylinder/Head/Sector), joka vastaa 4 tavun arvoa, joka on tallennettu LBA:n käynnistäminen kenttä tavun siirtymässä 8. CHS-alkuarvo asetetaan arvoon 0x000200 joka eriteltynä ja LBA-osoitteeksi muunnettuna on 1.

Seuraava yhden tavun arvo asetetaan seuraavasti 0xEE käyttöjärjestelmätyypin osalta: GPT Suojaava. Siirrossa 5 oleva kolmen tavun arvo asetetaan levyn viimeisen loogisen lohkon CHS-osoitteeksi. GPT-osion otsikkoon johtava aloittava LBA sijaitsee neljän tavun etäisyydellä 8, ja sen arvoksi asetetaan seuraavat arvot 0x01000000 (tai LBA 1, kun luetaan little endian). Tietueen 4 viimeistä tavua offsetissa 12 edustavat levyn kokoa miinus yksi. Se asetetaan arvoon 0xFFFFFFFFFF jos levyn koko on liian suuri, jotta se voidaan esittää tässä kentässä, mikä on hyvin todennäköistä.

Suojaavan MRB:n korjaaminen

Jos MBR on vioittunut, kadonnut tai pyyhitty, voit korvata sektorin 0 kopioimalla suojaavan MBR:n toisesta asemasta. Voit myös luoda uuden MBR:n tyhjästä jättämällä 0x00:n offsetista 0 446:een ja luomalla yleisen osiomerkinnän, joka osoittaa LBA 1:een, ja varmistamalla, että offsetissa 4 on 0xEE, joka osoittaa GPT-suojausjärjestelmän tyypin. Aseta lopuksi käynnistyssignatuuri (0x55AA) sektorin kahteen viimeiseen tavuun.

Yleinen merkintä

446447448449450451452453454455456457458459460461
00000200EEFFFFFF01000000FFFFFFFF

Saappaan allekirjoitus

510511
55AA

Seuraava riittää uudelleenrakennetulle Protective MBR:lle:

Päätelmä

Tässä ensimmäisessä osassa tarkastelimme Protective MBR:ää ja sen ratkaisevaa roolia taaksepäin yhteensopivuuden varmistamisessa vanhojen järjestelmien kanssa. Tutkimme, miten Protective MBR merkitsee koko levyn GPT:n käyttöön, mikä estää vanhempia järjestelmiä tulkitsemasta levyn rakennetta väärin. Kun ymmärrät Protective MBR:n rakenteen ja toiminnan, sinulla on nyt vankka perusta, jonka pohjalta voit syventyä GPT-kaavioon.

Seuraavaksi keskitymme GPT-otsikkoon, joka on GPT-kaavion kulmakivi, joka määrittelee levyn asettelun ja varmistaa tietojen eheyden. Osassa 2 puramme GPT-otsikon ja tarkastelemme jokaista kenttää ja sen merkitystä. Pysy kuulolla, kun jatkamme GPT-kaavion monimutkaisuuden selvittämistä ja annamme sinulle tietoa, jonka avulla voit tehokkaasti hallita ja palauttaa tietoja nykyaikaisista tallennuslaitteista.

Haluatko sukeltaa syvemmälle GPT-rakenteeseen?

Osoitteessa Osa 2, me eritellään GPT-otsikko ja selitä, miten se varmistaa tietojen eheyden koko levyllä.
Sitten vuonna Osa 3, tutkimme GPT-osion merkintärakenne ja mitä rikosteknisten analyytikoiden on tiedettävä osiotaulukoita rekonstruoidessaan.

Facebook
Twitter
Sähköposti
Tulosta

5 Vastaukset

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *