PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Schwachstellen und Angriffspunkte



HurricanX
05.09.2004, 21:30
Allgemeine Schwachstellen und Angriffspunkte






1. Vorwort

2. Informationsbeschaffung

3. Adress- und Portscanner

4. Protokoll – Analysator

5. Bannertexte und Informationsdienste

6. Fingerprinting

7. Account- und Passwortangriffe

8. Passwort Guessing

9. Passwort Cracking

10. Richtlinien zur Passwortwahl

11. Test der Passwörter

12. Passwort Sniffing

13. Passwort – Monitoring

14. Trojaner

15. Einmalpasswort und Smartcards

16. Sicherheitslöcher im Netzwerkbereich

17. IP Adress Spoofing

18. ICMP – Angriffe

19. Internet – Routing – Angriffe

20. Broadcast – Stürme durch ARP – Missbrauch

21. Der IP – Fragment – Angriff

22. IP – Bombing

23. SYN – Flooding

24. Der TCP – Sequenznummern – Angriff

25. Abbruch und Übernahme von TCP – Verbindungen

26. UDP – Spoofing

27. DNS

28. SMTP

29. Telnet – Angriffe

30. FTP – Angriffe

31. NNTP

32. Fehler in der Software

33. Der Pufferüberlauf

34. Mangelhafter Syntaxcheck

35. Race Condition

36. Nachwort

37. Links zu interessanten Seiten im Internet







1. Vorwort



Hier wird auch auf die einzelnen Beispiele speziell eingegangen. Es werden nur einige Angriffsmethoden erklären, damit man sich gegen diese schützen kann. Dieser Text soll keine Anleitung dazu sein, wahllos andere Rechner anzugreifen und eventuell zu schädigen. Er soll lediglich über verschiedene Angriffsmethoden aufklären. Im Nachwort stehen die Quellen dieses Tutorials. Wenn ihr Fragen, Anregungen oder Kritik zu diesem Tutz habt, schickt mir einfach ne Mail. Dieser Text ist bewusst (fast) ohne Grafiken erstellt worden, damit auch Netscape oder Lynx Benutzer nicht im Nachteil sind ;)









2. Informationsbeschaffung



Wenn sich ein Angreifer einem Netzwerk nähert (egal, ob von innen oder von außen), ist sein erstes Ziel, so viele Informationen wie möglich zu beschaffen. Dabei spielen nicht nur die Passwörter eine Rolle, sondern auch Infos über die dort eingesetzte Hard- und Software. Wenn der Angreifer im „inneren“ des Netzwerkes befindet, ist die Beschaffung dieser Infos einfacher, als wenn er von „außen“ über eine Firewall zugreifen muss.

Aber selbst dann können mit den entsprechenden Programmen aussagekräftige Daten über die Struktur gesammelt werden. Die hierzu benötigten Tools können über das Internet beschafft werden. Im einzelnen sind dies:

Adressscanner
Portscanner
Protokollanalysatoren
Bannertexte
Fingerprinting
Die allgemeinen Informationsdienste






3. Adress- und Portscanner



Um aus einem unbekannten Netzwerk eine möglichst vollzählige Liste aller Knoten zu gewinnen, muss jede potentielle Netzwerkadresse mit einem Paket angesprochen werden. Kommt ein solches Datenpaket zurück, kann mit hoher Wahrscheinlichkeit auf die „Anwesenheit“ eines Gerätes geschlossen werden. Diese Aufgabe wird von Adressscannern wahrgenommen. Im IP – Bereich senden diese z. B. einen ICMP Echo – Request (Ping – Paket) an alle möglichen Adressen eines Subnetzes und warten auf die Antwortpakete vom Typ ICMP Echo – Reply.

Da viele Firewalls einen ICMP – Verkehr abblocken, versuchen gute Adressscanner auf mehreren Wegen an die gewünschten Informationen zu kommen. Alle denkbaren Protokolltypen werden ausprobiert um schließlich doch eine Antwort und damit die Information zu bekommen. Auch die Wahl einer falschen Absenderadresse (aus dem Adressbereich des Opfers) hilft manchmal weiter. Der Angreifer muss allerdings sicherstellen, dass die Antwortpakete bei ihm vorbeikommen.

Wenn dann eine Liste der aktiven Netzwerkknoten erstellt ist, ist die Suche nach wartenden Serverprozessen die nächste Aufgabe. Diese wird von den Portscannern erledigt, die meist als kombinierte Adress- / Portscanner auch die Suche nach den Knoten durchführen. Beim Portscan werden Wünsche nach TCP – Verbindungsaufnahmen oder UDP – Pakete an alle oder einen Teil der Ports gesendet und aus den Antworten Rückschlüsse auf aktive Dienste geschlossen.

Auch hier besteht bei Zugriffen vom Internet aus die Möglichkeit, dass Firewallsysteme die Pakete überwachen und es ggf. nicht weiterleiten. Bei UDP – Paketen sind die Möglichkeiten eine Firewall zu überlisten gering; aber beim TCP – Portscan gibt es eine Reihe von Varianten, die eine nähere Betrachtung wert ist. Die einfachst Variante des Scans empfindet eine gewöhnliche TCP – Verbindungsaufnahme nach. Dabei spielen die TCP – Flagge, die sog. Code – Bits SYN und ACK, die entscheidende Rolle. Diese Art der Kontaktaufnahme ist allerdings von Firewalls leicht festzustellen du zu blockieren.

Der TCP SYN – Scan, auch half open Scan genannt, verzichtet auf den kompletten Dreiphasen – Handshake.

Es sendet ein SYN – Paket und wartet auf die Antwort. Kommt eine SYN / ACK – Antwort, ist ein Dienst gefunden. Das folgende Reset – Paket RST beendet diese Verbindung gleich wieder. Kommt allerdings keine Antwort oder ein RST – Paket, ist an dem angesprochenen Port kein Dienst aktiv oder eine Firewall blockt den Port ab.

Der TCP FIN – Scan nutzt eine Menge weitere TCP – Flagge, mit der das Ende einer bestehenden TCP – Verbindung angezeigt wird. Wartet am betreffenden Port kein Serverprozess, wird ein RST – Paket gesendet. Kommt hingegen keine Antwort, kann auf die Existenz eines Dienstes geschlossen werden, da in den TCP – Spezifikationen auf ein FIN – Paket bei nicht zuvor geöffneter Verbindung keine Antwort erfolgen darf. Firewalls lassen FIN – Pakete häufig passieren, so dass mit dieser Technik ein Blick hinter die Kulissen geworfen werden kann.

Die bisher angesprochenen Scan – Verfahren können bei Bedarf mit einer zusätzlichen Fragmentierung auf IP – Ebene durchgeführt werden. Fragmente sind von Paketfiltern nur schwer zu durchschauen weil die Pakete am Zielsystem zusammengebaut werden, und dann dort zu den oben beschriebenen Antworten führen.

Ein UDP – Scan ist bedeutend schwieriger durchzuführen als ein TCP – Scan, da ein aktiver Serverprozess nicht verpflichtet ist, ein Antwortpaket zu senden. Ebenso müssen inaktive Ports keine Fehlermeldung senden, doch in der Praxis kann aus dem Empfang eines ICMP Port unreachable – Paketes auf einen inaktiven Port geschlossen werden.



Die Ergebnisse eines Portscans können wichtige Aufschlüsse über das eingesetzte Betriessystem und die darauf laufenden Applikationen geben. So sind die Ports 135 – 139 wichtige Indizien auf Microsoftsysteme, wohingegen Portnummern ab 512 die unter Unix verbreiteten r – Dienst bedeuten. Auch Firewalls und sogar Intrusion – Detection – Systeme verraten sich durch ihre Administrations- und Kommunikationsports, wenn der Scan aus dem Intranet ausgeführt wird. Verantwortungsvolle Administratoren ändern deshalb grundsätzlich die Nummern dieser Ports, sofern die Konfiguration der Systeme das erlaubt.







4. Protokoll – Analysator



Protokoll – Analysatoren sind Geräte, die es Wartungstechnikern ermöglichen, den Netzwerkverkehr zu untersuchen und Fehler bei der Übertragung zu lokalisieren. Derartige Analysatoren gibt es als dedizierte Gerte, aber auch als Zusatzprodukte für die gängigen Betriebssysteme. Sie zeichnen nicht nur die bei der Suche nach Fehlern nötigen Header und Flaggen auf, sondern die gesamten Pakete inklusive Datenteil. Protokoll – Analysatoren können auf vielfältige Weise als Angriffstool missbraucht werden. sie liefern Informationen über

Geräte im Netz
Eingesetzte Netzwerkprotokolle
Dienste
Inhalte der Kommunikation (Daten)


