Linux Kernel Hardening & Yocto meta-security

Minimalizacja powierzchni ataku, utwardzanie jądra i Mandatory Access Control na platformie STM32MP1. Od bezpiecznej kompilacji po AppArmor w praktyce.

O kursie

Bezpieczeństwo systemu embedded nie kończy się na Secure Boot. Co z tego, że bootloader jest podpisany, jeśli jądro jest skonfigurowane z myślą o debugowaniu, a nie o obronie? To szkolenie wypełnia lukę między “uruchomiło się bezpiecznie” a “działa bezpiecznie”.

Skupiamy się na utwardzaniu jądra Linux, bezpiecznym łańcuchu dostaw oprogramowania (SSDLC) oraz Mandatory Access Control z wykorzystaniem AppArmor — wszystko w kontekście platformy STM32MP1 i ekosystemu Yocto/OpenSTLinux.

Czego NIE omawiamy: Secure Boot (TF-A), szyfrowanie systemu plików (dm-crypt/LUKS) — to tematy osobnych szkoleń.


🎯 Cel Projektowy: “Hardened STM32MP1 Image”

Podczas kursu nie konfigurujemy opcji w próżni. Budujemy utwardzony obraz produkcyjny. Uczestnicy stworzą system, który:

Przeszedł audyt CVE — wszystkie znane podatności są załatane lub udokumentowane (VEX)

Ma binaria skompilowane z pełnym zestawem flag ochronnych — Stack Protector, FORTIFY_SOURCE, RELRO, PIE

Blokuje dostęp do pamięci jądra — CONFIG_STRICT_DEVMEM, restrykcje dmesg

Wykrywa próby exploitacji — weryfikacja przez LKDTM (Kernel Dump Test Module)

Ogranicza uprawnienia aplikacji — AppArmor w trybie enforce

Jest monitorowany — auditd + AIDE do wykrywania zmian


📅 Program szkolenia

DZIEŃ 1: The Supply Chain – Bezpieczny Łańcuch Dostaw

Zarządzanie podatnościami i hardening toolchaina. Zanim utwardzisz jądro, upewnij się, że userspace jest bezpieczny.

Moduł 1.1: Zarządzanie Podatnościami w Cyklu Życia Produktu

  • Mechanizm cve-check w Yocto: Mapowanie pakietów na bazę NVD
  • Problem false positives: Backporting łatek bez zmiany wersji
  • VEX (Vulnerability Exploitability Exchange) i zmienne CVE_STATUS
  • Lab: Generacja raportu CVE dla st-image-core, analiza wyników, oznaczanie wyjątków

Moduł 1.2: Hardening Toolchaina — Bezpieczna Kompilacja

  • Flagi bezpieczeństwa GCC: stack protector, FORTIFY_SOURCE, RELRO, PIE
  • Konfiguracja toolchaina w Yocto — domyślne ustawienia i ich modyfikacja
  • Lab: Porównanie kompilacji z różnymi poziomami hardeningu

DZIEŃ 2: The Kernel – Utwardzanie Jądra

Techniczne serce szkolenia. Domyślne konfiguracje kernela przedkładają kompatybilność nad bezpieczeństwo.

Moduł 2.1: Minimalizacja Powierzchni Ataku

  • Blokada dostępu do pamięci RAM przez /dev/mem
  • Ukrywanie adresów jądra przed przestrzenią użytkownika
  • Interfejsy debugowania (DebugFS) w produkcji — co wyłączyć?
  • Lab: Modyfikacja konfiguracji jądra i weryfikacja zmian

Moduł 2.2: KASLR na ARM 32-bit — Ograniczenia i Obejścia

  • Randomizacja przestrzeni adresowej jądra na platformach 32-bit
  • Integracja z bootloaderem: kaslr-seed w Device Tree
  • Dyskusja: Analiza kosztów i korzyści KASLR na Cortex-A7

Moduł 2.3: Self-Protection — Ochrona Pamięci Jądra

  • Weryfikacja granic przy copy_from_user/copy_to_user
  • Ochrona przed heap overflow w jądrze
  • Lab: Testowanie mechanizmów ochronnych z użyciem LKDTM

Moduł 2.4: Podsumowanie Dnia 2

  • Analiza wyników testów LKDTM
  • Wpływ hardeningu na wydajność Cortex-A7: Mierzalny, ale akceptowalny (<1-2% CPU)
  • Q&A

DZIEŃ 3: The Lockdown – Mandatory Access Control i Audyt

Warstwa ochrony runtime. Zakładamy, że atakujący znajdzie lukę — ograniczamy szkody.

Moduł 3.1: AppArmor w Yocto i na STM32MP1

  • Dlaczego AppArmor, a nie SELinux? Prostota, wydajność, ścieżki plików
  • Integracja AppArmor w Yocto: warstwy, konfiguracja kernela, bootargs
  • Typowe problemy: konflikt BusyBox z narzędziami AppArmor
  • Lab: Uruchomienie i weryfikacja AppArmor na platformie docelowej

