Sichere Web-Anwendungen entwickeln
Das Web 2.0 und neue Programmiertechniken öffnen auch immer neue Angriffsflächen für Hacker. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat zu diesem Thema einen ›Maßnahmenkatalog und Best Practices für Sicherheit von Webanwendungen‹ herausgegeben. Dieses Seminar behandelt sowohl die BSI-Richtlinien als auch weiterführende Techniken, mit denen Entwickler ihre Web-Anwendungen und Server vor Cracking und Datendiebstahl schützen können. Teilnehmer lernen durch praxisnahe Anwendungsbeispiele sowohl Schwachstellen vor der Entwicklung aufzudecken und zu schließen, als auch bestehende Anwendungen vor Angriffen zu schützen.
Inhalte des Seminars
Grundlagen sicherer Web-Anwendungen
- Was bedeutet Sicherheit?
- Minimalitätsprinzip für Informationen
- Ebenenmodell zur Sicherheitskonzeption
- Social Engineering-Angriffe
- Programmierfehler
- Verschlüsselung SSL/TLS/HTTPS
- Authentifizierungsverfahren im Web, Benutzerkennungen
- Absicherung der Systemplattform
- Ältere Web-Anwendungen überprüfen
- Vorgehensmodell bei neuen Web-Anwendungen
- Microsofts STRIDE Model
- Das ›Open Web Application Security Project‹ (OWASP)
Formulardaten und allgemeine Datenübergaben via HTTP
- Manipulierte Benutzereingaben
- Strategien zur Verhinderung von Parametermanipulationen
- Parametermanipulation über GET und POST
- Datenvalidierung, Filterung
- Client-Validierung und Server-Validierung
- Header-Manipulation
- Directory Traversal (Path Traversal) verhindern
Cross-Site Scripting (XSS)
- Das Prinzip der Code-Injizierung
- Gefahren durch Injizierung von HTML (Defacement) und Client-seitigen Skripten
- Whitelist-Verfahren und Blacklist-Verfahren
- Filterung von HTML-Tags
- Sicherheit von JavaScript
- DOM-based (Type 0) XSS Verwundbarkeit (local cross-site scripting)
- Non-persistent (Type 1) Verwundbarkeit
- Persistent (Type 2) Verwundbarkeit
- Frame Injection
Authentifizierung und sichereres Session Management
- Authentifizierung von Clients
- Wie kommt der Zustand in das zustandslose HTTP?
- URL-Rewriting, Cookies, Session-ID
- Sichere Session-IDs
- Referrer-Leck verhindern
- Secure-Flag von Cookies, HttpOnly-Flag
- Gültigkeitsdauer einer Session, SessionID erneuern, Session beenden
- Nutzung von Tokens
- IP-Adresse an die Session binden, Proxy-Architektur berücksichtigen
- Sichere URL-Weiterleitungen (Redirects)
- ›Cross-Site Request Forgery‹ (CSRF) als verwandter Angriff
Datenbankgetriebene Webseiten
- Was ist SQL-Injection?
- Beispiele und Vermeidungsstrategien
- First Order, Second Order SQL-Injection
- Escape-Funktionen verschiedener Programmbibliotheken
- Absichern durch Prepared Statements und OR-Mapper
- Datenbanken sicher konfigurieren, Privilegien bei Abfragen/Änderungen
- Allgemeine Probleme durch Remote-Command Execution
Absichern der Serverumgebung
- Ungewollte Veröffentlichung interner Informationen
- Kommentar einer Webseite
- Informationen über Serverumgebung verschleiern
- Einholen von Fingerprints über Web-Server, Betriebssystem unterbinden
- Namenserweiterungen richtig setzen
- Fehlerseiten
- Logging, Monitoring und Patching
- Rechtevergabe, Dateiberechtigungen für Verzeichnisse
- Benutzerkennung für Web-Server und Datenbank
Verhinderung von Denial-of-Service Attacken
- Welche automatisierten Angriffe gibt es?
- Angreifbarkeit des Passworts
- Rätselfrage
- Mustererkennung (Captchas)
- Blocken und Verzögern von Zugriffen
Verteidigung durch Web Shields und Web-Scanner
- Web Application Firewalls, Web Shields
- Schutz des Apache Web-Servers
- Application-Level-Firewall mit Apache
mod_security
- Web Application Scanner (Web Scanner)
- Code-Scanner und Tools für Penetration Tests
- Kommerzielle und freie Tools im Überblick
- Sicherheitstestplan entwickeln und Sicherheitstest durchführen
- Rechtliche Aspekte von Web-Scannern
Weitere Sicherheitsbemerkungen
- Obfuscation/Decompilierung von Java-Applets, Flash-/Silverlight-Anwendungen
- HTML and JavaScript durch Google Caja absichern
- Ajax Security, JavaScript Hijacking
- Google als Hacking Tool
- Persistent Cookies, Cached Web Content
- Browser History
- Umsetzung der Angriffsmethoden in der Praxis
- Wie ein Hacker bei Web-Angriffen vorgeht
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Anwendungsentwickler, Projektleiter, Sicherheitsbeauftragte, Administratoren
- Seminar-Software: Das Seminar ist programmiersprachenunabhängig und ist für alle serverseitigen Technologien wie PHP, Java, .NET gültig. Bezüge zu aktuellen Bibliotheken sind gewährleistet.
Weiterführende Seminare
In den Seminaren JavaServer Faces 2, JavaServer Pages (JSP) und Servlets, ASP.NET für Web-Applikationen, GWT Web Toolkit (Google Web Toolkit) lernen Teilnehmer Möglichkeiten kennen, welche Sicherungsmöglichkeiten ihr Web-Framework bietet.