Bezpieczeństwo systemów komputerowych - wykład III i IV systemu operacyjnego Struktura logiczna nośników danych G Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2018/2019 1/59
Plan wykładu G Master Boot Record Tablica partycji Volume Boot Record 2/59
systemu operacyjnego G 3/59
się i ładowania systemu operacyjnego do pamięci operacyjnej a. a http://www.i-slownik.pl G Metody bootowania systemu operacyjnego: lokalny twardy dysk (, G), dysk optyczny, napęd USB, wirtualizacja - maszyny wirtualne, po sieci (). 4/59
(ang. Preboot Execution Environment) I G 5/59
II - Instalacja systemu operacyjnego z sieci G 1. Konfiguracja interfejsu sieciowego (plik /etc/network/interfaces): auto eth1 iface eth1 inet static address 10.10.10.1 netmask 255.255.255.0 network 10.10.10.0 6/59
III - Instalacja systemu operacyjnego z sieci G 2. Konfiguracja serwera DHCP (plik /etc/dhcp/dhcpd.conf): } subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.100 10.10.10.200; option domain-name-servers 0.0.0.0; option domain-name "internal.example.org"; option routers 10.10.10.1; option broadcast-address 10.10.10.255; default-lease-time 600; max-lease-time 7200; next-server 10.10.10.1; filename "pxelinux.0"; 7/59
IV - Instalacja systemu operacyjnego z sieci 3. Konfiguracja serwera TFTP (plik /etc/default/tftpd-hpa): G TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OIONS="--secure" 4. Pobranie pliku instalacyjnego i rozpakowanie go. 5. Uruchomienie klienta. * Każdą usługę należy zrestartować. 8/59
V - systemu operacyjnego z sieci 1. Konfiguracja interfejsu sieciowego. G 2. Konfiguracja serwera DHCP. 3. Konfiguracja serwera TFTP. 4. Przygotowanie pliku pxelinux.0 i obrazu systemu operacyjnego. 5. Konfiguracja syslinux i NFS. * Każdą usługę należy zrestartować. 9/59
(ang. Basic Input/Output System) I G podstawowy system wejścia / wyjścia, oprogramowanie fabrycznie zainstalowane na płycie głównej (pamięć ROM, flash), Gary Kildall, CP/M, 1975, zawiera niskopoziomowe oprogramowanie nadzorujące pracę urządzeń, stanowi interfejs pomiędzy systemem operacyjnym a sprzętem, główne zadania u: przeprowadzenie testów podstawowych układów i urządzeń systemu, test POST (ang. Power On Self Test), inicjalizacja pracy systemu, zapewnienie procedur obsługi urządzeń systemu, inicjalizacja programu rozruchowego. 10/59
II G 11/59
III G Konfiguracja u: ustawienia czasu i rozpoznanie napędów, wybór priorytetu bootowania, testy twardego dysku, informacja o komponentach płyty głównej, sposoby na oszczędzanie energii, prędkość wentylatorów, temperatura i wartości graniczne, wyświetlanie u. 12/59
(ang. Unified Extensible Firmware Interface) I G następca u, opracowany przez firmę Intel na potrzeby procesora serwerowego Itanium (EFI), wyeliminowanie technicznych niedociągnięć poprzednika, możliwość obsługi diagnostyki i naprawy komputerów, nawet bez zainstalowanego systemu operacyjnego, możliwość pisania sterowników dla niego, własna powłoka systemowa. 13/59
II G 14/59
III G Zalety: większe dyski twarde, zintegrowany, łatwiejsza obsługa, szybszy start, więcej funkcji i więcej menu z ustawieniami, architektura i sterowniki niezależne od procesora. 15/59
vs. G tryb pracy 16-bit 32/64-bit pamięć operacyjna 1MB maks. dostępna interfejs tekstowy graficzny obsługa myszką nie tak obsługa dysków G wielkość partycji do 2,2 TB ok. 10 miliardów TB liczba partycji do 4 nieograniczona (do 128 w Windows) dostęp do sieci nie tak DRM nie tak tryb pracy rzeczywisty chroniony modułowa budowa nie tak 16/59
Etapy 1 Włączenie, G 2 Test POST, 3 Sprawdzenie konfiguracji sprzętowej i wprowadzenie ustawień, 4 Odnalezienie elementu rozruchowego:,, 5 uruchomienie systemu operacyjnego. 17/59
POST (ang. Power On Self Test) G sprawdzanie obecności i prawidłowości działania układów niezbędnych do uruchomienia (procesor, pamięć RAM, karta graficzna, dyski twarde), kolejność wykonywanych testów zależy od wersji u: test rejestrów procesora, sprawdzenie kontrolera klawiatury, testowanie zegara systemowego, test karty graficznej w kilku trybach graficznych, test trybu chronionego, błędy komunikowane są przez głośnik (czas trwania i liczba dźwięków oznaczają kod błędu). 18/59
: etapy 3 i 4 G sprawdzanie układu graficznego, sprawdzanie kontrolera DMA (ang. Direct Memory Access), sprawdzanie klawiatury (aktywacja klawisza [NumLock]), kontrola sterownika dysku, dysk twardy oraz jego połączenia, odnalezienie aktywnej partycji (przerwanie 13h), przerwanie 19h: odczyt i załadowanie do pamięci (ang. Master Boot Record), odczytanie informacji o tablicy partycji, załadowanie do pamięci programu rozruchowego, przekazanie kontroli boot loaderowi, uruchomienie systemu operacyjnego. 19/59
: etap 3 i 4 G osobny interfejs dla usług rozruchowych i usług uruchomieniowych, korzystanie z firmware i tradycyjnego u, menadżer rozruchu (ang. boot manager) - ładowanie do pamięci i uruchomienie plików systemowych, menadżer rozruchu - interfejs tekstowy (wybór systemu operacyjnego lub narzędzia systemowego z listy dostępnych opcji rozruchowych), wykorzystanie G (ang. GUID Partition Table), rzadziej. 20/59
Interakcje pomiędzy bootmanagerem EFI a sterownikami EFI G 21/59
NT (XP) G ładuje do pamięci NT Loadera (NTLDR), odczyt boot.ini, uruchomienie programu ntdetect.com, uruchomienie programu ntoskrnl.exe: załadowanie do pamięci zawartości pliku HAL.DLL, ładowanie sterowników sprzętowych, uruchamianie usług zdefiniowanych jako uruchamiane automatycznie, logowanie. 22/59
Vista, 2008 Server G ładuje do pamięci Windows Boot Manager (BOOTMGR), dostęp do Boot Configuration Data wywołanie boot loadera: winload.exe - uruchomienie, winresume.exe - komputer w stanie hibernacji, załadowanie jądra systemu ntoskrnl.exe, ładowanie sterowników sprzętowych, uruchamianie usług zdefiniowanych jako uruchamiane automatycznie, logowanie. 23/59
>= 8 G... wywołanie boot loadera:... winload.efi - uruchomienie, winresume.efi - komputer w stanie hibernacji, Hibernowanie jądra podczas zamykania systemu przyspieszenie bootowania. 24/59
I G dla - program ładujący, dla - jądro uruchamiane bezpośrednio, program ładujący - menu możliwych opcji rozruchu, rozpakowanie jądra, ustawienie funkcji systemowych, wywołanie funkcji start_kernel(), uruchomienie procesu bezczynności, program planujący i proces init, uruchomienie środowiska graficznego, uruchomienie sesji (po zalogowaniu). 25/59
II G Programy rozruchowe: GNU GRUB Stage 1: program ładujący (boot.img) - wykrywanie i uzyskiwanie dostępu do różnych systemów plików, z których później można odczytać konfigurację, Stage 1.5: pośredni program ładujący - gdy program ładujący drugiego stopnia nie jest ciągły lub jeśli system plików lub sprzęt wymaga specjalnej obsługi w celu uzyskania dostępu do drugiego etapu, Stage 2: załadowany jako ostatni, wyświetla menu startowe GRUB, po wybraniu pozycji menu i podaniu parametrów opcjonalnych GRUB ładuje jądro do pamięci i przekazuje do niego kontrolę. 26/59
III - GRUB G 27/59
IV G LILO (LInux LOader) odczytuje swoje ustawienia z pliku /etc/lilo.conf, komunikaty podczas ładowania: (nic) - żadna część LILO nie została załadowana, L - program ładujący st. 1 został załadowany i uruchomiony, ale nie może załadować programu ładującego st. 2, LI -program ładujący st. 1 był w stanie załadować program ładujący st. 2, ale nie udało mu się go uruchomić, LIL - uruchomiono program ładujący st. 2, ale nie można załadować tabeli deskryptorów, LIL? - program ładujący st. 2 został załadowany pod nieprawidłowym adresem, LILO - wszystkie części LILO zostały pomyślnie załadowane. 28/59
V - LILO G 29/59
VI G Jądro systemu: zadania jądra systemu: obsługa wszystkich procesów systemu operacyjnego (zarządzanie pamięcią, planowanie zadań, operacje we/wy, komunikacja międzyprocesowa i ogólna kontrola systemu), uruchamianie jądra: ładowanie jądra - skompresowany plik obrazu jądra jest ładowane do pamięci i dekompresowane, konfiguracja podstawowych funkcji, uruchamianie jądra - funkcja startowa jądra ustanawia zarządzanie pamięcią, wykrywa typ procesora i wszelkie dodatkowe funkcje, wywołuje funkcję start_kernel(), funkcja start_kernel(). 30/59
V G init: pierwszy proces uruchamiany przez jądro, jest bezpośrednim lub pośrednim przodkiem wszystkich innych procesów, czuwa, aby wszystko działało tak, jak powinno: obsługa przestrzeni użytkownika, sprawdzanie i montowanie systemów plików, uruchamianie niezbędnych usług użytkownika, przełączanie się do środowiska użytkownika po zakończeniu systemu. 31/59
Porównanie bootloaderów http://en.wikipedia.org/wiki/comparison_of_boot_loaders G metoda, źródło, system operacyjny, informacje techniczne. 32/59
Struktura logiczna nośników danych G 33/59
Master Boot Record główny rekord rozruchowy, G początek partycjonowanych urządzeń pamięci masowej, zawiera: informacje o organizacji partycji na nośniku, kod boot loadera, zastępowany przez G na nowych ch, może współistnieć z G. 34/59
Budowa G 512 bajtów 446 bajtów 64 bajty (4 x 16) 2 bajty program partycja partycja partycja partycja rozruchowy 1 2 3 4 55AA 35/59
- Windows 98 G Źródło: http://thestarman.pcministry.com/ 36/59
- Linux GRUB G Źródło: http://thestarman.pcministry.com/ 37/59
- Linux LILO G Źródło: http://thestarman.pcministry.com/ 38/59
Wersje G Pierwsze dwa bajty wskazują na jego wersję: FA 33 - DOS 3.3 - Windows 95A 33 C0 - Windows 95B, 98, 98SE, ME, 2000, XP, Vista EB 48 - Linux GRUB FA EB - Linux LILO EB 3C - Windows Floppy Disk boot record 39/59
Modyfikacje G Ze względu na system operacyjny: zmniejszenie rozmiaru i podział na części programu rozruchowego, dodanie znacznika czasowego dysku, dodanie sygnatury dysku, rozszerzenie liczby partycji. 40/59
Tablica partycji (ang. Partition Table) tnie dysk na partycje: G obsługa systemów plików, oddzielenie systemu od danych, zawiera deskryptory dla 4 partycji, ten sam format wpisów dla partycji podstawowej i rozszerzonej, partycja rozszerzona - sektor początkowy zostanie wykorzystany do zlokalizowania pierwszego sektora partycji rozszerzonej (EBR). 41/59
Wpis w tablicy partycji G Offset Rozmiar Opis +0h 1 bajt Status: 80h - partycja bootowalna, 00h - partycja niebootowalna +1h 3 bajty Adres CHS pierwszego sektora partycji: 1 bajt - numer głowicy 1 bajt - numer sektor 1 bajt - numer cylindra +4h 1 bajt Typ partycji +5h 3 bajty Adres CHS ostatniego sektora partycji +8h 4 bajty Adres LBA pierwszego sektora partycji +Ch 4 bajty Liczba sektorów w partycji 42/59
Typy partycji G 00 Empty 05 Extended DOS 3.3+ extended partition 06 DOS 3.31+ Large File System (16-bit FAT, over 32M) 07 WindowsNT NTFS 08 Commodore Commodore DOS 0B Windows95 with 32-bit FAT 81 Linux Linux 82 Linux/Swap Linux Swap partition 82 Solaris Solaris (Unix) 85 Linux Linux EXT FB VMWARE vmware partition FM VMware VMware raw partition Źródło: https: //www.win.tue.nl/~aeb/partitions/partition_types-1.html 43/59
Tablica partycji przykład G 44/59
Partycja rozszerzona G EBR (ang. Extended Boot Record) deskryptor dysku logicznego 446 B Kod wykonywalny, nieużywane, wypełnione zerami. 16 B Pierwszy wpis w, wskaźnik do dysku logicznego. Sektor początkowy - przesunięcie między tym sektorem EBR a pierwszym sektorem partycji logicznej. Zwykle 63 sektory. Liczba sektorów - całkowita liczba sektorów danych dla tej partycji logicznej. 16 B Drugi wpis w, wskazuje na kolejny EBR w łańcuchu, ostatni EBR - 0 B. Sektor początkowy - adres względny następnego EBR w rozszerzonej partycji. Liczba sektorów - całkowita liczba sektorów dla następnej partycji logicznej, rozpoczynająca liczenie w EBR. 16 B Trzeci wpis w, nieużywane, wypełnione zerami. 16 B Czwarty wpis w, nieużywane, wypełnione zerami. 2 B Magic number 55AA 45/59
Volume Boot Record rekord rozruchowy woluminu (partycji), G pierwszy sektor pojedynczej partycji na urządzeniu, wywoływany bezpośrednio przez oprogramowanie sprzętowe lub pośrednio przez kod w, 512 B, zawartość zależna od systemu plików, FAT12 (z wyjątkiem DOS 1.x), FAT16, FAT32, HPFS, NTFS zawiera również blok parametrów u (ang. Paremeter Block). 46/59
dla partycji NTFS G Źródło: http://thestarman.narod.ru/asm/mbr/w7.htm 47/59
Podział dysku I G 48/59
Podział dysku II G 1. 2. Zerowa ścieżka (62 sektory) 3., 4., 6. Pierwsza, druga i czwarta partycja podstawowa 7. Wolna przestrzeń 5. Trzecia partycja - rozszerzona 8. Pierwszy sektor EBR w rozszerzonej partycji 9: Przestrzeń międzywymiarowa (ścieżka zerowa) 10., 13., 16. Wolna przestrzeń 11. EBR dla partycji logicznej znajdującej się pod 12, także wskaźnik dla sektora EBR wskazującego na 14 12. Prawidłowa partycja logiczna 14. Ostatni EBR w rozszerzonej partycji 15. Prawidłowa partycja logiczna 49/59
GUID Partition Table I G układ tabeli partycji, stanowiący część standardu Unified Extensible Firmware Interface (), 64-bitowe wartości do adresowania (LBA) - obsługa wielu partycji (do 128 w Windows), pierwsza partycja na dysku twardym zaczyna się od LBA 34. 50/59
GUID Partition Table II G Źródło: https://www.disk-partition.com/gpt-mbr/gpt-guid-partition-table-disk-1203.html 51/59
GUID Partition Table III G Protective - zapewnienie kompatybilności wstecznej dla narzędzi, które nie rozumieją systemu G (LBA 0), Primary GTP: Primary GTP Header (LBA 1): określa dostępne miejsce na dysku, układ tabeli, liczbę elementów, rejestruje identyfikator partycji dysku G oraz rozmiar i położenie nagłówka tabeli partycji, położenie nagłówka kopii zapasowej tabel, przechowuje sumę kontrolną tabeli partycji, Partition Entry Array - tablica wpisów partycji, Secondary GTP - kopia zapasowa Primary GTP. 52/59
GUID Partition Table IV G Źródło: Nikkel J.: Forensic analysis of G disks and GUID partition tables 53/59
GUID Partition Table V G Źródło: Nikkel J.: Forensic analysis of G disks and GUID partition tables 54/59
GUID Partition Table VI G Zawartość wpisu w tablicy partycji: Długość Opis 16 B Typ partycji 16 B Unikalny identyfikator partycji 8 B Początek parytcji LBA (little endian) 8 B Koniec partycji LBA 8 B Flagi atrybutów 72 B Nazwa partycji 55/59
G Protective G Źródło: http://thestarman.pcministry.com/asm/mbr/g.htm 56/59
Nagłówek G G Źródło: http://thestarman.pcministry.com/asm/mbr/g.htm 57/59
Wykorzystano następujące materiały: G Metzger P.: Anatomia PC, Helion Mueller S.: Rozbudowa i naprawa komputerów, Helion Nikkel J.: Forensic analysis of G disks and GUID partition tables Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014). Operating Systems: Three Easy Pieces, Chapter: Hard Disk Drives" Mueller S.: Rozbudowa i naprawa komputerów, Helion Metzger P.: Anatomia PC, Helion Mark Minasi, John Enck.: Troubleshooting NT Boot Failures" www.uefi.org/specifications tldp.org/ldp/intro-linux/html/index.html upstart.ubuntu.com/cookbook thestarman.pcministry.com www.win.tue.nl/~aeb/partitions/partition_types-1.html 58/59
Dziękuję za uwagę! G 59/59