Seminarinformationen

Seminar - Ziel

In dieser 2-tägigen Schulung "Rust Security - Sichere Entwicklung robuster Anwendungen" lernen Sie, wie Sie mit Rust sichere und zuverlässige Anwendungen entwickeln. Sie werden verstehen, wie die einzigartigen Sicherheitsmechanismen von Rust – insbesondere Ownership, Borrowing und Typensicherheit – dazu beitragen, häufige Programmierfehler zu vermeiden und speichersichere Software zu erstellen. Durch praxisorientierte Übungen vertiefen Sie Ihr Wissen, indem Sie unsicheren Code in sichere Rust-Lösungen umwandeln und effektive Techniken zur Fehlerbehandlung anwenden. Zudem beschäftigen Sie sich mit sicherer Netzwerkprogrammierung, Kryptographie und dem Management externer Abhängigkeiten unter Verwendung von Tools wie Clippy und cargo audit. Ziel des Kurses ist es, Ihnen die notwendigen Fähigkeiten zu vermitteln, um sichere, leistungsstarke und wartbare Anwendungen erfolgreich zu entwickeln und zu betreiben.

Teilnehmer - Zielgruppe

Entwickler

Kurs - Voraussetzungen

Grundlegende Kenntnisse in Rust

Seminardauer

  • 2 Tage
  • 09:00 Uhr bis 17:00 Uhr

Schulungsunterlagen

  • nach Absprache

Seminar-Inhalt / Agenda

Einführung in Sicherheit in Rust

  • Warum Rust: Überblick über die Philosophie von Rust (Memory Safety, Concurrency ohne Datenrennen)
  • Sicherheitsvorteile von Rust im Vergleich zu C, C++, und Java
  • Praxis: Einfache Beispiele zur Demonstration von Ownership und Sicherheitsgarantien

Praktische Sicherheit in Rust

  • Ownership und Borrowing
    • Praxisorientiertes Arbeiten mit Referenzen, Borrowing und Lifetimes.
    • Typische Fehler verstehen und durch Rust-Prinzipien vermeiden
    • Übungen: Refactoring von unsicherem Pseudo-C-Code in sicheren Rust-Code
  • Error Handling als Sicherheitsstrategie
    • Umgang mit Result und Option
    • Wie Rust mit Panics und Fehlerweitergabe umgeht
    • Übungen: Fehler sicher behandeln und propagieren

Arbeit mit externen Abhängigkeiten

  • Sicherheitsbewertung von Abhängigkeiten mit cargo audit
  • Strategien zur sicheren Integration von externen Bibliotheken
  • Umgang mit unsicheren Funktionen (unsafe block)
  • Praxis: Sicherheitsprüfung eines realen Projekts mit Tools wie Clippy und RustSec

Sicherheit in Netzwerkprogrammierung und Kryptographie

  • Grundlagen sicherer Netzwerkprogrammierung
    • Schutz vor häufigen Angriffen (Injection, DOS, etc.)
    • Sicherer Umgang mit Nutzereingaben und Protokollen
  • Kryptographie in Rust
    • Einführung in ring, sodiumoxide und andere Libraries
    • Praxis: Implementierung eines kleinen sicheren Protokolls

Testing und Fuzzing in Rust

  • Einführung in Sicherheitstests: Unit-Tests mit Fokus auf Sicherheit
  • Fuzzing mit cargo-fuzz: Automatisiertes Erkennen von Schwachstellen
  • Praxis: Setup und Ausführung eines Fuzzing-Tests

Deployment und Betrieb

  • Sicherheitsaspekte bei der Bereitstellung: Logging und Monitoring
  • Strategien zur kontinuierlichen Sicherheitsverbesserung
  • Praxis: Einrichtung eines einfachen Überwachungs- und Alerting-Systems für eine Rust-Anwendung

Weitere Schulungen zu Thema Rust

Rust - Einführung

- u.a. in Nürnberg, Berlin, Stuttgart, München, Köln

In dieser 3-tägigen Schulung "Rust - Einführung" erhalten Sie eine fundierte Einführung in die Programmiersprache Rust. Sie lernen die Entstehung, die Philosophie und die einzigartigen Merkmale von Rust im Vergleich zu anderen Programmiersprachen kennen. Der Kurs ...

Rust - Fortgeschrittenenkurs

- u.a. in Nürnberg, Berlin, Stuttgart, München, Köln

In dieser 3-tägigen Schulung "Rust - Fortgeschrittenenkurs" erweitern Sie Ihre Rust-Kenntnisse, mit dem Fokus auf fortgeschrittene Konzepte. Der Kurs bietet praxisorientierte Einblicke in Themen wie asynchrone Funktionen, Ownership, fortgeschrittene Programmierung, ...

Rust für Embedded Systems - Grundlagen bis Sicherheit

- u.a. in Hamburg, Köln, Paderborn, Dresden, Heidelberg

In diesem 3-tägigen Seminar "Rust für Embedded Systems - Grundlagen bis Sicherheit" erwerben die essenziellen Fähigkeiten und für die Entwicklung in Rust inetteten Systemen. Von der Einrichtung der Entwicklungsumgebung mit echter Cortex-M Hardware und QEMU bis hin ...

Rust - Entwicklung von Netzwerkdiensten

- u.a. in Bremen, Hannover, Leipzig, Paderborn, Freiburg

In dieser 3-tägigen Schulung "Rust - Entwicklung von Netzwerkdiensten" erwerben Sie fundierte Kenntnisse in der effizienten Entwicklung von Netzwerkdiensten mit Rust. Sie lernen, TCP/IP-Clients und Server-Sockets zu erstellen, einfache REST-Clients zu entwickeln und ...