Kontakt aufnehmen

Schulungsübersicht

1. IT-Sicherheit und sicheres Codieren

  • Grundlegende Sicherheitsprinzipien: Vertraulichkeit, Integrität und Verfügbarkeit (CIA) im Kontext von Java-Anwendungen.
  • Lebenszyklus der sicheren Softwareentwicklung (SSDLC): Integration von Sicherheit von den Anforderungen bis zur Bereitstellung.
  • Sicherheits-Coding-Paradigmen: Defense in Depth, Prinzip der geringsten Rechte und sichere Standardwerte.
  • Standard-Klassifizierung von Verwundbarkeiten: Verständnis von CWE (Common Weakness Enumeration) und OWASP.

2. Sicherheit von Webanwendungen

  • Tiefergehende Analyse der OWASP Top Ten: Detaillierte Untersuchung von Injection, gebrochener Authentifizierung 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.
  • Sitzungsverwaltung: Cookie-Sicherheit, Session-Fixation und Timeout-Verwaltung.
  • API-Sicherheit: Absicherung von REST- und SOAP-Endpunkten vor Missbrauch.

3. Sicherheit von Webdiensten

  • Webdienste vs. traditionelle Web-Apps: Unterschiede in der Angriffsfläche.
  • Sicherheit der Transportschicht: 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

  • XML-Parsing-Verwundbarkeiten: Verhinderung von XML-External-Entity-(XXE)-Angriffen.
  • XML-Schema-Validierung: Best Practices für die strenge Durchsetzung von Schemata.
  • XML-Digital signatures: 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.
  • Sicherheits-Provider: 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 Kryptographie

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

7. Java-Sicherheitsdienste

  • SSL/TLS in Java: Verwendung von SSLSocketFactory und HttpsURLConnection.
  • Trust Managers: Anpassung der Vertrauensüberprüfung für private PKI-Umgebungen.
  • Authenticators: Programmatische Authentifizierung unter Verwendung von Authenticator.getDefault().
  • Zertifikats-Parsing: Lesen und analytisches Untersuchen von X.509-Zertifikaten programmatisch.

8. Java EE-Sicherheit

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

9. Häufige Codierfehler und Verwundbarkeiten

  • Insecure Deserialization: Die Risiken von ObjectInputStream und das Umgehen von Sicherheitschecks.
  • Befehlsinjektion: Minderung von Schwachstellen auf OS-Ebene.
  • Pfad-Traversing: Bereinigung von Dateisystem-Eingaben zur Verhinderung von Directory-Traversing.
  • Missbrauch von Reflection: Risiken im Zusammenhang mit java.lang.reflect und dem Umgehen der Zugriffskontrolle.
  • Harckodierte Anmeldeinformationen: Identifizieren und Entfernen von Geheimnissen aus dem Quellcode.
  • Fehler bei der Implementierung von Kryptographie: Verwendung des ECB-Modus, schwacher Schlüssel oder statischer IVs.

10. Wissensquellen

  • Statische Analyse-Tools: Verwendung von SonarQube, Checkmarx und Fortify für automatisiertes Scannen.
  • Dynamische Analyse-Tools: Überblick über Burp Suite und OWASP ZAP.
  • CVE-Datenbanken: Wie man neuen Java-Framework-Verwundbarkeiten folgt und darauf reagiert.
  • Empfohlene Lesestoffe: Liste von Büchern, Dokumentation und Checklisten für sicheres Codieren.

Voraussetzungen

Keine.

 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (4)

Kommende Kurse

Verwandte Kategorien