Einordnung: Das Entwicklerseminar erweitert Pulsar um eigene Datenerfassung und Verarbeitung. Behandelt werden Architektur und Ereignisbus, Auswahl geeigneter Kernel-Hooks, eBPF-Programme, sichere Datenübergabe, Rust-basierte Userspace-Module, Ereignisschemata, Konfiguration, Tests, Fehlerbehandlung und wartbare Paketierung.
Inhaltsübersicht
- Entwicklungsumgebung und Quellstruktur vorbereiten
- Modularchitektur und Ereignisbus analysieren
- Anwendungsfall und Ereignisschema entwerfen
- Geeignete eBPF-Hooks auswählen
- Kernelkomponente implementieren
- Userspace-Modul in Rust entwickeln
- Integration in Regeln und Logging
- Tests und Qualitätssicherung
- Performance und Stabilität bewerten
- Paketierung und Wartung
Zielgruppe
Rust- und Systementwickler, Kernel- und eBPF-Engineers, Embedded-Linux-Entwickler, Security-Tool-Entwickler und technische Maintainer eigener Pulsar-Erweiterungen.
Lernziele
- Pulsars Modul- und Ereignisarchitektur auf Quellcodeebene nachvollziehen.
- Geeignete Kernel-Hooks und minimale Ereignisdaten für einen Anwendungsfall auswählen.
- eBPF- und Userspace-Komponenten sicher miteinander verbinden.
- Eigene Ereignistypen, Konfiguration und Fehlerbehandlung implementieren.
- Module automatisiert testen, profilieren und wartbar paketieren.
Seminarinhalte
Entwicklungsumgebung und Quellstruktur vorbereiten
- Schritt 1: Rust-Toolchain, Compilerabhängigkeiten, Kernelheader und BTF-Informationen prüfen.
- Schritt 2: Workspace, Crates, vorhandene Module, Beispiele und Teststruktur des Projekts erschließen.
- Schritt 3: Einen reproduzierbaren Build für die Laborarchitektur erstellen und Basistests ausführen.
Modularchitektur und Ereignisbus analysieren
- Schritt 1: Lebenszyklus eines Moduls von Initialisierung über Ereignisproduktion bis Shutdown nachvollziehen.
- Schritt 2: Publisher-, Subscriber- und Konfigurationsbeziehungen im Ereignisbus identifizieren.
- Schritt 3: Verantwortlichkeiten zwischen Kernelprobe, Userspace-Auswertung und nachgelagerten Modulen abgrenzen.
Anwendungsfall und Ereignisschema entwerfen
- Schritt 1: Sicherheitsfrage, benötigten Kernelzeitpunkt und erforderlichen Prozesskontext präzisieren.
- Schritt 2: Minimale Felder, Datentypen, Fehlerwerte und Versionsstrategie für das Ereignis festlegen.
- Schritt 3: Datenschutz, Ereignisvolumen und Kompatibilität mit Regeln und Loggern berücksichtigen.
Geeignete eBPF-Hooks auswählen
- Schritt 1: Tracepoints, Kprobes, LSM-Hooks und andere Anknüpfungspunkte nach Stabilität und Aussagekraft vergleichen.
- Schritt 2: Kernel- und Architekturabhängigkeiten sowie mögliche Race Conditions dokumentieren.
- Schritt 3: Einen Hook wählen, der das Ereignis mit möglichst wenig Overhead und eindeutiger Semantik liefert.
Kernelkomponente implementieren
- Schritt 1: BPF-Datenstrukturen, Maps und sichere Feldzugriffe definieren.
- Schritt 2: Verifier-freundliche Kontrollflüsse und begrenzte Datenmengen umsetzen.
- Schritt 3: Fehlerpfade, verlorene Ereignisse und fehlende Kernelinformationen explizit behandeln.
Userspace-Modul in Rust entwickeln
- Schritt 1: Kernelereignisse einlesen, validieren und in das Pulsar-Ereignisschema übersetzen.
- Schritt 2: Konfigurationswerte, Modulstatus, Start, Stop und saubere Ressourcenfreigabe implementieren.
- Schritt 3: Strukturierte Diagnosemeldungen für Lade-, Laufzeit- und Datenfehler bereitstellen.
Integration in Regeln und Logging
- Schritt 1: Das neue Ereignis so veröffentlichen, dass nachgelagerte Module es zuverlässig verarbeiten können.
- Schritt 2: Repräsentative Regeln für positive und negative Szenarien erstellen.
- Schritt 3: Ausgabe, Feldnamen und Dokumentation auf Verständlichkeit für Regelautoren prüfen.
Tests und Qualitätssicherung
- Schritt 1: Unit-Tests für Parser, Konfiguration und Ereignisumwandlung schreiben.
- Schritt 2: Integrations- und Kerneltests mit kontrollierten Auslösern automatisieren.
- Schritt 3: Fehlende BPF-Funktionen, alternative Kernelstände und Architekturunterschiede als Testfälle aufnehmen.
Performance und Stabilität bewerten
- Schritt 1: Ereignisrate, CPU, Speicher, Map-Nutzung und Verlustquoten messen.
- Schritt 2: Hot Paths und unnötige Datenkopien identifizieren und reduzieren.
- Schritt 3: Lastgrenzen, Sampling oder Filterstrategien dokumentieren, ohne die Sicherheitssemantik zu verfälschen.
Paketierung und Wartung
- Schritt 1: Buildartefakte, Konfiguration, Regeln und Dokumentation versioniert zusammenstellen.
- Schritt 2: Kompatibilitätsangaben und Migrationshinweise für Ereignisschema und Konfiguration definieren.
- Schritt 3: Code Review, Sicherheitsprüfung, Release und Rückfall auf eine vorherige Modulversion organisieren.
Praxisübungen
- Ein eigenes Modul wird von der Sicherheitsfrage bis zum Ereignisschema entworfen.
- Eine eBPF-Probe und das zugehörige Rust-Userspace-Modul werden implementiert und integriert.
- Regeln, Unit-Tests und Kernelintegrationstests werden für das neue Ereignis erstellt.
- Das Modul wird profiliert, optimiert und als versioniertes Paket vorbereitet.
Arbeitsweise
Quellcodeanalyse, Pair Programming, Kerneltests und Profiling führen schrittweise zu einem funktionsfähigen eigenen Modul.
Voraussetzungen
Gute Rust- und Linux-Systemprogrammierkenntnisse. Grundverständnis von eBPF, Kernelereignissen und Pulsar-Architektur wird vorausgesetzt.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Rust-, Kernel-, eBPF- und Embedded-Linux-Entwicklung sowie Security Tooling |
| Voraussetzungen: | Gute Rust- und Linux-Systemprogrammierung; eBPF- und Pulsar-Grundverständnis |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
