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 zum Deployment.
  • Paradigmen sicheres Programmieren: Defense in Depth, Least Privilege und fehlersichere Voreinstellungen (Fail-safe Defaults).
  • Standardisierte Einordnung 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, kaputter Authentifizierung (Broken Authentication) und Exposition sensibler Daten.
  • Cross-Site Scripting (XSS): Reflektierte, gespeicherte und DOM-basierte XSS-Szenarien in Java/JSP.
  • Cross-Site Request Forgery (CSRF): Angriffsmechanismen und Implementierung von Anti-CSRF-Tokens.
  • Session-Management: Cookie-Sicherheit, Session-Fixation und Timeout-Management.
  • API-Sicherheit: Absicherung von REST- und SOAP-Endpunkten gegen Missbrauch.

3. Sicherheit von Webdiensten

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

4. XML-Sicherheit

  • Schwachstellen beim XML-Parsing: Verhinderung von XML-External-Entity-(XXE)-Angriffen.
  • XML-Schema-Validierung: Best Practices für die strenke Durchsetzung von Schemas.
  • 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.
  • Sicherheitsanbieter: Installation und Konfiguration von Providern wie Bouncy Castle.
  • Zugriffskontrolle: Richtwert-Dateien (Policy Files), Berechtigungen und der Security Manager (Legacy vs. Modern).
  • KeyStore-Verwaltung: Erstellen und Verwalten von Keystores und Truststores für Zertifikate.

6. Praktische Kryptografie

  • Kryptographische Algorithmen: Überblick über symmetrische (AES), asymmetrische (RSA, ECC) und Hash-Algorithmen (SHA-256/512).
  • Zufallszahlengenerierung: Die Gefahren von java.util.Random im Gegensatz zu java.security.SecureRandom.
  • Key Management: Strategien für die Generierung, Speicherung und Rotation von Schlüsseln.
  • Java Cryptography Architecture (JCA): Nutzung der Klassen Cipher, MessageDigest und Mac.
  • Java Cryptography Extension (JCE): Verständnis von Policy-Dateien und unbegrenzter Stärken-Jurisdiktion.

7. Java-Sicherheitsdienste

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

8. Java EE Security

  • Deklarative Sicherheit: Rollengestützte Zugriffskontrolle (RBAC) mittels web.xml und Annotationen.
  • Programmatic Security: Verwendung von HttpServletRequest.isUserInRole() und getRemoteUser().
  • J.A.S.P. (Java Authentication and Authorization Service): Konfiguration von login.conf und Implementierung von LoginModules.
  • Servlet-Sicherheit: Container-gesteuerte Sicherheitsrichtlinien und Authentifizierungsmethoden (FORM, BASIC, DIGEST).

9. Häufige Programmierfehler und Schwachstellen

  • Insecure Deserialization: Die Risiken von ObjectInputStream und das Umgehen von Sicherheitsprüfungen.
  • Command Injection: Abschwächung von verwundbarkeiten zur Ausführung auf Betriebssystemebene.
  • Path Traversal: Bereinigung von Dateisystem-Eingaben, um Directory-Traversal-Angriffe zu verhindern.
  • Missbrauch von Reflection: Risiken im Zusammenhang mit java.lang.reflect und das Umgehen der Zugriffskontrolle.
  • Hart kodierte Zugangsdaten: Identifizieren und Entfernen von Secrets aus dem Quellcode.
  • Fehler bei der Implementierung von Kryptografie: Nutzung des ECB-Modus, schwacher Schlüssel oder statischer IVs.

10. Informationsquellen

  • Statische Analyse-Tools: Einsatz von SonarQube, Checkmarx und Fortify für automatisierte Scans.
  • Dynamische Analyse-Tools: Überblick über Burp Suite und OWASP ZAP.
  • CVE-Datenbanken: So verfolgen und reagieren Sie auf neue Schwachstellen im Java-Framework.
  • 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