Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym

19 Aufrufe

Veröffentlicht am

Prezentacja z Meetupu grupy Software Meets Hardware in Wrocław.

Na spotkaniu opisywaliśmy co dzieje się w komputerze zanim wystartuje system operacyjny, czyli tuż po włączeniu komputera lub wciśnięciu przycisku reset oraz co to jest firmware i jakie są jego rodzaje.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym

  1. 1. Software Meets Hardware in Wrocław “Świat komputera przed systemem operacyjnym” Jan Dąbroś Copyright © 2019 Semihalf. All rights reserved.
  2. 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. 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.
  4. 4. Proces uruchamiania Copyright © 2019 Semihalf. All rights reserved.
  5. 5. Proces uruchamiania Copyright © 2019 Semihalf. All rights reserved.
  6. 6. Copyright © 2019 Semihalf. All rights reserved.
  7. 7. Typowa ścieżka Intela Copyright © 2019 Semihalf. All rights reserved.
  8. 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.
  9. 9. Przykładowa ścieżka dla serwera ARMv8 Copyright © 2019 Semihalf. All rights reserved.
  10. 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.
  11. 11. Rodzaje firmware Copyright © 2019 Semihalf. All rights reserved.
  12. 12. Słownik angielsko-polski BOOTLOADER - Program Rozruchowy FIRMWARE - Oprogramowanie układowe Copyright © 2019 Semihalf. All rights reserved.
  13. 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. 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. 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.
  16. 16. Interfejs użytkownika Copyright © 2019 Semihalf. All rights reserved.
  17. 17. Oldschool Copyright © 2019 Semihalf. All rights reserved.
  18. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
  31. 31. 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 http://opensecuritytraining.info/IntroBIOS.html Copyright © 2019 Semihalf. All rights reserved.
  32. 32. PYTANIA? KONTAKT: jsd@semihalf.com Copyright © 2019 Semihalf. All rights reserved.

×