O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym

41 visualizações

Publicada em

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.

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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.

×