SlideShare a Scribd company logo
1 of 32
Skazani na firmware
S07:E01
“Świat komputera przed systemem operacyjnym”
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
Proces uruchamiania
Proces uruchamiania
Typowa ścieżka Intela
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
Przykładowa ścieżka dla serwera ARMv8
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
Rodzaje firmware
Słownik angielsko-polski
BOOTLOADER - Program Rozruchowy
FIRMWARE - Oprogramowanie układowe
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
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)
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
Interfejs użytkownika
Oldschool
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
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
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”
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
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?
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
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
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
“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
Plan prezentacji
1. Proces uruchamiania komputera krok po kroku
2. Co to jest firmware - podstawowe zadania
3. Czy na pewno jesteśmy na niego skazani?
4. W tle systemu operacyjnego
5. “Ciemna strona” firmware
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
Ciemna strona firmware
● Secure Boot
● 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
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
Referencje
https://www.slideshare.net/hafizhanif86/5-post-bios-cmos
https://libreboot.org/faq.html
https://www.coreboot.org/
https://www.youtube.com/watch?v=4kCICUPc9_8 - IME
PYTANIA?
KONTAKT:
jsd@semihalf.com

More Related Content

What's hot

BIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIBIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIWydawnictwo Helion
 
Instalowanie systemów operacyjnych i oprogramowania użytkowego
Instalowanie systemów operacyjnych i oprogramowania użytkowegoInstalowanie systemów operacyjnych i oprogramowania użytkowego
Instalowanie systemów operacyjnych i oprogramowania użytkowegoSzymon Konkol - Publikacje Cyfrowe
 
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...PROIDEA
 
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.MarioPL
 
Współczesne procesory
Współczesne procesoryWspółczesne procesory
Współczesne procesoryArthi1993
 
Budowa Wewnętrzna
Budowa WewnętrznaBudowa Wewnętrzna
Budowa Wewnętrznaakeela68
 

What's hot (16)

Konfiguracja urządzeń peryferyjnych
Konfiguracja urządzeń peryferyjnychKonfiguracja urządzeń peryferyjnych
Konfiguracja urządzeń peryferyjnych
 
Podstawowe elementy systemu komputerowego
Podstawowe elementy systemu komputerowegoPodstawowe elementy systemu komputerowego
Podstawowe elementy systemu komputerowego
 
BIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie IIIBIOS. Leksykon kieszonkowy. Wydanie III
BIOS. Leksykon kieszonkowy. Wydanie III
 
2
22
2
 
Instalowanie systemów operacyjnych i oprogramowania użytkowego
Instalowanie systemów operacyjnych i oprogramowania użytkowegoInstalowanie systemów operacyjnych i oprogramowania użytkowego
Instalowanie systemów operacyjnych i oprogramowania użytkowego
 
Sieci full
Sieci fullSieci full
Sieci full
 
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Słociński - Wieloprocesorowa platforma x86 a wydajny routing ...
 
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
 
Współczesne procesory
Współczesne procesoryWspółczesne procesory
Współczesne procesory
 
Zasady konfiguracji zestawów komputerowych
Zasady konfiguracji zestawów komputerowychZasady konfiguracji zestawów komputerowych
Zasady konfiguracji zestawów komputerowych
 
Instalacja sterowników urządzeń peryferyjnych
 Instalacja sterowników urządzeń peryferyjnych Instalacja sterowników urządzeń peryferyjnych
Instalacja sterowników urządzeń peryferyjnych
 
Procesory
ProcesoryProcesory
Procesory
 
Przygotowanie podzespołów do montażu komputera osobistego
Przygotowanie podzespołów do montażu komputera osobistegoPrzygotowanie podzespołów do montażu komputera osobistego
Przygotowanie podzespołów do montażu komputera osobistego
 
Wyposażenie stanowiska do naprawy komputera osobistego
Wyposażenie stanowiska do naprawy komputera osobistegoWyposażenie stanowiska do naprawy komputera osobistego
Wyposażenie stanowiska do naprawy komputera osobistego
 
Dobór urządzeń techniki komputerowej do stanowiska
Dobór urządzeń techniki komputerowej do stanowiskaDobór urządzeń techniki komputerowej do stanowiska
Dobór urządzeń techniki komputerowej do stanowiska
 
Budowa Wewnętrzna
Budowa WewnętrznaBudowa Wewnętrzna
Budowa Wewnętrzna
 

Similar to Skazani na firmware. Świat komputera przed systemem operacyjnym.

Win8 manual pol
Win8 manual polWin8 manual pol
Win8 manual pollzur
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PROIDEA
 
Raport z-ekspertyzy-urzadzenia-typu-pendrive
Raport z-ekspertyzy-urzadzenia-typu-pendriveRaport z-ekspertyzy-urzadzenia-typu-pendrive
Raport z-ekspertyzy-urzadzenia-typu-pendriveRafal P.
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Semihalf
 
5 budowa komputera1
5 budowa komputera15 budowa komputera1
5 budowa komputera1ttomekb
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004Tomasz Cieplak
 
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...Krzysztof Binkowski
 
Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Semihalf
 
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczne
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczneWindows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczne
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczneWydawnictwo Helion
 
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!michalip
 
