The Protocols that run the Internet Attack Types in the Internet
Transcrição
The Protocols that run the Internet Attack Types in the Internet
Ausarbeitung zum Seminar: The Protocols that run the Internet Universität Konstanz Fachbereich Informatik und Informationswissenschaften Thema: Attack Types in the Internet Jens Gerken Inhaltsverzeichnis 1. Einleitung 2. Einführung – Internet Attacken a. Gründe für die Angreifbarkeit des Internets b. Welche Folgen haben Angriffe auf das Internet c. Welche Techniken existieren 3. Network Service Attacks a. Process Manipulation b. Information Leaks 4. Distributed Denial of Service Attacken: Angriffs- und Verteidigungstechniken a. Einführung in DDoS b. Klassifizierung der DDoS Angriffstechniken c. Klassifizierung der DDoS Verteidigungstechniken 5. Fazit 6. Quellen & Links 2 1. Einleitung Am 21. Oktober 2002 gegen 17:00 (Eastern Daylight Time) war es soweit. Die bislang größte Attacke auf das Herz des Internets – die 13 DNS Root Server – wurde gestartet. Der Angriff dauerte etwa eine Stunde und war sowohl was die Koordination der Attacke als auch den angerichteten Schaden angeht, in den Augen einiger Serverbetreiber bislang einzigartig. Auch wenn derartige Angriffe beinahe täglich gegen einzelne Root Server gefahren werden, so gab es in der Vergangenheit niemals eine Attacke in derartigem Ausmaß, welche alle 13 Server gleichzeitig betraf. Lediglich 4-5 der 13 Server überstanden den Angriff unbeschadet. Allerdings brach die Attacke genauso unvermittelt ab, wie sie begonnen hatte – in den Augen von Paul Vixie, Gründer des Internet Software Consortiums, Chefarchitekt des DNS-Servers BIND und Betreiber des F-Root-Servers, hätten aber auch die letzten 4-5 Server nicht mehr stand halten können, wenn die Attacke nur ein wenig länger angedauert hätte. Es scheint also, als wenn dieser Angriff nur ein „Kräftemessen“ war, um zu sehen was möglich ist oder den DNS-Root Server Betreibern die Gefahren aufzuzeigen. An den Augen des normalen Internetanwenders ging der Angriff völlig unbemerkt vorbei – die Root Server sind so aufgebaut, dass bis zu 8 davon komplett ausfallen können, ehe merkliche Verzögerungen eintreten. Sie dienen dabei als Anlaufstellen für definitive und autorisierte Auskünfte für die korrekten Adressen innerhalb von Top Level Domains im Netz1. Im Gegensatz zu den typischen Hackerszenarien wurde keiner der Server in irgendeiner Weise kompromittiert. Der Angriff bestand in einer Distributed Denial of Service, oder kurz DDoS, Attacke. Diese relativ neue Angriffsform, die ersten „distributed“ DoS Attacken starteten 1999, hat weniger das Ziel den Rechner des Opfers zu übernehmen oder Daten zu stehlen, sondern vielmehr ihn soweit lahm zu legen, dass er nicht weiter seiner Tätigkeit nachgehen, also seinen Service anbieten kann. Ein derartiger Angriff auf einen Webserver hätte beispielsweise zur Folge, dass die Seite nicht mehr erreichbar ist und somit legitime Nutzer den angebotenen Service nicht mehr nutzen können. Darüber hinaus existieren zahlreiche Scripts und Tools, die derartige Angriffe auch für relativ unbedarfte „Hacker“ möglich machen – hinzu kommt, dass es mittlerweile auch sehr schwer ist, den Angreifer zu entdecken. Auch im obigen Fall des Angriffs auf die Root Server konnten zwar 4 Länder ausgemacht werden (alle USA freundlich gesinnt), von denen der Angriff gestartet wurde, weiter kam man jedoch auch mit Hilfe des FBI nicht. Vom technischen Standpunkt her ist eine DoS oder DDoS Attacke relativ simpel. Es wird einfach versucht, entweder soviel Traffic an den Zielrechner zu schicken, dass dieser keinen, und somit auch keinen legitimen, mehr annimmt, oder aber seine Rechenleistung soweit aufzubrauchen, dass er ebenfalls keine legitimen Anfragen mehr bearbeiten kann. Um dies zu erreichen wird das Prinzip „Kraft von vielen > Kraft von wenigen“ herangezogen. Der Angreifer macht sich zunächst etliche Rechner untertan und startet mit dieser Armee einen koordinierten Angriff. Die Vergangenheit hat gezeigt, dass mit dieser Methode prinzipiell jedes Ziel angreifbar ist, egal wie es geschützt wird. Es gibt allerdings trotzdem Möglichkeiten mit solchen Attacken umzugehen und sie auch zu überstehen. Die unterschiedlichen Angriffsmöglichkeiten, aber auch, was man dagegen tun kann, möchte ich in Kapitel 4 ausführlich beschreiben. 1 http://www.heise.de/newsticker/data/jk-23.10.02-001/ 3 2. Einführung – Internet Attacken Das Internet ist tagtäglich unzähligen Angriffen ausgeliefert, seien es private Racheaktionen, Firmenspionagen oder Sabotageaktionen. Die meisten dieser Angriffe werden kaum bekannt, da der angerichtete Schaden nur gering ist. Wenn man verstehen will, wie man gegen solche Angriffe in Zukunft vorgehen soll, muss man zunächst drei Dinge verstehen: • Wieso sind diese Angriffe überhaupt möglich? • Welche Folgen haben die Angriffe? • Welche Angriffstechniken werden eingesetzt? Im Folgenden möchte ich kurz auf diese drei Punkte eingehen. 2.1 Gründe für die Angreifbarkeit des Internets 2.1.1 Konzeptionelle Fehler Bei der Konzeption des Internets stand stets Funktionalität im Vordergrund und nicht Sicherheit. In dieser Hinsicht war es auch überaus erfolgreich, ist doch mittlerweile praktisch die gesamte Welt über dieses Netz miteinander verbunden. Um die maximale Funktionalität zu erreichen, wurden Protokolle kreiert, die zwar für den jeweiligen Endnutzer „billig“ sind, und damit auf dieser Seite relativ wenig Rechenleistung oder Bandbreite benötigen, allerdings für den Server sehr „teuer“ sein können was diese beiden Punkte anbelangt. Beispielsweise ist es relativ aufwendig für den Server, fehlerhafte Pakete zu korrigieren und wiederherzustellen. Diese Tatsache kann aber auch ausgenutzt werden, indem einfach absichtlich viele fehlerhafte Pakete verschickt werden – für den Sender ist das nicht besonders aufwendig, wenn es jedoch im großen Stil durchgeführt wird, kann damit ein Server lahmgelegt werden. Auch werden Daten zum Großteil unverschlüsselt, und damit für jedermann einsehbar, übertragen. Ein weiteres Problem st die dezentralisierte Arbeitsweise des Internets. Es gehört niemandem und somit können auch nur sehr schwer einheitliche Richtlinien bezüglich der Sicherheit durchgesetzt werden. Da die Sicherheit eines einzelnen Systems aber auch von der Sicherheit aller abhängt, wird man sich nie komplett vor Angriffen schützen können, solange nicht gemeinsam vorgegangen wird. Am deutlichsten zeigt sich dies bei DDoS Attacken. Solange ein Angreifer hunderte von privaten oder auch universitären Rechnern relativ problemlos „kapern“ kann, bringt auch das ausgefeilteste Sicherheitssystem nicht viel um den eigenen Server zu schützen. 2.1.2 Programmiertechnische Fehler Programmiertechnische Fehler sind die häufigste Ursache für Angriffe. Oftmals werden Softwareentwickler dazu gedrängt möglichst performanten Code zu schreiben – und legen dementsprechend weniger Wert auf Robustheit und Sicherheit im Falle eines Angriffes. Schon bei herkömmlicher „Offline- Software“ verschlingt Bugtesting sowohl viel Zeit als auch viel Geld. Bei Applikationen, die mit dem Internet agieren, ist ein Bug gleichzeitig oftmals auch ein möglicher Angriffspunkt. In dieser Hinsicht sollte vor allem mehr Augenmerk auf sogenanntes „Bounds Checking“ gelegt werden. Das bedeutet, dass zu jedem Zeitpunkt jedes Argument und 4 jegliche Daten, die an eine Routine übergeben werden, überprüft und verifiziert werden. In der Vergangenheit wurde oftmals unzureichendes „Bounds Checking“ in Bezug auf die Länge des Arguments ausgenutzt, um einen Speicherüberlauf zu provozieren und anschließend den eigentlichen Angriffscode direkt auf dem Executable Stack zu platzieren. 2.1.3 Konfigurations-Fehler Konfigurationsfehler sind ebenfalls ein möglicher Angriffspunkt. Oftmals sind Service aktiv, die unnötig sind, aber dem möglichen Angreifer entweder wichtige Informationen liefern oder direkt Ziel eines Angriffs sein können. Auch die falsche Konfiguration einer Firewall oder sonstiger Abwehrsysteme fällt in diesen Bereich. 2.2 Welche Folgen haben Angriffe auf das Internet 2.2.1 Verlust der Vertraulichkeit Wenn Daten unverschlüsselt übertragen werden und dadurch von Dritten gelesen werden können, ist die Vertraulichkeit einer Übertragung nicht mehr gewährleistet. Die Vertraulichkeit einer Übertragung ist für jegliche Kommunikation über das Internet von entscheidender Bedeutung. Wenn diese nicht mehr gewährleistet werden kann, verliert das Internet sowohl für das B-to-C business als auch das B-to-B business an Bedeutung – doch genau diese beiden Punkte sichern langfristig seinen Erfolg. 2.2.2 Verlust der Integrität Wenn in Rechner eingedrungen werden kann und somit auch Daten manipuliert werden können, ist die Integrität der Daten nicht mehr gegeben. Gleiches gilt auch für das Abfangen und Manipulieren von Daten bei der Übertragung. Die Folgen hier sind, ähnlich wie bei dem Verlust der Vertraulichkeit. In vielen Fällen treten beide auch gemeinsam auf. Der Verlust der Integrität geht hierbei noch einen Schritt weiter als der Verlust der Vertraulichkeit. Wenn Daten nicht nur von dritten gelesen, sondern auch manipuliert werden können, ist letztendlich die Kommunikation via Internet sinnlos, da nicht vertrauenswürdig. 2.2.3 Verlust der Verfügbarkeit DoS Attacken haben den Ausfall eines angebotenen Service zur Folge. Somit ist beispielsweise eine Webseite nicht mehr erreichbar. Auf den ersten Blick scheint dieser Punkt der harmloseste zu sein, da zumeist derartige Ausfälle nur temporär sind. Allerdings sind die ersten beiden Punkte durch beispielsweise VerschlüsselungsProtokolle oder höhere Sicherheitsmaßnahmen im eigenen Unternehmen weitgehend auszuschließen. Wie in Kapitel 4 sichtbar werden wird, gibt es gegen DoS Attacken jedoch kein Allheilmittel. 2.3 Welche Techniken existieren Die im Folgenden kurz angeführten Techniken sind nur eine Auswahl und sollen keineswegs einen Anspruch auf Vollständigkeit erheben. 5 2.3.1 „Social Engineering“ Ein oft nur wenig beachteter Punkt bei Sicherheitsüberlegungen ist das sogenannte „Social Engineering“. Um an Passwörter zu gelangen, gibt es nicht nur den „technischen“ Weg, indem man sich in ein System hackt. Ein einfacher Anruf bei der Sekretärin kann auch schon entscheidende Türen öffnen. Der Anrufer gibt sich als Systemadministrator aus, der einen Fehler beheben will, wenn die Sekretärin beispielsweise nicht sonderlich mit Computern vertraut ist, ist es ihm eventuell ein Leichtes sie derart zu verunsichern, dass sie ihm Glauben schenkt. Eine kurze Frage nach dem Passwort, damit er den Fehler von seinem Platz aus beheben kann und schon entscheidet es sich, wie sicher die Firmendaten trotz aller Sicherheitsmaßnahmen auf technischer Ebene sind. 2.3.2 Viren, Würmer, Trojaner Auch Viren, Würmer oder Trojaner versuchen nicht auf dem „harten“ Weg ein System zu überwinden. Auch hier versucht der Angreifer sich einzuschleichen. Die enorme Verbreitung von Email-Würmern in den letzten Jahren hat gezeigt, wie einfach mit dieser Methode zumindest die Rechner von „Otto-Normal-Verbraucher“ in Beschlag genommen werden können. Und auch Firmen und Webserver sind vor derartigen Angriffen nicht gefeit. Beispielsweise kann ein Email-Wurm, der 4MB groß ist, wenn er sich in einem Firmensubnetz hundertfach verschickt, dort die zumeist genutzten MS Exchange Mail Servers und Outlook Clients crashen. 2.3.3 Spoofing (IP,DNS, Web) Generell sagt Spoofing aus, dass dadurch der Angreifer versucht, seine eigene Identität zu verbergen. Letztendlich wird bei fast jeder Attacke IP-Spoofing verwendet, um eine Entdeckung zu vermeiden. 2.3.4 Sniffing Mit Sniffing ist das “Abhören” von Datenpaketen gemeint, die eigentlich für jemand anderes bestimmt sind. Diese Technik ist oftmals Grundvoraussetzung für weitergehende Angriffe. 2.3.5 Connection Hijacking Oftmals ist das Zielobjekt sehr gut geschützt und kaum zu knacken. Allerdings gibt es noch andere Möglichkeiten sich Zugang zu verschaffen. Beispielsweise mit Hilfe einer autorisierten Verbindung. Im Falle einer TCP Verbindung, kann der Angreifer versuchen, diese zu desynchronisieren (mit Hilfe von Sniffing und IP-Spoofing). Danach kann der Host nicht mehr direkt mit dem eigentlichen Empfänger kommunizieren. Hier tritt nun der Angreifer auf, der in beide Richtungen als Vermittler agiert – allerdings mit der zusätzlichen Fähigkeit den Datenstrom manipulieren zu können und eigene Pakete einzuschleusen. Es gibt viele verschiedene Varianten dieser Technik. Beispielsweise ist es auch möglich über eine Denial of Service Attacke auf den Client dessen Verbindung zum Host zu kappen und dann mittels IP-Spoofing als eben dieser aufzutreten. 6 Im Folgenden möchte ich mich auf die sogenannten Network Service Attacks, und hier insbesondere auf Distributed Denial of Service Attacken konzentrieren. Einige der eben beschriebenen Techniken finden auch hier Anwendung, wie sich zeigen wird. Da das aus Filmen bekannte „Hacken“, in der Form des „if you have no password but still want the confidential information, you can try to hack in - plz click here“ Buttons auf der CIA Main Page doch nur reine Fiktion ist, mussten andere Ansatzpunkte gefunden werden. Diese bieten sich oftmals in den sogenannten Services und Diensten, die auf einem Server aktiv sind. Beispielsweise kann ein einfacher telnet Service, der wie oben bereits kurz angerissen nur unzureichendes „Bounds Checking“ der übergebenen Kommandos und Argumente durchführt, ein Sicherheitsrisiko darstellen. Genau dann, wenn eben ein zu langes Argument den Service zum Absturz bringt – und alles was über die Länge hinaus geht, einfach auf den Executable Stack gelegt wird – und dann eben auch ausgeführt wird. 3. Network Service Attacks Network Service Attacks lassen sich grob in 2 Punkte untergliedern. Zum einen in „Process Manipulation“ bei welchem beispielsweise Fehler oder Schwächen in Protokollen ausgenutzt werden. Zum anderen in die sogenannten „Information Leaks“. Hierbei handelt es sich zumeist um Features, die jedoch dem potentiellen Angreifer zu viele Informationen liefern, mit welchen er dann die eigentliche Attacke starten kann (beispielsweise welche Version des Betriebssystems installiert ist, eine Liste aller aktuellen Verbindungen mit IP usw.). 3.1 Process Manipulation Auch hier ist eine weitere Unterteilung von Nöten in: • • • Overflow-based Attacks Non Overflow-based Attacks Denial of Service Attacks 3.1.1 Overflow-based Attacks Dies ist mit die häufigste Angriffsart. Gerade in den letzten Wochen wurden wieder Sicherheitslöcher bekannt, die derartige Angriffe ermöglichen könnten2. Wie oben bereits in den „Programmiertechnischen Fehlern“ angerissen, ist oftmals unzureichendes Bounds Checking der Grund für die Angriffe. Ein Argument welches an einen Service übergeben wird, wird beispielsweise nur unzureichend auf dessen maximal erlaubte Länge überprüft. Wenn nun ein zu langes Argument übergeben wird und der Service dieses nicht zurückweist, kann es im schlimmsten Fall passieren, dass dadurch der Speicher überläuft und der Code auf den Executable Stack geschrieben – und dort ausgeführt wird. Wenn der Angreifer erst mal ein derartiges Sicherheitsloch gefunden hat, kann er quasi jeglichen beliebigen Code auf dem Server ausführen lassen. 2 http://www.heise.de/newsticker/data/dab-04.08.03-001/ 7 Ein recht bekanntes Beispiel für einen derartigen Angriff ist der Code Red Wurm. Dieser machte sich das unzureichende „Bounds Checking“ im ISAPI Filter des Microsoft Internet Information Services (IIS) in Version 4.0 und 5.0 zu Nutze. Ein Argument welches an ein .IDA file übergeben wird, wird hierbei nur unzureichend auf dessen Länge überprüft. http://www.example.com/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNNN........................NNNNN%u9090%u6858 %ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u 9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u00=a Das Argument welches hier an default.ida übergeben wird, besteht zunächst aus 224 N’s, welche lediglich dazu dienen, den Speicher zu füllen. Erst im Anschluss daran (kursiv gedruckt) steht der eigentliche Angriffscode (direkt als Maschinencode), der nun direkt auf den Executable Stack geschrieben wird und auf dem Server selbst ausgeführt wird. Code Red schaffte es dadurch zu enormer Verbreitung auf Web Servern, die den IIS nutzten. 3.1.2 Non Overflow-based Attacks Bei diesen Angriffen, wird nicht versucht den Speicher zu manipulieren, vielmehr werden direkt Schwächen von Servicen ausgenutzt, um dem Angreifer die Möglichkeit zu bieten auf Systemebene Kommandos auszuführen oder auf Daten zuzugreifen. Um den Unterschied zu Overflow-based Attacks zu verdeutlichen auch hier ein reales Beispiel: Bereits im Jahr 1996 wurde dieser Angriff gestartet. Nichts desto trotz ist er zum einen Auf Grund des attackierten Ziels und zum anderen auf Grund der Einfachheit des Angriffes immer noch nicht aus dem Gedächtnis zu löschen. Das Ziel war der CIA Web Server und das Mittel zum Ziel ein fehlerhaftes CGI Script. Folgende Anfrage wurde an den CIA Webserver gestellt: http://www.cia.gov/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd Aufgeschlüsselt bedeutet das: http://www.cia.gov /cgi-bin/phf ?Qalias=x %0a /bin/cat %20 /etc/passwd Die Zieladresse der Pfad zu dem fehlerhaften CGI Script – phf in diesem Fall die initialisierende Anfrage an das phf Script hex für Carriage Return, in diesem Fall als „Shell Escape“ benutzt Den Befehl, den der Angreifer auf dem Server ausführen will hex für Space, um dem Befehl ein Argument zu übergeben das übergebene Argument, in diesem Fall das passwd file Das einfache Benutzen eines „Shell Escape“ in dem übergebenen Argument erlaubt hier dem Angreifer anschließend jeden Befehl auf dem Server auszuführen – beispielsweise das Ansehen des passwd files. Dass dieser Fehler kein Einzelfall ist, 8 zeigen die mittlerweile über 250 prinzipiell ähnlichen CGI-Script Attacken, die bisher bekannt sind. 3.1.3 Denial of Service Attacks Während die obigen Angriffe auf Fehler im Design eines Scripts oder eines Services zurückgeführt werden können, muss ein System nicht zwangsläufig unsicher sein, um einer Denial of Service Attacke zum Opfer zu fallen. In Kapitel 4 werde ich mich eingehend mit den verschiedenen Angriffsmöglichkeiten und auch VerteidungsMechanismen auseinandersetzen. 3.2 Information Leaks Auch bei Information Leaks macht sich der Angreifer gewisse Eigenschaften eines Services zu Nutze – allerdings kann man diese Eigenschaften nur sehr selten als Bug einstufen. Vielmehr sind es oftmals sogar gewollte Features, die dem Angreifer Informationen liefern, welche dieser wiederum für seinen Angriff missbrauchen kann. Das kann damit anfangen, dass der Service beispielsweise die eigene Versionsnummer preisgibt, oder das installierte Betriebssystem verrät. Diese Information kann durchaus auch für legitime Nutzer wichtig sein, jedoch kann ein potentieller Angreifer dadurch die Möglichkeit erhalten, seinen Angriff speziell auf Schwachstellen von diesem System auszurichten. Eine weitere Möglichkeit ist das Aufdecken von User-Details. Der Solaris Finger-Service gibt auf die Anfrage finger „1 2 3 4 5 6 7 8 9 0“ detaillierte Informationen über die Nutzer des Rechners wieder. Wenn der Server also nicht selbst direkt angreifbar ist, so ist es vielleicht doch einer der autorisierten Nutzer. Sei es über Connection Hijacking oder das Eindringen in den Client Rechner auf der Suche nach unverschlüsselt abgespeicherten Passwörtern. Wenn die Login Namen bekannt sind, wird ebenfalls eine Password Brute Force Attacke interessant. 9 4. Distributed Denial of Service Attacken: Angriffs- und Verteidigungstechniken 4.1 Einführung in DDoS Der Hauptgrund, wieso Distributed Denial of Service Attacken so erfolgreich sind, ist der, dass man sich nur schwer allein dagegen schützen kann. Sicherheit im Internet ist keine Angelegenheit eines einzelnen – die eigene Sicherheit hängt stark mit der Sicherheit des gesamten Internets zusammen. Weiterhin machen sich DDoS Attacken zwei weitere Grundprinzipien zu Nutze: Zum einen sind die Ressourcen im Internet nicht unbegrenzt. Niemand kann einen Webserver aufstellen, der unendlich viel Traffic handhaben kann. Hand in Hand damit geht das Prinzip der „Kraft von vielen ist größer als die Kraft von wenigen“. Jedes Ziel ist potentiell angreifbar, solange man nur auf der Angriffsseite genügend Rechner vereint, die das Ziel gemeinsam attackieren. 4.1.1 Wie funktioniert DDoS Um eine DDoS Attacke auszuführen, müssen zunächst die sogenannten Agents (auch slaves, deamons, etc. genannt.) von dem Angreifer rekrutiert werden. Über zumeist automatisierte Scanning- Mechanismen, wird nach Rechnern gefahndet, die potentielle Sicherheitslücken offenbaren. Sobald der Angreifer fündig geworden ist, infiltriert er den Agent und installiert darauf den Attack Code (zumeist ebenfalls automatisiert). Sobald genügend Agents beisammen sind, wird die Attacke gestartet. Um ein Entdecken der Agents zu verhindern, werden oftmals Spoofing Techniken angewandt. Dadurch können die Agents auch für weitere Attacken Verwendung finden. 10 4.1.2 Ziele einer DDoS Attacke Die Ziele einer DDoS Attacke können vielfältig sein. Angefangen bei dem persönlichen Racheakt (eine nicht unerhebliche Anzahl an entdeckten Attacken konnte hierauf zurückgeführt werden), hin zum Schädigen einer Konkurrenzfirma oder einfach nur um innerhalb der Hackerszene zu Popularität zu gelangen. Kleine DoS Attacken können auch genutzt werden, um Connection Hijacking zu ermöglichen. 4.2 Klassifizierung der DDoS Angriffstechniken 4.2.1 Überblick Die (wie im Schaubild zu sehen) verwendete Klassifizierung orientiert sich weitestgehend an dem Technical Report #020018 der University of California3. Im Folgenden möchte ich auf die einzelnen Punkte im Detail eingehen. 4.2.2 Klassifizierung anhand dem Grad der Automatisierung Bevor der eigentliche Angriff auf das Ziel gestartet werden kann, müssen zunächst die Agents infiltriert werden. Dies kann zum einen manuell geschehen, was jedoch verständlicher Weise für groß-angelegte Angriffe zuviel Zeit in Anspruch nimmt. Aus diesem Grund sind mittlerweile die meisten Angriffe semi-automatisch. Eine komplette Automatisierung ist jedoch ebenfalls möglich, muss allerdings mit einigen Einschränkungen leben. 3 A Taxonomy of DDoS Attacks and DDOS Defense Mechanisms – Jelena Mirkovic, Janice Martin and Peter Reiher, Computer Science Department, UCLA, Tech. Report #020018 11 A Manuelle Angriffe Wie oben bereits angedeutet, muss in diesem Fall der Angreifer „von Hand“ nach möglichen Agents scannen. Sobald er diese gefunden hatte, muss er ebenfalls selbständig in sie eindringen und den Attack Code übermitteln. Er muss auch weiterhin mit ihnen in Verbindung bleiben um den eigentlichen Angriff letztendlich zu befehlen. Nur die sehr frühen DDoS Attacken gehörten in diese Kategorie. Mit der Verbreitung von relativ einfach zu bedienenden Angriffstools etwa in der Mitte des Jahres 1999, sind diese Attacken von der Bildfläche verschwunden. B Semi-Automatische Angriffe Die Mehrzahl der heutigen Angriffe fallen in diese Kategorie. Um nicht mit jedem Agent einzeln in Kontakt stehen zu müssen, werden sogenannte Handler Rechner (auch Master genannt) eingeführt. Diese werden vom Angreifer infiltriert und haben danach die Aufgabe zum einen neue Agents zu infiltrieren, zum anderen auch den Angriff zu koordinieren. Dazu entwickelt der Angreifer (oder er benutzt vorgefertigte) automatisierte Scanning und Infiltrations Scripts, die beispielsweise nur nach bestimmten Sicherheitslücken scannen und dann genau wissen, wie der gefundene Rechner zu kompromittieren ist. Der Angreifer selbst steht dann nur noch mit den Handler Rechnern in Kontakt um den Angriff zu steuern. Die Kommunikation zwischen den Handler und Agents kann auf zwei Arten ablaufen: 1. Direkte Kommunikation Bei Angriffen mit direkter Kommunikation zwischen Handler und Agent müssen sich beide Seiten genau kennen um miteinander kommunizieren zu können. Zu diesem Zweck wird die IP des Handlers in den Attack Code fest integriert. Jeder Agent sendet dann zunächst ein „Ready“ Signal an den jeweiligen Handler und dieser speichert die IP’s „seiner“ Agents in einer Liste, um zu einem späteren Zeitpunkt die Kommunikation fortzusetzen (beispielsweise um den Angriff zu befehlen). Das Hauptproblem dieser Methode ist die Verletzlichkeit des gesamten DDoS Netzwerks, sobald ein Agent identifiziert wurde. Von diesem kann dann auf den Handler geschlossen werden und somit dessen komplette Agents außer Kraft gesetzt werden. Weiterhin besteht die Gefahr, auch andere Handler/Agents zu finden oder sogar auch den Angreifer selbst, da die Rechner auf Netzwerk Verbindungen achten müssen und sie dadurch von Netzwerk Scannern entdeckt werden können. 2. Indirekte Kommunikation Indirekte Kommunikation hat das Ziel, die oben genannten Schwachstellen der direkten Kommunikation zu verbessern oder gar auszumerzen. In letzter Zeit wurden hierfür vornehmlich sogenannte Internet Relay Chats (IRC) missbraucht. Hierbei weiß weder der Handler die IP Adresse der Agents noch kennt ein Agent die IP des Handlers. Die Rechner connecten einfach allesamt zu einem bestimmten IRC Netzwerk in einen gemeinsamen Channel. Dort ist es dem Handler möglich, den Agents Befehle zu geben und somit mit ihnen zu kommunizieren. Letztendlich ist es sogar möglich, dass der Angreifer wiederum direkt mit den Agents kommuniziert und das IRC Netzwerk quasi die Rolle des Handlers 12 übernimmt. Neben dem Vorteil, dass nun nicht von einem entdeckten Agent auf Teile oder das gesamte DDoS Netzwerk geschlossen werden kann, erfolgt die Kommunikation nun auch auf einem Port der auch von legitimen IRC Clients genutzt wird. Netzwerk Scanner können also nur bedingt bei der Suche nach den Agents helfen. Das Aufdecken eines Agents führt also zunächst höchstens zu dem IRC Netzwerk über welches die momentane Kommunikation abläuft. Ohne die aktive Hilfe der jeweiligen IRC Operator ist es jedoch nahezu unmöglich, weitere Agents oder gar den Angreifer selbst zu identifizieren. C Vollautomatische Angriffe Vollautomatische Angriffe beschränken sich letztendlich darauf, dass der Angreifer sozusagen auf den Knopf drückt und dadurch unwiderruflich den Angriff auslöst. Im Attack Code ist sowohl die IP des Ziels als auch der Start des Angriffs fest integriert und auch wie lange beispielsweise der Angriff dauern soll. Für den Angreifer minimiert sich somit die eigene Gefahr entdeckt zu werden, da er nur noch mit dem Start des Angriffs Scripts zu tun hat. Um aber trotzdem das dadurch aufgebaute DDoS Netzwerk nicht nur einmal nutzen zu können, werden häufig sogenannte „Back Doors“ bei den Agents offengelassen, um sie auch in Zukunft für Angriffe benutzen zu können. Sowohl semiautomatische als auch vollautomatische Angriffe automatisieren das Infiltrieren der einzelnen Agents. Dabei kann unterschieden werden zwischen den unterschiedlichen Scanning Techniken und darüber hinaus auch wie der Attack Code übermittelt wird. A Scanning Techniken 1. Random Scanning Bei dieser Technik scannt jeder einzelne infiltrierte Agent nach neuen möglichen Agents. Er geht dabei allerdings nicht systematisch vor, sondern scannt zufällig alles in einem festgelegten IP Adressraum. Da es dadurch natürlich zu vielen Mehrfachscans kommen kann, ist der allein dadurch kreierte Traffic nicht unerheblich. CodeRed brachte allein dadurch einige Firmensubnetze zum erliegen. 2. Hitlist Scanning Hierbei wird dem Agent eine Liste mit IP Adressen zur Verfügung gestellt. Sobald er einen weiteren Agent infiltriert hat, gibt er an diesen die Hälfte der Liste weiter und behält die andere Hälfte. Dadurch wird die Scanning Geschwindigkeit enorm erhöht und es gibt keinerlei Mehrfachscans ein und desselben Rechners. 3. Topological Scanning Diese Technik wendet so gut wie jeder Email-Wurm an. Die Informationen die auf dem infiltrierten Rechner gefunden werden, werden zur weiteren Verbreitung genutzt. Beispielsweise das Outlook Adressbuch. 13 4. Permutation Scanning Diese Technik ist momentan noch nicht in Verwendung. Es wird hierbei versucht die Vorteile von Hitlist Scanning und Random Scanning zu vereinen. Der Vorteil von Random Scanning gegenüber Hitlist Scanning liegt darin, dass mehr potentielle Agents zur Verfügung stehen, da man nicht an eine feste Liste von IP Adressen gebunden ist. N. Weaver beschreibt die genaue Funktionsweise in seinem Paper „Warhol Worm“4 5. Local Subnet Scanning Diese Scanning Methode ist prinzipiell nur eine Ergänzung zu den bisher genannten. Es geht darum, dass ein einzelner Agent auch sein komplettes Subnet scannt, in dem er sich befindet. Dadurch reicht ein einzelner kompromittierter Rechner hinter einer Firewall, um das gesamte Netz dahinter zu scannen und eventuelle Agents zu rekrutieren. B Weitergabe das Attack Codes 1. Central Source Propagation Bei dieser Technik verweilt der eigentliche Attack Code auf einem oder mehreren zentralen Server (beispielsweise die Handler). Sobald ein Agent infiltriert wurde, lädt sich dieser selbständig den Attack Code herunter. 2. Back-Chaining Propagation 4 N. Weaver, „Warhol Worm“, http://www.cs.berkeley.edu/~nweaver/warhol.html 14 Back-Chaining Propagation funktioniert ohne zentrale Anlaufstelle. Vielmehr dient der jeweilige Infiltrator immer als Downloadquelle für den Attack Code. Sobald also ein Agent A den nächsten Agent B infiltriert hat, lädt sich Agent B von Agent A den Attack Code herunter. 3. Autonomous Propagation Hierbei wird einfach während der Infiltration bereits der Attack Code auf den Agent mit überspielt. Somit fällt der Schritt des Herunterladens weg. 4.2.3 Klassifizierung anhand der ausgenutzten Schwachstelle Ähnlich wie bei overflow oder non-overflow based Attacks, können auch bei DDoS Attacken Schwächen in Protokollen oder Services ausgenutzt werden um den DoS zu erreichen. Andererseits kann auch versucht werden, durch die pure Masse an gesendetem Traffic den Zielrechner lahmzulegen. A Angriffe auf Protokoll Basis Bei dieser Form von Angriffen werden Schwächen oder auch Features von Protokollen derart ausgenutzt, dass das Ergebnis ebenfalls ein Denial of Service ist. Bekannte Beispiele sind TCP SYN Flooding oder CGI Request Flooding. Das SYN Flag ist Teil des TCP Handshakes zur Herstellung einer TCP Verbindung. Dabei schickt der Client zunächst ein Paket mit gesetztem SYN Flag an den Server. Daraufhin antwortet dieser mit einem Paket bei dem sowohl das SYN Flag als auch das ACK Flag gesetzt sind. Der Client muss nun noch ein letztes Paket mit gesetztem ACK Flag (aber nun ohne SYN Flag) an den Server schicken und die Verbindung steht. Ausgenutzt wird hierbei nun die Tatsache, dass der Server, sobald er ein SYN Paket erhält, für die kommende Verbindung schon Speicher in seiner „Connection Queue“ bereitstellt. Der Angreifer schickt also mit Hilfe seines DDoS Netzwerks in kurzer Zeit unzählige SYN Pakete, jedoch niemals das abschließende Paket mit gesetztem ACK Flag. Die Connection Queue läuft über und bringt den Server letztendlich dazu, dass er keine legitimen TCP Verbindungen mehr annehmen kann. Bei CGI Request Attacken wird mit Hilfe zahlreicher CGI Anfragen die CPU Zeit des Servers aufgebraucht. Wie bei vielen anderen Protokoll Attacken, macht man sich hierbei auch die Tatsache zu Nutze, dass beispielsweise das Auswerten einer CGI Anfrage den Server deutlich mehr Rechenzeit kostet, als den Client eine solche Anfrage zu stellen. Auch das Senden von absichtlich fehlerhaften Paketen ist eine beliebte Angriffsform. Der Server verbraucht hier seine CPU Zeit bei dem Versuch, die Pakete trotz der Fehler zu lesen und wiederherzustellen. 15 B Brute Force Attacken Bei Brute Force Attacken wird der Server dadurch versucht lahmzulegen, dass der Angreifer große Mengen an scheinbar legitimen Traffic schickt. Man versucht also die Bandbreite des Ziels vollständig in Beschlag zu nehmen und dadurch den Service nicht mehr erreichbar zu machen. 1. Filterbare Attacken Bei diesen Angriffen ist es dem Opfer möglich, den Attack Stream herauszufiltern ohne gleichzeitig auch legitimen Traffic zu filtern. Das kann beispielsweise der Fall sein, wenn der Traffic an unkritische Service gerichtet ist, die für die normale Funktionsweise nicht unbedingt notwendig sind. Es wird dann einfach jeglicher Traffic der an diesem Port ankommt, herausgefiltert. Beispiele für solche Angriffe sind UDP Floodings oder ICMP Request Floodings. 2. Nicht filterbare Attacken In diesem Fall besteht der Angriff beispielsweise aus legitimen HTTP Zugriffen. Ein herausfiltern hätte die Folge, dass auch die Zugriffe von normalen Nutzern gefiltert werden würden. Somit würde das Opfer selbst noch dazu beitragen, den Denial of Service zu erreichen. Der generelle Unterschied zwischen Protokoll Attacken und Brute Force Attacken besteht darin, dass erstere durch Änderungen an den jeweiligen Protokollen weitestgehend vereitelt werden können. Beispielsweise kann man TCP SYN Attacken mit TCP SYN Cookies begegnen. Diese helfen allerdings nicht mehr weiter, wenn der Angreifer mehr TCP SYN Anfragen stellt, als das Netzwerk rein physisch handhaben kann. Die Protokoll Attacke wird also zur Brute Force Attacke. Allgemein gilt jedoch, dass Protokoll Attacken meist deutlich weniger Traffic benötigen um ihr Ziel zu erreichen. Wenn es dem Opfer also gelingt, diese weitestgehend auszuschließen, dann erhöht es dadurch zumindest die Schwelle für einen Angriff. Es ist weiterhin zu beachten, dass sowohl Pakete die für Protokoll Attacken genutzt werden, als auch solche für Nicht-Filterbare Angriffe, zumindest zum Teil korrekt und nicht gefälscht sein dürfen. Beispielsweise müssen bei einer HTTP Flood Attacke die Pakete zu bestehenden TCP Verbindungen gehören. Dadurch ist es für den Angreifer nicht mehr so leicht, die Identität seiner Agents zu verschleiern. 4.2.4 Klassifizierung anhand der Dynamik des Angriffes Die Mehrheit der Angriffe läuft getreu dem Motto „volle Kraft voraus“ ab. Das heißt, von Beginn bis zum Ende der Attacke wird soviel Traffic wie nur möglich an das Ziel geschickt. Der Nachteil dabei ist, dass es dem Opfer relativ leicht möglich ist, den Angriff zu bemerken und Gegenmaßnahmen einzuleiten. Allerdings ist dies auch die effektivste Möglichkeit um einen Denial of Service zu erreichen. Es kann jedoch auch von Nutzen sein, wenn ein Angriff lange Zeit unentdeckt bleibt. Um das zu erreichen kann der Angreifer zum einen den Traffic sehr langsam erhöhen. Wie sich bei den Verteidungsmöglichkeiten zeigen wird, ist es sehr schwer für das Opfer derartige 16 Angriffe überhaupt zu bemerken. Eventuell geht es einfach von einem erhöhten legitimen Traffic - Aufkommen aus und investiert beispielsweise in neue Hardware um dem gerecht zu werden. Eine andere Möglichkeit um Entdeckung zu vermeiden, wäre das Fluktuieren des Angriffs Traffics. Je nach Verhalten des Opfers könnte dieser beispielsweise kurz ausgesetzt werden sobald Gegenmaßnahmen eingeleitet werden um dann nur wenig später wieder mit voller Kraft eingesetzt zu werden. 4.2.5 Klassifizierung anhand des verursachten Schadens Momentan können quasi alle bekannten Angriffe hier in die Kategorie der „disruptives Attacks“ eingeordnet werden. Also diejenigen, die einen vollständigen Denial of Service zum Ziel haben. Wie bereits eben angedeutet, kann aber auch nur ein erhöhtes Traffic Aufkommen für das Opfer sehr kostspielig sein. Wenn ein Angreifer den legitimen Traffic seines Ziels, beispielsweise eine E-Commerce Webseite à la www.amazon.com, um 30 Prozent erhöht, kann es sein, dass zu Stoßzeiten die Seite nicht mehr erreichbar ist. Da der eigentliche Angriff von dem Opfer eventuell gar nicht bemerkt wird, bleibt diesem nichts anderes übrig, als die Ressourcen aufzustocken, um mit dem gestiegenen Traffic zurechtzukommen und auch zu Stoßzeiten die Seite erreichbar zu machen. 4.3 Klassifizierung der DDoS Verteidigungstechniken Wie schon mehrmals erwähnt gibt es gegen Distributed Denial of Service Attacken kein Allheilmittel, keine „silver bullet“. Aus diesem Grund richten sich auch die Verteidigungsmechanismen oftmals nur gegen einzelne Angriffsformen und funktionieren nur unter bestimmten Vorraussetzungen. Um wirklich effektiv DDoS Attacken bekämpfen zu können, ist es zudem notwendig, auch gemeinsam gegen diese vorzugehen und verschiedene Verteidigungstechniken zu kombinieren. 4.3.1 Überblick Zunächst auch hier eine Übersicht der verwendeten Klassifikation 17 Die Hauptunterscheidung liegt hierbei bei dem Aktivitätslevel des Vorgehens. Zum einen kann auf einen Angriff reagiert und entsprechende Gegenmaßnahmen eingeleitet werden, zum anderen kann aber auch im Voraus versucht werden, DDoS Angriffe zu erschweren. 4.3.2 Klassifizierung anhand der Präventivmaßnahmen Das Ziel von Präventivmaßnahmen kann zum einen sein, einen Angriff zu erschweren oder gar unmöglich zu machen - zum anderen aber auch „nur“ dem Opfer zu ermöglichen, einen Angriff derart zu überstehen, dass legitime Nutzer des angebotenen Service, nur gering oder gar nicht von einem Angriff beeinträchtigt werden. A Präventivmaßnahmen um einen Angriff zu verhindern Auch hier ist eine weitere Unterteilung von Nöten. Die Maßnahmen können auf Systemebene ansetzen oder auf der Protokollebene. 1. System Sicherheit Das Erhöhen der allgemeinen System Sicherheit hilft nicht nur gegen DDoS Attacken, sondern schützt beispielsweise auch vor Infiltrationen und anderen Angriffsmöglichkeiten. Weiterhin kann dadurch verhindert werden, dass die eigenen Rechner eventuell für eine DDoS Attacke missbraucht werden. Man leistet also einen Beitrag für die allgemeine Sicherheit im Internet. Möglichkeiten die System Sicherheit zu erhöhen gibt es viele, angefangen bei regelmäßigen Softwareupdates um bekannte und vom Hersteller behobene Sicherheitslücken auch schnell zu schließen, hin zu Firewalls, Virenscanner, System – Überwachungssysteme etc. Auch wenn keine dieser Maßnahmen 100% Sicherheit gewährt, so senken sie doch die Gefahr und die möglichen Schäden einer DDoS Attacke. 2. Protokoll Sicherheit In vielen Fällen kann ein fehlerhaftes oder schlechtes Protokoll einen Angriff entscheidend vereinfachen. Ein Beispiel hierfür ist das oben genannte TCP SYN Flooding. Hier kann prinzipiell nur gemeinsam vorgegangen werden um eine Lösung zu finden. Das Problem, dass viele Operationen für den Client „billig“ aber für den Server sehr „teuer“ sind, steht hierbei im Vordergrund. Ziel ist es zum Beispiel dem Nutzer erst Ressourcen zur Verfügung zu stellen, nachdem dessen Authentizität wirklich sicher gestellt ist. Letztendlich könnten durch diese Maßnahmen Protokollattacken quasi vollständig verhindert werden. Zudem sind sie mit allen im Folgenden beschriebenen Maßnahmen kombinierbar. B Präventivmaßnahmen um im Falle eines Angriffes Denial of Service zu verhindern Das Ziel dieser Präventivmaßnahmen ist es nicht, den Angriff an sich unmöglich zu machen, sondern vielmehr das erfolgreiche Überstehen eines solchen. Erfolgreich heißt hierbei, dass legitime Nutzer weiterhin den Service nutzen können und nicht beeinträchtigt werden. Um das zu erreichen, können wiederum zwei unterschiedliche Ansätze verfolgt werden. 18 1. Zuweisung von Ressourcen Eine Möglichkeit zumindest bestimmte Service auch im Falle einer Attacke aufrechtzuerhalten, ist das Verteilen von Nutzer Priviligien. User die sich authentifiziert haben und sich auch angemessen verhalten, erhalten Zugriff auf bestimmte Service, die für den normalen Nutzer und damit auch für den potentiellen Angreifer, zunächst nicht zugänglich sind. 2. Verteilung und Vergrößerung der Ressourcen Die wohl „einfachste“ Möglichkeit um gegen DDoS gewappnet zu sein, ist das Ausbauen der eigenen Kapazitäten. Angefangen bei der Bandbreite, über mehrere Server hin zu Load Balancern, welche den Traffic auf mehrere Server gleichmäßig verteilen können. Auch wenn diese Methode sehr teuer ist und letztendlich nur die Schranke, die es für den Angreifer zu überwinden gilt, höher setzt, so hat die Vergangenheit doch gezeigt, dass beispielsweise Microsoft dadurch auch einigen sehr großen DDoS Attacken standhalten konnte. 4.3.3 Klassifizierung anhand der reaktionären Maßnahmen Da letztendlich die Möglichkeit einer DDoS Attacke mit den bisher beschriebenen Maßnahmen nur vermindert aber nicht ausgelöscht werden kann, sollte man sich auch Gedanken über den Fall der Fälle machen – welche Maßnahmen man ergreift, wenn der Angriff begonnen hat. Da eine DDoS Attacke auf den ersten Blick auch wie ganz normales, nur eben sehr hohes, Traffic Aufkommen aussehen kann, besteht hierbei zunächst die Schwierigkeit, den Angriff zweifelsfrei zu erkennen. Sobald das geschehen ist, müssen die Gegenmaßnahmen eingeleitet werden. A Möglichkeiten der Entdeckung einer DDoS Attacke Allen Möglichkeiten gemeinsam, ist das Ziel, eine möglichst hohe Erfolgsrate zu haben mit möglichst wenigen Fehlalarmen. Falls legitimer Traffic als DDoS eingestuft würde, hätte das zur Folge, dass das System selbst den DoS verursachen würde . 1. Pattern Attack Detection Bei jedem Angriff kann eine gewisse Charakterisierung des Attack Streams erfolgen. Die entsprechende Signatur wird dann in einer Datenbank abgespeichert. Ein System, welches mit „Pattern Attack Detection“ arbeitet, nutzt lediglich diese Datenbank mit bekannten Angriffssignaturen, um einen Angriff zu erkennen. Das offensichtliche Problem dabei ist, dass neue Angriffsformen nicht entdeckt werden - allerdings entdeckt es dafür bereits bekannte sehr sicher und verlässlich. 2. Anomaly Attack Detection Hierbei wird ein Modell des Normalzustandes hinsichtlich Traffic, System Performance, CPU Auslastung, etc. erstellt. Der aktuelle Status wird immer mit diesem Modell verglichen und sobald zu große Abweichungen eintreten, Alarm ausgelöst. Die Schwierigkeit besteht nun darin, festzulegen, was eine „zu große“ Abweichung ist. Weiterhin muss das Modell auch aktualisiert werden. Geschieht dies zu selten, können eventuell Fehlalarme ausgelöst werden, geschieht es zu oft, ist das System machtlos 19 gegen Angriffe mit langsam ansteigendem Traffic wie in Kapitel 4.2.4 beschrieben. Allerdings können eben im Gegensatz zu der „Pattern Attack Detection“ auch bisher unbekannte Angriffe entdeckt werden. 3. Hybrid Attack Detection Hybride Systeme versuchen die Vorteile von beiden Varianten zu vereinen, indem sie anhand der entdeckten Angriffe durch ein „Anomaly Attack Detection“ System neue Signaturen für die Musterdatenbank erstellen. Je automatisierter diese Systeme ablaufen, desto höher ist das Risiko auch mal einen legitimen Datenstrom als DDoS Angriff einzustufen. In diesem Fall wird das Abwehrsystem selbst zum Denial of Service Tool. B Mögliche Gegenmaßnahmen im Falle einer DDoS Attacke Wie schon mehrfach erwähnt, dürfen eventuelle Gegenmaßnahmen nicht dazu führen, dass legitime Nutzer eingeschränkt werden. Neben dem Versuch den Attack Stream beispielsweise zu filtern oder zu limitieren, besteht auch die Möglichkeit, den Angreifer oder zumindest dessen Agents, ausfindig zu machen und somit direkt an der Quelle die Attacke zu bekämpfen. 1. Maßnahmen zur Identifikation der Agenten Hierbei wird versucht, mit Hilfe von Traceback Techniken, die einzelnen Agenten ausfindig zu machen. Im besten Fall besteht zwischen Agent und Handler eine direkte Kommunikation, wodurch es eventuell dann sogar möglich ist, das komplette DDoS Netzwerk aufzudecken und somit den Attack Stream problemlos zu droppen. 2. Maßnahmen um den Attack Stream zu limitieren Falls das Erkennungssystem nicht zweifelsfrei einen Angriff erkennen kann, oder des Öfteren auch mal falschen Alarm schlägt, kann diese Maßnahme zumindest bedingt weiterhelfen. Hierbei wird einfach der verdächtige Traffic Stream limitiert. Dadurch wird beispielsweise die Webseite auch schwerer erreichbar, kann aber eventuell den Totalausfall noch verhindern. Gegen große Attacken hilft diese Technik aber oftmals nicht weiter, da trotz der Limitierung ja weiterhin ein Teil des Traffics durchgelassen wird. 3. Filter Maßnahmen Falls der Attack Stream in die Kategorie „Filterbare Attacken“ fällt, kann mit Hilfe einer Firewall dieser gedroppt werden. Diese Technik sollte nur eingesetzt werden, wenn das Erkennungssystem sehr zuverlässig arbeitet und der Attack Stream wirklich einwandfrei zu isolieren ist. 4. Rekonfigurations Maßnahmen Hierbei werden im Falle des Angriffes beispielsweise zusätzliche Ressourcen freigeschalten oder es wird versucht, die vom Angriff betroffenen Server zu isolieren. Sowohl für Präventivmaßnahmen als auch für die reaktionären Gegenmaßnahmen gilt, dass der Erfolg durch die Kooperation mit anderen Unternehmen oder ISPs deutlich gesteigert 20 werden kann. Beispielsweise können Traceback und Pushback Methoden von einzelnen Instanzen letztendlich gar nicht effektiv eingesetzt werden. Auch das Einführen von neuen, verbesserten Protokollen ist nur gemeinsam möglich. 4.3.4 Klassifizierung anhand der Stelle, an der die Verteidigung ansetzt Zumeist wird ein Angriff direkt am Ort des Geschehens bekämpft, also beim Opfer selbst. Der Grund liegt ganz einfach darin, dass der Geschädigte auch selbst das höchste Interesse zeigt, gegen den Angriff vorzugehen und sich zu schützen. Allerdings könnten die Erfolge erhöht werden, wenn auch an anderen Stellen des Internets schon Schutzmechanismen installiert werden würden. Dadurch könnten zum einen mehrere potentielle Opfer auf einmal geschützt werden und zum anderen könnten die gemeinsamen Bemühungen auch die Effektivität steigern. Traceback und Pushback Techniken sind Beispiele für Möglichkeiten, mit deren Hilfe durch dieses gemeinsame Vorgehen die Sicherheit erhöht werden könnte. Wenn man diesen Schritt konsequent weitergehen würde, so sollte als nächstes Ziel versucht werden zu verhindern, dass ein Netz überhaupt als Ausgangspunkt für DDoS Attacken verwendet werden kann. Angefangen bei der Firma, die ihr Subnetz sicherer macht hin zu den ISPs. Das Problem dabei ist, dass der Aufwand und dadurch die Kosten dafür sehr hoch sind. Wer für diese Kosten allerdings aufkommen soll, ist unklar, da der Return of Investment, zumindest für kurzfristig denkende Menschen, nicht sofort offenbar wird. 5. Fazit Abschließend bleibt zu sagen, dass Sicherheit im Internet keinesfalls eine Angelegenheit von einzelnen sein darf. Solange nicht wirklich jeder seinen Teil dazu beiträgt, kann die Gefahr die von solchen Attacken ausgeht, kaum gebannt werden. Gerade DDoS Attacken zeigen diese Tatsache nur allzu schmerzlich auf. Die rasante Entwicklung der letzten 3 Jahre hat gezeigt, dass wir hier noch lange nicht am Ende sind und die Angriffe in Zukunft wohl deutlich raffinierter ablaufen werden. Hinzu kommt die ständige Weiterentwicklung der Attack-Tools, bei denen mittlerweile schon fast die Eingabe des Ziels und ein zusätzlicher Mausklick genügen, um den Angriff zu starten. Um dieser Gefahr wirklich effektiv zu begegnen, muss das Sicherheitsverständnis vor allem auch bei dem „normalen“ Internetnutzer deutlich gesteigert werden. Die Schwierigkeit liegt dabei wohl darin, dass Sicherheitstools wie Firewalls nur schwer zu konfigurieren und somit für den unbedarften Anwender kaum nutzbar sind. Inwieweit es hier möglich ist, in Zukunft Tools zu entwickeln, die wirklich von jedem bedienbar sind, wird in meinen Augen einen entscheidenden Anteil tragen, ob das Internet für alle sicherer werden kann. Wie bei vielen Problemen ist auch hier nur ein gemeinsames Vorgehen effektiv und sinnvoll. 21 6. Quellen “A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms”, Jelena Mirkovic, Janice Martin and Peter Reiher, Computer Science Department, UCLA, Technical Report #020018 “An Introduction to Internet Attack and Penetration”, Matta Security Limited, 2002 “TCP Hijacking”, Stefan Krecher, Chaos Computer Club “Managing the Threat of Denial of Service Attacks”, Allen Householder, Art Manion, Linda Pesante, George M. Weaver, Rob Thomas, CERT Coordination Center, ver10.0 – 2001 “An Analysis of Using Reflectors for DDoS Attacks”, Vern Paxson, AT&T Center for Internet Research at ICSI, 2001 “Distributed Attacks and the way to deal with them”, Tim Yardley, UIUC, 2000 “Trends in Denial of Service Attacks”, Kevin J. Houle, George M. Weaver, CERT Coordination Center, ver1.0 – 2001 “Denial of Service Attacks”, CERT Coordination Center, 1999 “Warhol Worm”, Nicholas C. Weaver, Berkeley University, 2001 “DoS using Nameservers”, CERT Coordination Center, 2000 “Smurf Attack”, CERT Coordination Center, 1998 “Results of the Distributed-Systems Intruder Tools Workshop, CERT Coordination Center, 1999 “ISP Security – Real World Techniques”, Brian W. Gemberling, Christopher L. Morrow, Barry R. Greene, 2001 “IP Network Scanning and Reconnaissance”, Matte Security Limited, 2002 “Broadband Network Insecurity and Implications”, Matta Security Limited 6.1 Weiterführende Links http://staff.washington.edu/dittrich/misc/ddos/ http://www.cert.org/ http://security.royans.net/info/articles/feb_attack.shtml http://security.royans.net/static/papers.shtml http://www.robertgraham.com/op-ed/magic-ddos.html http://www.securityfocus.com/cgi-bin/sfonline/library.pl?cat=9&offset=10 22