Werden die Daten im Klartext übertragen, können wertvolle Informationen z. B. über Passwörter und Benutzernamen abgelesen werden. Die aufgezeichneten Inhalte von Telnet- oder Rlogin – Session geben direkt oder indirekt Auskunft über die Netzinfrastruktur des potentiellen Opfers, so dass der „Hacker“ in Ruhe sein eigentliches Angriffsziel auswählen kann. Diese sogenannten Sniffer sind auf speziell konfigurierbare Netzwerkkarten angewiesen, da der gesamte Netzwerkverkehr aufgezeichnet werden muss. Die Interfaces müssen sich in den sogenannten Promiscuous Mode umschalten lassen. Werden Switches eingesetzt, so können Analyseprogramme nur einen kleinen Teil der im Segment enthaltenen Daten aufzeichnen. Die Verschlüsselung von Daten entwertet die gelesenen Informationen, doch ist diese Maßnahmen im Intranet, wo die meisten Sniffer eingesetzt werden, wegen der hohen Kosten kaum durchzusetzen.



5. Bannertexte und Informationsdienste



Banner sind diejenigen Texte, die ein Dienst bei der Anmeldung eines Clients diesem übersendet. Sie enthalten meist Informationen über Versionsnummern, so dass es für den Angreifer kein Problem ist, spezifische Angriffe einzusetzen. Bannertexte werden im ASCII – Format übermittelt und können mittels Telnet abgefragt werden:



telnet saturn

Welcome to SuSE Linux 6.2 (i386) - Kernel 2.2.10 (pts/0).



login:



Aber auch andere Dienste können mittels Telnet ausgehorcht werden, z. B. Mail- bzw. FTP – Server:



telnet saturn 25

220 saturn.mac.ac ESMTP Sendmail 8.9.3/8.9.3; Sun, 19 Mar 2000-07-16 09:48:15



telnet saturn 21

220 saturn Microsoft FTP Service /Version 3.0)



telnet mars 21

220 ProFTPD 1.2.0pre3 Server (powered by SuSE Linux) [mars.mac.ac]



Der letzte Versuch (ProFTP – Server) offenbart eine höchst gefährdende Version. Ein im Internet verfügbarer Angriff verschafft dem entfernten Angreifer den vollen Zugriff auf die Maschine (mit Root – Rechten versteht sich). Bannertexte sind meist unveränderbar.. bietet der Dienst z. B. über die Konfigurationsdatei jedoch die Möglichkeit, diese Texte individuell anzupassen, sollte von dieser Möglichkeit auch Gebrauch gemacht werden.

Über die Bannertexte hinaus bieten die meisten Betriebssysteme ganz freiwillig weitere Daten über ihre interne Struktur an. Diese Informationsdienste laufen als Serverprozesse auf den Rechnern und warten an genau definierten Ports auf informationshungrige Clients. Beispiele sind hier die in der Unix – Welt wohlbekannten finger- und rwho – Dienst oder unter Windows NT das Programm nbstat. Wegen der Abhängigkeit vom Betriebssystem werden die Informationsdienst in den entsprechenden Kapiteln genauer behandelt.





6. Fingerprinting



Eine recht neue Art der Informationsgewinnung über fremde Systeme ist das sogenannte Fingerprinting. Die zugrundeliegende Theorie geht davon aus, dass die Netzwerkstacks von verschiedenen Systemen sich in einigen Kleinigkeiten unterscheiden, vor allem in Antworten auf ungenormte Fragen. Mit einem Bündel solcher Anfragen kann dann aus den gesammelten Antworten ein recht genaues Abbild des Systems gewonnen werden, das (analog zu einer Verbrecherkartei) einen Fingerabdruck ergibt. Dieser wird mit einer vorgegebenen Datenbasis verglichen.

Die in der Praxis verfügbaren Tools zum Fingerprinting nutzen in der Regel ungebräuchliche TCP – Flagge oder andere selten genutzte Protokollvarianten zur Generierung ihrer Abfragen:

TCP – Flaggen SYN, ACK, RST, FIN, URG (Urgent) und PSH (Push)
Die restlichen (reservierten) Flaggen im TCP – Header
Verschiedene ICMP – Anfragen


Aus den Antworten auf diese (und einigen anderen) Paketen ergibt sich ein recht genaues Bild des analysierten Systems:



jupiter:~ # nmap –0 neptun
Remote operating system guess: Linux 2.1.122 - 2.1.132

jupiter:~ #nmap –0 saturn

Remote operating system guess: Windows NT4/Win95/Win98





7. Account- und Passwortangriffe



Die häufigste Ursache für erfolgreiche Einbrüche in Computersysteme liegt im Versagen des Mechanismus für die Zugangsberechtigung (Authentifikation). Die Schlüsselrolle aller Authentifikationssysteme spielt dabei die Methode, mir der Identität eines Benutzers und damit verbunden die Nutzungsrechte, die ihm zugeteilt worden sind, überprüft werden (Authentifizierung + Identifikation = Authentifikation).

Die am meisten verbreitete Methode der Benutzerindentifikation basiert auf Passwörtern, die währen des Anmeldevorgangs eingegeben werden. dem Computer – System selbst müssen die betreffenden Kennwörter natürlich ebenfalls bekannt sein. Deshalb werden die verschlüsselten Kennwörter in verschlüsseltem Zustand auf den Systemen abgelegt. Zugangssysteme, die höheren Sicherheitsstandards genügen müssen, benutzen Einmalpasswörter, Smartcards oder personenbezogene Identifikationmerkmale (Fingerabdruck, Stimme, usw. usw.) zur Authentifikation. Um in den Besitz von Passwörtern zu kommen, werden von Angreifern fünf unterschiedliche Strategien angewandt:

Erraten des Passwortes (Passwort Guessing)
Systematisches Passwortraten unter Nutzung der Datei mit den Verschlüsselten Passwörtern (Passwort Cracking)
Protokollanalyse mit Passwortfiltern (Passwort Sniffer)
Login/Passwort – Monotoring mittels TSR – Programmen (Keylogger) und Trojanischen Pferden
Social Hacking.






8. Passwort Guessing



Die trivialste und in einigen Fällen auch die schnellste Methode, um Zugang zu einem Computersystem zu erreichen, ist das Erraten der Login/Passwortkombination. Dabei wird meist von bekannten oder häufigen Zugangskennungen (Logins) wie

Administrator
Guest
Field
Service
und anderen ausgegangen und versucht, das dazu passende Passwort zu erraten. Mehrere Studien haben gezeigt, dass viele Benutzer von Computer – Systemen dazu neigen, außerordentlich leicht zu erratende Passwörter auszuwählen, da diese auch leicht in Erinnerung behalten werden können. Eine Untersuchung in großen Industrieunternehmen ergab, dass 10% aller Benutzer ihre Vornamen als Passwort verwenden.

Typische Login/Passwortkombinationen, die immer wieder auf Systemen gefunden werden, sind field/service, guest/guest oder admin/admin. Solche Accounts werden in Benutzerhandbüchern oft als Beispiele verwendet oder sind auch nach der Installation als Standardkonfiguration vorhanden. Werden diese Sicherheitslöcher nicht erkannt, haben selbst unerfahrene „Hacker“ leichtes Spiel.





9. Passwort Cracking



Die Methode des systematischen Passwortratens setzt voraus, dass Angreifer in der Lage ist, in Besitz einer Kopie der Passwortdatei zu kommen. Die Passworteinträge in dieser Datei sind so codiert, dass eine direkte Entschlüsselung nicht möglich ist (Hash). Mit Hilfe spezieller Programme kann aber zumindest ein Teil der Passwörter in relativ kurzer Zeit enttarnt werden. dabei werden Programme wie „Crack“ oder „L0phtcrack“ benutzt, die in der Lage sind Passwörter, die nach dem selben Algorithmus wie er vom Betriebssystem verwendet wird, zu entschlüsseln.

Wortbibliotheken, die Zehntausende von Wörtern enthalten, werden damit systematisch verschlüsselt und das jeweilige Ergebnis mit den codierten Einträgen der Passwortdatei verglichen. Ist die Bibliothek durchgearbeitet, schalten einige dieser Programme in den Brute – Force – Modus um, in dem die alle Kombinationen von Buchstaben, Ziffern und Sonderzeichen testen.

