Kontakt aufnehmen

Schulungsübersicht

1. IT-Sicherheit und sicheres Programmieren

  • Fundamentale Sicherheitsprinzipien: Vertraulichkeit, Integrität und Verfügbarkeit (CIA) im Kontext von Java-Anwendungen.
  • Sicherer Software-Entwicklungslebenszyklus (SSDLC): Integration von Sicherheit von den Anforderungen bis zur Bereitstellung.
  • Paradigmen des sicheren Programmierens: Defense in Depth, Least Privilege und sichere Standardvoreinstellungen (fail-safe defaults).
  • Standardklassifizierung von Schwachstellen: Verständnis von CWE (Common Weakness Enumeration) und OWASP.

2. Sicherheit von Webanwendungen

  • Tiefgehende Analyse der OWASP Top Ten: Detaillierte Untersuchung von Injection, gebrochener Authentifizierung und Exposition sensibler Daten.
  • Cross-Site Scripting (XSS): Reflektiertes, gespeichertes und DOM-basiertes XSS in Java/JSP.
  • Cross-Site Request Forgery (CSRF): Angriffsmechanismen und Implementierung von Anti-CSRF-Tokens.
  • Sitzungsverwaltung: Cookie-Sicherheit, Session Fixation und Timeout-Management.
  • API-Sicherheit: Absicherung von REST- und SOAP-Endpunkten gegen Missbrauch.

3. Sicherheit von Webservices

  • Webservices im Vergleich zu traditionellen Webanwendungen: Unterschiede in der Angriffsfläche.
  • Sicherheit auf Transportschicht: SSL/TLS-Konfiguration für Java-Clients und -Server.
  • Nachrichtensicherheit: Integrität und Vertraulichkeit auf Payload-Ebene.
  • Authentifizierungsstandards: OAuth 2.0, OpenID Connect und Implementierung von JWT (JSON Web Tokens).

4. XML-Sicherheit

  • Schwachstellen beim XML-Parsing: Verhindern von XML External Entity (XXE)-Angriffen.
  • XML-Schema-Validierung: Best Practices für eine strikte Schema-Durchsetzung.
  • XML-Digital Signaturen: Implementierung von Signaturen zur Gewährleistung der Nichtabstreitbarkeit.
  • XML-Verschlüsselung: Standardansätze zur Verschlüsselung von XML-Inhalten.

5. Grundlagen der Java-Sicherheit

  • Die Java-Sicherheitsarchitektur: Das Paket java.security und die Provider-Architektur.
  • Sicherheitsprovider: Installation und Konfiguration von Providern wie Bouncy Castle.
  • Zugriffskontrolle: Richtlinien-Dateien, Berechtigungen und der Security Manager (Legacy vs. Modern).
  • KeyStore-Verwaltung: Erstellen und Verwalten von KeyStores und TrustStores für Zertifikate.

6. Praxisnahe Kryptografie

  • Kryptographische Algorithmen: Überblick über symmetrische (AES), asymmetrische (RSA, ECC) und Hash-Algorithmen (SHA-256/512).
  • Zufallszahlengenerierung: Die Gefahren von java.util.Random gegenüber java.security.SecureRandom.
  • Schlüsselverwaltung: Strategien zur Schlüsselerzeugung, -speicherung und -rotation.
  • Java Cryptography Architecture (JCA): Verwendung der Klassen CipherMessageDigest und Mac.
  • Java Cryptography Extension (JCE): Verständnis von Richtliniendateien und unbegrenzter Krypto-Stärke in Jurisdiction-Dateien.

7. Java-Sicherheitsdienste

  • SSL/TLS in Java: Verwendung von SSLSocketFactory und HttpsURLConnection.
  • Trust Manager: Anpassung der Vertrauensprüfung für private PKI-Umgebungen.
  • Authenticator: Programmatische Authentifizierung mittels Authenticator.getDefault().
  • Zertifikats-Parsing: Lesen und Analysieren von X.509-Zertifikaten programmatisch.

8. Java EE-Sicherheit

  • Deklarative Sicherheit: Rollenbasierte Zugriffskontrolle (RBAC) unter Verwendung von web.xml und Annotationen.
  • Programmatische Sicherheit: Nutzung von HttpServletRequest.isUserInRole() und getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Konfiguration von login.conf und Implementierung von LoginModules.
  • Servlet-Sicherheit: Container-verwaltete Sicherheitseinschränkungen und Authentifizierungsmethoden (FORM, BASIC, DIGEST).

9. Häufige Programmierfehler und Schwachstellen

  • Insecure Deserialization: Die Risiken von ObjectInputStream und das Umgehen von Sicherheitschecks.
  • Kommandozeilen-Injection (Command Injection): Abschwächung von Schwachstellen der OS-Level-Ausführung.
  • Path Traversal: Bereinigung von Dateisystem-Eingaben, um Directory Traversal zu verhindern.
  • Missbrauch von Reflection: Risiken im Zusammenhang mit java.lang.reflect und das Umgehen der Zugriffskontrolle.
  • Hartcodierte Zugangsdaten: Erkennen und Entfernen von Geheimnissen aus dem Quellcode.
  • Fehler bei der Implementierung von Kryptografie: Verwendung des ECB-Modus, schwacher Schlüssel oder statischer IVs (Initialisierungsvektoren).

10. Wissensquellen

  • Statische Analyse-Tools: Nutzung von SonarQube, Checkmarx und Fortify für automatisiertes Scannen.
  • Dynamische Analyse-Tools: Überblick über Burp Suite und OWASP ZAP.
  • CVE-Datenbanken: Wie man neue Schwachstellen im Java-Framework verfolgt und darauf reagiert.
  • Empfohlene Lektüre: Liste von Büchern, Dokumentation und Checklisten für sicheres Programmieren.

Voraussetzungen

Keine.

 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (4)

Kommende Kurse

Verwandte Kategorien