Online-Portale 2.0: Security ist auch ein Web-Design-Thema Dirk Reimers Bereichsleiter Pentest / Forensik secunet Security Networks AG +49 201 54 54-2023 dirk.reimers@secunet.com
Vorstellung Dirk Reimers Dipl. Inform. (Studium u.a. bei Prof. Dr. Klaus Brunnstein) nach dem Studium DFN-CERT (bis 1998) secunet seit 1999 BSI-geprüfter Pentester Bereichsleiter Pentest und Forensik 2
Eine kurze Betrachtung der Realität Online-Auftritte werden unverzichtbarer Bestandteil des Unternehmens Zunehmende Vernetzung und Komplexität Systeme werden immer vernetzter und damit komplexer Historische Fehler werden trotzdem immer wieder gemacht Neue Systeme erschließen neue Fehlerquellen Neue Anwendungen werden getestet. Immer. Nicht immer noch von Ihnen 3
Ruhm und Ehre durch Defacing Script-Kiddies Ziele der Angreifer direkte Geldquelle Nutzung von Unternehmens-Daten, die im Portal gespeichert sind indirekte Geldquelle Nutzung von Kunden-Daten, die im Portal gespeichert sind (Adressen, E-Mails, Passworte) Verbreitung von Schadsoftware Aufstellen einer Armee von Zombie-Systemen 4
Vorgehen bei einem Angriff Informationsbasis für typische Angriffe siehe OWASP Top 10 A1 Injection A2 Broken Authentication and Session Management A3 Cross-Site Scripting (XSS) A4 Insecure Direct Object References A5 Security Misconfiguration A6 Sensitive Data Exposure A7 Missing Function Level Access Control A8 Cross-Site Request Forgery (CSRF) A9 Using Components with Known Vulnerabilities A10 Unvalidated Redirects and Forwards 5
Ein Angriff am Beispiel eines Web-Portals Wie funktioniert ein Web-Portal Benutzer senden Zeichen Portal wertet diese Zeichen aus Portal antwortet dem Benutzer alles ist gut Angriffe stecken in der Formulierung der Eingabezeichen Starten von ungeschützten Funktionen Variation von Eingabewerten Verwendung unerwarteter Eingaben (Buchstaben statt Ziffern) Einbetten von Skripten Einbetten von SQL Befehlen 6
Beispiel Cross-Site-Scripting Wie funktionieren Angriffe Suchstring: " /><script>alert(1)</script> <" HTML <input type="text" name="tx_indexedsearch[sword]" value "" /><script>alert(1)</script> <""/> Suchstring beendet Input Tag und startet ein Skript Hinterlegen von Code in Snipplets, Gästebüchern, Kommentaren 7
Injection (Beispiel PHP) Ausführen von simplen Befehlen in der URL (phpinfo()) Komplexe Shell-Umgebungen sind möglich 8
alte Dateien im Web-Verzeichnis Editoren speichern teilweise temporäre Versionen von bearbeiteten Dokumenten Arbeitsversionen haben geänderte Suffixe (.php~) Web-Server liefern diese Dateien im Klartext aus Dateien können automatisiert gefunden werden 9
Cross-Site-Request-Forgery Voraussetzung: Gültige Sitzung zum Zielportal Remote Aufrufen von Funktionen des Ziel-Portals aus einer anderen Web-Seite Java-Script fügt Aktionen für den Benutzer aus unkritisches Testobjekt Logout kritische Funktionen: Ändern des Passwortes Hinzufügen von Benutzern Löschen von Dateien 10
SQL-Injection Einfügen von SQL-Befehlen in Web-Seiten Sonderzeichen ; (beendet einen SQL-Befehl) Sonderzeichen -- (Rest der Zeile ist Kommentar) Antworten kommen häufig in Fehlermeldungen http://imgs.xkcd.com/comics/exploits_of_a_mom.png 11
möglicher Schaden Image Verlust Defacing Informationsabfluss Kundendaten Verstoss gegen Richtlinien und Gesetze Schutz personenbezogener Daten Strafbarkeit (bspw. Computersabotage) im Falle der Verbreitung von Angriffstools über den eigenen Server 12
Komponentenauswahl einer Web-Plattform Betriebssysteme Windows / Linux Web-Server IIS / apache / nginx /... Programmiersprachen vb / php / python / html(5) /... Content-Management-Systeme wordpress vs. joomla vs. typo3 vs. Architektur single vs. multi tier 13
Sicherheit beginnt beim Design Leitfaden zur Programmierung sicherer Web-Applikationen Patch-Prozesse müssen in der Entwicklung berücksichtigt werden Berücksichtigung der OWASP Top 10 (besser aller 70+ OWASP-Module) Abstimmung der Komponenten Viel ist nicht immer besser Web-Application-Firewalls sind nicht unbedingt das alleinige Heilmittel insbesondere brauchen WAFs eine genauere Abstimmung Annahmen zu Client-Security Einstellungen sind gefährlich man muss davon ausgehen dass jeder Client bösartig ist 14
Life-Cycle von Web-Applikationen Stabilität und Sicherheit Geregelter Betrieb der Plattform (Backup, Überwachung, Wartung, Support) Geregelter Change und Release-Prozess (Qualitätssicherung, Inbetriebnahme) Herausforderung: Web-Applikationen innovativ und gleichzeitig sicher Kreatives Chaos vs. bremsende Stabilität Cutting Edge vs. gestandenen Anwendungen Kreative Designer vs. stabilitätsbedachte Administratoren Instabile Sicherheit und Verfügbarkeit vs. sicherer Stillstand Hohes Risiko vs. sichere Langeweile Die richtige Balance Getrennte Zuständigkeiten Design und stabiler, sicherer Betrieb Festlegen von Spielregeln Unterstützung der Spielregeln durch Prozesse und Hilfsmittel Kontinuierliche Kommunikation zwischen Design und Betrieb Festlegung Verantwortlichkeit für Entscheidungen im Konfliktfall 15
Make or Buy: Aspekte des Outsourcings Kapazität hinsichtlich Rollentrennung Know How Betrieb und IT-Sicherheit Erforderliche Flexibilität vs. Sicherheit Dedicated Infrastructure vs. shared Infrastructure 16
Fragen & Antworten
secunet Security Networks AG Die secunet im Überblick Gegründet 1996, börsennotiert seit 1999 Umsatz 2012: 67 Mio. Euro [2011 55,6. Mio. Euro] Anteilseigner: G&D 80%, Freier Handel 20% Umfassende Kompetenz kundennah 2 Geschäftsbereiche 7 Standorte in Deutschland 320 hoch qualifizierte Mitarbeiter Spezialisten für IT-Sicherheit Sicherheitspartner der Bundesrepublik Deutschland Enge Kooperationen mit dem Bundesamt für Sicherheit in der Informationstechnik und dem Bundesministerium des Innern Wegbereiter für die industrielle Nutzung neuester Technologien wie Biometrie, Virtualisierung, sichere Betriebssysteme etc. 18
secunet Security Networks AG Dirk Reimers Bereichsleiter Pentest / Forensik +49 201 54 54-2023 dirk.reimers@secunet.com