More Related Content Similar to Meetup #1 - Świat Komputera Przed Systemem Operacyjnym (17) Meetup #1 - Świat Komputera Przed Systemem Operacyjnym 1. Software Meets Hardware in Wrocław
“Świat komputera przed systemem operacyjnym”
Jan Dąbroś
Copyright © 2019 Semihalf. All rights reserved.
2. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
3. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
8. Typowy układ firmware w pamięci ROM
● Firmware IME oraz UEFI znajdują się w tym samym flash’u
● PEI jest wykonywany bezpośrednio z pamięci ROM (cache)
● Kod UEFI jest kopiowany do pamięci RAM
● UEFI nie ma dostępu do regionu IME
Copyright © 2019 Semihalf. All rights reserved.
10. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
13. Zadania firmware
1. Autotest podzespołów elektronicznych - Power-On Self-Test
2. Konfiguracja ustawień sprzętowych
3. Udostępnienie interfejsu dla użytkownika
4. Przygotowanie struktur opisu sprzętu
5. Funkcjonalności bezpieczeństwa (opcjonalnie)
--- Bootloader ---
1. Przygotowanie środowiska
2. Inicjacja startu systemu operacyjnego
Copyright © 2019 Semihalf. All rights reserved.
14. Power-on self-test
Sprawdzane są w kolejności:
1. Poprawność parametrów zasilania
2. Poprawność pracy procesora
3. Poprawność pracy kontrolera pamięci
4. Poprawność pracy mostka północnego i południowego
5. Poprawność pracy karty graficznej (opcjonalnie)
6. Pozostałe kontrolery IO (opcjonalnie)
Copyright © 2019 Semihalf. All rights reserved.
15. Konfiguracja ustawień sprzętowych
● Ustawianie konfigurowalnych parametrów
procesora - np. częstotliwości taktowania;
realne “podkręcanie” zachodzi na tym
etapie
● Wykrywanie ilości i parametrów
zainstalowanych kości pamięci
● Porównanie możliwości sprzętowych z
parametrami zadanymi przez użytkownika
Copyright © 2019 Semihalf. All rights reserved.
18. Device tree & ACPI
● Struktura danych opisująca sprzęt
● Kompilowana z kodu źródłowego, ale może być
modyfikowana w run-time
● Urządzeniom odpowiadają węzły (node)
● Każde urządzenie ma zestaw właściwości
● Jeden obraz jądra - wiele maszyn
Copyright © 2019 Semihalf. All rights reserved.
19. Device tree & ACPI
● Tablice opisujące sprzęt, są tworzone przez firmware
● Tablice są wykorzystywane przez sterowniki wewnątrz
systemu operacyjnego
● Tablice zawierają zarówno opis sprzętu jak i częściowo
kod, który jest warstwą pomiędzy systemem
operacyjnym a hardware
Copyright © 2019 Semihalf. All rights reserved.
20. Załadowanie i uruchomienie systemu operacyjnego
● Sterowniki do kontrolerów IO, pozwalające na załadowanie obrazu z różnych
lokalizacji - napęd CD/DVD, dyski twarde, karty SD, sieć
● Zazwyczaj uruchamiany będzie “dedykowany” bootloader np. GRUB, LILO,
BOOTMGR
● W przypadku UEFI, możliwe jest uruchomienie jądra linuxa bezpośrednio z
firmware, ponieważ jądro (skompilowane z odpowiednią opcją) samo w sobie
zawiera minimalny loader
● Obraz jądra zostaje załadowany do pamięci RAM,
opcjonalnie również initramfs
● Ponadto przekazujemy również “command-line arguments”
Copyright © 2019 Semihalf. All rights reserved.
21. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
22. W tle systemu operacyjnego
● Generyczny interfejs firmware - OS
poprzez dodatkową warstwę abstrakcji na
sprzęcie
● Przykładem są Runtime Services
oferowane przez UEFI - korzysta z nich
zarówno Windows jak i Linux
● Zarządzanie energią w systemach
opartych o procesory ARMv8
● Systemy heterogeniczne
Copyright © 2019 Semihalf. All rights reserved.
23. “Ukryte” funkcje firmware
● Ukryte funkcje w oprogramowaniu
koprocesorów
● Bezpieczne systemy operacyjne
wykorzystujące technologię ARM TrustZone
● System Management Mode
● Intel Management Engine
● AMD Platform Security Processor
Copyright © 2019 Semihalf. All rights reserved.
24. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
25. Ciemna strona firmware
● Podczas uruchamiania systemu, firmware wykonywany jest jako pierwszy i to
on zawiera kod ładujący system operacyjny
● W trakcie pracy systemu operacyjnego, firmware jest wykonywany przez
procesor działający na wyższym poziomie uprzywilejowania
● Można ukryć pewne działania przed systemem operacyjnym, wywłaszczenie
może nastąpić w każdym momencie
Copyright © 2019 Semihalf. All rights reserved.
26. Ciemna strona firmware
● Secure Boot (w pewnych konfiguracjach)
● Data Rights Management (Digital Restrictions Management)
● Sposób na problemy z upstream’em - “worek na śmieci”
● Zazwyczaj zamknięte oprogramowanie
● Idealna płaszczyzna do ataku
Copyright © 2019 Semihalf. All rights reserved.
27. Projekt NERF i open-source firmware
UEFI - Unified Extensible Firmware Interface
NERF - Non-Extensible Reference Firmware
https://www.youtube.com/watch?v=iffTJ1vPCSo
Coreboot, Libreboot
Copyright © 2019 Semihalf. All rights reserved.
28. Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. W tle systemu operacyjnego
4. “Ciemna strona mocy”
5. Po co właściwie nam firmware?
Copyright © 2019 Semihalf. All rights reserved.
29. Po co nam firmware?
● Duplikacja kodu między firmware a systemem operacyjnym
● Wydłużenie czasu uruchamiania
● Większe zużycie miejsca w pamięci
● Wyższy poziom uprzywilejowania - możliwe groźniejsze ataki
Czy nie prosimy się sami o kłopoty?
Copyright © 2019 Semihalf. All rights reserved.
30. Po co nam firmware?
● Ograniczenie ilości dostępnej pamięci ROM
● Sekrety producenta sprzętu w procedurach inicjalizacji
● DUAL-BOOT
● Jeden obraz jądra działający na różnych maszynach
● Dynamiczny opis sprzętu
● Opcje Recovery
Copyright © 2019 Semihalf. All rights reserved.