Daniel Klein („Foiling the Cracker“)zeigte schon 1990 anhand einer Untersuchung von 15000 Unix – User Accounts, dass etwa 25% der in Passwortdateien verschlüsselten Passwörtern mit einer solchen systematischen Ratestrategie enttarnt werden können. Die Entschlüsselung von 2,7% der Passwörter führte im Durchschnitt bereits nach einer Rechenzeit von 15 Minuten zum Erfolg. Das erste Passwort konnte schon nach 2 Minuten aufgedeckt werden. das Funktionieren dieser Methode basiert einzig und allein darauf, dass in überwiegenden Zahl von Netzwerken zumindest ein Teil der benutzten Passwörter aus Wörtern und/oder Namen besteht, die leicht zu erraten sind. Bereits bei einer Kombination von zwei kurzen, aus drei bis fünf Buchstaben bestehenden Zeichenkette, die durch ein Komma oder einen Punkt getrennt sind, wie z. B.:

Pass, sys
wird das Erraten wesentlich schwerer. Bei der zusätzlichen Anwendung einer Kombination aus Sonderzeichen sowie abwechselnder Groß- und Kleinschreibung ist eine Entschleierung mit Wortlisten sehr Zeitaufwendig bzw. fast unmöglich.

Die große Zahl an erfolgreichen Passwortdatei – Entschlüsselungen mit Hilfe von umfangreichen Wortlisten wurde durch die heute bereits in PC’s vorhandene hohe CPU – Rechenleistung ermöglicht. Als der DES – Algorithmus Mitte der siebziger Jahre entwickelt wurde, benötigten die damals schnellsten Workstations vom Typ DEC – PDP – 11 noch an die 250 ms, um ein Unix – Passwort zu entschlüsseln. Pro Sekunde konnten also etas drei Passwörter codiert werden. heutige PC’s mit schnellen Pentium oder Athlon – CPU’s sind dagegen in der Lage, mehr als 1000 Passwörter pro Sekunde zu verschlüsseln. In fünf Stunden können also 18 Millionen Wörter und Wortkombinationen verschlüsselt und mit dem Code der Passwortdatei verglichen werden.

Mit zunehmender Rechenleistung wurden auch die Programme immer raffinierter. So verschlüsseln Cracker wie Cracker – Jack schon längst nicht mehr nur den unveränderten Inhalt von Wortlisten. Jeder Eintrag der Wirtliste wird auf Wunsch durch die unterschiedlichen Groß- und Kleinschreibungsreihenfolge, sowie durch Permutation der Buchstabenreihenfolge mehrfach getestet. So wird der Eintrag „michael“ als Michael, miCael, micAel, micaEL, MicaeL, Michael verschlüsselt. Nun wird anhand eines Beispiels gezeigt, wie Cracker-Jack durch unterschiedliche Permutationen des User – Account – Eintrages ein verschlüsseltes Passwort angreift.









billy:EncrPassword:123:Billy The Kid:/ur/billy:/bin/csh


There are 4 Levels of gecos manipulation



1: Each word

e.g. “Billy”, “The”, “Kid”

2: Combination af any 2 words

e.g. “BillyThe”, “BillyKid”, “TheBilly”, “TheKid”, …

4: Combination of 1 word and up to 2 initials

e.g. “BillyTK”, “BillyKT”, “TKBilly”, “TbillyK”, “Bkid”, …

8: Combination of substrings of to 3 words

e.g. “BiThKid”, “BillKi”, “BilTheKi”, “TheBillyK”, “BTK”, …



Level 1, 2 and 4 can added together.










Die nachfolgende Tabellen aus der Studie von Daniel Klein geben einen Überblick, welche Typen von Passwörtern mit Hilfe von Wortlisten und deren einfachen Permutation enttarnt werden konnten. 2.7% der Passwörter konnten über eine User – Account – Liste enttarnt werden, 6,2% über Namenslisten (weibliche, männliche Namen) und über 7,4% über Vokabular – Listen (Dictionary Wordlists).





Passworttyp
Größe der

benutzten

Wortlisten
Anzahl der

Entschlüsselungen
Prozentsatz von

Allen untersuchten

Passwörtern

User Account Name

Buchstabenfolge

Zahlen

Chinesisch

Geographie

Gebräuchliche Namen

Weibliche Namen

Männliche Namen

Ungewöhnliche Namen

Mythen/Legenden

Shakespeare

Sport

Wissenschaft

Kino/Schauspieler

Cartoons

Prominente

Familiennamen

Biologie

Vokabular-Listen

Maschinen

Abkürzungen

Bibel

Verschiedene Wörter

Jüdische Wörter

Asteroiden
130

886

427

392

628

2239

4280

2886

4955

1246

473

238

691

99

92

290

33

58

19683

9018

14

7525

3212

54

2407
368

22

9

56

82

548

161

140

130

66

11

32

59

12

9

55

9

1

1027

132

2

83

54

0

19
2,7%

0,2%

0,1%

0,4%

0,6%

4,0%

1,2%

1,0%

0,9%

0,5%

0,1%

0,2%

0,4%

0,1%

0,1%

0,4%
0,1%

0,0%

7,4%

1,0%

0,0%

0,6%

0,4%

0,0%

0,1%








Als Passwörter sind zu vermeiden:



Namen

- der eigene Name, inklusive Spitz- Nickname

- der Name der Freundin, Verwandten, Kindern etc.

- Ortnamen, Plätze, Länder

- Romanhelden, Prominenten

- Computersysteme, Autos etc.



Zahlen

- Telefonnummer

- Geburtstage

- Autokennzeichen

- Führerscheinnummer

- Adresse

- Bekannte Zahlenfolgen wie 0815 etc.

- Ziffernfolgen wie 12345, 11111 etc.



Benutzernamen in jeglicher Form wie z. B.:

- Mike_user

- Mikeuser

- Mike_user! Etc.



Jegliche Wörter aus einem Wörterbuch, egal aus welcher Sprache.



Wörter, von denen man nicht annimmt, dass sie in Wörterbüchern vorkommen wie:

- Schimpfwörter

- Flüche

- Technische Begriffe



Sprichwörter, Phrasen wie:

- Make my day

- Willkommen an Bord

- Don’t worry be happy etc.



Passwörter, die aus einem Buchstaben bestehen wie:

- yyyyyyy etc.



Tastaturfolgen wie:

- qwertz

- asdf

- ölkj etc.



Tastenkombinationen, die man durch Beobachtung bei der Eingabe erkennen kann wie:

- 163ß74 (außer man ist schnell im Schreiben)



Begriffe und Vorliebe, für die man bekannt ist:

- Lieblingsfilm

- Musikrichtung etc.



Jegliches Objekt, dass vom Arbeitsplatz aus ins Auge fällt.



Passwörter, die man in der Vergangenheit bereits benutzt hat.









10. Richtlinien zur Passwortwahl



Werden bei der Auswahl der Passwörter bestimmte Richtlinien beachtet, so bedeutet dies bereits eine erhebliche Erhöhung der Sicherheit des Gesamtsystems. Da die Kosten für die damit verbundenen Maßnahmen vernachlässigbar sind, sollte kein Unternehmen darauf verzichten, diese – gegebenenfalls auch gegen den passiven Widerstand der Mitarbeiter – durchzusetzen.

Gut gewählte Passwörter machen ein Erraten, selbst wenn dem Eindringling die Passwortdatei in die Hände fällt, fast unmöglich. Im allgemeinen sollten für ein Passwort die vier folgenden Eigenschaften gelten:

a.) schwierig, selbst mit umfangreichen Wortlisten nicht zu erraten

b.) leicht zu merken

c.) regelmäßig abgeändert

d.) gut geschützt (verschlüsselt / unzugänglich) am Zielsystem gespeichert

Die regelmäßige Änderung von Passwörtern schützt gegen Brute – Force – Angriffe. Als allgemeine Faustformel kann gelten, dass sich ein Passwort signifikant häufiger ändern muss, als es durch einen Brute – Force – Angriff statistisch geknackt wird.

In der nachfolgenden Auflistung sind konkrete Empfehlungen aufgelistet, die – werden sie befolgt – jedem Eindringling den Einbruch in das System enorm erschweren. Gegen Sniffer, die – einmal eingeschleust – in der Lage sind, jede Keyboard – Eingabe mitzulesen, bieten allerdings selbst die härtesten Passwörter und die am besten geschützten Passwortdateien keinen Schutz.








Folgende Richtlinien sollten bei der Passwortauswahl berücksichtigt werden:



Das Passwort sollte regelmäßig geändert werden
Das Passwort sollte sowohl Groß- als auch Kleinbuchstaben beinhalten
Das Passwort sollte Ziffern und Sonderzeichen enthalten
Erfindet einfach Abkürzungen als Gedächtnishilfe wie z. B. Iow2basN:t#1 I only want to be a small number: the number 1
Kombiniert mehrere Worte miteinander: AngstessenSeeleauf
Das Passwort sollte eine Mindestlänge von 6 Zeichen haben – je länger desto sicherer







