OWASP und APEX Sicherheit, einfach machen As the world is increasingly interconnected, everyone shares the responsibility of securing cyberspace. - Newton Lee, Author and Computer Scientist Wir kümmern uns!
Spitzenleistung heißt, sich auf seine Stärken zu konzentrieren. merlin.zwo Wir machen Oracle - nur Oracle. Aus gutem Grund. Sebastian Wittig merlin.zwo InfoDesign GmbH & Co. KG 76228 Karlsruhe www.merlin-zwo.de Wir kümmern uns!
Motivation https://haveibeenpwned.com/
Motivation https://haveibeenpwned.com/
Architektur einer WebApplikation Client Internet WebServer Datenspeicher
APEX Architektur Client Intranet WebServer DB
APEX Architektur Intranet die Regel, aber! BYOD! Smart Client Devices Intranet WebServer DB! externe Zugriffe! technisch versierte Nutzer! Bequemlichkeit Ausnahmen bestätigen die Regel.
OWASP 2001 gegründet prinzipientreu Informatiker weltweit
OWASP offenes Wiki gelebte Offenheit How-To-Dokumente
OWASP seit 2004 wenige Änderungen Top 10 Projekt zur Zeit 2017-RC2
OWASP Top 10 A2: fehlerhaftes Authentifizierungsund Sessionmanagement A1: Injection A5: fehlkonfigurierte Sicherheit A8: Cross Site Request Forgery A6: Preisgabe kritischer Daten A4: fehlerhafte Zugriffskontrolle A7: ungenügende Angriffserkennung A10: unzureichend geschützte APIs A3: Cross Site Scripting (XSS) A9: Komponenten mit bekannten Sicherheitslücken
A1: Injection Gefährdet, wenn! dynamischer Befehl! Konkatenation Schutz durch! Input validieren! Zeichenfolgen escapen! sichere APIs verwenden APEX bietet mir! Bindevariablen nutzen! keine Ampersandnotation! DBMS_ASSERT
A2: Broken Authentication and Session Management Gefährdet, wenn! schlechtes Passworthandling! Session ID sichtbar! Brute Force Angriffe Schutz durch! Passwörter prüfen! Sessiontimeout! Standardimplementationen APEX bietet mir! erprobte APIs! Standard Timeout! vernünftigtes Sessionhandling
A3: Cross Site Scripting Gefährdet, wenn! Eingabefelder ungeprüft! unsicheres JavaScript! JavaScript durch Upload Schutz durch! Eingaben überprüfen! keine unescapte Darstellung! JavaScript deaktivieren APEX bietet mir! Standard: escapte Wiedergabe! APIs: z.b. APEX_UTIL.ESCAPE! Display Only Items
A4: Broken Access Control Gefährdet, wenn! trivialer numerischer PK! keine Zugriffskontrolle! Execute Public Funktionen Schutz durch! UUID! Hash-Mappings! Anwenderzugriff prüfen APEX bietet mir! Session State Protection! Autorisierungsschemas! feingranulare Zugriffskontrolle
A5: Security Misconfiguration Gefährdet, wenn! veraltete Komponenten! Standardkonfigurationen! Error Stacks sichtbar Schutz durch! Komponenten prüfen! pessimistische Zugangspolitik! Standardimplementierungen APEX bietet mir! aktive Community! Standardfehlermeldungen! DB-Nutzer deaktiviert
Zwischenspiel https://xkcd.com/327
A6: Sensitive Data Exposure Gefährdet, wenn! Daten im Klartext HTTP! veraltete Algorithmen Schutz durch! verschlüsseln HTTPS! Salt & Pepper APEX bietet mir! Standardimplementierungen z.t. veraltet! verschlüsselter Session State
A7: Insufficient Attack Protection Gefährdet, wenn! Angriffsmetriken Erkennung Behandlung Prävention! Tools kennen + nutzen Schutz durch! Analyse der Nutzerdaten Zustände loggen Verhaltensmuster! Reagieren IP blocken deaktivieren APEX bietet mir! Securityanalyse! interne Logs! Wartezeit bei Loginspam! Adminaccount wird deaktiviert
A8: Cross Site Request Forgery Gefährdet, wenn! fehleranfällige Tokens! Browserinformationen für Autorisierung Authentifizierung Schutz durch! Tokenhandling validiert Aktionen wird mitübertragen ist zufällig APEX bietet mir! beendet Session sofort! Session State Protection! Packages zur Linkerzeugung
A9: Using Components with Known Security Vulnerabilities Gefährdet, wenn! JS-Bibliotheken! Betriebssystem! Datenbank! restliche Infrastruktur Schutz durch! Patches! Informationen sammeln APEX bietet mir! aktive Community! CPUs
A10: Underprotected APIs Gefährdet, wenn! (externe) Schnittstellen! exotische Formate keine Standards keine Frameworks Schutz durch! HTTPS! Schnittstellen testen! API autorisieren + authentifizieren APEX bietet mir! Wallets für SSL! RESTful Services
OWASP Top 10 2017 RC1 vs RC2 OWASP Top 10 2017 RC1 Veränderung OWASP Top 10 2017 final A1 Injection A2 Broken Authentication and Session Management A1 Injection A2 Broken Authentication and Session Management A3 Cross Site Scripting - A3 Sensitive Data Exposure A4 Broken Access Control (Merged) - A4 XML External Entity (NEW) A5 Security Misconfiguration - A5 Broken Access Control A6 Sensitive Data Exposure + A6 Security Misconfiguration A7 Insufficient Attack Protection (NEW) A8 Cross Site Request Forgery (CSRF) A9 Using Components with known Vulnerabilities A10 Underprotected APIs (NEW) A7 Cross Site Scripting A8 Insecure Deserialization (NEW) A9 Using Components with known Vulnerabilities A10 Insufficient Logging & Monitoring (NEW)
Zwischenspiel
APEX: Pro & Kontra Implementierungsaufwand gering Session State Protection Session Handling Standardauthentifizierungen Basiert auf Oracle DB vervielfacht Sicherheitsoptionen verstärkt APEX-Lücken APEX stützt Sicherheit umfangreiches Logging Standardauswertungen verfügbar Sicherheitsoptionen oft aktiviert Implementierungsaufwand später hoch Einarbeitungsaufwand Verständnis wichtig Wissenslücken abhängige JS-Bibliotheken Sicherheitsoptionen z.t. umgehen z.t. veraltete Verschlüsselungsverfahren Kein reiner Entwicklerfokus Serverkonfiguration DB-Konfiguration
OWASP DVWA / XAMPP Schneier on Security heise security APEX-Blogs Twitter #orclapex
Fazit und Tips: Informationen und Karte Bruce Schneier zur Security Sicherheit verargumentieren Regulärer Text! Ebene 1 Ebene 2 Ebene 3 Hervorgehobener Text Codefragment Zweite Variante Hervorhebung Security is a process, not a product. - Bruce Schneier
Fragen? merlin.zwo Wirkümmern uns! Vorträge von merlin.zwo: Mi, 16:00 Uhr, Prag: Oracle VM: Der Ausweg aus dem Virtualisierung-Dilemma (J. Kutscheruk) Mi, 17:00 Uhr, Shanghai: Service, please! (J. Kutscheruk) merlin.zwo InfoDesign GmbH & Co. KG Sebastian Wittig Elsa-Brändström-Straße 14 76228 Karlsruhe Tel. 0721 132 096 0 sebastian.wittig@merlin-zwo.de http://www.merlin-zwo.de Wir kümmernuns!
Letzte Worte https://xkcd.com/528/
Offenheit
APEX-Architektur
A4-RC2: XML External Entity (XEE Injection) Gefährdet, wenn! Schnittstellen im Internet! Trusted CallerPrinzip Schutz durch! HTTPS / Wallet! API autorisieren + authentifizieren APEX bietet mir! Wallets für SSL! Standard RESTful Services
A8-RC2: Insecure Deserialization Gefährdet, wenn! Daten und! exotische Formate keine Standards keine Frameworks Schutz durch! HTTPS! Schnittstellen testen! API autorisieren + authentifizieren APEX bietet mir! Wallets für SSL! RESTful Services