ABC sam optymalizuję komputer
ABC sam optymalizuję komputerABC sam optymalizuję komputer
ABC sam optymalizuję komputerWydawnictwo Helion
 
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczne
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczneWindows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczne
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczneWydawnictwo Helion
 

Similar to Skazani na firmware. Świat komputera przed systemem operacyjnym. (20)

3
33
3
 
Praca Dyplomowa
Praca DyplomowaPraca Dyplomowa
Praca Dyplomowa
 
2
22
2
 
Win8 manual pol
Win8 manual polWin8 manual pol
Win8 manual pol
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
 
Raport z-ekspertyzy-urzadzenia-typu-pendrive
Raport z-ekspertyzy-urzadzenia-typu-pendriveRaport z-ekspertyzy-urzadzenia-typu-pendrive
Raport z-ekspertyzy-urzadzenia-typu-pendrive
 
1
11
1
 
8
88
8
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?
 
5 budowa komputera1
5 budowa komputera15 budowa komputera1
5 budowa komputera1
 
Seminarium .Net CF 2004
Seminarium .Net CF 2004Seminarium .Net CF 2004
Seminarium .Net CF 2004
 
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...
WCL2013 - BitLocker w Twoim Windows 8 i w Twoim przedsiebiorstwie w oparciu o...
 
Bootloadery i programy bare metal.
Bootloadery i programy bare metal.Bootloadery i programy bare metal.
Bootloadery i programy bare metal.
 
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczne
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczneWindows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczne
Windows Vista. Naprawa i optymalizacja. Ćwiczenia praktyczne
 
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!
Odzyskiwanie danych po formacie – 3 darmowe i skuteczne sposoby!
 
Mandriva. Ćwiczenia
Mandriva. ĆwiczeniaMandriva. Ćwiczenia
Mandriva. Ćwiczenia
 
ABC sam optymalizuję komputer
ABC sam optymalizuję komputerABC sam optymalizuję komputer
ABC sam optymalizuję komputer
 
4
44
4
 
Lokalizowanie i usuwanie uszkodzeń systemu operacyjnego
Lokalizowanie i usuwanie uszkodzeń systemu operacyjnegoLokalizowanie i usuwanie uszkodzeń systemu operacyjnego
Lokalizowanie i usuwanie uszkodzeń systemu operacyjnego
 
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczne
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczneWindows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczne
Windows Vista PL. Instalacja i naprawa. Ćwiczenia praktyczne
 

More from Semihalf

Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01Semihalf
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Semihalf
 
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Semihalf
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Semihalf
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. Semihalf
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKSemihalf
 
Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Semihalf
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Semihalf
 
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Semihalf
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Semihalf
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Semihalf
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Semihalf
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!Semihalf
 
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Semihalf
 
Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Semihalf
 
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.Semihalf
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Semihalf
 
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Semihalf
 
DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.Semihalf
 
Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Semihalf
 

More from Semihalf (20)

Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
 
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special.
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
 
Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).Wirtualizacja urządzeń PCI (SR-IOV).
Wirtualizacja urządzeń PCI (SR-IOV).
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
 
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzyć wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!
 
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
 
Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?
 
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.
 
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
 
DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.
 
Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.
 

Skazani na firmware. Świat komputera przed systemem operacyjnym.

  • 1. Skazani na firmware S07:E01 “Świat komputera przed systemem operacyjnym”
  • 2. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 3. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 6.
  • 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
  • 10. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 12. Słownik angielsko-polski BOOTLOADER - Program Rozruchowy FIRMWARE - Oprogramowanie układowe
  • 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
  • 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)
  • 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
  • 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
  • 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
  • 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”
  • 21. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 22. 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?
  • 23. 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
  • 24. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 25. 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
  • 26. “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
  • 27. Plan prezentacji 1. Proces uruchamiania komputera krok po kroku 2. Co to jest firmware - podstawowe zadania 3. Czy na pewno jesteśmy na niego skazani? 4. W tle systemu operacyjnego 5. “Ciemna strona” firmware
  • 28. 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
  • 29. Ciemna strona firmware ● Secure Boot ● 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
  • 30. 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

Editor's Notes

  1. 1. ACPI node
  2. jaka jest różnica? Bootloader i firmware to niemal te same określenia w kontekście PC.
  3. BIOS udostępniał funkcje dla systemu operacyjnego, które zostały jednak usunięte wraz z Windowsem 95 i zastąpione sterownikami sprzętowymi w jądrze.
  4. acpi node
  5. Firmware zawiera wiele driverów urządzeń wykorzystywanych wyłącznie po to, żeby zlokalizować i załadować obraz jądra systemu operacyjnego.
  6. Inicjalizacja podstawowych podzespołów - procesor, kontrolery pamięci, kontrolery IO - w bardzo dużym stopniu zależy od producenta chipu jak i producenta płyty głównej, nie stosuje się tutaj generycznych rozwiązać. Kod jądra musiałby zawierać te procedury, natomiast twórcy sprzętu często nie są chętni aby je udostępniać dynamiczny opis
  7. Są też usługi firmware działające w tle, o których system operacyjny i użytkownik nie mają pojęcia...
  8. Producenci chipów oraz twórcy płyt głównych wykorzystują firmware do realizacji swoich celów.
  9. Naprawianie błędów sprzętu bez konieczności modyfikacji sterowników w systemie operacyjnym