Man sollte aber auch bedenken, dass die Benutzer durch den Zwang extremer oder zu langer Passwörter frustriert werden können. Die Passwörter werden dann nicht selten unter der Schreibunterlage versteckt oder kleben sogar manchmal direkt am Monitor. Hier muss ein Kompromiss zwischen Nutzbarkeit und Sicherheit getroffen werden, die User müssen sensibilisiert werden und vom Sinn und Zweck der komplizierten Passwörter überzeugt sein.







11. Test der Passwörter



Wie hoch die Qualität der Passwörter im eigenen Netzwerk ist, lässt sich am besten dadurch überprüfen, dass man versucht, ausgerüstet mit den Passwortcrackern und zahlreichen Wortlisten, die Passwortdateien zu entschlüsseln.

Es gibt aber auch die, zugegeben etwas außergewöhnliche, Methode, wie sie von einigen Firmen in der Vergangenheit angewendet wurde. Diese Firmen forderten die Hacker auf, ihr System zu knacken und versprachen bei Erfolg ein „Preisgeld“. Diese Angriffe wurden protokolliert und ausgewertet. Anhand dieser Angriffe konnte man feststellen, welche Schwachstellen ein System hat bzw. auch welchen Wegen hauptsächlich versucht wird, in ein Computer – System einzudringen. Das ist zwar eine recht sichere Methode um Sicherheitslücken aufzudecken, allerdings rechnet sich der finanzielle Aufwand in den seltensten Fällen.

Im letzten Abschnitt werden einige Links zu Seiten aufgelistet, bei denen man sich die geeigneten Programme downloaden kann.







12. Passwort – Sniffing



Eine weitere Methode zur Ermittlung von Passwörtern und Benutzeridentifikationen ist die Überwachung der Datenpakete auf IP – Protokollebene, wie bereits im Kapitel „Informationsbeschaffung“ angesprochen. Diverse Protokollanalyseprogramme, die teils mit Betriebssystemen mitgeliefert werden, teils als Freeware für diverse Plattformen verfügbar sind, ermöglichen oft die Nutzung einer gewöhnlichen Netzstation als LAN – Analysesystem.





BSD, FreeBSD, NetBSD tcpdump



DEC Unix tcpdump



HP/UX nettl, netfmt, nfswatch



Linux tcpdump



SGI Irix nfswatch, Etherman



Solaris snoop, rcpdump



SunOS etherfind, nfswatch



Windows NT Netzwerkmonitor



Netware LANalyser









Vielfach versuchen „Hacker“, solche Programmen in das Zielsystem einzuschleusen bzw. bereits dort vorhandene Programme zu starten und für ihre Zwecke zu missbrauchen. Gelingt dies, so gelangt der Eindringling in kürzester Zeit in den Besitz einer großen Zahl von Passwörtern und Usernamen. Grundsätzlich sollten sich solche Analyse – Programme weder auf Servern oder Gateways, noch auf den Systemen von gewöhnlichen Benutzern befinden. Mit Hilfe von Filtern und Trigger – Funktionen kann in weiterer Folge nicht nur auf Internet – Adressen, sondern auch auf die Inhalte der Datenpakete gefiltert werden (z.B. Zeichenketten wie „login“ oder „password“).

Selbst wenn die Passwörter mit eurem Hash verschlüsselt über die Leitung gehen, können sie gelesen und mit einem Passwortcracker entschlüsselt werden..





13. Passwort – Monitoring



Eine weitere äußerst gefährliche Einbruchsvariante besteht in der Installation von kleinen Programmen, die im Hintergrund laufend, jede Tastatureingabe überwachen (Keylogger). Wenn es dem Eindringling später gelingt, die Datei mit den erbeuteten Zugangserkennungen wieder abzuholen, steht ihm das System offen zur Verfügung. Es besteht bei einigen Keyloggern auch die Möglichkeit, sich die aufgezeichneten Daten per Email zuschicken zu lassen.







14. Trojaner



Eine weit verbreitete Methode, in den Besitz von Passwörtern zu kommen, ist der Einsatz von kleinen Programmen, die unter dem Namen „Trojaner“ oder „Trojanische Pferde“ bekannt sind. Diese Programme basieren darauf, als etwas anderes zu erscheinen, als sie tatsächlich sind. Im einfachsten Fall wird ein solches Programm vom ahnungslosen User gestartet und führt keine Funktion aus (es kann auch sein, dass sie mit anderen Programmen verbunden sind). Einfach programmierte Trojaner haben meistens nur eine Funktion. Sobald der User das Programm startet, wird eine Bildschirmmeldung ausgeworfen wie z.B.:



Error: Incorrect passwort


Wenn der Benutzer dann dieser Meldung folge leistet und sein Passwort wiederholt eingibt, wird dieses gespeichert und per Mail an den Besitzer zurückgeschickt. Es gibt aber auch Trojaner, die – einmal gestartet – dem Versender die volle Kontrolle über den infizierten Computer ermöglichen. Einige Links zu Internetseiten findet ihr im letzten Kapitel.







15. Einmalpasswörter und Smartcards



Wirklichen Schutz gegen die bisher beschriebenen Methoden des Passwortdiebstahls bieten lediglich Authentifizierungsmethoden auf der Grundlage von Einmal – Passwörtern, wie sie bei Banken und Versicherungen üblich sind. Jeder Benutzter bekommt dabei regelmäßig einen Ausdruck mit mehreren Passwörtern. Bei jedem Anmeldevorgang wird ein anderes Passwort benutzt und danach von der Liste gestrichen (ähnlich wie beim TAN – Nummern – Verfahren).

Aufwendigere Schutzeinrichtungen benutzen kleine Hardware – Einheiten (Dongle) mit Displays, über die in Abhängigkeit von Datum und Uhrzeit zu jedem Zeitpunkt ein unterschiedliches Passwort ausgegeben wird. Das Server – System kann das Passwort prüfen, da es über einen synchronen Takt verfügt.

Andere Systeme basieren auf Einsteckkarten, die sog. Smart Cards. Diese sind in der Lage, in direkter Kommunikation mit dem Zielsystem den Authentifikationsprozess zu durchlaufen. Die Passwörter müssen dabei nicht manuell eingegeben werden und können ohne Beeinträchtigung der Handhabbarkeit mit langen Zugangscodes arbeiten.

Doch selbst Hochsicherheitssysteme, die auf Einmalpasswortsystemen in Kombination mit Zeitsynchronisation zwischen Client und Server basieren, können überwunden werden. Hacker versuchen dabei, mehrere Einmalpasswörter aufzuzeichnen und diese nach dem Zurückstellen der Systemzeit durch einen Angriff auf den Zeitserver (NTP – Angriff) nochmals zu verwenden.







16. Sicherheitslöcher im Netzwerk



Mit der Einführung des Internets für kommerzielle Anwendungen und der Einführung von Internet – Technologien in Unternehmensnetze (Intranets) setzte sich in den neunziger Jahren TCP/IP als das zentrale Transportprotokoll in der Datenverarbeitung durch. Proprietäre Protokolle wie SNA, IPX, DECnet oder Appletalk sind zwar nach wie vor im Einsatz, spielen allerdings eine zunehmend geringe Rolle.

TCP und IP wurden Ende der siebziger Jahre vom amerikanischen Verteidigungsministerium (Departmenr of Defense DOD) für das damalige ARPAnet, dem Vorläufer des Internets, entwickelt. Dort wird es seit 1983 als das offizielle Transportprotokoll benutzt, und hat sich seitdem auch für lokale Netze zum Industriestandart entwickelt. Heute werden beide Protokolle von der Internet Engineering Task Force (IETF) weiterentwickelt und für neue Technologie adaptiert (TCP/IP über ATM, digitale Kabelnetze, drahtlose Übertragung etc.). Da beim Design von TCP/IP die spätere kommerzielle Nutzung nicht vorsehbar war, besitzt TCP/IP eine Reihe von systemimmanenten Mängeln, die zum größten Teil mit der neuen IP – Version 6 (Ipv6) beseitigt werden können. Dazu gehören ein zu kleiner Adressraum, fehlende Möglichkeiten der Priorvisierung von Echtzeitdaten sowie keine praktikablen Mechanismen für Verschlüsselung und Authentifizierung. Ipv6 löst diese Probleme zwar im wesentlichen, es setzt sich allerdings nur sehr zögerlich durch, weshalb in nahezu allen Datennetzen heute noch immer mit der älteren IP – Version 4 (Ipv4) gearbeitet wird.

