Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Skazani na firmware. Świat komputera przed systemem operacyjnym.

296 views

Published on

Czy zastanawiałeś się kiedyś co dzieje się po włączeniu komputera lub wciśnięciu przycisku RESET?
Zanim uruchomi się Twój system operacyjny mija kilka sekund - przyjrzymy się im z bliska. Odpowiemy na pytania co to jest firmware i jakie są jego rodzaje.

Published in: Software
  • Login to see the comments

  • Be the first to like this

Skazani na firmware. Świat komputera przed systemem operacyjnym.

  1. 1. Skazani na firmware S07:E01 “Świat komputera przed systemem operacyjnym”
  2. 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. 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
  4. 4. Proces uruchamiania
  5. 5. Proces uruchamiania
  6. 6. Typowa ścieżka Intela
  7. 7. 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
  8. 8. Przykładowa ścieżka dla serwera ARMv8
  9. 9. 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
  10. 10. Rodzaje firmware
  11. 11. Słownik angielsko-polski BOOTLOADER - Program Rozruchowy FIRMWARE - Oprogramowanie układowe
  12. 12. 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
  13. 13. 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)
  14. 14. 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
  15. 15. Interfejs użytkownika
  16. 16. Oldschool
  17. 17. 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
  18. 18. 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
  19. 19. 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”
  20. 20. 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
  21. 21. 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?
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. “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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. PYTANIA? KONTAKT: jsd@semihalf.com

×