Verteidigungsmaßnahmen gegen SQL Injection

Werbung
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
Herunterladen