Obwohl sich TCP/IP während seines nunmehr über 24 jährigen Einsatzes in Datennetzen außerordentlich bewährte und letztlich in einem evolutionären Prozess alle Proprietären Transportprotokolle verdrängte, wurden immer wieder massive Sicherheitslücken in den TCP/IP – Mechanismen bekannt. Teilweise konnten sie zwar durch Hersteller von Routern- und Firewallsystemen geschlossen werden, allerdings besteht immer noch eine Vielzahl von Problemen. Neben dem systemimmatenenten Problemen liegt die Ursache eines Großteils von Einbrüchen auf der Basis der Transportprotokolle in der fehlerhaften Konfiguration von Computersystemen, Routern oder Firewalls. Lückenhafte Portfilterkonfigurationen, aktive ICMP – Optionen oder schlampig aufgesetzte Routing – Tabellen sind hier die „klassischen“ Fehler, denen man immer wieder begegnet.

Viele Angriffsmethoden benutzten TCP/IP – Sicherheitslücken nur, um dann aufsetzend auf Anwendungsprotokollen wie FTP, DNS, SMTP oder NNTP den eigentlichen Angriff zu starten. Nachfolgend werden alle wichtigen auf Transport- und Anwendungsprotokollen basierenden Angriffsmethoden im Detail beschrieben sowie entsprechende Gegenmaßnahmen aufgeführt.

Dabei haben viele Angriffe nur das Ziel, Dienst oder gleich ganze Systeme das Opfers Lahmzulegen. Man spricht hier von Denial – of – Service – Angriffen. Ganz grob können die Angriffsszenarien im IP – Protokoll und den höheren Ebenen wie folgt eingeteilt werden:



IP – Ebene:

IP – Spoofing
ICMP – Angriffe
Routing – Angriffe
Broadcast – Stürme durch ARP – Missbrauch
IP – Fragmentierungsangriffe
Bombardierung mit Paketen


TCP – Ebene:

SYN – Flooding
TCP – Sequenznummern – Angriff
Abbruch von TCP – Verbindungen
Übernahme von TCP – Verbindungen (Hijacking)


UDP – Ebene:

UDP – Spoofing


Anwendungsebene:

Angriffe auf das DNS – System
Angriffe auf Mailsysteme
Telnet – Angriffe
FTP – Angriffe
Angriffe auf Newsserver
Angriffe auf Webserver


Die Angriffsmöglichkeiten auf Webserver werden wegen der zahlreichen Möglichkeiten in einem eigenen Kapitel beschrieben.







17. IP – Adress Spoofing



Die am häufigst verwendete Technik zur Überwindung von Firewall – Systemen und gleichzeitig die Grundlage für eine Reihe weiterer Angriffsmethoden stellt das Internet Adress Spoofing dar. Dabei werden vom Angreifer synthetische Datenpakete mit gefälschter IP – Senderadresse erzeugt, die das Pakte einer internen Station vortäuschen. Gefährlich ist diese Form des Angriffes vor allem dann, wenn als Firewall – System sogenannte Paketfilter zum Einsatz kommen, die lediglich in der Lage sind, am Ausgangsport von zu übertragenden Datenpaketen eine Filterung durchzuführen. Dabei geht die Information, ob es sich um ein externes gefälschtes handelt, verloren. Es wird, sobald die Sendeadresse als aus dem eigenen Adressbereich stammend erkannt wird, als Bestandteil von internen Kommunikationsbeziehungen behandelt und entsprechend weitervermittelt.



Der Angreifer aus dem Internet erzeugt dabei ein „Spoofing – Paket“ mit der Sendeadresse 181.12.10.201. Als Zieladresse benutzt er die Adresse des Opfers, das sich im Netzwerk 181.12.11.0 befindet. Der Firewall – Router vermittelt zunächst das synthetische Paket an den gewünschten Ausgangs – Port (181.12.11.0) und überprüft erst hier anhand der Filtertabelle die Sendeadresse. Das Paket wird dabei vermeintlich als von einem aus dem internen Netzwerksegment 181.12.10.0 stammendem System behandelt und weitervermittelt.



Können von einem Angreifer mittels Adress – Spoofing erfolgreich IP – Pakete von außerhalb durch das Firewall – System hindurch in das interne Datennetz gesendet werden, kann dies als Ausgangspunk für eine Reihe von Angriffsvarianten über Source – Routing, RIP, ICMP, NNTP oder TCP – Sequenznummern genutzt werden.







18. ICMP – Angriffe



Das ICMP – Protokoll dient als integraler Bestandteil des Internet – Protokolls dazu, dem in einem Fehlerfall betroffenen Absender von IP – Datenpaketen das Auftreten von Netzwerkproblemen zu melden. Dieser hat dann die Aufgabe, entsprechende Maßnahmen zu ergreifen. Router oder Hosts werten solche Nachrichten allerdings häufig automatisch aus und führen entsprechende Rekonfigurationen durch. Durch das Versenden von manipulierten, künstlich erzeugten ICMP – Paketen sind Angreifer somit oftmals in der Lage, Computersysteme zu bestimmten Aktionen zu bewegen.

Ziele von ICMP – Angriffen sind

- Beeinträchtigung der Funktionsfähigkeit des Netzwerkes

- Veränderung der Vermittlungspfade mit darauffolgendem Systemeinbruch





Das Format von ICMP – Nachrichten
Obwohl ICMP – Nachrichten enkapsuliert innerhalb con IP – Paketen versendet werden, können sie nicht mit einem höheren Protokoll wie TCP oder UDP verglichen werden. Sie sind ein Teil des eigentlichen Internet – Protokoll, der nicht deaktiviert werden kann. Als Sendeadresse von ICMP – Datenpaketen wird die Adresse jener Station, von der der Fehler entdeckt wurde, angegeben. Empfänger ist der ursprüngliche Versender des fehlerhaften bzw. des den Fehler auslösenden Paketes. Das Auftreten eines Fehlers wird somit lediglich dem Absender mitgeteilt, nicht aber den eventuell dazwischen liegenden Vermittlungssystemen



Mit Hilfe des Typenfeldes werden die unterschiedlichen ICMP – Nachrichten spezifiziert. Die folgende Tabelle zeigt die wichtigsten Belegungen. Die häufigsten ICMP – Angriffe werden unter Benutzung der ICMP – Nachrichten – Typen 3 (Destination Unreachable), a (source Quench) und 5 (Redirect) vorgetragen.



0

1

2

4

5

6

7

8

9

10

11

12

13

14
Echo Reply

Unassigned

Unassigned

Source Quench

Redirect

Alternat Host Adress

Unassigned

Echo

Router Advertisement

Router Selection

Time Exceeded

Parameter Problem

Timestamp

Timestamp Reply
15

16

17

18

19

20 – 29

30

31

32

33

34

35

37 – 255
Information Request

Information Reply

Adress Mask Request

Adress Mask Reply

Reserved (for Security)

Reserved (for Robustness Experiment)

Traceroute

Datagram Conversion Error

Mobile Host Redirect

IPv6 Where – Are – You

IPv6 I – Am – Here

Mobile Registration Request

Reserved


















Missbrauch der ICMP – Nachricht „Destination Unreachable“


Wenn ein Datenpaket nicht an die gewünschte Adresse vermittelt werden kann, so sendet das letzte aktive Vermittlungssystem die ICMP – Nachricht „Destination Unreachable (ICMP – Typ3).





Die ICMP – Nachricht Typ 3: >>Destination Unreachable<<







0

1

2

3

4

5

6

7

8

9

10

11

12


Network Unreachable

Host Unreachable

Protokoll Unreachable

Port Unreachable

Fragment Needed and DF set

Source Route Failed

Destination network unknown

Destination Host unknown

Source host isolated

Communication with destination network administratively prohibited

Communication with destination host adminastratively prohibited

Network unreachable for type of service

Host unreachable for type of service








Zusätzlich werden neben dem Paket – Header noch die ersten 64 Datenbytes des betreffenden Datenpaketes mit dem ICMP – Paket übertragen. Dies dient dazu, der Sendestation die Möglichkeit zu geben, genau zu erkennen, welche Verbindung abgebrochen werden muss. Vielfach besteht nämlich zwischen zwei Internet – Adressen eine Vielzahl von Verbindungen, die jeweils unterschiedliche Adressen ansprechen. Einige ICMP – Implementationen sind allerdings nicht in der Lage, die Port – Informationen der ICMP – Pakete zu analysieren, und unterbrechen alle Kommunikationsbeziehungen zwischen den beiden betroffenen Internet – Hosts. Angreifer können so mit geringem Aufwand in kürzester Zeit eine große Zahl von Internet – Verbindungen lahm legen.

Eine Störung des Netzbetriebes kann durch die permanente Versendung der Nachricht „Fragmentation Needed and DF set“ verursacht werden. dadurch werden die betroffenen Systeme veranlasst, ihre Daten fragmentiert in kürzeren Paketen zu versenden, was einer Erhöhung der Netzlast resultiert.

