Webapplikations-Sicherheit: Erfahrungen aus der Praxis Stefan Hölzner, Jan Kästle 26.01.2010 Agenda Schwachstellen: die Ursachen Angriffstechniken aus der Praxis root-Access in 20 Schritten 2 Schwachstellen: die Ursachen Design Implementierung Webapplikationssicherheit Betrieb Deployment / Konfiguration 3 Schwachstellen: die Ursachen Design Eingabe- und Ausgabefilterung Zugriffsschutz / Rollenkonzept Design- / Logikfehler 4 Schwachstellen: die Ursachen Implementierung Eingabe- und Ausgabefilterung Fehlender / unzureichender Zugriffsschutz Backdoors Debuggingfunktionen* 5 Deployment / Konfiguration 6 Schwachstellen: die Ursachen Deployment / Konfiguration Directory Indexing Verzeichnismapping und -berechtigungen (z.B. WEB-INF/)* Systembenutzerkonten HTTP vs. HTTPS, SSL-Chiffren Error Handling Debuggingfunktionalitäten 7 Deployment / Konfiguration 8 Schwachstellen: die Ursachen Betrieb Patchmanagement Einspielen von Änderungen Benutzerverwaltung / Passwortvergabe Testbenutzer ungeschützte Admintools* 9 Implementierung 10 Implementierung 11 Implementierung 12 Agenda Schwachstellen: die Ursachen Angriffstechniken aus der Praxis root-Access in 20 Schritten 13 Angriffstechniken aus der Praxis Kombinationen aus (unkritischen) Schwachstellen Intern verwendete Anwendungen Unsichere Testsysteme “Unkritische” Anwendungen Widersprüchliche Konfigurationsvorgaben 14 Angriffstechniken aus der Praxis Kombinationen aus (unkritischen) Schwachstellen 15 Kombinationen aus Schwachstellen (Beispiel 1) 16 Kombinationen aus Schwachstellen (Beispiel 1) Anzeige des Quellcodes möglich Logdateien zugreifbar Passwörter in Logfiles Admin-Zugang über das Internet Passwort in Dokumentation 17 Kombinationen aus Schwachstellen (Beispiel 2) 18 Kombinationen aus Schwachstellen (Beispiel 2) SQL Injection (nicht direkt ausnutzbar) lückenhafte Firewallkonfiguration 19 Angriffstechniken aus der Praxis Intern verwendete Portale 20 Intern verwendete Portale (1) 21 Intern verwendete Portale (2) z.B. für interne Mitarbeiter oder Geschäftspartner URLs sind nicht allgemein bekannt oft unzureichend geschützt dirb_output_demo.log 22 Angriffstechniken aus der Praxis Unsichere Testsysteme 23 Unsichere Testsysteme Testsysteme finden typische Subdomains www.example.com test.example.com, wwwtest.example.com shop.example.com shop-test.example.com benachbarte IP-Adressen www.example.com 10.10.10.73 -> .72, .71, .74, … Schwachstellen finden z.B. durch Directory Indexing “versteckte” Parameter Zugriff auf Source Code gefundene Schwachstellen auf Produktivsystem austesten 24 Angriffstechniken aus der Praxis “Unkritische” Anwendungen 25 “Unkritische” Anwendungen niedrigeres Sicherheitsniveau für unkritische Anwendung <-> hohes Niveau für kritische Anwendung unkritische Anwendung mit Schwachstellen Datenbank und/oder OS gemeinsam verwendet Zugriff auf Daten der kritischen Anwendung möglich 26 Angriffstechniken aus der Praxis Widersprüchliche Konfigurationsvorgaben 27 Widersprüchliche Konfigurationsvorgaben SAP R/3 mit Oracle Datenbank Beispiel REMOTE_OS_AUTHENT 28 SAP spezifische Konfigurationen OS User: <SID>ADM, ORA<SID> (Unix, Linux) <SID>ADM, SAPSERVICE<SID> (Windows) View dba_users: USERNAME -------OPS$P40ADM OPS$ORAP40 … USER_ID ------23 24 PASSWORD -------EXTERNAL EXTERNAL REMOTE_OS_AUTHENT 29 REMOTE_OS_AUTHENT Oracle DB vs SAP Oracle Security Administrator’s Guide: Caution: Setting REMOTE_OS_AUTHENT to TRUE can cause a security exposure, because … SAP Sicherheitsleitfaden: Ändern Sie den ORACLE-Parameter REMOTE_OS_AUTHENT nicht auf FALSE. Der OPS$Mechanismus muß in der Lage sein, von entfernten Clients aus zu arbeiten, z. B. müssen sich SAP-SystemWorkprozesse an den Anwendungsservern als Benutzer OPS$<sid>adm anmelden können. Lassen Sie den Parameter daher auf TRUE stehen. 30 SAP Anmeldeprozess here: SID = P40 4.decrypt password 1. P40ADMconnects toDB without apassword SAP R/3 SAPUSER SAPP40 A34DB42 2. 3.encrypted password Application Server Oracle DB 5.SAPP40/<password> 31 REMOTE_OS_AUTHENT Oracle DB vs SAP 32 Patchen von Oracle Datenbanken für SAP Oracle Critical Patch Updates (CPUs) vierteljährlich enthalten nicht nur Sicherheitsupdates Konflikte mit SAP Patchen SAP empfiehlt oft CPUs nicht einzuspielen z.B. für Oracle 10.2.0.2: CPUs von Oktober 2006 bis Juli 2007 waren nicht freigeben Oracle Datenbank nicht gepatcht 33 Agenda Wie kommen Schwachstellen zustande? Angriffstechniken aus der Praxis root-Access in 20 Schritten 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 The information contained herein is of a general nature and is not intended to address the circumstances of any particular individual or entity. Although we endeavor to provide accurate and timely information, there can be no guarantee that such information is accurate as of the date it is received or that it will continue to be accurate in the future. No one should act upon such information without appropriate professional advice after a thorough examination of the particular situation. © 2009 KPMG AG Wirtschaftsprüfungsgesellschaft, a subsidiary of KPMG Europe LLP and a member firm of the KPMG network of independent member firms affiliated with KPMG International, a Swiss cooperative. All rights reserved. KPMG and the KPMG logo are registered trademarks of KPMG International. 53