Seminar Secure Coding mit Java EE Entwicklung einbruchssicherer Webanwendungen und Webservices unter Java EE
ZieleAls Ziel dieses Kurses sollen alle Kursteilnehmer ein grundlegendes Verständnis der Gefährdungen für Webanwendungen allgemein erlangen und in der Lage sein, sichere Webanwendungen unter Java EE zu entwerfen, implementieren und nach bekannten Schwachstellen zu untersuchen.
Anforderungen* Allgemeine Java-Programmierkenntnisse * Kenntnisse zur Webentwicklung (HTML, JSP, Servlets) * Besuch des SIGS-DATACOM-Seminars "Best Practices für sichere Webanwendungen" hilfreich aber nicht erforderlich
InhaltWebanwendungen werden in Unternehmen zunehmend für die Abbildung kritischer Geschäftsprozesse eingesetzt. Dabei werden über das Webportal eine Vielzahl von Diensten für Kunden und Lieferanten bereitgestellt. Die Sicherheit von Webanwendungen und Webservices gewinnt daher zunehmen an Bedeutung. Anwendungssicherheit wird allerdings häufig vor allem mit den Themen Authentisierung, Autorisierung und Verschlüsselung in Verbindung gebracht. Dabei lassen sich jedoch heutige Angriffe auf Webanwendungen vielfach auf Fehler in der Datenvalidierung oder im Session Management zurückführen.
Dieser Kurs vermittelt Softwareentwicklern das Wissen, um Webanwendungen nachhaltig sicher zu entwickeln:
- Wie Angriffe gegen Webanwendungen durchgeführt werden
- Wie sich Fehler in der Implementierungs- und Entwurfphase vermeiden lassen
- Wie sich Schwachstellen in Javacode identifizieren lassen
- Sicheres Deployment - Absicherung vorhandener Anwendungen mit minimalem Aufwand
- Anwendung Java Security APIs, Frameworks und Tools
Der Kurs setzt dabei auf anerkannte Best Practices und langjährige Erfahrungen der SecureNet sowie des Kursleiters in diesem Bereich auf. Es kann dabei auf spezifische Wünsche der Kursteilnehmer eingegangen werden. In zahlreichen Übungen werden die Inhalte anhand praktischer Beispiele vertieft und nachvollzogen.
Seminarinhalt
* Generelle Probleme von Internet Architekturen
- Einführung in HTTP
- Session Managment & Cookies
- Enkodierungen
* Ausnutzung von Schwachstellen in Java Code
- Wie werden Schwachstellen von Angreifern ausgenutzt?
- Welche Konsequenzen ergeben sich daraus für die Entwicklung?
* Entwicklung sicher Webanwendungen unter Java EE
- Prinzipien sicherer Anwendungsentwicklung
- Eingabe- und Ausgabevalidierung
- Authentisierung
- Session Management
- Access Controls
- Einsatz von Kryptographie
- Fehlerbehandlung und Logging
- Absicherung der Bussiness Logik
- Sicherheit von WebServices
* Auditierung von Javacode
- Vorgehensweise beim manuellen Code Review
- Automatische Source Code Analyse
* Weitere Kursinhalte
- Sicherheit in Software-Entwicklungsprozessen
- Software Security Development Lifecycle (SDLC)
- Architektur & Deploymentstragegien
- Einsatz von MVC-Frameworks (z.B. Struts, Spring MVC)