Gegenmaßnahmen zu den beschriebenen Angriffen sind nicht ohne weiteres zu treffen, da ICMP eine notwendige Teilkomponente des Internet – Protokolls darstellt. Eine wichtige Maßnahme besteht jedoch darin, Router – Systeme so zu konfigurieren, dass nur eine bestimmte maximale Anzahl von ICMP – Nachrichten pro Zeiteinheit in das interne Netzwerk vermittelt werden können.

Im Normal – Betrieb sollte die Anzahl der ICMP – Pakete verhältnismäßig gering ausfallen. Die meisten Netzwerk – Management – Systeme sind in der Lage, die Anzahl der übertragenen ICMP – Pakete zu überwachen und bei einem außergewöhnlichem Anstieg einen entsprechenden Alarm auszulösen.





Missbrauch der ICMP – Nachricht „Source Quench“
Source – Quench – Nachrichten werden gewöhnlich nur von Gateway – Systemen dazu benutzt, die Übertragungsrate von Sendestationen zu reduzieren, um eine Überlastsituation zu verhindern bzw. zu beenden. Die betreffenden Empfängerstationen reduzieren daraufhin so lange ihre Übertragungsrate, bis keine „Source – Quench“ – Nachrichten mehr empfangen werden. durch das missbräuchliche, exzessive Versenden von künstlich erzeugten Source – Quench – Paketen kann der Datenverkehr daher empfindlich gestört werden.



Missbrauch der ICMP – Nachricht „Redirect“
Diese Nachricht wird von Routern benutzt, Hosts, die mit minimaler Routing – Information neu am Netzwerk aktiv werden (und denen z. B. nur die Adresse eines einzigen Routers bekannt ist), zur Benutzung der optimalen Route zu veranlassen. Router selbst sollten allerdings im allgemeinen so konfiguriert werden, dass sie immun gegen solche ICMP – Redirect – Nachrichten sind, und in jedem Fall ausschließlich nach den Routern ihrer Routing – Tabellen vermitteln.

Angreifer von außerhalb sind sonst in der Lage, mit Hilfe von IP – Adress – Spoofing entsprechende ICMP – „Redirect“ – Nachrichten in das Netzwerk einzuschleusen und Router so zu einer Änderung der Vermittlungswege über beliebige Stationen zu bewegen. Gelingt es so, Verbindungen über den externen Knoten des Angreifers selbst umzuleiten, ist ein massiver Netzeinbruch die unmittelbare Folge.



Ping of Death
Dieser Angriff basiert auf einem extrem langen ICMP Echo Request – Paket, welches in fragmentierter Form (aufgeteilt auf mehrere Teilpakete) an das Zielsystem gesendet wird. Normalerweise dient die Fragmentierung dazu, Netzwerkabschnitte deren maximale Paketlänge geringer ist als die eines bestimmten IP – Paketes zu überbrücken (IP – Pakete können bis maximal 65535 Bytes lang sein). Beim Ping of Death wird nun allerdings ein unzulässig langes Paket (>65535 Bytes) in fragmentierter Form übertragen. Nach dem Zusammensetzten des Paketes versuchen die Netzwerktreiber des Opfers dieses Paket zu verarbeiten, und verursachen dabei einen Systemabsturz.







19. Internet – Routing – Angriffe



IP – Pakete können durch Angaben im 8 Bit langem Optionsfeld verschiedene Zusatzfunktionen erfüllen. Diese werden im allgemeinen lediglich vom Systemadministrator für Test- und Überwachungszwecke genutzt. Routing – Optionen wie „Loose Source Routing“ können allerdings auch zu Angriffen auf das interne Netzwerk von außerhalb verwendet werden.





Optionsnummer Beschreibung



0
End of option List

1
No operation

2
Security and handling restrictions

3
Loose Source Routing

4
Internet Timestamp

7
Record Route

8
Stream Identifier (obsolete)

9
Strict Source Routing






Der Source – Routing – Angriff
Die einfachste Routing – Attacke benutzt die Internet – Protokolloption 9 (Strict Source Routing) bzw. 3 (Loose Source Routing). In beiden Fällen kann die Route durch das Netzwerk vom Sender des IP – Routing – Paketes bestimmt werden. Im Fall von „Strict Source Routing“ muss dabei jeder Vermittlungsknoten in der richtigen Reihenfolge angegeben werden. Zwei als aufeinanderfolgend eingetragene Knoten müssen tatsächlich direkt miteinander verbunden sein. Ist dies nicht der Fall, erfolgt eine Fehlermeldung.







„Loose Source Routing“ lässt hingegen auch zusätzliche Vermittlungen (Hops) zwischen zwei angegebenen IP – Adressknoten zu, ohne dass die komplette Route angegeben werden muss. Es bietet sich demnach geradezu an, als Hilfsmittel für einen Angreifer von außen missbraucht zu werden. Der Datenstrom der Zielstation kann damit problemlos an das Computersystem des Eindringlings „umgeleitet“ werden. Dazu simuliert der Angreifer wiederum die IP – Adresse eines internen Systems (IP – Adress – Spoofing) und öffnet unter Aktivierung der Option „Loose Source Routing“ eine Verbindung zur Zielstation, wobei als Route für die Antwortpakete ein Pfad, der über das angreifende System führt, angegeben wird. Damit stehen dem eingedrungenem System alle Möglichkeiten der simulierten, internen Station zur Verfügung.

Wieder liegt die Ursache für erfolgreiche Attacken nach der beschriebenen Methode in der Durchlässigkeit der Gateways des betroffenen Netzwerkes für IP – Pakete mit internen Adressen überexterne Datenleitungen. Die Aktivierung entsprechender Input – Filter bzw. die Filterung von IP – Paketen mit aktivierter Source Routing – Option schließt dies Lücke.




Der RIP – Angriff
Mit Hilfe des RIP – Angriffes ist es möglich, unbemerkt ganze Kommunikationsbeziehungen zwischen zwei internen Stationen über einen externen Angreifer „umzuleiten“. Der Angreifer (X) simuliert dabei eine interne Station (A) und sendet modifizierte RIP – Pakete (Routing Information Protocol) an die zweite zugreifende Station (B) sowie an die Gateways, die zwischen X und B liegen. Diese Pakete weisen B sowie die Gateways an, jedes Paket von B nach A – entsprechend der gefälschten Routen – Information – nicht nach A, sondern nach X zu vermitteln. Der Angreifer X wertet die für A eingehenden Pakete aus (Passwörter, Logins, etc.) und sendet sie, versehen mit der „Source – Route – Option“, weiter an ihren eigentlichen Bestimmungsort A. durch die Aktivierung der „Source – Route – Option“ stellt X sicher, dass auch alle Antwortpakete von A nach B überwacht werden können. Ähnlich wie im Fall des Source – Route – Angriffs werden RIP – Angriffe durch Gateways verhindert, die IP – Adress – Spoofing – Pakete blockieren. Darüber hinaus sollten alle internen Router so konfiguriert sein, dass ohne weiteres eine Änderung der bestehenden Routen nicht möglich ist.





Das Exterior Gateway Protocol (EGP)
Dieses Protokoll wird dazu benutzt, um zwischen zwei autonomen Systemen Routing – Informationen auszutauschen. Im Internet werden damit beispielsweise sog. „Mid – Level – Netzwerke“ an das Internet – Backbone angebunden. Die in Europa zur Kommunikation zwischen den Internetprovidern übliche EGP Variante ist BGP –4 (Boarder Gateway Protocol 4). Angriffe auf Basis dieser EGP können mit einem Schlag mehrere hundert Netzwerke betreffen. Eine Angriffsvariante besteht darin, ein anderes autonomes Gateway vorzutäuschen (EGP – Spoofing) und damit beispielsweise den gesamten Verkehr zwischen zwei Internetprovidern über das eigene System umzuleiten.







20. Broadcast – Stürme durch ARP – Missbrauch



