Seminarinformationen
Seminar - Ziel
In diesem 4-tägigen Seminar „Security and the Linux Kernel (LFD441)“ stehen die sicherheitsrelevanten Grundlagen des Linux-Kernels im Mittelpunkt. Sie beschäftigen sich mit Aspekten wie Speicher-, Prozess- und Dateisystemsicherheit sowie dem Schutz von Systemaufrufen. Dabei lernen Sie zentrale Sicherheitsmechanismen des Linux-Kernels kennen, darunter Mandatory Access Control (MAC), Linux Security Modules (LSM) und Secure Boot.
Im Verlauf des Seminars sammeln Sie praktische Erfahrungen in der Absicherung sowohl des Userspace als auch des Kernels durch den gezielten Einsatz verschiedener Sicherheitsfunktionen. So entwickeln Sie ein fundiertes Verständnis dafür, wie Sicherheit auf Kernel-Ebene in modernen Linux-Systemen umgesetzt wird.
Teilnehmer - Zielgruppe
- Systems Programmers
- Userspace Developers
- Kernel Engineers
Kurs - Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Beherrschen Sie die Programmiersprache C
- Seien Sie mit grundlegenden Linux (UNIX) Dienstprogrammen wie ls, grep und tar vertraut.
- Seien Sie mit der Verwendung eines der verfügbaren Texteditoren (z.B. emacs, vi, etc.) vertraut.
- Erfahrung mit einer großen Linux-Distribution ist hilfreich, aber nicht zwingend erforderlich.
- Haben Sie Erfahrungen, die der Teilnahme an LFD420: Linux Kernel Internals and Development entsprechen.
Seminardauer
- 4 Tage
- 09:00 Uhr bis 17:00 Uhr
Schulungsunterlagen
Seminar-Inhalt / Agenda
Angriffsflächen reduzieren
- Warum Sicherheit?
- Arten der Sicherheit
- Schwachstellen
- Schutzschichten
- Software-Exploits
Kernel-Funktionen
- Komponenten des Kernels
- Benutzerbereich vs. Kernelbereich
- Was sind Systemaufrufe?
- Verfügbare Systemaufrufe
- Scheduling-Algorithmen und Aufgabenstrukturen
- Prozesskontext
Veraltete Schnittstellen im Kernel
- Warum veraltet
- __deprecated
- BUG() und BUG_ON()
- Berechnete Größen für kmalloc()
- Die simple_strtol()-Routine-Familie
- strcpy(), strncpy(), strlcpy()
- printk() %p-Formatbezeichner
- Variable Length Arrays
- Switch Case Fall-Through
- Null- und Ein-Element-Arrays in Strukturen
Address Space Layout Randomization (ASLR)
- Warum ASLR?
- Wie man ASLR verwendet
- ASLR für spezifische Programme deaktivieren
- Kernel-Konfiguration
- Kernel Address Space Layout Randomization (KASLR)
- Wie KASLR funktioniert
- KASLR aktivieren
Kernel-Strukturlayout-Randomisierung
- Vorteile
- Wie Strukturrandomisierung funktioniert
- Strukturanfang
- Opt-in vs. Opt-out
- Partielle Randomisierung
- Strukturrandomisierung aktivieren
- Out-of-tree-Module mit Strukturrandomisierung bauen
Einführung in die Sicherheit des Linux-Kernels
- Grundlagen der Linux-Kernel-Sicherheit
- Discretionary Access Control (DAC)
- POSIX-ACLs
- POSIX-Fähigkeiten
- Namespaces
- Linux Security Modules (LSM)
- Netfilter
- Kryptographische Methoden
- Das Kernel Self Protection Project
CGroups
- Einführung in CGroups
- Überblick
- Komponenten von CGroups
- cgroup-Initialisierung
- cgroup-Aktivierung
- cgroups-Parameter
- cgroups testen
- systemd und cgroups
eBPF
- BPF
- eBPF
- Installation
- bcc-Tools
- bpftrace
Seccomp
- Was ist seccomp?
- Die seccomp-Schnittstelle
- seccomp-Strikter Modus
- seccomp-Filtermodus
Secure Boot
- Warum Secure Boot?
- Secure Boot x86
- Secure Boot für eingebettete Systeme
Modul-Signierung
- Was ist Modul-Signierung?
- Grundlagen der Signaturen
- Modul-Signierschlüssel
- Modul-Signaturüberprüfung aktivieren
- Wie es funktioniert
- Module signieren
Integrity Measurement Architecture (IMA)
- Warum IMA?
- Konzeptionelle Operationen
- Betriebsmodi
- Collect Mode (Sammeln und Speichern)
- Logging Mode (Bewerten und Auditieren)
- Enforcing Mode (Bewerten und Schützen)
- Extended Verification Module (EVM)
DM-Verity
- Was ist dm-verity?
- Wie dm-verity funktioniert
- dm-verity aktivieren
- Einrichten von dm-verity
- Verwendung von dm-verity
- Signieren mit dm-verity
- Booten mit dm-verity
Verschlüsselte Speicherung
- Warum verschlüsselte Speicherung?
- Datenverschlüsselungslösungen
- Übersicht der Speicher-Verschlüsselungsoptionen
- Blockverschlüsselung
- Verwendung der Blockverschlüsselung
- Dateisystemverschlüsselung
- Verwendung der Dateisystemverschlüsselung
- Geschichtete Dateisystemverschlüsselung
- Verwendung der geschichteten Dateisystemverschlüsselung
Linux Security Modules (LSM)
- Was sind Linux Security Modules?
- Grundlagen der LSM
- LSM-Auswahl
- Wie LSM funktioniert
- Ein LSM-Beispiel: Yama
SELinux
- SELinux
- SELinux-Übersicht
- SELinux-Modi
- SELinux-Richtlinien
- Kontext-Dienstprogramme
- SELinux und Standard-Kommandozeilen-Tools
- SELinux-Kontext-Vererbung und -Bewahrung
- restorecon
- semanage fcontext
- Verwendung von SELinux-Booleans
- getsebool und setsebool
- Fehlerbehebungswerkzeuge
AppArmor
- Was ist AppArmor?
- Status überprüfen
- Modi und Profile
- Profile
- Dienstprogramme
Yama (LSM)
- Warum Yama?
- Yama konfigurieren
- Wie Yama funktioniert
LoadPin (LSM)
- Warum LoadPin?
- LoadPin aktivieren
- Verwendung von LoadPin
- Wie LoadPin funktioniert
Lockdown
- Warum Lockdown?
- Lockdown-Modi
- Was wird gesperrt?
- Wie es funktioniert
- Einige Hinweise
Safesetid
- Warum Safesetid?
- Safesetid konfigurieren
- Wie Safesetid funktioniert
Netfilter
- Was ist Netfilter?
- Netfilter-Hooks
- Netfilter-Implementierung
- In Netfilter einhaken
- Iptables
- nftables
Netlink-Sockets
- Was sind Netlink-Sockets?
- Öffnen eines Netlink-Sockets
- Netlink-Nachrichten
Weitere Schulungen zu Thema Linux Foundation
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 3-tägigen Seminar „LFD459 Kubernetes für App-Entwickler“ lernen Sie, wie Sie Anwendungen in einem Multi-Node-Cluster containerisieren, hosten, bereitstellen und konfigurieren. Sie beginnen mit einem einfachen Python-Skript, definieren Anwendungsressourcen und ...
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 4-tägigen Seminar „LFS458 Kubernetes Administration“ erhalten Sie fundiertes Wissen zu den grundlegenden Konzepten und herstellerunabhängigen Werkzeugen für den Aufbau und die Verwaltung von Kubernetes-Clustern in Produktionsumgebungen. Sie setzen sich mit ...
- u.a. in Berlin, Leipzig, Nürnberg, Koblenz, ErfurtIn dieser 3-tägigen Schulung "LFS482 Zero Trust Security mit SPIFFE und SPIRE" liegt der Fokus darauf, die notwendigen Muster und Praktiken für die Einführung von Zero Trust Networking zu diskutieren sowie Implementierungsmodelle, Anwendungsfälle, Szenarien und Ergebnisse, ...
- u.a. in Hamburg, Nürnberg, Zürich, Essen, KasselIn dieser 2-tägigen Schulung "LFD334 WebAssembly in Action: Develop, Deploy, and Debug" lernen Sie die grundlegenden Konzepte von WebAssembly (Wasm) zu verstehen und lernen, wie Sie diese Technologie in verschiedenen Anwendungsbereichen nutzen können. Sie erhalten einen ...