Sicherheit von Datenbanksystemen Seminarvortrag Paul Voth Aachen, 23. Januar 2012 Institut für Kraftfahrzeuge RWTH Aachen University · Folie Nr. 1 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 2 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 3 © ika 2012· All rights reserved Einleitung Sicherheit hat hohen Stellenwert in IT-Unternehmen und Banken Begriff „Sicherheit“ hat sich gewandelt Früher: Sicherstellung der Funktionalität Heute: Datensicherheit intern extern Vorteil bei Privatrechnern: Dynamische IP-Adresse · Folie Nr. 4 © ika 2012· All rights reserved Einleitung Große Unternehmen dagegen statische IP-Adresse Leichtes Angriffsziel für Hacker Negativbeispiel für Sicherheit: Sonys „Playstation Network“ Weitergabe von Informationen mit Bedacht · Folie Nr. 5 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Standort des Servers Backup / Restore Wahl des Betriebssystems Interne Bedrohungen Allgemeine Sicherheit (Ergänzung) Sicherheit in Windows Sicherheit in Linux · Folie Nr. 6 © ika 2012· All rights reserved Allgemeine Sicherheit des DBS Standort des Servers Bevorzugt Rechenzentrum Vorteile: Rauchmelder Überwachungskameras Zutritt zum Serverraum gesichert Leistungsfähige Klimaanlage · Folie Nr. 7 © ika 2012· All rights reserved Allgemeine Sicherheit des DBS Standort des Servers Geringere Anforderungen in kleinen Firmen: Gut gekühlter Raum Unabhängiges Türschloss Zutritt nur für Administratoren Keine Eingabegeräte am Server Keine direkte Verbindung zum Internet · Folie Nr. 8 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Standort des Servers Backup / Restore Wahl des Betriebssystems Interne Bedrohungen Allgemeine Sicherheit (Ergänzung) Sicherheit in Windows Sicherheit in Linux · Folie Nr. 9 © ika 2012· All rights reserved Allgemeine Sicherheit des DBS Backup / Restore Anfertigung von Sicherungskopien Von erfahrenen Personen anfertigen lassen Auslagerung auf separate Backup-Server Eventuell auf externen Festplatten · Folie Nr. 10 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Standort des Servers Backup / Restore Wahl des Betriebssystems Interne Bedrohungen Allgemeine Sicherheit (Ergänzung) Sicherheit in Windows Sicherheit in Linux · Folie Nr. 11 © ika 2012· All rights reserved Allgemeine Sicherheit des DBS Wahl des Betriebssystems Open-Source sicher kostenpflichtig bekannt An Anforderungen von Software anpassen Ausgewogenheit zw. Sicherheit und Performance · Folie Nr. 12 © ika 2012· All rights reserved Allgemeine Sicherheit des DBS Wahl des Betriebssystems Im Folgenden: · Folie Nr. 13 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 14 © ika 2012· All rights reserved Sicherheit in Windows Firewall Schutz vor Angriffen aus lokalem Netz Kein Ersatz für Firewalls aus Rechenzentren Regeln für unterschiedliche Netzwerke: Privat Öffentlich Firma Keine Software von Drittanbieter installieren Enthält möglicherweise selbst Sicherheitslücken Gefahr für Sicherheit · Folie Nr. 15 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 16 © ika 2012· All rights reserved Sicherheit in Windows Virenschutz Installierte Software: Microsoft Tool zum Entfernen bösartiger Software Entfernt nur aktive Schadsoftware Schadsoftware muss an sensiblen Stellen im System sein Kein echtes Antivirenprogramm Empfehlung: Externes Antivirenprogramm · Folie Nr. 17 © ika 2012· All rights reserved Sicherheit in Windows Virenschutz Kriterien für Antivirenprogramm Tägliche Updates Geringe Auslastung des Servers Preis-Leistungsverhältnis beachten Gute Erkennungsrate für Schädlinge Gute Heuristik Kein falscher Alarm Für Server wichtig: Info an Admin bei Fund · Folie Nr. 18 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 19 © ika 2012· All rights reserved Sicherheit in Windows Updates Windows Server Update Service (WSUS) Aktualisiert Funktionalität Schließt Sicherheitslücken Updates auch für SQL-Server Aktualisiert Software von anderen Herstellern Automatische Updates Manuelle Updates Vorsicht vor inkompatiblen Updates Administrator muss vor Ort sein Programme nachhaltig pflegen · Folie Nr. 20 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 21 © ika 2012· All rights reserved Sicherheit in Windows Benutzer Einteilung der Benutzer: Administrator des Betriebssystems Ausschließlich für Serverkonfiguration Administrator für SQL-Datenbank Ausschließlich für Datenbank Verwaltung durch Remotedesktopverbindung Gruppe anlegen für Remotedesktopbenutzer Keine Standardbenutzer mehr · Folie Nr. 22 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 23 © ika 2012· All rights reserved Sicherheit in Windows Passwort Muss einige Anforderungen erfüllen: Darf keinen Teil des Benutzernamen enthalten Keine Wörterbucheinträge Mindestens zehn Zeichen lang Zeichen aus drei der vier Kategorien enthalten: Großbuchstaben (A bis Z) Kleinbuchstaben (a bis z) Zahlen (0 bis 9) Nicht-alphabetische Zeichen (z.B. !, $, #) Gilt dann als „sicher“ · Folie Nr. 24 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Firewall Virenschutz Updates Benutzer Passwort Verzicht auf Anwendungen/Dienste Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux · Folie Nr. 25 © ika 2012· All rights reserved Sicherheit in Windows Verzicht auf Anwendungen / Dienste Sicherheitskritische Programme deinstallieren Vorsicht bei Programmen mit Internetverbindung Möglicherweise Weitergabe von Daten im Hintergrund Für Server und DB irrelevante Software deinstallieren Dienste wie Telnet deaktivieren Dessen Port (22) sperren Andernfalls nur für SSH-Zugriff freigeben · Folie Nr. 26 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux Root Firewall TCP-Wrapper · Folie Nr. 27 © ika 2012· All rights reserved Sicherheit in Linux Root Nach Installation des Servers: Passwort für root ändern Rechte für Kommando su nur an bestimmte Benutzer Zum Arbeiten andere Benutzer als root wählen root nur für Administration SSH-Zugriff als root verhindern: PermitRootLogin von YES auf NO · Folie Nr. 28 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux Root Firewall TCP-Wrapper · Folie Nr. 29 © ika 2012· All rights reserved Sicherheit in Linux Firewall Regeln: Einen Grundsatz wählen Was nicht explizit erlaubt ist, ist verboten Sicher, aber zeitaufwändig Was nicht explizit verboten ist, ist erlaubt Unsicher, aber leicht umsetzbar Reihenfolge der Regeln entscheidend Am Ende alles verbieten · Folie Nr. 30 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Sicherheit in Linux Root Firewall TCP-Wrapper · Folie Nr. 31 © ika 2012· All rights reserved Sicherheit in Linux TCP-Wrapper Sicherheitsschicht zw. inetd und restlichen Diensten inetd reicht Anfrage an tcpd Vorgehen von tcpd: Host in /etc/hosts.allow eingetragen? Ja Dienst sofort starten Host in /etc/hosts.deny eingetragen? Ja Ausführung des Dienstes verweigert Nein Dienst starten Sicherheitsmaßnahme: ALL: ALL in /etc/hosts.deny eintragen · Folie Nr. 32 © ika 2012· All rights reserved Agenda Einleitung Allgemeine Sicherheit des DBS Externe Bedrohungen SQL Injection Cross-Site-Scripting (XSS) Denial-of-Service (DoS) Sicherheit in Windows Interne Bedrohungen Sicherheit in Linux Allgemeine Sicherheit (Ergänzung) · Folie Nr. 33 © ika 2012· All rights reserved Externe Bedrohungen SQL Injection SQL-Abfragen in Formularfeldern Befehle können in URL stehen Unzureichende Absicherung von SQL-Abfragen Mehr als 90% Datendiebstähle durch SQL Injection · Folie Nr. 34 © ika 2012· All rights reserved Externe Bedrohungen SQL Injection Beispiel (PHP): $query = “SELECT * FROM ‘adressen‘ WHERE ‘haus_nr‘ LIKE ‘“.$_GET[‘nummer‘].“‘“; Variable „nummer“ ersetzen durch 1‘; DROP TABLE ‘adressen‘;-- Ergebnis $query = “SELECT * FROM ‘adressen‘ WHERE ‘haus_nr‘ LIKE ‘1‘; DROP TABLE ‘adressen‘;--‘“; Tabelle „adressen“ wird gelöscht Weitere Ausnutzung: Neue Benutzer mit Adminrechten anlegen · Folie Nr. 35 © ika 2012· All rights reserved Externe Bedrohungen SQL Injection - Schutzmaßnahmen Prüfung der Eingabedaten Zahlen in Zahlenfeldern Texte in Textfeldern Datum im Datumsfeld In PHP: mysql_real_escape_string() Maskierung von SQL-spezifischen Zeichen Nachteil: Alle Variablen selber prüfen Ausreichend, aber nicht bester Schutz · Folie Nr. 36 © ika 2012· All rights reserved Externe Bedrohungen SQL Injection - Schutzmaßnahmen Besser: PHP Data Object Klassen: PDO, PDOStatement Realisierung von Prepared Statements SQL-Statement mit Platzhaltern $query = “SELECT * FROM ‘mitarbeiter‘ WHERE ‘nachname‘ LIKE :name“; Vorbereiten mit: prepareStatement($query) Statement wird an Server gesendet DB-Treiber kümmert sich um Validierung Nur noch Änderung der freien Parameter bindParam(“:name“, $name) · Folie Nr. 37 © ika 2012· All rights reserved Agenda Einleitung Allgemeine Sicherheit des DBS Externe Bedrohungen SQL Injection Cross-Site-Scripting (XSS) Denial-of-Service (DoS) Sicherheit in Windows Interne Bedrohungen Sicherheit in Linux Allgemeine Sicherheit (Ergänzung) · Folie Nr. 38 © ika 2012· All rights reserved Externe Bedrohungen Cross-Site-Scripting (XSS) JavaScript-Code in Formularfeldern Üblicherweise wird GET-Parameter geändert Mangels Validierung wird Befehl ausgeführt Mögliche Folgen: Zugriff auf Login-Daten anderer User Cookie-Informationen anderer User auslesen Bestandteile von Sessions manipulieren · Folie Nr. 39 © ika 2012· All rights reserved Externe Bedrohungen Cross-Site-Scripting (XSS) - Schutzmaßnahmen Validierung aller für DB relevanten Variablen Sowohl GET- als auch POST-Parameter In PHP: htmlentities() HTML wird als Text ausgegeben Bei erwünschten HTML-Tags Eigene Funktionen schreiben Gefahr: HTML-Tags werden übersehen · Folie Nr. 40 © ika 2012· All rights reserved Agenda Einleitung Allgemeine Sicherheit des DBS Externe Bedrohungen SQL Injection Cross-Site-Scripting (XSS) Denial-of-Service (DoS) Sicherheit in Windows Interne Bedrohungen Sicherheit in Linux Allgemeine Sicherheit (Ergänzung) · Folie Nr. 41 © ika 2012· All rights reserved Externe Bedrohungen Denial-of-Service (DoS) Auslastung des Servers durch zu viele Anfragen DoS durch Ausnutzung von Programmierfehlern Andere Form: DDos (Distributed Denial of Service) Anfragen unzähliger Rechner gleichzeitig (Botnetze) Dienst stürzt ab Annahme weiterer Anfragen verweigert Angreifer kann IP-Adresse „kapern“ · Folie Nr. 42 © ika 2012· All rights reserved Externe Bedrohungen Denial-of-Service (DoS) – Schutzmaßnahmen Solider Schutz durch Sperrlisten Pakete der IP-Adresse werden verworfen Firewall: Begrenzte Anzahl an Paketen pro Zeiteinheit durchlassen DoS-Angriff verliert Effektivität · Folie Nr. 43 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Missbrauch von Zugriffsrechten Fehlerhafte Datenbankkonfiguration Sicherheit in Windows Sicherheit in Linux Allgemeine Sicherheit (Ergänzung) · Folie Nr. 44 © ika 2012· All rights reserved Interne Bedrohungen Missbrauch von Zugriffsrechten Größte Gefahr ist Mitarbeiter Unerfahrene Benutzer Daten lokal speichern Gefährdung der Daten durch Trojaner / Viren Benutzer mit uneingeschränkten Zugriffsrechten Überschreitung des Zuständigkeitsbereichs Gefährlich bei: Neuen Mitarbeitern Mitarbeitern kurz vor Entlassung · Folie Nr. 45 © ika 2012· All rights reserved Interne Bedrohungen Missbrauch von Zugriffsrechten Schutzmaßnahmen Rechte auf relevante Tabellen einschränken Kontrolle der Logdateien Verdächtig: Zu häufige Zugriffszahl auf Datenbestand Verhalten der Benutzer beobachten Welche Daten benutzen sie? DB-User für jeden Mitarbeiter Verwendung von „Views“ · Folie Nr. 46 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Missbrauch von Zugriffsrechten Fehlerhafte Datenbankkonfiguration Sicherheit in Windows Sicherheit in Linux Allgemeine Sicherheit (Ergänzung) · Folie Nr. 47 © ika 2012· All rights reserved Interne Bedrohungen Fehlerhafte Datenbankkonfiguration Sicherheitslücken werden mit der Zeit entdeckt Datenbank wird nach Installation nicht nachbearbeitet Standardbenutzer Standardpasswort Adminzugang ohne Passwort Unterschiedliche Hosts greifen auf DB zu Sicherheitsrisiko · Folie Nr. 48 © ika 2012· All rights reserved Interne Bedrohungen Fehlerhafte Datenbankkonfiguration Schutzmaßnahmen Sicherheitsupdates installieren Zusätzliche Patches auf Notwendigkeit prüfen Zugriff außerhalb des Firmennetzes verbieten Innerhalb des Firmennetzes nur verschlüsselt Zugriff möglichst nur über localhost Passwort und Benutzername von root ändern Nur root hat alle Privilegien · Folie Nr. 49 © ika 2012· All rights reserved Interne Bedrohungen Fehlerhafte Datenbankkonfiguration Schutzmaßnahmen Wichtige Konfigurationsdatei: /etc/my.cnf Eigentümerrechte der Datei an root Modifizierungsrecht auch an root Nur Leserecht an alle anderen Benutzer · Folie Nr. 50 © ika 2012· All rights reserved Agenda Einleitung Externe Bedrohungen Allgemeine Sicherheit des DBS Interne Bedrohungen Sicherheit in Windows Allgemeine Sicherheit (Ergänzung) Verschlüsselung von Daten Sicherheit in Linux · Folie Nr. 51 © ika 2012· All rights reserved Allgemeine Sicherheit (Ergänzung) Verschlüsselung von Daten Am häufigsten benutzt für Passwort Hilft bei unsicherem Passwort wenig Alle sensiblen Daten nur verschlüsselt speichern Funktionen: PASSWORD (41 Zeichen, nur MySQL-intern) MD5 (32 Zeichen) SHA1 (40 Zeichen) SHA1 ist am sichersten · Folie Nr. 52 © ika 2012· All rights reserved Danke · Folie Nr. 53 © ika 2012· All rights reserved