Eine Angriffsvariante, die der massiven Beeinträchtigung der Betriebsbereitschaft des Zielnetzwerkes dient, sind ARP – Angriffe. Sie dienen dazu, Netzkomponenten gezielt in Überlastsituationen zu bringen, in der Hoffnung, undefinierte Zustände hervorzurufen und im Anschluss daran einen Angriff starten zu können. Normalerweise dient das Adress – Resolution – Protocol in Netzwerken dazu, die einer Internet – Adresse zugeordnete Hardware – Adresse zu finden. Dazu werden ARP – Pakete in Form von Broadcasts an alle Netzwerkteilnehmer versendet. Kann eine Adresse innerhalb eines Netzsegmentes nicht gefunden werden, leiten Gateways die ARP – Anforderung per Broadcast an alle angeschlossenen Netzwerke weiter. Wenn künstlich generierte ARP – Pakete zur Suche von nicht existierenden IP – Adressen generiert werden, so führt dies daher rasch zu einem „Broadcast – Sturm“ der Gateways. „Verbessert“ werden kann dieser Effekt noch, dass nach dem ersten Broadcast – Sturm synthetische „ARP – Replies“ der nicht existierenden Adresse versendet werden, die von den Gateways wiederum per Broadcast weiterverbreitet werden. solche Broadcast – Stürme belegen rasch über längere Zeiträume den größten Teil der verfügbaren Übertragungsbandbreite und stören die Funktionsfähigkeit der betroffenen Netzwerke empfindlich. Wichtig ist es, in diesem Zusammenhang auch zu untersuchen, wie sich die eingesetzten Netzwerkkomponenten im Fall von extremer Überlast verhalten, um Angriffen während solcher Situationen vorzubeugen.







21. Der IP – Fragment – Angriff



Die Fragmentierung von IP – Datenpaketen dient gewöhnlich dazu, Netzwerkabschnitte, die lediglich eine bestimmte maximale Paketlänge unterstützen, zu überwinden. So liegt die maximale Nutzlast, die ein Ethernet – Paket übertragen kann, bei 1500 Bytes, während die maximale IP – Paketgröße 65535 Bytes beträgt. Die betroffenen Datenpakete werden deshalb (falls erforderlich) vom jeweiligen Gateway in Fragmente unterteilt. Nach der Übertragung werden die einzelnen Fragmente nicht sofort wieder reassembiert, , sondern zunächst an ihr endgültiges Ziel vermittelt. Erst dort erfolgt dann die Zusammensetzung zum ursprünglichem IP – Paket.

Jedes Paketfragment enthält im IP – Header eine Identifikationsnummer, eine Fragmentierungsflagge sowie einen Fragment – Offset, wodurch Identität und Reihenfolge der Fragmente eindeutig definiert sind. Für auf Paketfilterung basierende Firewall – Systeme, die Vermittlungsentscheidungen auf Basis von TCP – Portnummern treffen, stellen fragmentierte Pakete daher eine mögliche Gefährlichkeit dar, weil lediglich im ersten Fragment die TCP – Portnummer enthalten ist und Fragmente ohne TCP – Port nicht ausgefiltert werden können. Ist das erste IP – Paket allerdings so kurz, dass die TCP – Portnummer erst im zweiten Paket erscheint, haben Paketfilter große Probleme.

Paketfilter kontrollieren außer den Portnummer die TCP – Flaggen. So werden häufig ankommende Verbindungen (SYN – Flagge gesetzt) nur von bestimmten IP – Adressen erlaubt. Mit zwei sich überlappenden Fragmenten eines SYN – Paketes (negativer Offset) passieren die IP – Pakete das Firewall – System. Mit IP – Fragmenten kann außerdem eine Unzahl von Denial of Service Attacken ausgelöst werden. einer dieser Angriffe ist z. B. der „Ping of Death“. Viele andere Varianten von unregelmäßigen Fragmenten sind denkbar, die beim Zusammenbau zu Problemen führen können (je nach Implementierung des IP – Stacks). Anschließend werden einige Beispiele für diese große Klasse von Angriffen gezeigt, deren Vertreter so klangvolle Namen wie teardrop, newtear, bonk oder boink haben. Diese Angriffe können nur durch eine sorgfältige Programmierung des IP – Stacks bekämpft werden. die Kontrolle von Fragmenten vor dem Zusammenbau sollte eine höhere Priorität haben als die Schnelligkeit der Verarbeitung.









22. IP – Bombing





Eine wirkungsvolle Sabotagetechnik, die in der Regel der Angriffsvorbereitung dient, ist die Bombardierung fremder Rechner mit IP – Pakete nach dem Motto : Die größere Bandbreite gewinnt. Dazu muss das Opfer von einer möglichst großen Zahl von Angreifern attackiert werden. zu diesem Zweck wurde eine Reihe von Angriffstools programmiert(Stacheldraht, Trin00, etc.), die alle nach dem gleichen Prinzip arbeiten. Zunächst muss im Internet nach Rechnern Ausschau gehalten werden, auf denen (unter Ausnutzung von Sicherheitslöchern) kleine Programme installiert werden können, die sog. Agenten. Das sind in der Regel Rechner von Universitäten oder anderen Organisationen mit ungenügend abgesicherten Netzwerken. Diese Agenten warten an bestimmten TCP bzw. UDP – Ports auf das Signal zum Angriff. Über bestimmte Nachrichten werden sie vom Angreifer gleichzeitig aktiviert und senden Netzwerkpakete zu Opfer. Da diese Angriffe verteilt ausgeführt werden, bezeichnet man sie auch als „distributed Denial of Service“ Angriffe (DDoS). Schutz bieten nur Filterprogramme, die nach wartenden Agenten suchen und diese deaktivieren.







23. SYN – Flooding



Diese Angriffe basieren auf einer Implementationsschwäche des TCP/IP – Protokolls. Daten einer halb geöffneten TCP – Verbindung werden dabei über einen bestimmten Zeitraum im Speicher gehalten, um eventuell verspätet eintreffende Pakete noch korrekt zuordnen zu können. Werden nun in rascher Folge eine große Anzahl von Verbindungs – Anforderungen an ein System gesendet, ohne die jeweiligen TCP – Handshakesequenz zu beenden, so kann das betreffende Computersystem rasch zum Absturz gebracht werden. moderne Implementierungen von IP – Stacks setzten die Timeout – Zeit bis zur Freigabe des Speichers herunter bzw. legen ab einem Schwellwert nur einen kurzen Hash zur Identifikation der Verbindung ab. Die komplette Datenstruktur wird dann erst nach Empfang des ersten Datenpaketes aufgebaut.







24. Der TCP – Sequenznummern – Angriff



Das ist einer der gefährlichst und wirksamsten Methoden, um auf Paketfiltertechnik basierende Firewallsysteme zu überwinden. Unter Ausnutzung dieser bereits 1985 erkannten Sicherheitslücke können ALLE Sicherheitssysteme überwunden werden, deren Zugangsmanagement auf der Auswertung von IP – Sendeadressen beruht, überwunden werden. Der Ansatzpunkt dieses Angriffs liegt in der aus drei Schritten bestehenden Handshake – Sequenz während eines TCP – Verbindungsaufbaus. Vorraussetzung ist, dass, wie beschrieben, mit Hilfe von IP Adress Spoofing gefälschte IP – Pakete von außen in das interne Datennetz gesendet werden können.

Eine TCP – Handshake – Sequenz arbeitet im Detail folgendermaßen: Soll vom Client A eine Verbindung zum Remote – Shell – Server B aufgebaut werden, so wird dies mit dem Datenpaket


A > B: SYN, A_SNa


eingeleitet, in dem von A das Synchronisationsbit SYN gesetzt wird und B die Anfangssequenznummer (Initial Sequenz Number ISN) der aufzubauenden TCP – Verbindung A_Sny mitgeteilt wird.

Server B antwortet darauf mit



B > A: SYN, A_SNb



Dabei wird die Anfangssequenznummer A_SNb an den Client A übermittelt und gleichzeitig dessen Sequenznummer A_SNa bestätigt. A beendet mit der Bestätigung



A > B: ACK (A_SNb)



die Handshake – Sequenz. Die ab jetzt während der Verbindung anfallenden neuen Sequenznummer bzw. Bestätigungen errechnen sich aus den beiden Anfangssequenznummern und den bisher übertragenen Daten, so dass ein Angreifer, der die Anfangssequenznummern und die Daten kennt, die restlichen Sequenznummern leicht berechnen kann. Die Wahl der Anfangssequenznummern erfolgt dabei dem äußerem Anschein nach zufällig, wird tatsächlich aufgrund eines einfachen Algorithmus ermittelt. Im RCF 693 wird festgelegt, dass ein 32 – Bit – Zähler an der niederwertigsten Stelle alle

4 µs um den Wert 1 erhöht werden muss. In den Berkeley – TCP – Implementationen erfolgt die Erhöhung jedoch lediglich jede Sekunde, und zwar um den Wer 128 innerhalb einer Verbindung und um den Wert 64 für jede neue Verbindung. Damit ist es möglich, mit einer hohen Wahrscheinlichkeit vorauszusagen, welche Sequenznummer ein System für seinen nächsten Verbindungsaufbau benutzen wird. Dies wird beim Sequenznummern – Angriff ausgenutzt. Vom Angreifer X wird zunächst unter Benutzung einer beliebigen Sendeadresse eine zulässige Vorbereitungs – Verbindung auf ein harmloses TCP – Port (25,79, etc.) des Zielsystems aufgebaut:



