Internet Angriffe mit DDoS und DoS Strategien Problematisch am Internet ist, dass es immer schneller wird und anscheinend darauf nicht vorbereitet ist. Februar, 2000 0 Vorwort 1 Einleitung 2 Theorie der Angriffe 3 DoS Technik 4 DDoS Technik 5 DoS Arten 5.1 SYN Angriffe 5.2 Smurf Angriffe 5.3 DoS Angriffe auf den TCP/IP Stack 5.4 DoS Angriffe auf IDS, Sniffer, Scanner 6 DDoS Tool Beschreibung 6.1 Trinoo 6.2 TFN / TFN2k 6.3 Stacheldraht 7 Wie kann man sich schuetzen 8 Zusammenfassung 9 Ressourcen 0 Vorwort Dieses Security Paper wurde von ju@onlinesicherheit.de, konzipiert. Es dient zur Weiterbildung und ist nicht fuer illegale Zwecke bestimmt. Am Ende nenne ich Ressourcen, die mir dabei geholfen haben, diese Ausgabe zu veroeffentlichen. 1 Einleitung Auch im Jahr 2000 werden wir viel von Hackern (gemeint sind Programmierer) und Script Kiddies hoeren. Was verbirgt sich eigentlich hinter beiden Begriffen ? Hacker machen auf Schwachstellen oder sogenannte Sicherheitsdefizite in Computernetzwerken aufmerksam, Script Kiddies benutzen Sicherheitsdefizite um Dritte zu schaedigen. Ende 1999 erfuhr die Oeffentlichkeit durch die Medien von sogenannten Distributed Denial-of-Service Tools, darunter verstehen wir Programme wie Trinoo, Stacheldraht, TFN (Update: TFN2k) Mit diesen Programmen ist es moeglich Flood Netzwerke aufzubauen. Diese dienen dazu andere Netzwerk zu ueberlasten und zum Absturz zu bringen. Anfang 2000 zeigte sich die DDoS Technik als sehr wirkungsvoll und wurden in den Medien als eine neue Technik der Hacker bezeichnet. Dies trifft insofern nicht zu, als die Mechanismen welche zu den Abstuerzen grosser Internetportale fuehrte, seit langem in Sicherheitskreisen bekannt sind. Da die Distributed Denial-of-Service Tools sehr einfach anzuwenden sind und keine Fachkenntnisse benoetigen, koennen die aktuellen Angriffe auf Yahoo, CNN, UUNET, Amazon und Ebay auch von relativen Laien ausgefuehrt worden sein. Selbst ein begrenztes Wissen vom Internet und Unix Kenntnisse genuegen und aufgrund gefaelschter Absenderadressen faellt die Identifikation der Verursacher schwer. Ich versuche in diesem Dokument die Technik der (Distributed) Denial- of-Service Attacken verstaendlich zu machen und Moeglichkeiten aufzuzeigen, wie man Netzwerke vor Angriffen schuetzen kann. 2 Theorie der Angriffe Zu bedienen sind die DDoS Tools zwar einfach, aber man benoetigt hohe Datenmengen und mehrere hochleistungsfaehige Netzwerke um einen wirkungsvollen Angriff zu starten. Die Frage ist nur, woher bekommt man soviele Hosts oder Netzwerke mit einer Internet Anbindung von ca. 1 Gigabit ? Nach meiner Meinung eignen sich dafuer am allerbesten die Netzwerke von Universitaeten. Diese haben erstens eine hohe Internet Anbindung und sind zweitens in der Regel uebersaet mit Sicherheitsdefiziten und Backdoors (trojaner).Diese Exploits sind der Oeffentlichkeit ohne weiteres zugaenglich. Zu nennen waere hier z.b. Bugtraq (www.securityfocus.com). 3 DoS Technik Denial of Service Angriffe haben die Aufgabe Server im Internet oder in lokalen Netzwerken zu ueberlasten. Durch diese Angriffe werden die System Ressourcen wie Speicher, Rechenzeit und Interner Verbindung von Denial of Service Angriffen ueberlastet, das Netzwerk kann seine Aufgaben nicht mehr bewaeltigen und stuertzt ab. Das Prinzip der DoS Attacken ist denkbar einfach. Beispiel Ping Flooding: Der Angreifer bombardiert mit gewaltigen Mengen von sogenannten Pings (echo requests) den Zielrechner, dieser Rechner ist nur noch damit beschaeftigt die Pings zu beantworten(echo replies) je nach DoS Arten und Groesse der Pings pro Sekunde, kann dies innerhalb kuerzester Zeit zu einem Systemabsturz oder einer wesentlichen Beeintraechtigung des angegriffenen Servers fuehren. 4 DDoS Technik Die Distributed Denial-of-Service Attacke macht im Grunde das gleiche, man muellt ein Netzwerk mit Datenpaketen zu. Die wesentlichen Unterschiede der DDoS zur DoS Technik besteht darin, dass man mit den jetzigen DDoS Programmen (trinoo, tfn, tfn2k, stacheldraht) ein Flood Netzwerk aufbauen kann. Denn: DDoS Tools bestehen aus Client und Daemon. Dies basiert auf dem Client - Server Modell. Zum Verstaendnis: Client: Ein Client ist ein Prozess, der irgendwelche Dienste verlangt (Vom Attacker gesteuert). Server: Ein Server ist ein Prozess, der Dienste leistet. Daemon: Linux / Unix Daemonen sind Prozesse die nicht an einen Benutzer oder Kontrollterminal gebunden sind. Sie erledigen im stillen Verwaltungsaufgaben und stellen Dienstleistungen zur Verfuegung. (z.b. Netzdienste: inetd, sendmail) Der Vorteil am Flood Netzwerk Konzept ist, dass man viele DDoS Servers auf verschiedenen Hosts installieren kann und sie dann untereinander kommunizieren. Wenn man im Client ein Kommand eingibt, wird dieser Kommand vom Client an alle DDoS Daemons uebermittelt. 5 DoS Arten 5.1 SYN Angriffe Bei dieser Art der Denial of Service Attacke wird das Drei Wege Handshaking vom TCP benutzt. Zum Verstaendnis: (Die 3 Wege) 1. Der Client sendet ein SYN (Synchronisationsnachricht) an den Server. 2. Der Server antwortet mit einem ACK (Acknoledgement). 3. Darauf sendet der Client sein ACK (Acknoledgement) an den Server. Das Grundproblem der Drei Wege Handshaking Technik ist die sogenannte halboffene Verbindung. Diese entsteht dadurch, dass bis zur Bestaetigung des dritten Schrittes durch den Client (dieser sendet seinen ACK an den Server), der Server seinerseits offen bleibt und eine DOS Syn Attacke diesen Umstand ausnutzt um den Server zu crashen. Der Angreifer verschickt eine so grosse Datenmenge an halboffene Verbindungen, sodass der Server keine weitere TCP Verbindung mehr aufbauen kann. Dadurch wird dann schlussendlich der Server lahmgelegt. 5.2 Smurf Angriffe Bei DoS Art Smurf Angriffen, wird eine (grosse) Anzahl von ICMP echo Paketen mit einer spoofed Source Adresse des Zielrechners an die Broadcast Adresse des / eines Netzwerkes verschickt. Broadcast Addressen haben die Eigenschaft, dass jeder Host diese Pakete empfaengt und an die Source Adresse beantwortet. Beispiel: Ein DoS Kiddie mit einer T1 Leitung, schickt ca. 700kb/s ICMP echo Pakete mit einer spoofed Source Adresse des Zielrechners an die Broadcast Adresse eines grossen Netzwerkes mit ca. 100 Hosts. Was passiert? Jeder einzelne Host von den 100 Hosts beantwortet die ICMP echo Pakete. Das macht dann ein Paket von 70.0 Mbps, der an den Zielrechner (Source Adresse) beantwortet wird. 5.3 DoS Angriffe auf den TCP/IP Stack Durch Angriffe auf den TCP/IP Stack, kommt es immer haeufiger zum Abstuerzen der Netzwerke. Ursache ist ein mangelhafter TCP/IP Stack in Servern und Routern. Die bekanntesten DoS Attacken hierfuer sind: Nuke, Land und Teardrop. Das Problem ist, dass einige Pakete von Routern nicht herausgefiltert werden. 5.4 DoS Angriffe auf IDS, Sniffer, Scanner Bei DoS Angriffen mit fragmentierten IP Paketen koennen IDS Systeme (Intrusion Detection), Sniffer und Netzscanner lahmgelegt oder ueberlistet werden. Solche Sniffer oder Scanner Programme, welche auf einem Netzwerk einen Port ueberwachen (z.b. 21 - FTPD) kann man z.b. durch das mitloggen der Sniffer Programme ueberlisten. Man sendet ein gespooftes SYN Paket und in dieser Zeit koennen sich Angreifer in das System einlogen ohne das es die jeweiligen Sniffer bemerken, da sie damit beschaeftigt sind ein reply an die gespoofte adresse zu senden. Nach dem reply Timeout ist der jeweilige Sniffer wieder aktiv. 6 DDoS Tool Beschreibung Zum Verstaendnis: Client: Ein Client ist ein Prozess, der irgendwelche Dienste verlangt (Vom Attacker gesteuert). Daemon: Sie erledigen im stillen Verwaltungsaufgaben und stellen Dienstleistungen zur Verfuegung. (z.b. Koordinieren der DoS Pakete) Master: Ein Host, auf dem ein Client laeuft. Agent: Ein Host, auf dem ein Daemon laeuft. Handler: Zweiter Client (nur bei Stacheldraht), der Client bei Stacheldraht uebernimmt die Verschluesselung. (Zwischen Client (Master) und Daemon (Agent) besteht kein Unterschied. Nur die einzelnen DDoS Tools werden verschieden benannt.) Alle aufgefuehrten DDoS Tools sind mit einem Passwortschutz und Verschluesselung ausgestattet. 6.1 Trinoo Das Trinoo Netzwerk Tool besteht aus dem Master (master.c) und dem Daemon (ns.c) Trinoo unterscheidet sich nicht besonders von TFN, die Kommunikation erfolgt allerdings ueber Ports. Kommunikations Ports bei Trinoo: Attacker to Master(s): 27665/tcp Master to daemon(s): 27444/udp Daemon to Master(s): 31335/udp Der Attacker ist in der Lage ein oder mehrere Master Server zu bedienen. Der bzw. die Master Server kontaktieren dann die Daemonen. Diese wiederum haben die Aufgabe, die Pakete des oder der Zielsysteme des Client wie angegeben zu koordinieren. Ein solches Trinoo Flood Netzwerk koennte z.b. so aussehen: __________ | attacker | |__________| | ___________________|______________________________ | | | _____|____ _____|____ _____|____ | master | | master | | master | |__________| |__________| |__________| | | | _____|______________________|_______________________|_ | | | | ___|____ ___|____ ___|____ __|_____ | daemon | | daemon | | daemon | | daemon | |________| |________| |________| |________| \ \ / / \ \ / / \ \ / / \ \ / / _________________________ | Victim | |_________________________| 6.2 TFN / TFN2k Das TFN (Tribe Flood Network) Tool besteht aus dem Client (tribe.c) und dem Daemon Programm (td.c) Es ist mit einem TCP Port (Telnet Verbindung fuer den Attacker) und Passwortschutz ausgestattet. Es enthaelt folgende Arten von Denial of Service Attacken: ICMP flood, SYN flood, UDP flood, und Smurf style attacks. Die Kommunikation zwischen clients und daemon erfolgt nicht ueber Ports sondern ueber ICMP Echoreply Pakete. Dabei ist der Attacker in der Lage ein oder mehrere Clients zu bedienen. Der (die) Client kontaktieren dann die Daemonen. Die Daemonen haben die Aufgabe die Pakete des oder der Zielsysteme, welche vom vom Client angegeben werden, zu koordinieren. Ein solches TFN Flood Netzwerk koennte z.b. so aussehen: __________ | attacker | |__________| | _______________|______________________________ | | | _____|____ _____|____ _____|____ | client | | client | | client | |__________| |__________| |__________| | | | _____|______________________|_______________________|_ | | | | _____|__ ____|___ ___|____ _|______ | daemon | | daemon | | daemon | | daemon | |________| |________| |________| |________| \ \ / / \ \ / / \ \ / / \ \ / / _________________________ | Victim | |_________________________| TFN2k: Die wesentlichen Unterschiede zwischen TFN2k und TFN bestehen darin, dass alle Kommandos mit einem CAST-256 Algorithmus verschluesselt werden. Neue DoS Attack Arten wurden hinzugefuegt: TCP/SYN, UDP, ICMP/PING, und SMURF flood Pakete. Die Kommunikation zwischen Client (Master) und Daemon (Agent) funktioniert ueber TCP, UDP, ICMP. 6.3 Stacheldraht Stacheldraht ein weiteres, bekanntes Distributed Denial-of-Service Tool. Es unterscheidet sich etwas von den anderen Tools. Es beinhaltet zwei Clients: Den handler (mserv.c) und der Angreifer verwenden einen zweiten Client, eine Art Telnet (telnetc/client.c). Dieser uebernimmt die Verschluesselung. Client.c verbindet und kommuniziert mit den handlern im Flood Netzwerk. Und schliesslich beinhaltet Stacheldraht, wie alle anderen Tools auch, den Daemon (hier agent) (leaf/td.c). Kommunikations Ports bei Stacheldraht Client to handler(s): 16660/tcp Handler to/from agent(s): 65000/tcp, ICMP ECHO_REPLY Dabei ist der Attacker in der Lage ein oder mehrere Clients (client.c) zu bedienen, der Client.c verschluesselt und Kommuniziert mit den handlern. Der (die) Handler kontaktieren dann die Daemonen. Die Daemonen haben die Aufgabe die Pakete der Zielsysteme der vom Handler angegeben wird zu koordinieren. Ein solches Stacheldraht Flood Netzwerk koennte z.b. so aussehen: __________ | attacker | |__________| | ___|____ | client | |________| | __________________|_____________________________ | | | _____|_____ _____|_____ _____|_____ | handler | | handler | | handler | |___________| |___________| |___________| | | | _____|______________________|_______________________|_ | | | | ___|___ ___|___ ____|__ __|____ | agent | | agent | | agent | | agent | |_______| |_______| |_______| |_______| \ \ / / \ \ / / \ \ / / \ \ / / _________________________ | Victim | |_________________________| 7 Wie kann man sich schuetzen Die heutigen Firewalls sichern leider nicht mehr ausreichend gegen DoS Angriffe. Der Grund liegt nicht zuletzt in den verschiedenen Angriffsvarianten sowie in der Unkenntnis ueber dieselben. Eine Patch die Distributed Denial-of-Service Angriffe blockiert, gibt es bis jetzt nicht. Man kann die groesseren Netzwerke gegen verteilte DoS Attacken nur mit einer gut ueberlegten, muehsamen System Konfiguration schuetzen. Router Einstellungen gegen DoS Pakete minimieren zwar das Risiko, jedoch sollten unnoetige UDP, ICMP Messages geblockt sowie unnoetige Ports und Traffic filtriert werden. Eine weitere Moeglichkeit ist die routing access Einstellung zu aendern. Die Bandbreite von Source Addressen wird dadurch begrenzt/filtriert. Grosse Probleme gibt es gerade bei Highspeed Netzwerke, in denen Geschwindigkeiten ueber 100Mbit erreicht werden. Erstens kann dadurch der TCP/IP Stack viel schneller ueberlastet werden, und zweitens koennen durch Zahlenwerte fuer die SSN (meist 32bit) weitere DoS Arten ermoeglicht werden. Schutz hierfuer bieten Betriebssysteme wie: OpenBSD, FreeBSD, NetBSD, Linux (Kernel2.2), denn diese Systeme verwenden einen TCP/IP Stack fuer lange SSN's (64Bit) Um die Spoofed DDoS, DDoS (smurf) Attacken zurueck zu verfolgen, sollte die Source Address nicht laenger pruefen, den diese ist in der Regel gefaelscht. Aber durch einen schnellen Blick im Router Eintrag wird der Traffic kurz nach dem Beenden des Angriffes noch angezeigt. Zu Empfehlen ist auch der DDoS detection filter des NFR (www.nfr.net) Bei NFR (Network Flight Recorder) handelt es sich um ein nuetzliches Intrusion Detection System. 8 Zusammenfassung Ich hoffe diese Ausfuehrungen konnte Ihnen einen ersten Ueberblick ueber die Denial of Service und Distributed Denial of Service Angriffe geben. Nach meiner Meinung wird es zukuenftig verstaerkt zu DoS und DDoS Attacken im Internet kommen. Das Internet wird immer schneller und dadurch laesst sich die fuer die Angriffe notwendigen Datenmengen gewaltig erhoehen. Sicherheitsberatung im Internet und das Aufzeigen von Schwachstellen wird unter diesen Vorzeichen immerdringlicher. Ich freue mich auf Reaktionen zu dem Security Paper oder Thema. 9 Ressourcen Alle Ressourcen sind bei Onlinesicherheit.de erhaeltlicht: (http://www.onlinesicherheit.de/know-how.html) - stacheldraht analysis - tfn2k analysis - tfn analysis - trinoo analysis - firstaid