Spouštěcí sektor - Boot sector

Tento příklad ukazuje různé komponenty GNU GRUB distribuované přes sektory pevného disku. Když je GRUB nainstalován na pevný disk, boot.img je zapsán do zaváděcího sektoru tohoto pevného disku. boot.img má velikost pouze 446 bajtů.

Spouštěcí sektor je sektor z trvalé ukládání dat (například pevný disk , disketa , optický disk , atd), který obsahuje strojový kód , které mají být vloženy do random-access memory (RAM) a pak prováděny v počítačovém systému " s vestavěným firmwarem (např. BIOS ).

Zcela prvním sektorem pevného disku je obvykle zaváděcí sektor, bez ohledu na velikost sektoru (512 nebo 4096 bajtů) a chuť rozdělení (MBR nebo GPT).

Účelem definování jednoho konkrétního sektoru jako zaváděcího sektoru je interoperabilita mezi různými firmwary a různými operačními systémy.

Účelem řetězového načtení nejprve firmwaru (např. Systému BIOS), poté nějakého kódu obsaženého v zaváděcím sektoru a poté například operačního systému je maximální flexibilita.

Počítač IBM PC a kompatibilní počítače

Na kompatibilní IBM PC strojem, BIOS vybere zařízení pro zavedení, pak kopie prvního sektoru ze zařízení (která může být MBR , VBR nebo spustitelný kód), do fyzické paměti na adresu paměti 0x7C00. V jiných systémech může být proces zcela odlišný.

Unified Extensible Firmware Interface (UEFI)

UEFI (ne starší boot přes CSM) nespoléhá na boot sektory, UEFI systém načte boot loader ( aplikace EFI souborů na USB disku nebo v oddílu EFI systému ) přímo. Specifikace UEFI navíc obsahuje také „zabezpečené spuštění“, které v zásadě chce, aby byl kód UEFI digitálně podepsán .

Poškození zaváděcího sektoru

V případě fyzického poškození zaváděcího sektoru již pevný disk nebude možné spustit; pokud není použit s vlastním BIOSem, který definuje nepoškozený sektor jako spouštěcí sektor. Jelikož však úplně první sektor navíc obsahuje data týkající se rozdělení pevného disku, stane se pevný disk zcela nepoužitelným, kromě případů, kdy je používán ve spojení s vlastním softwarem.

Oddělovací stoly

Disk lze rozdělit na více oddílů a v konvenčních systémech se očekává, že bude. Existují dvě definice, jak ukládat informace týkající se rozdělení:

  • Hlavní spouštěcí záznam (MBR) je první sektor zařízení pro ukládání dat, která byla rozdělena . Sektor MBR může obsahovat kód k vyhledání aktivního oddílu a vyvolání jeho bootovacího záznamu svazku.
  • Spouštěcí záznam objem (VBR) je první sektor zařízení pro ukládání dat, která nejsou již dělené, nebo první sektor jednotlivého oddílu na zařízení pro ukládání dat, která byla rozdělena. Může obsahovat kód pro načtení operačního systému (nebo jiného samostatného programu) nainstalovaného na tomto zařízení nebo v rámci tohoto oddílu.

Přítomnost zaváděcího zavaděče kompatibilního s IBM PC pro x86 CPU v zaváděcím sektoru je podle konvence indikována dvoubajtovou hexadecimální sekvencí 0x55 0xAA(nazývanou podpis zaváděcího sektoru) na konci zaváděcího sektoru (odsazení 0x1FEa 0x1FF). Tento podpis označuje přítomnost alespoň fiktivního zavaděče, jehož spuštění je bezpečné, i když ve skutečnosti nemusí být možné načíst operační systém. Neindikuje konkrétní (nebo dokonce přítomnost) souborového systému nebo operačního systému, ačkoli některé staré verze systému DOS 3 na to ve svém procesu spoléhaly při zjišťování médií formátovaných FAT (novější verze nikoli). Spouštěcí kód pro jiné platformy nebo procesory by tento podpis neměl používat, protože to může vést ke zhroucení, když BIOS předá spuštění zaváděcímu sektoru za předpokladu, že obsahuje platný spustitelný kód. Některá média pro jiné platformy však podpis omylem obsahují, v praxi však tato kontrola není 100% spolehlivá.

Podpis je kontrolován většinou systémových BIOSů (minimálně) od IBM PC/AT (ale ne od původního IBM PC a některých dalších počítačů). A co víc, je také zkontrolováno většinou zavaděčů MBR před předáním kontroly zaváděcímu sektoru. Některé BIOSy (jako IBM PC/AT) provádějí kontrolu pouze u pevných disků/vyměnitelných jednotek, zatímco u disket a super disket stačí začít s bajtem větším nebo rovným 06ha prvních devět slov nesmí obsahovat stejnou hodnotu před spouštěcí sektor je přijat jako platný, čímž se zabrání explicitní test 0x55, 0xAAna diskety. Protože staré spouštěcí sektory (např. Velmi stará média CP/M-86 a DOS) někdy tento podpis neobsahují, přestože je lze úspěšně zavést, lze v některých prostředích kontrolu vypnout. Pokud kód BIOS nebo MBR nerozpozná platný zaváděcí sektor, a proto nemůže předat spuštění kódu spouštěcího sektoru, zkusí další zaváděcí zařízení v řadě. Pokud všechny selžou, obvykle se zobrazí chybová zpráva a vyvolá INT 18h. To buď spustí volitelný rezidentní software v ROM ( ROM BASIC ), restartuje systém pomocí INT 19h po potvrzení uživatele nebo způsobí, že systém zastaví proces bootstrapování až do dalšího zapnutí.

