Sicherheit von Datenbanksystemen

Transcription

Sicherheit von Datenbanksystemen
Fachbereich Medizintechnik und Technomathematik
Sicherheit von Datenbanksystemen
Seminararbeit
im Studiengang
„Scientific Programming“
vorgelegt von
Paul Voth
1. Betreuer: Prof. Dr. Volker Sander
2. Betreuer: Frank Ferber
Aachen, Dezember 2011
Abstract
Das Problem der Datensicherheit ist alltäglich, denn nicht alle Unternehmen nehmen
dieses Thema ernst und dadurch kann es leider zu Datendiebstahl kommen. Die
Diebe profitieren von ihrem Erfolg und die Firmen tragen den Schaden, weil sie so
ihre Kunden verlieren. Die sensiblen Daten werden oft unzureichend vor fremdem
Zugang geschützt, sei es durch falsch konfigurierte Firewalls oder triviale LoginDaten. Ein erfahrener Hacker kennt die Schwachstellen der Systeme und kann sich
mithilfe von Passworttabellen Zugang dazu verschaffen. Diese Arbeit soll auf die
häufigsten Sicherheitslücken rund um Datenbanksysteme eingehen und aufzeigen,
wie diese Lücken schon bei der Installation der Systeme beseitigt werden können
und Hackern damit ein Eindringen in die Datenbank und auch in das
zugrundeliegende Betriebssystem fast unmöglich machen.
Inhaltsverzeichnis
1.
Einleitung ....................................................................................................................... 4
2.
Allgemeine Sicherheit des Datenbanksystems ............................................................... 6
2.1
Standort des Servers............................................................................................... 6
2.2
Wahl des Betriebssystems ...................................................................................... 7
2.2.1
Windows .......................................................................................................... 8
2.2.1.1 Firewall ......................................................................................................... 8
2.2.1.2 Virenschutz ................................................................................................... 8
2.2.1.3 Updates ........................................................................................................ 9
2.2.1.4 Benutzer und Passwort ................................................................................10
2.2.1.5 Verzicht auf Anwendungen / Deaktivierung von Diensten ............................11
2.2.2
Linux ...............................................................................................................12
2.2.2.1 Root .............................................................................................................12
2.2.2.2 Firewall ........................................................................................................12
3.
Bedrohungen für die Datenbanksicherheit und effektive Schutzmechanismen ..............14
3.1
Externe Bedrohungen ............................................................................................15
3.1.1
SQL Injection...................................................................................................15
3.1.2
Cross-Site-Scripting (XSS) ..............................................................................16
3.1.3
Denial-of-Service (DoS) ..................................................................................17
3.2
Interne Bedrohungen..............................................................................................18
3.2.1
Missbrauch von Zugriffsrechten ......................................................................18
3.2.2
Fehlerhafte Datenbankkonfiguration ................................................................20
3.3
Allgemeine Schutzmechanismen (Ergänzung) .......................................................21
3.3.1
Mandatory Auditing .........................................................................................22
3.3.2
SYS Auditing ...................................................................................................22
3.3.3
Standard Auditing ............................................................................................22
3.3.4
Fine Grained Auditing (FGA) ...........................................................................23
3.3.5
Verschlüsselung von Daten .............................................................................23
Literaturverzeichnis ..............................................................................................................24
1. Einleitung
Der Schutz von Informationen ist eines der wichtigsten Themen, mit dem sich
heutzutage große IT-Unternehmen und Banken beschäftigen müssen. In der
Anfangsphase des Computers war dieses Denken noch nicht so ausgeprägt, denn
damals wurde unter dem Begriff „Sicherheit“ nur die „Sicherstellung der korrekten
Funktionalität von Hardware […] und Software“1 verstanden. Diese Definition hat sich
mit der Zeit stark verändert, denn es kommt heute nicht nur darauf an, dass ein
System dauerhaft läuft, sondern mehr darauf, dass die dort gespeicherten Daten
sicher vor dem Zugriff von Unbefugten sind.
Nicht selten kommt es vor, dass Angreifer versuchen, mithilfe von Viren oder
Trojanern auf die persönlichen Daten zuzugreifen oder diese auszuspionieren und
für kriminelle Zwecke zu missbrauchen. Für Privatpersonen gilt die Regel, dass sie
sich auf jeden Fall durch eine Firewall absichern müssen und ein Antivirenprogramm
auf ihrem Rechner installieren sollten. Dadurch ist der Zugriff auf den eigenen
Rechner für Angreifer schon schwieriger, jedoch nicht unmöglich. Schließlich tauchen
täglich neue Sicherheitslücken in häufig genutzten Programmen auf, mit deren Hilfe
sich Kriminelle leicht Zugang zum Rechner verschaffen können.
Es besteht für Privatpersonen jedoch kaum Grund zur Besorgnis, da es für die
Angreifer zum Teil überhaupt nicht möglich ist, auf den privaten PC zuzugreifen, es
sei denn dieser hat eine statische IP-Adresse, mit der er sich in das Internet einloggt.
Doch da ein privater Nutzer sich bei einem Internetdienstleister anmelden muss,
besteht dahingehend auch weniger Gefahr, da die Provider sich täglich ändernde IPAdressen für ihre Kunden benutzen.
In großen Firmen ist es im Gegensatz dazu etwas anders, denn diese haben oft eine
eigene IP-Adresse und sind auch in den meisten Fällen Opfer von Cyberangriffen. An
negativen Beispielen wie Sonys „Playstation Network“, bei dem sich Hacker Zugang
zu Kundendaten verschafft haben, die auch Kreditkarteninformationen enthielten,
wird deutlich, wie leichtsinnig manche Firmen mit den ihnen anvertrauten Daten
umgehen und wie unausgereift dort das Sicherheitskonzept ist.
1
http://de.wikipedia.org/wiki/Informationssicherheit, „Bedeutung von Informationssicherheit“, 18.10.2011
4
Die Aufgabe von Firmen, die Bankdaten ihrer Kunden speichern, sollte sein, einer
Person zu gewährleisten, dass dessen private Daten unter keinen Umständen an die
Öffentlichkeit gelangen. Auf der anderen Seite sollte eine Person, die im Internet
unterwegs ist, gut darauf achten, welche Webseite sie besucht, welche Daten sie in
Formulare eingibt und welche Folgen das haben kann. Sie sollte sich immer darüber
informieren, in welcher Form diese Daten abgespeichert werden und ob sie
möglicherweise von anderen einsehbar sind.
Die privaten Informationen werden inzwischen nicht mehr in Excel-Tabellen oder
Word-Dokumenten gespeichert, stattdessen werden Datenbanken benutzt. Mit ihrer
Hilfe lassen sich Informationen viel einfacher verwalten und Redundanzen
ausschließen. Dabei ist die Datensicherheit ein zentraler Aspekt, um welchen sich
das zuständige Unternehmen bemühen muss.
Mit dem Datenbankmanagementsystem, welches in jedem Datenbanksystem
zusammen mit der Datenbank existiert, lässt sich bereits ein Teil der Sicherheit
herstellen. Doch es sind noch einige weitere Aspekte zu beachten, die wichtig für die
Sicherheit der Daten sind.
Zunächst ist die Wahl des Datenbanksystems entscheidend, denn es existieren
unzählige Systeme und diese unterscheiden sich bezüglich Funktionalität und
Sicherheit teilweise stark voneinander. Schon beim Design der Datenbank muss sich
der zuständige Administrator Gedanken darüber machen, welche Benutzer er anlegt
und mit welchen Rechten er diese ausstattet. Weiterhin spielt natürlich die
Verschlüsselung von Daten eine sehr wichtige Rolle, da Passwörter besonders gerne
von Hackern ausgespäht werden und diese deshalb zusätzlichen Schutz benötigen.
Falls bereits häufiger in Systeme der gleichen Art bei anderen Firmen eingebrochen
wurde, sollte sich der Administrator darum kümmern, in seinem System nach
möglichen Sicherheitslücken zu suchen und diese zu beheben. Dabei ist auch darauf
zu achten, dass Updates des Datenbanksystems eine große Hilfe sein können. Auch
über die Erreichbarkeit der Datenbank sollten Überlegungen angestellt werden, denn
es ist oft sinnvoll, sie in einem privaten Netz zu haben und nur wenigen Personen
oder Rechnern einen Zugriff darauf zu gewähren.
Die Arbeit wird die genannten Aspekte vertiefen und aufzeigen, welche Relevanz sie
für das Thema „Sicherheit“ in Datenbanksystemen haben.
5
2. Allgemeine Sicherheit des Datenbanksystems
Zunächst soll untersucht werden, welche Sicherheitsmaßnahmen getroffen werden
müssen, um ein Datenbanksystem vor Angriffen von außerhalb des Unternehmens
zu schützen. Es muss dabei darauf geachtet werden, dass die Benutzer nicht unnötig
in ihrer Arbeit mit der Datenbank eingeschränkt werden. Für diese wichtige Aufgabe
werden Systemadministratoren benötigt, die das nötige Wissen über das Netzwerk
und das eingesetzte Betriebssystem haben. Darüber hinaus ist der Standort des
Rechners, auf dem das System läuft, zu berücksichtigen und die Benutzer, die es
pflegen, sollten ebenso sorgfältig ausgesucht werden.
2.1 Standort des Servers
Server sind am besten in Rechenzentren aufgehoben, da sie dort nicht nur sicher vor
Witterungseinflüssen sind, sondern auch vor unbefugten Zugriffen. Die Gebäude sind
meist mit etlichen Rauchmeldern und Überwachungskameras ausgestattet und
werden somit 24 Stunden lang überwacht. Zu dem eigentlichen Raum, in dem die
Server stehen, haben außerdem nur einige wenige Leute Zugang, weshalb diese
Räume mit Safes gleichgesetzt werden können. Auch die Temperatur spielt eine
wichtige Rolle. Da hohe Temperaturen den Servern schaden können, was die
Performance und Datensicherheit angeht, ist eine Klimaanlage Pflicht. Somit wird in
den Rechenzentren die optimale Umgebung geschaffen, damit ein Server seine
Arbeit effizient verrichten kann.
Falls diese Möglichkeit nicht gegeben ist, sollte ein gut belüfteter und mit einer
leistungsfähigen Klimaanlage ausgerüsteter Raum im Firmengebäude ausgewählt
werden, um die maximale Leistungsfähigkeit des Servers zu jedem Zeitpunkt zu
gewährleisten. Dieser Raum sollte ein eigenes unabhängiges Schloss haben und nur
von Administratoren aufgeschlossen werden können, um damit den direkten Zugriff
für Mitarbeiter zu verbieten. Schließlich sind auch sie potenziell dazu in der Lage,
Daten zu stehlen, und somit stellen sie eine unkalkulierbare Gefahr da. Zu beachten
ist dabei auch, dass der Server nicht direkt gesteuert werden darf, also dass eine
Tastatur, inklusive Maus und Monitor, nicht angeschlossen sein dürfen, weil das den
Mitarbeitern einen freien Zugriff erlaubt.
6
Ein weiterer Sicherheitsaspekt ist die Verbindung des Datenbanksystems zum
Internet. Dazu ist zu sagen, dass es nicht direkt an das Internet angeschlossen sein
sollte, was dabei hilft den Zugriff von außen sehr genau zu steuern.
Die Anfertigung von Sicherungskopien ist eine der wichtigsten Aufgaben, die der
Betreiber eines Servers zu erfüllen hat, da im Falle von Datenverlust eine schnelle
Rekonstruktion der Daten erfolgen muss. Die angefertigten Backups sind im Idealfall
an einem separaten Ort außerhalb des Unternehmens aufzubewahren, wie
beispielsweise auf Backup-Servern von Rechenzentren oder zur Not auch auf
externen Festplatten.
Wenn diese Kriterien beachtet werden, dann ist es für die Angreifer fast unmöglich,
direkt an die Maschinen zu kommen um dort Schaden anzurichten. Dafür werden in
den meisten Fällen Sicherheitslücken im Betriebssystem, im Netzwerk oder auch in
der Verwaltungssoftware des Datenbanksystems ausgenutzt.
2.2 Wahl des Betriebssystems
Nachdem der Server sich an einer sicheren Position befindet und ein erster Schutz
vor
Angreifern
gegeben
ist,
stellt
sich
die
Frage
nach
der
Wahl
des
zugrundeliegenden Betriebssystems. Zur Auswahl stehen, in den häufigsten Fällen,
das kostenpflichtige Betriebssystem „Windows“ oder das Open-Source-Projekt
„Linux“ (Unix). Es kommt beim Thema Sicherheit jedoch nicht zwangsläufig auf den
Preis an, denn auch kostenlose Systeme haben ihre Vorteile gegenüber
kostenpflichtigen
Systemen.
Die
Herstellung
der
Sicherheit
rund
um
das
Datenbanksystem ist entscheidend und der benötigte Aufwand darf den daraus
resultierenden Nutzen nicht übertreffen. Es sollte eine Ausgewogenheit zwischen der
Sicherheit und Performance hergestellt werden, damit der Benutzer nicht darunter
leidet.
Die wichtigsten Merkmale, mit dem Schwerpunkt Sicherheit, sollen im Folgenden
näher erläutert werden. Sie beziehen sich auf zwei reale Systeme, die in einem
Unternehmen installiert sind. Auf einem Windows-Server läuft eine Datenbank, die
für die Verteilung von Software an alle internen Rechner verantwortlich ist. Ein LinuxSystem hat einen Webserver, inklusive MySQL-Datenbank, im Betrieb.
7
2.2.1 Windows
2.2.1.1
Firewall
Jedes Windows Betriebssystem hat eine Firewall installiert, die meist standardmäßig
eingeschaltet ist. Dennoch sollte kontrolliert werden, ob diese richtig konfiguriert ist.
Sie dient hauptsächlich dem Schutz vor Angriffen im lokalen Netzwerk, ist aber
keinesfalls ein Ersatz für die großen Firewalls der Rechenzentren. Auf das lokale
Netzwerk haben diese Firewalls keinen Einfluss und verhindern somit auch nicht die
Verbreitung
von
Schädlingen.
In
den
Einstellungen
der
Firewall
können
unterschiedliche Regeln für jegliche Art von Netzwerk (privates, öffentliches oder
Firmen-Netzwerk) aufgestellt werden. Ein Administrator sollte diese Einstellungen
zusätzlich überprüfen und gegebenenfalls Anpassungen vornehmen, sodass sie den
Anforderungen des Systems entsprechend umgesetzt sind. Eine zusätzliche
Software von einem Drittanbieter zu installieren ist nicht empfehlenswert, da es
wahrscheinlich ist, dass sie selbst Sicherheitslücken enthält und damit eine unnötige
Gefahr für die Sicherheit der Daten darstellt, außerdem bietet die Windows-Firewall
einen ausreichenden Schutz und benötigt deswegen keinen Ersatz.
2.2.1.2
Virenschutz
Einen richtigen Schutz bietet die installierte Software, mit dem Namen „Microsoft Tool
zum Entfernen bösartiger Software“2, nicht. Sie kann, laut Microsoft, nur „aktive
Schadsoftware entfernen und nicht deren Einnistung ins System verhindern“3 und ist
somit kein Ersatz für ein Antivirenprogramm. Die Software entfernt die bekanntesten
Viren vom Rechner und auch nur, wenn sie sich an sensiblen Stellen im System
befinden. Außerdem muss der Schädling im System aktiv werden, damit die Software
ihn erkennt und Maßnahmen einleiten kann, um ihn zu entfernen.
Es ist dringend zu empfehlen, ein externes Antivirenprogramm zu installieren. Dieses
muss tägliche Updates erhalten und damit immer auf dem neuesten Stand sein. Ein
weiteres Kriterium für die Auswahl der richtigen Antivirensoftware ist die Belastung
des Systems, wenn die Software läuft. Sie darf den Rechner nicht merklich
verlangsamen, denn ein Benutzer sollte weiterhin ungestört seiner Arbeit nachgehen
2
http://de.wikipedia.org/wiki/Microsoft_Tool_zum_Entfernen_bösartiger_Software, „Microsoft Tool zum
Entfernen bösartiger Software“, 21.10.2011
3
s.o., „Funktion“, 21.10.2011
8
können. Insbesondere bei Servern ist die Geschwindigkeit entscheidend, deshalb
sollte die Software so wenige Ressourcen wie möglich verbrauchen. Außerdem ist
das Preis-Leistungsverhältnis zu beachten, denn eine gute Antivirensoftware sollte
auch zu geringen Preisen erhältlich sein und trotzdem den nötigen Schutz bieten.
Die Software sollte auf jeden Fall eine gute Erkennungsrate für Schädlinge haben,
aber auch die Heuristik des Programms ist ein ausschlaggebendes Kriterium für die
Wahl der Antivirensoftware. Das heißt sie sollte nicht nur bekannte Viren und
Trojaner erkennen, sondern auch bei denjenigen mit ähnlichen Mustern Alarm
schlagen.
Es kommt häufig vor, dass Antivirenprogramme nicht-schädliche Programme als
Viren o.ä. deklarieren. Hierbei sollte darauf geachtet werden, dass das ausgewählte
Programm ein solches Verhalten möglichst nicht zeigt.
Zu guter Letzt ist die Benutzerfreundlichkeit für manche Menschen ein großes
Auswahlkriterium, denn die Software sollte keine unnötigen Einstellungen enthalten,
an denen ein eher unerfahrener Benutzer herumbasteln kann und womöglich die
Sicherheit des eigenen Rechners aufs Spiel setzt. Ein Expertenmodus sollte daher
vorhanden sein, aber nicht zwingend benutzt werden müssen, um den Schutz des
Rechners zu nicht gefährden.
2.2.1.3
Updates
Der „Windows Server Update Service“ (kurz: WSUS) ist einer der wichtigsten
Bestandteile des Server-Betriebssystems, denn er aktualisiert nicht nur die
Funktionalität des Systems, sondern sorgt auch dafür, dass die sicherheitskritischen
Lücken des Betriebssystems geschlossen werden.
Die benötigten Updates werden dann direkt von der Microsoft Update-Website
heruntergeladen. Er bringt außerdem die häufig benutzten Programme, wie Office
und unter anderem auch den SQL-Server, auf den neuesten Stand. Darüber hinaus
ist es sogar möglich, Software von anderen Herstellern mit diesem Service zu
aktualisieren (z.B. Grafiktreiber).
Daher ist im Anschluss an die Installation des Betriebssystems dafür zu sorgen, dass
die wichtigsten Updates mit WSUS heruntergeladen und installiert werden.
Bei Servern sind Updates besonders kritisch, da ein fehlerhaftes Update
9
katastrophale Auswirkungen haben kann. Aus diesem Grund sind automatische
Updates nicht empfehlenswert und die Auswahl der zu installierenden Updates muss
dem Administrator vorbehalten sein. Er kann dafür auch Regeln erstellen, die sich die
Arbeit erleichtern.
Da jedoch nicht nur Microsoft-Produkte Sicherheitslücken enthalten können, sondern
auch, wie schon angesprochen, Software von anderen Anbietern und diese mit
WSUS oft nicht abgedeckt werden, sollte dafür gesorgt werden, dass auch alle
anderen nachinstallierten Programme auf dem neuesten Stand sind und die
wichtigsten Sicherheitsupdates auch für sie installiert werden. Die nachhaltige Pflege
der Programme ist dabei sehr wichtig und sollte ständig durchgeführt werden.
2.2.1.4
Benutzer und Passwort
Mit dem Begriff „Benutzer“ sind diejenigen Benutzer gemeint, die ein Konto auf dem
Server besitzen und die benötigten Rechte, um in kritischen Bereichen auf dem
Server arbeiten zu können. Es muss sichergestellt werden, dass sich ausschließlich
Administratoren
am
Server
anmelden
können,
damit
von
vorneherein
ausgeschlossen ist, dass nicht autorisierte Änderungen vorgenommen werden.
Es sollte aber auch die Möglichkeit geschaffen werden, sich mit einem Benutzer
einzuloggen, der eingeschränkte Rechte besitzt, damit dieser nur Änderungen an
einem bestimmten Programm vornehmen kann. Dieser Benutzer ist beispielsweise
der Administrator der SQL Datenbank und hat keine Befugnis, Änderungen am
System vorzunehmen.
Am einfachsten ist die Verwaltung des Servers über eine Remotedesktopverbindung,
die mit Hilfe des RDP (Remote Desktop Protocol) realisiert wird. Der Administrator
sollte auf dem Server daher eine eigene Gruppe für Remotedesktopbenutzer
einrichten. Diese Benutzer müssen mit den oben genannten Rechten ausgestattet
werden. Somit ist sichergestellt, dass sich Standardbenutzer nicht am Server
anmelden können (Ausnahme s.o.).
In jedem Fall müssen die Benutzer authentifiziert werden können, das bedeutet, sie
müssen einen Benutzernamen und ein Passwort besitzen, um sich in das System
einloggen zu können. Das Passwort des Benutzers muss einigen minimalen, aber
trotzdem erforderlichen Anforderungen entsprechen, um als „sicher“ eingestuft zu
10
werden. Das Erste, was beachtet werden muss, ist, dass das Passwort keinen Teil
des
Benutzernamen
oder
des
Namen
enthalten
darf,
im
dem
zwei
aufeinanderfolgende Buchstaben gleich sind. Das Zweite, worauf geachtet werden
sollte ist, dass das Passwort mindestens sechs Zeichen lang sein und Zeichen aus
drei der vier folgenden Kategorien enthalten muss:
1. Großbuchstaben (A bis Z)
2. Kleinbuchstaben (a bis z)
3. Zahlen (0 bis 9)
4. Nicht-alphabetische Zeichen (z.B. !, $, #)
Sind diese Kriterien erfüllt, so kann sich getrost auf andere Sicherheitsaspekte
konzentriert werden.
2.2.1.5
Verzicht auf Anwendungen / Deaktivierung von Diensten
Auf unnötige oder sicherheitskritische Programme kann verzichtet werden, da sie die
Sicherheit des Systems gefährden, obwohl sie nicht direkt benutzt werden. Die
Tatsache jedoch, dass sie überhaupt installiert sind reicht aus, um Hackern die
Möglichkeit
zu
geben,
deren
Sicherheitslücken
auszunutzen.
Ebenso
sind
Programme, die eine Internetverbindung nutzen, zu deinstallieren (z.B. Google
Chrome), da diese möglicherweise, im Hintergrund und ohne dass es der Benutzer
merkt, Daten an Server von Firmen weitergeben und somit auch eine potenzielle
Gefahr darstellen. Zur Liste der verzichtbaren Anwendungen können außerdem alle
Programme hinzugefügt werden, die nicht zum Betrieb des Servers bzw. der darauf
laufenden Datenbank benötigt werden. Diese sollten, nach gründlicher Überprüfung
ihrer Notwendigkeit, ebenso deinstalliert werden.
Es existieren einige Dienste, die unbedingt deaktiviert werden sollten, falls sie nicht
benötigt werden. Als einer der gefährlichsten Dienste gilt Telnet4, denn sollte dieser
aktiviert und dessen benutzter Port (22) geöffnet sein, so ist es für einen Hacker
ohne weitere Probleme möglich, Zugriff auf den Rechner zu erhalten und Daten
auszuspähen. Deshalb ist es wichtig sicherzustellen, dass dieser Dienst deaktiviert
ist und der verwendete Port nur für den SSH-Zugriff freigegeben wird.
4
Telecommunication Network: Zeichenorientierter Fernzugriff über eine TCP-Verbindung
11
Es ist jedoch Vorsicht geboten beim Deaktivieren von Diensten, denn es können
Fehler im System auftreten. Daher ist darauf zu achten, dass wirklich nur die Dienste,
die nicht benötigt werden, deaktiviert sind. Die Einstellungen sind je nach
Einsatzgebiet des SQL Servers entsprechend zu konfigurieren, doch häufig sind die
Einstellungen bereits vom Betriebssystem optimal gewählt worden und benötigen
keine weitere Aufmerksamkeit.
2.2.2 Linux
2.2.2.1
Root
Nach einer Installation des Linux-Servers, sollte zunächst das Passwort für den
Benutzer root geändert werden. Dabei ist darauf zu achten, dass ein sehr sicheres
Kennwort verwendet wird und kein Standardkennwort (wie z.B. 12345). Dieses
Passwort muss streng geheim gehalten werden und darf deshalb nirgendwo notiert
sein. Außerdem ist es von Vorteil, die Rechte zum Ausführen des Kommandos su
nur für bestimmte Benutzer zuzulassen, damit das Risiko von Missbrauch
eingegrenzt wird. Weiterhin ist empfohlen, auf gar keinen Fall als root an einem
Linux-Rechner zu arbeiten, da dieser User ausschließlich zur Administration
verwendet werden sollte. Um sicherzustellen, dass sich ein User nicht mit root per
SSH auf dem Rechner einloggen kann, sollte in der Datei /etc/ssh/sshd_conf
die Zeile PermitRootLogin von YES auf NO geändert werden.
2.2.2.2
Firewall
Je nachdem, wo sich der Server in einem Netzwerk befindet, macht es Sinn die
Firewall einzuschalten. Ein anderer Grund zum Einschalten der Firewall ergibt sich
aus dem Zugriff auf diesen Rechner innerhalb des Netzes.
Im folgenden Bild wird der strukturelle Aufbau der Firewalls von der RWTH Aachen
bis hin zu den einzelnen Diensten auf den Servern innerhalb eines Netzwerks
dargestellt. Das ausgewählte Institut soll dabei als Beispiel dafür dienen, wie die
Herangehensweise bei der Konfiguration der Firewall ist.
12
Abbildung 1 - Firewalls und Dienste
Die RWTH verschließt eingehende Verbindungen in einer Liste für gesperrte Dienste.
Durch bestimmte Firewallregeln können ausgewählte Dienste freigeschaltet und an
die entsprechenden Server innerhalb des RWTH-Netzes weitergeleitet werden.
Dabei gilt nur einer der Grundsätze: „Was nicht explizit erlaubt ist, ist verboten“ oder
„Was nicht explizit verboten ist, ist erlaubt“. Deshalb wird am Ende der
Firewallkonfiguration alles verboten, so kann nichts durchgehen, was einem eventuell
entgangen ist. Die Firewallregeln werden strikt in der Reihenfolge, in der sie
aufgestellt wurden, abgearbeitet. Das bedeutet, dass sich der Verantwortliche genau
im Klaren sein muss, welche Regeln zuerst aufgestellt werden und welche eine
niedrigere Priorität erhalten.
Über den SSH-Zugang ist es schließlich möglich, sich mehr oder weniger frei
innerhalb des RWTH-Netzes zu bewegen. Der Benutzer muss auf dem jeweiligen
Rechner, auf den er zugreifen möchte, lediglich einen Account haben.
13
Der TCP-Wrapper bildet eine weitere Sicherheitsschicht zwischen dem InternetDämon inetd und dem jeweiligen Dienst. Statt dem Start des Dienstes, reicht
inetd die Anfrage des Clients an den
tcpd weiter. Dieser prüft die
Zugangsberechtigung des Users in der Datei /etc/hosts.allow. Falls der
Benutzer dort eingetragen ist, wird der Dienst sofort gestartet. Andernfalls wird in der
Datei /etc/hosts.deny nach einem Eintrag für den Client gesucht und falls dieser
vorhanden ist, wird die Ausführung des Dienstes verweigert. In allen anderen Fällen
wird der Dienst ausgeführt. Aus diesem Grund sollte am Ende der Datei
/etc/hosts.deny der Eintrag ALL: ALL stehen, der die Ausführung aller Dienste
verhindert, falls es nicht explizit erlaubt wurde.
Auf der untersten Ebene steht die Konfiguration der zur Verfügung gestellten
Serverdienste. Hierzu zählen beispielsweise Einstellungen für eine SQL-Datenbank
(Kap. 3). Es sollte darauf geachtet werden, dass sich die dort vorgenommenen
Einstellungen auch in Richtung Verschlüsselung (Kap. 3.3.5) bewegen und die
Zugriffe, soweit es geht, beschränkt werden. Damit wird eine sichere Grundlage für
alle Benutzer geschaffen.
3. Bedrohungen für die Datenbanksicherheit und
effektive Schutzmechanismen
Nachdem die Wahl des geeigneten Betriebssystems getroffen ist, soll in diesem
Kapitel aufgezeigt werden, welche Bedrohungen für eine Datenbank existieren. Es
wird dabei sowohl auf Bedrohungen aus dem Internet als auch aus dem direkten
Umfeld eingegangen.
Das größte Risiko ist eine SQL-Datenbank, die im Hintergrund einer Webseite läuft,
denn so haben die Menschen aus dem Internet indirekten Zugriff auf die in der
Datenbank befindlichen Daten. Es können sich mehrere Situationen ergeben, in
denen sich eine unbefugte Person Zugang zu privaten Daten in dieser Datenbank
verschafft. Zum einen gibt es Menschen, die mit Gewalt und illegalen Mitteln
versuchen, die geheimen Daten in der Datenbank auszuspähen, und zum anderen
14
gibt es diejenigen Menschen, die versuchen, mit den verfügbaren Rechten an
geheime Daten im Unternehmen zu gelangen und sie für private oder kommerzielle
Zwecke zu missbrauchen.
In diesem Sinn lassen sich die Bedrohungen in zwei Kategorien einordnen. Zum
einen in externe Bedrohungen, also von außen verursachte Manipulationen des
Quelltextes. Zum anderen in interne Bedrohungen, wie durch unachtsame
Datenbankbenutzer verursachte Änderungen, die die Datensicherheit gefährden.
3.1 Externe Bedrohungen
3.1.1 SQL Injection
Als
SQL
Injection
werden
Angriffe
bezeichnet,
bei
denen
handelsübliche
Formularfelder (z.B. Input-Felder mit dem Typ „text“) zweckentfremdet werden und
statt der geforderten Eingabe ein SQL-Statement eingefügt wird. Mit diesem kann
sich der Benutzer Zugang zur gesamten Datenbank verschaffen. Über 90 Prozent5
der Ursachen für Datendiebstahl gehen auf das Konto von SQL Injection bzw. auf
eine unzureichende Absicherung von SQL-Anfragen, bevor diese an den Server
gesendet werden. Die SQL-Befehle können dabei, je nachdem wie das Feld
ausgewertet wird, direkt in der URL ergänzt oder in ein Textfeld eingegeben werden.
Eine typische SQL-Anweisung in PHP, ohne Validierung, sieht folgendermaßen aus:
$query = “SELECT * FROM ‘adressen‘ WHERE ‘haus_nr‘ LIKE
‘“.$_GET[‘nummer‘].“‘“;
Dieses Statement wird, so wie es dort steht, an die Datenbank weitergeleitet und
theoretisch kann für die Variable „nummer“ jeder Wert, also auch ein SQL-Befehl,
eingesetzt werden. Falls eine Person mit SQL-Kenntnissen nun statt einer Zahl einen
String in das Feld „nummer“ eingibt, wie beispielsweise:
1‘; DROP TABLE ‘adressen‘;-Dann sieht die Abfrage folgendermaßen aus:
5
http://cwe.mitre.org/top25/index.html#Listing, 24.10.2011
15
$query = “SELECT * FROM ‘adressen‘ WHERE ‘haus_nr‘ LIKE ‘1‘;
DROP TABLE ‘adressen‘;--“;
Die Ausführung dieses Befehls hat zur Folge, dass die komplette Tabelle „adressen“
gelöscht wird. Auf diesem Weg lassen sich auch sensible Daten, wie Passwörter, EMail-Adressen oder Bankverbindungen, ausspähen und neue Benutzer anlegen, die
über Administratorrechte verfügen.
Schutzmaßnahmen:
Der grundlegende Schutz vor SQL Injection ist die Prüfung der Eingabedaten auf ihre
Korrektheit. Das bedeutet, dass kontrolliert werden muss, ob auch wirklich nur die
Werte eingegeben wurden, die erwartet werden (Zahlen in Zahlenfelder und Texte in
Textfelder).
Eine
weitere
Methode
zur Sicherung der Abfrage
ist die
PHP-Funktion:
mysql_real_escape_string(). Mit ihr werden alle Zeichen maskiert, mit denen
die Möglichkeit besteht, die SQL-Abfrage zu verlassen. Sie bietet einen
ausreichenden Schutz vor SQL Injection, doch sie ist nicht die sicherste Möglichkeit.
Einen hinreichenden Schutz bieten in PHP nur Prepared Statements. Sie sind in den
Klassen „PHP Data Object“ (kurz „PDO“) und „PDOStatement“ enthalten. Hierbei
wird ein SQL-Statement mit Platzhaltern erzeugt und schon vorab, mit dem Befehl
prepareStatement($query), an den Server gesendet und somit „vorbereitet“.
Das bedeutet, dass die Abfrage an sich nicht mehr verändert werden kann, sondern
nur noch die freien Paramater darin, mittels bindParam(“:name“, $name), durch
konkrete Werte ersetzt werden können.
3.1.2 Cross-Site-Scripting (XSS)
Beim Cross-Site-Scripting geht es darum, JavaScript-Code in Formularfelder
einzufügen, um zu schauen, ob diese Felder auf ihren Inhalt überprüft werden. Falls
ein Feld nicht genügend validiert ist, so ist es möglich, durch einen einfachen Befehl
wie: <script type="text/javascript">alert("XSS")</script>, der in
dieses Feld eingefügt wurde, JavaScript auszuführen. Die Gefahr besteht darin, dass
ein Angreifer durch diese Methode an die privaten Login-Daten anderer Benutzer
gelangen kann. Durch Benutzung komplizierterer Befehle kann er sich Cookies oder
16
Bestandteile einer Session dieser Benutzer zu Eigen machen, sie manipulieren und
dann noch mehr Schaden mit den erhaltenen Daten anrichten.
Üblicherweise wird XSS auf die GET-Parameter in der URL angewendet und
ausgeführt. Das ist eine einfache und doch sehr effektive Methode, um an private
Daten zu kommen.
Schutzmaßnahmen:
Es ist auf jeden Fall erforderlich, so wie bei SQL Injection, alle Felder, die in eine
Datenbank eingetragen werden, zu validieren und auf XSS-Code zu überprüfen.
Dabei sollten sowohl die GET- als auch die POST-Parameter untersucht werden. In
PHP existieren mehrere Funktionen, mit denen die Ausführung von JavaScript-Code
verhindert
werden
kann.
Die
nützlichsten
dieser
Funktionen
sind:
htmlspecialchars() und htmlentities(). Sie bearbeiten die Eingabe so,
dass dort enthaltene HTML-Tags nicht interpretiert werden, sondern umgewandelt
und als Text ausgegeben werden.
Ist die Eingabe von HTML-Tags jedoch erwünscht, wie es beispielsweise in Foren
der Fall ist, so ist der Schutz vor Cross-Site-Scripting schwieriger, denn es müssen
eigene Funktionen geschrieben werden, die JavaScript-Code filtern. Dabei besteht
die Gefahr, dass nicht alle Möglichkeiten in Erwägung gezogen werden und somit die
Erfolgschancen von Angreifern erhöht werden, an Daten zu kommen.
3.1.3 Denial-of-Service (DoS)
Bei dieser Art von Angriff wird der Datenbankserver mit einer hohen Anzahl von
Anfragen belastet, dadurch kann ein bestimmter Dienst, z.B. der HTTP-Dienst, keine
weiteren Anfragen verarbeiten und der Server ist somit außer Gefecht gesetzt. Eine
andere
Möglichkeit
ist
die
Ausnutzung
von
Programmierfehlern
in
der
Serversoftware, um diese zum Absturz zu bringen.
Vor einiger Zeit wurden namhafte Dienstleister im Internet wie „MasterCard“, „Visa“
und „PayPal“ durch sogenannte Botnetze angegriffen und mussten ihren regulären
Betrieb kurzzeitig einstellen. Diese DDos-Angriffe (Distributed Denial of Service)
werden von unzähligen Rechnern gleichzeitig auf einen Server konzentriert und
meistens hat dieser keine Chance, ihnen standzuhalten.
17
In den schlimmsten Fällen kann mit dieser Angriffsart die IP-Adresse des Servers
geändert und der Server unerreichbar für alle anderen gemacht werden.
Schutzmaßnahmen:
Einen soliden Schutz bieten Sperrlisten, in denen die IP-Adresse des Angreifers
notiert ist und die ankommenden Pakete dieser IP-Adresse schlicht verworfen
werden. Die Firewall kann auch so eingestellt werden, dass nur eine begrenzte
Anzahl an Paketen von einer Quell-IP durchgelassen werden. Dadurch verliert ein
DoS-Angriff an Effektivität, da viele Pakete bereits vor der Verarbeitung durch die
Serverdienste verworfen werden.
3.2 Interne Bedrohungen
3.2.1 Missbrauch von Zugriffsrechten
Die größte Gefahr für die Datensicherheit in einem Unternehmen geht vom
Mitarbeiter aus, der seine Zugriffsrechte für eine Datenbank mit sensiblen Daten
missbraucht. Besitzt er z.B. das Recht, kundenbezogene Daten auszulesen, so kann
er sie kopieren und für viel Geld an Konkurrenzfirmen weiterverkaufen. Eine
Überschreitung des Zuständigkeitsbereichs stellt ein hohes Risiko für Unternehmen
da und sollte genau durchdacht werden.
Ein fast genauso schlimmes Szenario ist ein weniger erfahrener Datenbankbenutzer,
der Daten abfragt, diese lokal speichert und somit einer Vielzahl von Gefahren
aussetzt, wie Trojanern oder Viren, die seinen Rechner infizieren könnten.
In diesem Zusammenhang ist auch der Missbrauch von überproportional vielen
Zugriffsrechten zu betrachten. Hierbei kann es leicht zu Fällen kommen, in denen die
Rechte dazu verwendet werden, um Daten zu manipulieren. Häufig taucht dieses
Problem bei Administratoren von Datenbanken auf, die meist uneingeschränkten
Zugriff auf das Datenbanksystem haben.
Andererseits treten auch Fälle auf, in denen der Administrator einen neuen Benutzer,
sei es aus Zeitgründen oder mangels näherer Informationen der Personalverwaltung,
mit zu vielen Zugriffsrechten ausstattet und ihm dadurch freies Gewähren in für ihn
sonst unzugängliche Bereiche verleiht. Dies ist besonders gefährlich bei kürzlich
18
eingestellten Mitarbeitern, zu denen noch keine ausreichende Vertrauensbasis
geschaffen wurde, oder bei Mitarbeitern, die kurz vor der Entlassung stehen.
Schutzmaßnahmen:
Die Rechte sollten für jeden Benutzer so eingeschränkt werden, dass er nur Zugriff
auf Daten erhält, die in seinem Zuständigkeitsbereich liegen. Weiterhin sollte durch
Logdateien überprüft werden, welche Datenbestände ausgelesen wurden und wie oft
das geschehen ist. Schließlich ist eine überdurchschnittlich häufige Zugriffszahl auf
einen Datenbestand äußerst verdächtig. Weiterhin muss das Verhalten der Benutzer
beobachtet und bei ungewöhnlichen Vorkommnissen genauer unter die Lupe
genommen werden, welche Daten dieser Benutzer verwendet.
Ein Datenbankadministrator sollte für jeden Mitarbeiter einen Benutzer in der
Datenbank anlegen. Es ist außerdem erforderlich, jedem Benutzer ein anderes
Passwort zu geben und die Tabellen, auf die er zugreifen darf von Anfang an
einzugrenzen. Ein Benutzer wird unter MySQL wie folgt erstellt:
CREATE USER <benutzername>
IDENTIFIED BY <passwort>;
Die Rechtevergabe wird in allen Datenbanksystemen mit dem Befehl grant
realisiert. Um einem Benutzer die Rechte zum Lesen, Einfügen, Updaten und
Löschen zu geben, kann folgender Befehl verwendet werden:
GRANT SELECT, INSERT, UPDATE, DELETE
ON <tabellenname>
TO <benutzername>
[ WITH GRANT OPTION ];
Die letzte Zeile ist optional und regelt nur, ob der Benutzer Rechte an weitere
Personen verteilen kann oder nicht. Auf eine ähnliche Art werden die Rechte wieder
entzogen:
REVOKE DELETE
ON <tabellenname>
FROM <benutzername>
[ CASCADE CONSTRAINTS ];
19
Dadurch verliert der Benutzer das Recht zum Löschen von Datensätzen in der
angegebenen Tabelle. Falls er dieses Recht noch an andere weitergegeben hat, so
wir diesen Personen, mit der letzten Zeile, ebenso das Recht entzogen.
Der Datenbankadministrator hat ebenso die Möglichkeit, sogenannte „Views“ für die
Benutzer einzurichten. Diese haben den Vorteil, dass der Benutzer nur die Daten zu
sehen bekommt, für die er autorisiert ist.
CREATE OR REPLACE VIEW <name> AS
SELECT t1.spalte1, t2.spalte1, t2.spalte2
FROM testable1 t1
JOIN testtable2 t2
USING (id)
WHERE t1.typ != ‘Chef’
AND t2.typ != ‘Chef’
Damit wird eine Sicht erstellt, die die Inhalte von zwei Tabellen kombiniert und nur
die Daten anzeigt, die nicht vom Typ „Chef“ sind, womit die sensiblen Daten
geschützt werden und ein eingeschränkter Zugriff ermöglicht wird. Der Benutzer
braucht jetzt nur noch die Rechte, um auf dieser Sicht zu arbeiten und es ist
sichergestellt, dass keine Informationen unkontrolliert weitergegeben werden.
3.2.2 Fehlerhafte Datenbankkonfiguration
Viele Datenbanksysteme laufen über Jahre problemlos und ohne Angriffe von
Hackern, doch das ist noch lange keine Garantie dafür, dass es auch weiterhin so
bleibt. Mit der Zeit könnten einige Sicherheitslücken aufgedeckt sein und inzwischen
aktiv von Angreifern genutzt werden, um an den Inhalt dieser, eventuell
sicherheitskritischen, Datenbanken zu gelangen. Es kommt auch häufig vor, dass die
Datenbank nach dem Erstellen nicht weiter konfiguriert wurde und somit noch
Standardwerte für Benutzer und Passwörter enthält, womit die Eindringlinge leichtes
Spiel haben, an die Daten zu kommen.
Schutzmaßnahmen:
Es sollte unbedingt darauf geachtet werden, dass die aktuellsten Sicherheitsupdates
und Patches so schnell wie möglich für die Datenbank installiert werden, denn eine
20
Sicherheitslücke ist, solange sie nicht behandelt wird, ein Risiko für alle in der
Datenbank enthaltenen Daten. Der Patch sollte daraufhin untersucht werden, welche
Systemänderungen er nach sich zieht und ob diese Änderungen für den
Administrator sinnvoll erscheinen.
Der Datenbankadministrator muss sich darum kümmern, dass eine möglichst sichere
Konfiguration der Datenbank vorliegt und wenig Spielraum für Angriffe lässt. Dazu
gehört, dass der Zugriff außerhalb des Firmennetzes untersagt wird, außerdem ist
ein verschlüsselter Zugang innerhalb des Netzes unbedingt erforderlich.
Ein Zugriff auf die Datenbank sollte, wenn möglich, nur über localhost geschehen.
Damit wird sichergestellt, dass kein anderer Rechner sich mit der Datenbank
verbinden kann. Zusätzlich muss das Passwort für den Benutzer root und eventuell
auch
dessen
Benutzername
umgehend
geändert
werden,
da
dies
der
Standardbenutzer mit allen Privilegien ist und ein Angreifer nur noch das Passwort
erraten müsste, um Zugriff zur Datenbank zu bekommen. Es sollte im Anschluss
dafür gesorgt werden, dass nur der root-Benutzer alle Privilegien zur Manipulation
der Datenbank hat und sonst kein anderer. Wie diese Rechte verteilt und entzogen
werden, wird in Kapitel 3.2.1 erläutert.
Da die Konfigurationsdatei /etc/my.cnf einer MySQL-Datenbank eine globale
Datei
ist
und
wichtige
Einstellungen
der
Datenbank
Eigentümerrechte mit dem Unix-Befehl chown
root
enthält,
sollten
die
/etc/my.cnf an den
Benutzer root übergeben werden, doch da diese Datei von anderen Programmen
lesbar sein muss, muss mit dem Befehl chmod
644
/etc/my.cnf ein
Modifizierungsrecht an den Besitzer und das Leserecht an alle anderen Benutzer
erteilen.
3.3 Allgemeine Schutzmechanismen (Ergänzung)
Es
existieren
drei
Grundarten
von
Sicherheitsaspekten,
durch
die
die
Datenbanksicherheit definiert ist. Hinzu kommt die Verschlüsselung von Daten in der
Datenbank als ebenso wichtiger Bestandteil eines Datenbankmanagementsystems.
Die drei Arten lauten Authentifizierung, Autorisierung und Auditing. Zu den ersten
beiden Methoden wurden bereits in den vorherigen Kapiteln einige Beispiele und
21
Erläuterungen dargelegt und nun sollen auch der letzte Punkt sowie die
Verschlüsselung beschrieben werden.
Unter Auditing ist das Protokollieren von Benutzern und deren Aktionen zu
verstehen. Dadurch kann leicht nachvollzogen werden, welcher Benutzer zu welcher
Uhrzeit, auf welche Daten zugegriffen hat und somit hat der Administrator einen
Nachweis für unbefugte Zugriffe auf die Datenbank. Dieses Sicherheitskonzept ist
eines der wichtigsten Werkzeuge für Datenbankadministratoren, da es eine sehr gute
Übersicht über alle Datenbankzugriff und –änderungen gibt. Anhand des Auditing,
wie es in einer Oracle-Datenbank zur Ausführung kommt, sollen im Folgenden die
wichtigsten Arten des Auditing aufgezeigt werden.
3.3.1 Mandatory Auditing
Das Mandatory Auditing wird automatisch gestartet und kann vom Administrator nicht
beeinflusst werden. Es werden alle Start- und Stop-Operationen, die von Benutzern
mit hohen Datenbankprivilegien (SYSDBA- oder SYSOPER-Rechte) auf die Datenbank
ausgeführt wurden, mitprotokolliert.
3.3.2 SYS Auditing
Mit dieser Auditing-Art werden sämtliche Aktionen vom Benutzer SYS und von
anderen Benutzern mit SYSDBA- oder SYSOPER-Rechten, mitgeschrieben. Es kann
dabei schnell passieren, dass der Speicherplatz auf der Festplatte nicht mehr
ausreicht, um weitere Daten zu speichern. Die Aufgabe des Systemadministrators ist,
dass die Daten an einen Daemonprozess weitergeleitet werden und somit dieser die
Übersicht über den nicht-verfügbaren Speicher besitzt.
3.3.3 Standard Auditing
Beim Standard Auditing werden Systemprivilegien mitgeschrieben, darüber hinaus
werden SELECT, GRANT, REVOKE auf TABLES, VIEWS, SEQUENCES, STORED
PROCEDURES, sowie FUNCTIONS und PACKAGES protokolliert, außerdem werden
22
DDL- und DML-Statements mitgeschrieben.
3.3.4 Fine Grained Auditing (FGA)
Das FGA ermöglicht es, eigens angefertigte Policies an Datenbankobjekte
anzuhängen. Sie werden bei der Ausführung von DDL- und DML-Statements
überprüft und u.U. mitgeloggt. Es bietet die optimale Möglichkeit, um nur die
relevanten Aktionen mitzuloggen und somit die Auswertung der Log-Dateien zu
erleichtern. Der große Nachteil bei dieser Methode besteht darin, dass ein Objekt
ohne Policy nicht in den Log-Dateien auftaucht und damit nicht ausgewertet werden
kann. Ein weiterer Nachteil besteht darin, dass die Wartung der Policies in großen
Datenbanksystemen aufwendig ist und viel Zeit in Anspruch nimmt und somit kaum
zu realisieren ist.
3.3.5 Verschlüsselung von Daten
Am häufigsten wird in diesem Zusammenhang das Passwort von Benutzern der
Datenbank verschlüsselt und gespeichert. Hierbei wird eine Einwegfunktion
verwendet, damit niemand so einfach das Passwort im Klartext wiederherstellen und
lesen kann. Die Verschlüsselung alleine reicht jedoch oft nicht aus, denn bei zu
unsicheren
oder
trivialen
Passwörtern
hilft
selbst
der
beste
Verschlüsselungsalgorithmus nicht weiter. Wie ein sicheres Passwort zu erstellen ist,
wird in Kap. 2.2.1.3 beschrieben.
Desweiteren
sollten
alle
sensiblen
Daten,
wie
Kreditkarteninformationen,
ausschließlich verschlüsselt abgespeichert werden, um einen grundlegenden Schutz
für die Daten zu gewährleisten.
Für das Verschlüsseln der Daten stehen mehrere Funktionen in einer Datenbank,
hier MySQL, zur Verfügung. Die am häufigsten verwendeten Funktionen sind
PASSWORD,
MD5 und SHA1, welche meistens dazu verwendet werden, um
Passwörter zu verschlüsseln, wobei die letzten beiden Funktion kürzere Hashes
ergeben als die erste Funktion. Somit ist PASSWORD die sicherste der zur Verfügung
stehenden Funktionen und erschwert es Dieben von Datenbeständen, das Passwort
zu rekonstruieren.
23
Literaturverzeichnis
Auditing. 20. 09 2010. http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/Auditing (Zugriff am
26. 10 2011).
Boddenberg, Ulrich B. Galileo Computing - Windows Server 2008 R2 - 14 "Innere
Sicherheit". Galileo Press GmbH.
http://openbook.galileocomputing.de/windows_server_2008/windows_server_2008_kap_14_
001.htm (Zugriff am 21. 10 2011).
—. Galileo Computing - Windows Server 2008 R2 - 19.4 Benutzerzugriff.
http://openbook.galileocomputing.de/windows_server_2008/windows_server_2008_kap_19_
004.htm (Zugriff am 21. 10 2011).
Denial of Service. http://de.wikipedia.org/wiki/Denial_of_Service (Zugriff am 25. 10 2011).
Eilers, Carsten. About Security #14: Cross-Site Scripting. 14. 07 2005.
http://entwickler.de/zonen/portale/psecom,id,126,news,22893,p,0.html (Zugriff am 24. 10
2011).
—. About Security #15: Cross-Site Scripting verhindern. 21. 07 2005.
http://entwickler.de/zonen/portale/psecom,id,126,news,22996,p,0.html (Zugriff am 25. 10
2011).
Haberl, Christian. Sicherheit mit Windows Bordmitteln und Gratistools – Die Grundregeln. 20.
02 2011. http://blog.this.at/post/2011/02/20/Sicherheit-mit-Windows-Bordmitteln-und-demkostenlosen-Microsoft-Security-Essentials-20.aspx (Zugriff am 21. 10 2011).
jesser. Top-Datenbankbedrohungen. 14. 08 2011. http://www.itexperts.edilog.de/2011/09/14/top-datenbankbedrohungen/ (Zugriff am 25. 10 2011).
Kishore, Aseem. thebackroomtech. 2010. http://thebackroomtech.com/2008/03/10/windowsserver-2008-password-complexity-requirements/ (Zugriff am 21. 10 2011).
24
25