Moduł 3.2: Profilowanie Aplikacji

  • Narzędzia aa-genprof i aa-logprof — automatyczne generowanie reguł
  • Wyzwania na embedded: Ograniczone zasoby RAM na STM32MP1
  • Podejście hybrydowe: Tryb “complain” na urządzeniu, analiza logów na hoście
  • Lab: Ograniczenie serwera WWW (lighttpd)
    • Tryb nauki → generacja profilu → tryb enforce
    • Weryfikacja blokady nieautoryzowanego dostępu do /etc/passwd

Moduł 3.3: Audyt i Monitoring

  • auditd — Śledzenie wywołań systemowych (execve, open, connect)
  • Integracja logów: Gdzie trafiają logi AppArmor? (syslog vs auditd)
  • AIDE (Advanced Intrusion Detection Environment) — Wykrywanie zmian plików offline
  • Lab: Inicjalizacja bazy AIDE, modyfikacja binarki, wykrycie zmiany

Moduł 3.4: Warsztat Końcowy

  • Integracja wszystkich elementów w utwardzony obraz
  • Deliverable: Warstwa Yocto z recepturami hardeningu do przeniesienia do własnych projektów
  • Q&A i konsultacje

💰 Cennik i Modele Uczestnictwa

Oferuję elastyczny model dostosowany do poziomu zaawansowania zespołu.

Opcja A: CORE (2 Dni)

Idealna dla zespołów, które chcą poznać hardening toolchaina i jądra, ale nie potrzebują zaawansowanej wiedzy o MAC.

ZakresDzień 1 + Dzień 2 (CVE audit, Kompilacja, Kernel Hardening, LKDTM)
EfektUtwardzony obraz z bezpiecznymi binariami i skonfigurowanym jądrem
Cena3 400 PLN netto / os.
Min. grupa5 osób

Opcja B: FULL HARDENING (3 Dni) ⭐ Rekomendowane

Pełne szkolenie z AppArmor i monitoringiem. Niezbędne dla produktów wymagających certyfikacji bezpieczeństwa lub compliance.

ZakresCały program (Dni 1-3)
EfektKompletny, utwardzony obraz z MAC i audytem + warstwa Yocto do re-użycia
Cena4 500 PLN netto / os.
Min. grupa5 osób

Promocja: Decydując się od razu na pakiet 3-dniowy, oszczędzasz 400 PLN względem dokupowania 3. dnia osobno.

Małe zespoły: Dla zespołów mniejszych niż 5 osób - stawki ustalane są indywidualnie.


🏆 Dlaczego warto?

KorzyśćOpis
Specyfika ARM 32-bitOmawiamy realne ograniczenia Cortex-A7 (KASLR, przestrzeń adresowa), nie teoretyczne scenariusze z x86
Praktyczne deliverablesWarstwa Yocto z recepturami hardeningu gotowa do użycia w Twoim projekcie
Weryfikacja, nie wiaraKażdy mechanizm testujemy narzędziami (checksec, LKDTM, AIDE) — widzisz, że działa
Pułapki embeddedZnamy problemy integracji (BusyBox vs AppArmor) i pokazujemy obejścia

🛠️ Wymagania

Sprzęt (zapewniony):

  • Płytka STM32MP157C-DK2
  • Karta microSD 16GB
  • Kabel USB Type-C

Oprogramowanie:

  • Ubuntu 20.04/22.04 LTS
  • OpenSTLinux SDK (Kirkstone/Scarthgap)
  • Wstępnie skompilowany sstate-cache (skrócenie czasu budowania)

Wiedza uczestnika:

  • Podstawy Yocto (budowanie obrazu, dodawanie warstw)
  • Podstawy Linux (praca z shellem, konfiguracja jądra)

🎁 Sprzęt po warsztatach zostaje u uczestników!

Chcesz zarezerwować termin dla swojego zespołu? Skontaktuj się, aby ustalić szczegóły. Utwardź swoje systemy, zanim ktoś znajdzie w nich lukę.

Zainteresowany szkoleniem?

Skontaktuj się, aby omówić szczegóły, dostosować program do potrzeb Twojego zespołu lub umówić termin.

Kontakt ← Wszystkie szkolenia
Informacje o szkoleniu
  • Czas trwania:
    2-3 dni
  • Poziom:
    Zaawansowany
  • Wymagania:
    Podstawy Yocto, Linux internals
Kategorie
Security Linux Yocto STM32MP1
Zapytaj o szkolenie

Dostosowuję program do potrzeb uczestników. Szkolenia prowadzę stacjonarnie, zdalnie lub hybrydowo.

Kontakt