Systémy nedodržující výše popsaný design jsou:

  • Disky CD-ROM mají obvykle vlastní strukturu zaváděcích sektorů; pro systémy kompatibilní s IBM PC podléhá specifikacím El Torito .
  • Software C128 nebo C64 na discích Commodore DOS, kde data na Track 1, Sector 0 začínala magickým číslem odpovídajícím řetězci „CBM“.
  • Počítače sálových počítačů IBM umístí malé množství zaváděcího kódu do první a druhé stopy prvního válce disku a kořenový adresář, nazývaný Obsah svazku , se také nachází na pevném místě třetí stopy první válec disku.
  • Jiné (nekompatibilní) počítačové systémy PC mohou mít na svých diskových zařízeních různé formáty zaváděcího sektoru.

Úkon

Na kompatibilní IBM PC strojů, BIOS nezná rozdílu mezi VBRs a MBR, ao rozdělení. Firmware jednoduše načte a spustí první sektor paměťového zařízení. Pokud je zařízením disketa nebo USB flash disk , bude to VBR. Pokud je zařízením pevný disk, bude to MBR. Jedná se o kód v MBR, který obecně rozumí rozdělení disku, a na druhé straně je zodpovědný za načtení a spuštění VBR libovolného primárního oddílu, který je nastaven na spuštění ( aktivní oddíl). VBR poté načte zavaděč druhého stupně z jiného umístění na disku.

Kromě toho, cokoli je uloženo v prvním sektoru diskety, zařízení USB, pevného disku nebo jiného zaváděcího paměťového zařízení, není nutné okamžitě načíst jakýkoli kód bootstrapu pro operační systém, pokud vůbec. Systém BIOS pouze předává řízení tomu, co tam existuje, pokud sektor splňuje velmi jednoduchou kvalifikaci, která má podpis spouštěcího záznamu 0x55, 0xAA v posledních dvou bajtech. To je důvod, proč je snadné nahradit obvyklý bootstrap kód nalezený v MBR složitějšími zavaděči, dokonce i velkými multifunkčními boot manažery (programy uložené jinde na zařízení, které mohou běžet bez operačního systému), což uživatelům umožňuje řadu možností v tom, co nastane dále. Při tomto druhu svobody často dochází ke zneužívání ve formě virů spouštěcího sektoru.

Viry spouštěcího sektoru

Protože se kód v zaváděcím sektoru spouští automaticky, spouštěcí sektory jsou historicky běžným vektorem útoku pro počítačové viry .

Aby se s tímto chováním bojovalo, systém BIOS často obsahuje možnost zabránit zápisu softwaru do prvního sektoru jakýchkoli připojených pevných disků; tím by mohl chránit hlavní spouštěcí záznam obsahující tabulku oddílů před nechtěným přepsáním, nikoli však zaváděcí záznamy svazku ve spouštěcích oddílech. V závislosti na systému BIOS mohou být pokusy o zápis do chráněného sektoru blokovány s interakcí uživatele nebo bez ní. Většina systémů BIOS však zobrazí vyskakovací zprávu, která uživateli dává možnost toto nastavení přepsat. Možnost BIOS je ve výchozím nastavení zakázána, protože zpráva se nemusí v grafickém režimu zobrazovat správně a blokování přístupu k MBR může způsobit problémy s programy pro nastavení operačního systému nebo s přístupem k disku, šifrováním nebo dělením, jako je FDISK , do kterého nebylo zapsáno uvědomte si tuto možnost, přimějte je, aby nehanebně přestaly a případně ponechali diskové oddíly v nekonzistentním stavu.

Malware NotPetya se například pokusí získat oprávnění správce v operačním systému a poté se pokusí přepsat zaváděcí sektor počítače. CIA také vyvinula škodlivém, že pokusy o modifikaci spouštěcí sektor aby došlo k naplnění další ovladače, které mají být použity další malware.

Viz také

Poznámky

  1. ^ Jeden nástroj FDISK napsaný tak, aby znal funkce ochrany boot systému BIOS, je FDISK R2.31 DR-DOS (a vyšší), který detekuje tento scénář a zobrazí další interaktivní zprávy, které uživatele provedou. Na rozdíl od jiných fdisk utility, DR-DOS FDISK je nejen delicím, ale může také formátovat čerstvě vytvořené oddíly jsou FAT12 , FAT16 nebo FAT32 . To snižuje riziko náhodného formátování nesprávných svazků.

Reference

externí odkazy