Kontakt aufnehmen

Schulungsübersicht

1. IT-Sicherheit und sichere Programmierung

  • Grundlegende Sicherheitsprinzipien: Vertraulichkeit, Integrität und Verfügbarkeit (CIA) im Kontext von Java-Anwendungen.
  • Sicherer Softwareentwicklungslebenszyklus (SSDLC): Integration der Sicherheit von den Anforderungen bis zur Bereitstellung.
  • Paradigmen der sicheren Programmierung: Verteidigung in der Tiefe, Minimale Berechtigung und sichere Standardwerte.
  • Standardisierte Klassifizierung von Schwachstellen: Verständnis von CWE (Common Weakness Enumeration) und OWASP.

2. Sicherheit von Webanwendungen

  • Tiefe Analyse der OWASP Top Ten: Detaillierte Untersuchung von Injektionen, gebrochener Authentifizierung und der Preisgabe sensibler Daten.
  • Cross-Site Scripting (XSS): Szenarien für reflektiertes, gespeichertes und DOM-basiertes XSS in Java/JSP.
  • Cross-Site Request Forgery (CSRF): Angriffsmechanismen und Implementierung von Anti-CSRF-Tokens.
  • Sitzungsverwaltung: Cookie-Sicherheit, Sitzungsfestlegung und Zeitüberschreitungverwaltung.
  • API-Sicherheit: Absicherung von REST- und SOAP-Endpunkten gegen Missbrauch.

3. Sicherheit von Webservices

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

4. XML-Sicherheit

  • Schwachstellen beim XML-Parsing: Vermeidung von XML External Entity (XXE)-Angriffen.
  • XML-Schema-Validierung: Best Practices für die strikte Durchsetzung von Schemata.
  • XML-Digitalsignaturen: Implementierung von Signaturen zur Sicherstellung der Nichtabstreitbarkeit.
  • XML-Verschlüsselung: Standardansätze zur Verschlüsselung von XML-Inhalten.

5. Grundlagen der Java-Sicherheit

  • Java-Sicherheitsarchitektur: Das java.security-Paket und die Anbieter-Architektur.
  • Sicherheitsanbieter: Installation und Konfiguration von Anbietern wie Bouncy Castle.
  • Zugriffskontrolle: Policy-Dateien, Berechtigungen und der Security Manager (Legacy vs. Modern).
  • KeyStore-Verwaltung: Erstellung und Verwaltung von Keystores und Truststores für Zertifikate.

6. Praktische Kryptografie

  • Kryptografische Algorithmen: Übersicht ü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 für Schlüsselgenerierung, -speicherung und -rotation.
  • Java Cryptography Architecture (JCA): Nutzung der Klassen Cipher, MessageDigest und Mac.
  • Java Cryptography Extension (JCE): Verständnis von Policy-Dateien und unbegrenzter Schlüsselstärke.

7. Java-Sicherheitsdienste

  • SSL/TLS in Java: Verwendung von SSLSocketFactory und HttpsURLConnection.
  • Trust Managers: Anpassung der Vertrauensverifizierung für private PKI-Umgebungen.
  • Authentifizierer: Programmatische Authentifizierung unter Verwendung von Authenticator.getDefault().
  • Zertifikatsanalyse: Programmables Lesen und Analysieren von X.509-Zertifikaten.

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 Sicherheitsbeschränkungen und Authentifizierungsmethoden (FORM, BASIC, DIGEST).

9. Häufige Programmierfehler und Schwachstellen

  • Unsichere Deserialisierung: Die Risiken von ObjectInputStream und das Umgehen von Sicherheitsprüfungen.
  • Befehlssprachen-Injektion: Minderung von OS-Ebene-Ausführungs-Schwachstellen.
  • Pfaddurchbrüche: Bereinigung von Dateisystemeingaben zur Verhinderung von Verzeichnisdurchbrüchen.
  • Missbrauch von Reflection: Risiken, die mit java.lang.reflect und dem Umgehen der Zugriffskontrolle verbunden sind.
  • Hardcodierte Anmeldeinformationen: Identifizierung und Entfernung von Geheimnissen aus dem Quellcode.
  • Fehler bei der Kryptografie-Implementierung: Verwendung von ECB-Modus, schwachen Schlüsseln oder statischen IVs.

10. Wissensquellen

  • Werkzeuge zur statischen Analyse: Verwendung von SonarQube, Checkmarx und Fortify für automatisierte Scans.
  • Werkzeuge zur dynamischen Analyse: Übersicht über Burp Suite und OWASP ZAP.
  • CVE-Datenbanken: So verfolgen und reagieren Sie auf neue Schwachstellen im Java-Framework.
  • Empfohlene Literatur: Liste von Büchern, Dokumentationen und Checklisten für die sichere Programmierung.

Voraussetzungen

Keine.

 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (4)

Kommende Kurse

Verwandte Kategorien