Kontakt aufnehmen

Schulungsübersicht

1. IT-Sicherheit und sicheres Programmieren

  • Grundlegende Sicherheitsprinzipien: Vertraulichkeit, Integrität sowie Verfügbarkeit (CIA) im Kontext von Java-Anwendungen.
  • Sicherer Software-Entwicklungszyklus (SSDLC): Integration von Sicherheit vom Anforderungsmanagement bis zur Implementierung.
  • Sicherheitsorientierte Programmieransätze: Verteidigung in Tiefenstufen, Prinzip der geringsten Rechte sowie sichere Standardeinstellungen.
  • Standardisierte Schwachstelleneinteilung: Einführung in CWE (Common Weakness Enumeration) und OWASP.

2. Sicherheit von Webanwendungen

  • Tiefergehende Betrachtung der OWASP Top Ten: Detaillierte Analyse zu Injection-Angriffen, fehlerhafter Authentifizierung sowie Offenlegung sensibler Daten.
  • Cross-Site Scripting (XSS): Untersuchung von reflektiertem, gespeichertem und DOM-basiertem XSS in Java bzw. JSP-Anwendungen.
  • Cross-Site Request Forgery (CSRF): Funktionsweise solcher Angriffe sowie Umsetzung von Anti-CSRF-Token.
  • Sitzungsmanagement: Sicherheit von Cookies, Prävention von Sitzungsfixierung und korrekte Timeout-Einstellungen.
  • API-Sicherheit: Schutz von REST- sowie SOAP-Endpunkten vor Missbrauch.

3. Sicherheit von Webservices

  • Webservices vs. klassische Webanwendungen: Abweichungen hinsichtlich potenzieller Angriffsvektoren.
  • Transportverschlüsselung: Einrichtung von SSL/TLS für Java-Clients und -Server.
  • Nachrichtenverschlüsselung: Gewährleistung der Integrität sowie Vertraulichkeit auf Ebene des Inhalts.
  • Authentifizierungsstandards: Nutzung von OAuth 2.0, OpenID Connect und JWT (JSON Web Tokens).

4. XML-Sicherheit

  • Schwachstellen beim XML-Parsing: Schutz vor Angriffen durch externe Entitäten (XXE).
  • Strikte XML-Schema-Validierung: Empfohlene Methoden zur Durchsetzung strikter Schema-Vorgaben.
  • Digitale Signaturen für XML: Umsetzung von Signaturen zum Nachweis der Unabänderlichkeit.
  • Verschlüsselung von XML-Inhalten: Gängige Verfahren zur Absicherung solcher Daten.

5. Grundlagen der Java-Sicherheit

  • Architektur der Java-Sicherheit: Das Paket java.security sowie das Konzept von Sicherheitsanbietern.
  • Sicherheitsanbieter installieren und konfigurieren: Z. B. Nutzung des Bouncy Castle-Moduls.
  • Zugriffskontrolle: Konfiguration von Policies, Berechtigungen sowie Vergleich klassischer und moderner Sicherheitsmechanismen.
  • Verwaltung von KeyStores: Erstellung sowie Pflege von Zertifikats- und Vertrauensspeichern.

6. Praktische Kryptographie

  • Kryptographische Algorithmen: Überblick über symmetrische (z. B. AES), asymmetrische (RSA, ECC) und Hash-Algorithmen (SHA-256/512).
  • Erzeugung zufälliger Zahlen: Gefahren bei Nutzung von java.util.Random im Vergleich zu java.security.SecureRandom.
  • Schlüsselmanagement: Erstellung, Speicherung sowie regelmäßige Rotation von Schlüsseln.
  • Java Cryptography Architecture (JCA): Nutzung der Klassen Cipher, MessageDigest und Mac.
  • Java Cryptography Extension (JCE): Erklärung von Richtlinien-Dateien sowie länderspezifischen Beschränkungen.

7. Java-Sicherheitsdienste

  • SSL/TLS in Java: Einsatz von SSLSocketFactory sowie HttpsURLConnection.
  • Vertrauensmanager konfigurieren: Individualisierung der Verifizierungsmechanismen in privaten PKI-Umgebungen.
  • Authentifizierung programmatisch steuern: Nutzung von Authenticator.getDefault().
  • Zertifikate verarbeiten: Programmgestütztes Auslesen und Analysieren von X.509-Zertifikaten.

8. Java EE-Sicherheit

  • Deklarative Sicherheit einrichten: Rollenbasierte Zugriffskontrolle mittels web.xml und Annotationen.
  • Programmatische Sicherheitsverwaltung: Abfragen nach Nutzerrollen mit HttpServletRequest.isUserInRole() bzw. Identifikation per getRemoteUser().
  • Einrichtung von JAAS (Java Authentication and Authorization Service): Konfiguration von login.conf und eigene Implementierungen mittels LoginModule.
  • Sicherheitsvorgaben für Servlets festlegen: Definierung von Zugangsbedingungen sowie Authentifizierungsarten (FORM, BASIC, DIGEST).

9. Häufige Programmierfehler und Schwachstellen

  • Insecure Deserialization: Gefahren beim Umgang mit ObjectInputStream sowie Risiken bei Umgehung von Sicherheitsprüfungen.
  • Befehlsinjektion verhindern: Schutz vor Ausführung unbefugter OS-Befehle.
  • Sichere Verarbeitung von Dateipfaden: Vorbeugung gegen Directory-Traversal-Angriffe.
  • Missbräuchliche Nutzung der Reflection-API: Risiken bei java.lang.reflect und Umgehung bestehender Zugriffsrestriktionen.
  • Sichere Handhabung vertraulicher Daten: Identifikation sowie Entfernung fester Kennwörter aus dem Quellcode.
  • Typische Fehler bei der Kryptographie-Anwendung: Vermeidung von schwachen Verschlüsselungsmodi, unzureichenden Schlüsseln oder statischen Initialisierungsvektoren.

10. Ressourcen zum Sicherheitswissen

  • Statische Analysewerkzeuge: Nutzung von SonarQube, Checkmarx und Fortify zur automatisierten Fehlersuche.
  • Dynamische Analysetools: Einführung in Burp Suite sowie OWASP ZAP.
  • CVE-Datenbanken nutzen: Informationsbeschaffung zu neuen Schwachstellen im Java-Umfeld und deren Reaktionsmaßnahmen.
  • Empfohlene Literaturliste: Bücher, offizielle Dokumentation sowie Checklisten für sicheres Programmieren.

Voraussetzungen

Keine Voraussetzungen.

 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (4)

Kommende Kurse

Verwandte Kategorien