Denial of Service
Unter einem Denial of Service (kurz DoS) versteht man einen Angriff, der zum Ziel hat einen Dienst durch Überlastung einer Systemressource Lahm zu legen.
Dieser Angriff ist für Diensteanbieter in Internet eine der ernstzunehmensten Bedrohungen.
Da jeder Dienst im Internet über Server angeboten wird, die ihrerseits wiederum diesen Dienst mittels einer Netzwerkanbindung zur Verfügung stellen, bieten sich für einen Angreifer diverse Ansatzpunkte um sein Ziel (den DoS) zu realisieren. Zum einen kann ein Angreifer den Server als solches zum Ziel erklären und dort versuchen die CPU Auslastung oder die Arbeitsspeicher Auslastung an die Grenzen des durch die eingesetzte Hardware machbaren zu bringen. Hierdurch wird der Server nicht mehr in der Lage sein, neue Anfragen zu beantworten. Kurz: Der Dienst steht nicht mehr zur Verfügung. Ein anderer Ansatzpunkt setzt bei der Netzwerkanbindung an. Wenn ein Angreifer es schafft, die komplette Bandbreite der Netzanbindung für seinen Angriff zu nutzen, so kommen Anfragen anderer Benutzer gar nicht mehr an ihr Ziel.
Klassische Beispiele für einen solchen DoS sind die sogenannte Smurf-Attacke, die die Netzanbindung angreift, oder der Ping of Death, der das System versucht zu überlasten.
Damit ein solcher Angriff erfolgreich ist, muss der Cracker in der Lage sein eine Ressource zu 100% Kontrollieren zu können. Hierdurch ergibt sich eine Möglichkeit, für den Administrator eines Servers, Gegenzusteuern. Im Fall des Bandbreitenangriffs z.B. ist ein durchaus probates Mittel mittels vorgeschaltetem Paketfilter nur eine bestimmte Datenmenge pro Benutzer und Zeiteinheit zu erlauben. Ein Beispiel: Angenommen die zur Verfügung stehende Bandbreite beträgt 10000kB/sec. Mittels vorgeschaltetem Paketfilter erlaube man nun einem Benutzer max. 5000kB/sec. dieser Bandbreite zu nutzen. Nun kann ein einzelner Benutzer das System nicht mehr lahm legen, indem er die Netzanbindung angreift. Anzumerken sei hier allerdings, dass ein Paketfilter der dies regelt so konfiguriert werden muss, dass er wirklich mit Maximalwerten arbeitet, die im laufenden Betrieb auch unterschritten werden können, da man sonst u.U. selber die Verfügbarkeit des Servers beschneidet. Würde der Paketfilter im obigen Beispiel nicht max. 5000kB/sec. zulassen, sondern genau 5000kB/sec. so wäre nachdem 2 Benutzer mit dem Server verbunden sind Schluss und weitere Verbindungen könnten nicht aufgebaut werden. Außerdem sollte dieser Ansatz genau durchdacht werden, da die Anzahl der maximal abzuarbeitenden Anfragen die ein Server schafft, die durchschnittliche Anzahl gleichzeitiger Anfragen die in der Praxis auftreten und die durchschnittliche Geschwindigkeit der Netzanbindung des Benutzers hier durchaus eine Rolle spielen. Die Verteidigung gegen Angriffe die auf Systemressourcen des Servers abzielen ist hingegen ein wenig kniffliger. Eine gute Strategie besteht hier darin, Designfehler, Programmierfehler und Konfigurationsfehler zu erkennen und zu eliminieren. Da aber normalerweise der Großteil der Serverapplikationen nicht vom Systemadministrator programmiert wird, sollte man die entsprechenden Newsgroups/Newsletter regelmäßig lesen und die Advisories der Programmierer beachten.