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-checkw 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-seedw 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-genprofiaa-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.
| Zakres | Dzień 1 + Dzień 2 (CVE audit, Kompilacja, Kernel Hardening, LKDTM) |
| Efekt | Utwardzony obraz z bezpiecznymi binariami i skonfigurowanym jądrem |
| Cena | 3 400 PLN netto / os. |
| Min. grupa | 5 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.
| Zakres | Cały program (Dni 1-3) |
| Efekt | Kompletny, utwardzony obraz z MAC i audytem + warstwa Yocto do re-użycia |
| Cena | 4 500 PLN netto / os. |
| Min. grupa | 5 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-bit | Omawiamy realne ograniczenia Cortex-A7 (KASLR, przestrzeń adresowa), nie teoretyczne scenariusze z x86 |
| Praktyczne deliverables | Warstwa Yocto z recepturami hardeningu gotowa do użycia w Twoim projekcie |
| Weryfikacja, nie wiara | Każdy mechanizm testujemy narzędziami (checksec, LKDTM, AIDE) — widzisz, że działa |
| Pułapki embedded | Znamy 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