X>Z: SYN , A_SNx.



Das Zielsystem antwortet mit



Z > X: SYN, A_SNz , ACK(A_SNx).



Nun täuscht der Angreifer die Identität eines internen Systems A vor (IP – Spoofing; Sendeadresse A) und sendet an ein “kritisches” TCP – Port wie dem Login – Server (Port 513):



A > Z: SYN, A_SNx.



Worauf Z mit



Z > A: SYN, A_SNz+, ACK(A_SNx).



antwortet. Obwohl diese letzte Nachricht an die interne Station A gerichtet ist und für den externen Angreifer nicht sichtbar ist, kann dieser die Anfangssequenznummer A_SNz+ des Zielsystems, ausgehend vom Wert A_SNz der Vorbereitungsverbindung, errechnen und wieder an das interne System A simulierend mit



A > Z: ACK(A_SNz+)



Antworten. Das Zielsystem geht nun von einer gesicherten Verbindung zu der internen Station A aus. Der Angreifer kann weiter als Station A auftreten und auf dem Zielsystem beliebige Operationen durchführen. Einzige Einschränkung ist, dass die jeweiligen Antworten des Zielsystems für den Angreifer nicht sichtbar sind, da diese ja an den internen Client A gesendet werden.

Nun ein kurzer Auszug aus demTCP Sequence Number Guessing Angriff von Kevin Mitnick auf die Workstation von Tsutomu Shimomura.

Selbst wenn der Angreifer die Anfangssequenznummer des Opfers nur ungefähr voraussagen kann, ist der Angriff immer noch vielversprechend. Der Angreifer sendet nach seinem TCP –SYN – Paket mit der gespooften Adresse immer eine ganze Reihe von IP – Paketen mit gleichem Inhalt, aber unterschiedlicher Sequenznummer ab, so dass alle potentiellen Nummern angedeckt werden. Alle Pakete bis auf das richtige werden vom Opfer verworfen.

Als Maßnahme gegen diese Angriffe bieten sich die folgenden Strategien an.

- Konfiguration, des Paketfilters (Input – Filterung).

- Vermeidung der Authentifikation eines Benutzers auf der Basis von IP – Adressen. Firewallsysteme, die darauf aufbauen, sind als problematisch anzusehen.

- Benutzerauthentifikation mit Hilfe von Crypto – Systemen. Im Fall eines Verbindungsaufbaus erhält der Client (sofern er dazu autorisiert ist) in verschlüsselter Form einen Session – Key, mit dem eine einmalige Verbindung aufgebaut werden kann.

- Implementierung eines echten Zufallsgenerators zur Berechnung der Anfangssequenznummern





Mitnick versucht zunächst mit den Befehlen finger, showmount und rpcinfo die Beschaffenheit des Systems auszukundschaften:



14:09:32 toad.com# finger –1 @target

14:10:21 toad.com# finger –1 @server

14:10:50 toad.com# finger –1 root@server

14:11:07 toad.com# finger –1 @x-terminal

14:11:38 toad.com# showmount –e x-terminal

14:12:05 toad.com# finger –1 root@x-terminal



Es folgt ein SYN – Flooding – Angriff auf Port 513 (Login – Port) von 130.92.6.97 zur Vorbereitung des nachfolgenden Angriffs. Damit wird der Login – Server ausgeschaltet, damit er bis auf weiteres keine neuen Verbindungsaufbauversuche akzeptieren kann:



14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096

14:18:22.566069 130.92.6.97.601 > server.login: S 1382726961:1382726961(0) win 4096

14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0) win 4096

14:18:22.830111 130.92.6.97.603 > server.login: S 1382726963:1382726963(0) win 4096

…………

…………

14:18:25.483127 130.92.6.97.627 > server.login: S 1382726987:1382726987(0) win 4096

14:18:25.599582 130.92.6.97.628 > server.login: S 1382726988:1382726988(0) win 4096

14:18:25.653131 130.92.6.97.629 > server.login: S 1382726989:1382726989(0) win 4096



Nun sendet Mitnick (apollo.it.luc.edu) eine Testreihe von Verbindungsaufbauversuchen an x-terminal.shell um das Verhalten des Sequenznummerngenerators zu untersuchen. Die Sequenznummern (fettgedruckt) erhöhen sich bei jedem Verbindungsaufbauversuch um 128000:



14:18:34.452830 apollo.it.luc.edu.984 > x-terminal.shell: R 1382727007:1382727007(0) win 0

14:18:34.714996 apollo.it.luc.edu.983 > x-terminal.shell: R 1382727007:1382727007(0) win 4096

14:18:34.885071 x-terminal.shell > apollo.it.luc.edu.983: S 2024000000:2024000000(0) ack 1382727008 win 4096

14:18:34.962030 apollo.it.luc.edu.983 > x-terminal.shell: R 1382727008:1382727008(0) win 0

14:18:35.225869 apollo.it.luc.edu.982 > x-terminal.shell: S 1382727008:1382727008(0) win 4096

14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096

14:18:35.427150 apollo.it.luc.edu.982 > x-terminal.shell: R 1382727009:1382727009(0) win 0

14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S 1382727009:1382727009(0) win 4096

14:18:35.935681 x-terminal.shell > apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096



Nun täuscht Mitnick Pakete des zuvor ausgeschalteten Login – Servers (Port 513) vor uns sendet eine Verbindungsaufforderung an x – terminal:



14:18:36.245045 server.login > x-terminal.shell: S 1382727010:1382727010(0) win 4096



Aufgrund der zuvor getätigten Beobachtung des Sequenznummerngenerators kann er die Sequenznummer (fettgedruckt) des SYN – ACKs von server.login bestätigen, ohne dieses Paket empfangen zu haben. Sie ist mit 1014384001 wieder genau 128000 höher als die SYN – ACK – Sequenznummer der letzten Testverbindung:



14:18:36.744422 server.login > x-terminal.shell: . ack 2024384001 win 4096



Damit hat Mitnick eine unidirektionale Verbindung mit x-terminal.shell aufgebaut, die von server.login zu kommen scheint.













25. Abbruch und Übernahme von TCP – Verbindungen



Der vollständig TCP – Sequenznummernangriff ist schwierig durchzuführen. Ein einfacheres Angriffsszenario unter Ausnutzung der Sequenznummer ist der unfreiwillige Abbruch von TCP – Verbindungen. Hier wird (mitten in eine aktive TCP – Verbindung) zu einem der beiden Partner ein Paket mit der passenden Sequenznummer und gesetzter RST- oder FIN - Flagge gesendet. Die Verbindung wird beendet, die ankommenden Pakete des ahnungslosen zweiten Partners werden ignoriert (Denial of Service). Bei diesem Angriff müssen die Pakete am Rechner des Hackers vorbeikommen, wodurch diese Angriffe vorzugsweise aus dem Intranet oder von großen Providern aus vorgenommen werden können.

Eine Variante des Verbindungsabbruch ist die komplette Übernahme der Verbindung durch den „Hacker“ (Hijacking). Hier werden keine RST- oder FIN – Pakete, sondern gewöhnliche Datenpakete mit der richtigen Sequenznummer gesendet. Kommen die Pakete des „Hackers“ früher am Zielrechner an als die des regulären Partners, werden die als gültig akzeptiert und die regulären Pakete verworden. Der Angreifer befindet sich mitten in der gerade aktiven TCP – Session. Handelt es sich dabei um eine ASCII – Übertragung wie bei Telnet oder Rlogin, können Befehle mit den Zugriffsrechten des gerade ausgebooteten Benutzers abgesetzt werden. Gute Programme zu Hijacking versuchen, nach Beendigung des Angriffs die beiden ursprünglichen Partner durch Absenden von Paketen mit passenden Sequenznummern wieder zu synchronisieren. Abgesehen von einem kurzzeitigen Stillstand bemerkt das Opfer nichts von der kurzfristigen Übernahme der Session durch den „Hacker“. Hijacking verliert seinen Wert bei verschlüsselten Verbindungen, da hier keine sinnvolle Übernahme der Session möglich ist.





26. UDP – Spoofing



Kommunikationspartner im Rahmen von UDP – Verbindungen sind grundsätzlich immer als nicht vertrauenswürdig einzustufen, da sich dieses Protokoll außerordentlich leicht simulieren lässt. Da weder Sequenznummer noch Bestätigungspakete vorgesehen sind, sollten darauf aufsetzende Applikationen die Netzwerkadressen der jeweiligen Hosts unbedingt einem Authentifikationsprozess unterziehen. Potentielle Angreifer sind a