16. Cyber-Sicherheits-Tag, 21. Februar 2017, Hamburg Verteidigungsmaßnahmen gegen SQL Injection CAITA® Sachverständigenbüro für IT Infrastruktur und IT Security, Lüneburg Master IT Architect, CISSP und ISO 17024 zert. IT Sachverständiger Georg Stein Agenda • Was sind SQL Injection Angriffe? • Gefahren durch SQL Angriffe • Verteidigungsmaßnahmen gegen SQL Injection Angriffe • • • • • Auf Infrastrukturebene Auf Applikationsebene Web Application Firewall Architektur Auf Datenbank- und Serverebene Aufbau von Security Zonen (Lines of Defense) • Ergänzende Maßnahmen 2 Was sind SQL Injection Angriffe? • Unterschiede von XSS (Cross-Site-Scripting) Angriffen im Vergleich zu SQL Injection • XSS wird als übergreifende Methode bezeichnet, um Sicherheitslücken in verschiedenen Computersystemen auszunutzen und Schadcode auf einem verwundbarem Clientsystem auszuführen. • XSS nutzt hierzu häufig JAVA Script, um nicht verifizierten oder vertrauenswürdigem Code von infizierten Websites durch den Browser eines Clients auszuführen. • Serverseitig „infiziert“ XSS z.B. Webseiten durch die Übergabe von Parametern an ein Script, das z.B. dynamische Webseiten erstellt. Dies kann z.B. über eine Eingabemaske auf einem Webserver erfolgen. Bei Aufruf einer infizierten Webseite wird dann der Schadcode an den Client übertragen. • SQL Injection ist im Gegensatz zu XSS eine Angriffsmethode um serverseitig Schaden anzurichten. • SQL Injection fokussiert auf Datenbank Manipulationen mittels SQL. SQL (Structured Query Language) ist die allgemeine Sprache um Datenbanken abzufragen, zu administrieren und zu betreiben. • SQL Injection Angriffe auf eine Datenbank erfolgen oftmals über eine schlecht geschützte Web-Applikation, die SQL Kommandos ohne ausreichende Überprüfung ausführt. 3 Gefahren durch SQL Injection Angriffe • Angriffe auf serverseitige Schwachstellen wie SQL Injection, sind gemäß der OWASP (Open Web Application Security Project) die Nummer 1 der 10 häufigsten Sicherheitsrisiken für Webanwendungen (Stand 2013) • SQL Injection Angriffe unterscheiden sich je nach Zielsetzung: • Umgehung der Benutzerauthentifizierung, um mit möglichst hohen Benutzerrechten (Admin/SA) die Kontrolle der Datenbank zu übernehmen • Offenlegung, bzw. das Gewinnen von sensitiven/vertraulichen Informationen • Veränderung, löschen, bzw. Manipulation von Daten • Einschleusen von Schadcode oder Inhalten in die Datenbank • Ausführen von Kommandos, um über die Datenbank ein gesamtes System zu übernehmen • Versagen des Dienstes (Denial of Service) 4 Verteidigungsmaßnahmen gegen SQL Injection Angriffe • Eine Verteidigung gegen SQL Injection Angriffe wird oft dadurch erschwert, daß die Verbindungen zu Serversystemen verschlüsselt sind und man den Zugang von öffentlich erreichbaren Systemen i.d.R. nicht mit einfachen Filtern verhindern kann. Daher ist eine breite Anzahl von Maßnahmen erforderlich, die nur in der Kombination einen Angriff erschweren oder vereiteln können (Defense-in-Depth = Multilayer Security). • Aus technischer Sicht kann man in 4 große Bereiche unterscheiden: • Infrastruktur Ebene • Firewall Systeme, IDS/IPS, Router, Switches, Load-Balancer • Applikations Ebene • Web-Application Firewall, Proxy Server, Web-Server, Web-Application-Middleware • Datenbank Ebene • Die Datenbank selber • System Ebene • Das Hostsystem / Betriebssystem In der Realität vermischen sich die einzelnen Bereiche, bzw. gehen Hand-in-Hand, um Schutz vor Angriffen zu bieten. 5 Verteidigungsmaßnahmen Infrastrukturebene • Mehrstufiges Firewall und IDS/IPS System • In der Praxis haben sich mehrstufige Firewallsysteme bewährt. Ziel ist es hier den Netzwerkverkehr an unterschiedlichen Stellen zu untersuchen. Typischerweise unterscheidet man hier zwischen Frontend und Backend Firewall Systemen sowie dem Internet Perimeter-Router. • Frontend Firewallsysteme sichern den Zugang zum Internet und den DMZ (Demilitarized Zone) ab, während Backend Firewalls den Schutz interner Systeme übernehmen. Die Systeme unterscheiden sich oftmals bezüglich der Leistungsklassen signifikant, da im Backend i.d.R höhere Durchsatzraten erforderlich sind. • Der Internet Perimeter-Router kann zusätzlich zu den Firewallsystemen als reiner Paketfilter konfiguriert werden, der unerwünschten Verkehr auf Port- und IP Address-Ebene blockt. Er ist somit die „first line of defense“. • Moderne NGFW Firewallsysteme (Next Generation Firewalls) sind dagegen keine reinen Paketfilter mehr, sondern kombinieren traditionelle Firewall Funktionen mit weiteren Funktionalitäten auf Applikationsebene. Dazu gehören Maßnahmen zur erweiterten Paket Analyse (Deep Packet Inspection) sowie IDS und IPS zur Prävention und Verhinderung von Einbruchsversuchen auf Basis der Entdeckung von Protokoll-Anomalien oder bekannten Angriffsmustern im Datenverkehr. • IDS (Intrusion Detection) oder IPS (Intrusion Prevention) Funktionen sind mittlerweile Bestandteile der meisten Firewallsysteme, müssen aber i.d.R. separat lizensiert werden. 6 Verteidigungsmaßnahmen Applikationsebene NGFW und IPS Systeme sind blind gegen Angriffe über verschlüsselte HTTPS Verbindungen (TLS/SSL) und haben nur ein begrenztes Verständnis für applikationsspezifische Verwundbarkeiten. • Einführung proaktiver Schutzmaßnahmen mit Hilfe einer Software oder Hardware Web-Application Firewall (WAF), die NGFW und IPS Systeme um die nachfolgenden Funktionen ergänzt: • Konzentration ausschließlich auf den Applikations-Verkehr • Aktivierung eines Proxy Modus für die Entschlüsselung und Untersuchung des (SSL) Applikations-Verkehrs • Analyse der Logik und des Verhaltens aus den gesamten Informationen eines Datenpakets (also nicht nur aus den Headerinformationen) • Versteht die Befehle HTTP GET, POST, HEAD sowie JAVA Script, SQL, Cookies und mehr • Betrachtet nicht nur die Anfrage an, sondern auch die Antwort eines Systems • Reagiert auf ungewöhnliche und unerwartete Muster im Datenverkehr, wie z.B. die Übertragung von mehr Daten als gewöhnlich in der Antwort • Härtung der Web-Applikationen nach den Empfehlungen des OWASP Secure Communication Guide • Webserver (z.B. Apache) • Applikationsserver (Middleware, z.B. Tomcat) • Aktives Security Patch-Management und System-, bzw. Applikations-Updates • So schnell wie möglich Security Patches einspielen • Verwendung aktueller Software und Betriebssystem Versionen 7 Web-Application Firewall Architektur 8 Verteidigungsmaßnahmen Datenbank- und Serverebene • Mindestanforderungen an die Konfiguration des Server • Härten von Systemkomponenten, z.B. • • • • • Entfernen von nicht benötigten Diensten (z.B. simple TCP Services, Telnet, etc.) Aktivierung von Sicherheitsmaßnahmen, z.B. kein Login als Admin/root/SA Ersetzen von unsicheren Management und Daten Protokollen durch SSH, SFTP, HTTPS, SNMPv3 Limitierung und Überwachung von Zugriffsrechten auf Dateiebene Einführung von komplexen Passwörtern und Passwortregeln und/oder gegen externe Authentifizierungsmechanismen (z.B. Radius/LDAP, Zertifikate oder Schlüssel) • Nutzen der Schutzmechanismen von Datenbanken • • • • Parametrisierte Abfragen Stored Procedures White Listing … Details hierzu liefert der Beitrag von Karsten Nachbauer im Anschluss! 9 Aufbau von Security Zonen (Lines of Defense) • Rote Zone – Zugang zum Internet. Internet Perimeter • Gelbe Zone – DMZ 1 Web-Frontend Zone. Services die direkt hinter der Internet Firewall erreichbar sind • Orange Zone – DMZ 2 Web-backend Zone. Webservices die über einen Load-Balancer oder Proxy erreichbar sind • Grüne Zone – DMZ 3 Datenbank Zone. Datenbankdienste die nur mit den Webservices in der DMZ 2 kommunizieren • Blaue Zone – Management Zonen für Perimeter und DMZ 1 - 3 10 Ergänzende Maßnahmen • Keine Sicherheit ohne Überwachung, Benachrichtigung und Auswertung • Überwachung der Infrastruktur Komponenten und sicherheitskritischen Punkte sind zwingend erforderlich um Angriffe zu erkennen • • Monitoring aller Systemrelevanten Komponenten auf Verfügbarkeit, CPU und RAM Auslastung (Firewall, Load-Balancer, Switches, Router) Logging aller Systemrelevanten Informationen (Firewall, IDS/IPS, WAF und Server Access Logs) • Benachrichtigung der Betriebsmannschaft bei definierten Ereignissen oder überschreiten von Schwellwerten • Nach einem Vorfall Durchführung einer Root Cause Analyse (WAS, WIE und WARUM ist etwas passiert) und „lessons learned“ • Korrelierung und Analyse der Events/Informationen in einem SIEM (Security Information and Event Management) • Erstellung eines Notfall- und Wiederanlaufplanes (für den Fall das ein sicherheitsrelevanter Vorfall eintritt) • • • • • • Was ist passiert? – Dokumentation des Vorfalls Wie verhalte ich mich? – Meldung erstatten, System isolieren Wo finde ich was? – Dokumentation des Systems Wer macht was? – Verantwortlichkeitsmatrix Eskalations-Prozess – Vorgangsbeschreibung, Ablaufplan Wiederherstellungsprozess – Wiederanlaufplan, Reihenfolgen • Vollständige Dokumentation der Infrastruktur und Systeme • Ist-Zustand der Konfiguration • Change Historie 11