Wie steht es um die Sicherheit in Software? Einführung Sicherheit in heutigen Softwareprodukten Typische Fehler in Software Übersicht OWASP Top 10 Kategorien Praktischer Teil – Hacking Demo Einblick in die wichtigsten Schwachstellen - Live Hacking Code Beispiele der wichtigsten Schwachstellen Massnahmen zur Förderung der Sicherheit Secure Development Perimeter Sicherheit Protect7 ist spezialisiert auf Sicherheitsanalysen, Beratung für die Absicherung von Applikationen, sowie sicheres Software-Engineering. Was sind sichere Applikationen? «Sichere Software ist Software, die trotz absichtlichen Angriffen einwandfrei funktioniert und die Daten schützt» Sicherheitsvorfälle und Trends Quelle: IBM Internet Security Systems X-Force® 2012 Trend und Risk Report Quelle: IBM Internet Security Systems X-Force® 2012 Trend und Risk Report Lockheed USAF F22 China’s J20 Zunahme der Schwachstellen, auf (Web-)Applikationen und andere Bereiche (ohne Custom-Applikationen). Im Schnitt 150 neue Schwachstellen pro Woche. Quelle: IBM Internet Security Systems X-Force® 2012 Trend und Risk Report Die meisten Applikationen, welche gegen die OWASP Top 10 geprüft werden, bestehen die Prüfung nicht Viele der Applikationen fallen auch im zweiten Versuch durch Quelle: Veracode Typische Fehler Warum Softwareprodukte heute häufig nicht sicher sind, sind vielschichtig. Hier die wichtigsten Gründe zusammengefasst. Business/Auftraggeber Keine konkreten Sicherheitsanforderungen vom Business (die Software muss einfach sicher sein) Kein Risikomanagement Sicherheit ist eine «Nicht funktionale Anforderung» Blindes vertrauen/hoffen, dass Security irgendwie implizit schon dabei ist IT/Software Entwicklung Unwissenheit über die Gefahren Sicherheit wird hauptsächlich als hinderlich angesehen Software Sicherheit ist heute nicht Teil der Ausbildung Jede Software, ob extern oder intern entwickelt, sollte an genügend «Security Eigenschaften interessiert» sein. Da Software leider selten «automatisch» sicher ist, sollte auch was dafür getan werden. Security % Attacken Budget % in Dollars 10 % Legende: 75 % 90 % Web Applikationen Netzwerk 25 % Quelle: Gartner Viele begangene Fehler basieren auf typischen Mythen, die immer wieder auftauchen: Über Web-Applikationen erhält man keinen Zugriff zu internen Systemen Der Datenverkehr wird mittels SSL abgesichert Unsere Systeme sind gepatcht, das reicht doch Wir sind sicher, es ist noch nie was passiert Es wurden bei Vorfällen noch nie Daten gestohlen Wir haben eine Firewall im Einsatz Unsere Software Entwickler machen das schon korrekt Die relevanten Schwachstellen die Angriffe erst ermöglichen, sind auf dem Application Layer. Heutige Massnahmen wirken jedoch nicht auf diesem Layer. Application Layer • Spezifische Security Produkte •Web Application Firewall • Web Application Scanner /- Penetration Test • Sicheres Entwickeln Transport Layer Internet Layer Link Layer • “Normale” Security Produkte •Standard Firewall • Vulnerability Scanner / Std. Penetration Test OWASP Top 10 • OS Commanding • XPATH Injection A1: Injection • SQL- und SSI Injection • Format String Attack • LDAP Injection A2: Broken Authentication and Session Management • Insufficient Authorization • Credential/Session Prediction • Insufficient Session Expiration A2: Cross-Site Scripting (XSS) • Cross-site Scripting • Content Spoofing • Cross-site Request Forgery A4: Insecure Direct Object References • Direct without access control check to • object references • File, directory, or database key A5: Security Misconfiguration • Secure configuration for frameworks, application and webserver defined and deployed A6: Sensitive Data Exposure • Protect sensitive data, such as credit cards, access information with sufficient encryption A7: Missing Function Level Access Control • Forceful browsing • URL guessing • Access control for every requst A8: Cross Site Request Forgery • Directory Indexing • Information Leakage • Path Traversal A9: Using Components with known Vulnerabilities • Frequently update the software A10: Unvalidated • Manipulated redirects and forwards Redirects and Forwards Sicht eines Hackers Mögliche Massnahmen Monitor Massnahme WAF* Audit / Pen-Test Secure Coding Security Requirements Engineering Training, Awareness Init Req. Eng Dev Testing Implement Operate Make Quelle: Microsoft Training: Security Training für sicheres Design und Programmierung Requirements: Definieren von Sicherheitsanforderung, Risiko Analyse Design: Definieren von Design-Sicherheitsanforderung, mögliche Bedrohungen definieren Implementierung: Erstellen von Vorgaben für den Einsatz von sicheren und unsicheren Funktionen, bereitstellen von Libraries & Tools Verification: Überprüfung der Vorgaben durch manuelle und automatisierte Sicherheitsanalysen (Fuzzing, Code Analyse, Scanning) Release: Definieren von Freigabeprozessen und Massnahmen wie Security Review, Penetration Testing o.ä Durch die Planung und Umsetzung eines Secure Development Lifecycle (SDL), ist die Sicherheit ein klarer Bestandteil jeder Software Lösung. Vorteile: Zeitreduktion für Fehlerkorrektur Reduzierung der Entwicklungskosten Reduzierung von Mängeln Sicherheit als integraler Bestandteil der Software Entwicklung Erhöhte Sicherheit Gewährleistung von Compliance Anforderungen Perimeterschutz Grundsätzliche Funktionen einer WAF Quelle: Ergon Der Einsatz einer Web Application Firewall muss aber gut überlegt sein, um das Ziel von einer sicheren Umgebung auch zu erreichen. Vorteile: Bei Standard-Applikationen ist sie oft der einzige Weg, um diese abzusichern Kann die Sicherheit von Individual-Applikationen, je nach Art und Aufwand der Integration, stark unterstützen Nachteile: Gewisser Integrationsaufwand nötig Nicht jede Applikation lässt sich zufriedenstellend absichern Bei komplexeren Anforderungen entsprechendes Know-how nötig Jede Änderung in der Applikation muss auch abgebildet werden Haben auch Ihre Grenzen Wichtig: Die Applikation(en), welche mittels einer WAF geschützt werden, sind immer noch gleich (un)sicher. Bei Fragen kontaktieren Sie bitte: Roger Caspar Telefon: +41 44 515 68 68 Herzlichen Dank für Ihre Aufmerksamkeit! Protect7 GmbH | Franklinstrasse 7 | CH-8050 Zürich | www.protect7.com