Sicherheit von Internet- und Intranetdiensten


Diplomarbeit, 2001

137 Seiten, Note: Gut


Leseprobe


Inhaltsverzeichnis

1 Einleitung

2 Grundbegriffe
2.1 Authentizit¨at
2.2 Integrit¨at
2.3 Vertraulichkeit
2.4 Beweisbarkeit
2.5 Anonymit¨at
2.6 Verfu¨gbarkeit
2.7 Symmetrische Verschlu¨sselung
2.8 Asymmetrische Verschlu¨sselung
2.9 Hashfunktionen
2.10 Zufallszahlen
2.11 Covert Channels
2.12 Auditing
2.13 Digitale Signaturen

3 OSI Referenz Modell
3.1 Physical Layer
3.2 Data Link Layer
3.3 Network Layer
3.4 Transport Layer
3.5 Session Layer
3.6 Presentation Layer
3.7 Application Layer
3.8 TCP/IP Reference Model
3.8.1 Host-to-Network Layer
3.8.2 Internet Layer
3.8.3 Transport Layer
3.8.4 Application Layer

4 Allgemeine Sicherheitsprobleme
4.1 Denial-of-Service Attacke
4.2 Man-in-the-middle Attacke
4.3 Sniffing
4.4 Spoofing
4.5 Trojanische Pferde
4.6 Viren und Wu¨rmer

5 Bedeutende Angriffe in der Vergangenheit
5.1 Internetwurm
5.2 Melissa-Virus
5.3 Distributed Denial-of-Service-Attacken
5.4 Echelon

6 Netzwerkprotokolle und deren Sicherheitsbedrohungen
6.1 IP Protokoll
6.2 ARP
6.3 PPP
6.4 ICMP
6.4.1 Authentizit¨atsprobleme
6.4.2 Verfu¨gbarkeitsprobleme
6.5 TCP
6.5.1 Authentifizierungsprobleme
6.5.2 Integrit¨ats- und Vertraulichkeitsprobleme
6.5.3 Verfu¨gbarkeitsprobleme
6.5.4 Beweisbarkeit
6.5.5 Anonymit¨at
6.6 UDP
6.7 DNS
6.8 Telnet
6.9 rlogin
6.10 FTP
6.10.1 Authentizit¨ats- und Integrit¨atsprobleme
6.10.2 Verfu¨gbarkeitsprobleme
6.10.3 Weitere Sicherheitsprobleme
6.11 SMTP
6.11.1 Authentizit¨atsprobleme
6.11.2 Integrit¨atsprobleme
6.11.3 Vertraulichkeitsprobleme
6.11.4 Weitere Sicherheitsprobleme
6.12 HTTP
6.12.1 Authentifizierungsprobleme
6.12.2 Integrit¨ats- und Vertraulichkeitsprobleme
6.12.3 Anonymit¨atsprobleme
6.13 NFS
6.13.1 Authentizit¨atsprobleme
6.13.2 Integrit¨ats- und Vertraulichkeitsprobleme

7 Sicherheitsmaßnahmen
7.1 Firewalls
7.1.1 Paketfilter
7.1.2 Application Gateways
7.1.3 Bastion Host
7.1.4 DMZ oder Perimeternetz
7.1.5 Personal Firewalls
7.2 VPN
7.3 Intrusion Detection Systeme

8 Verbesserte Protokolle
8.1 PPTP
8.1.1 Authentifizierung in Microsofts PPTP
8.1.2 Vertraulichkeit in Microsofts PPTP
8.2 IPv6 und IPSec
8.2.1 Encapsulating security payload
8.2.2 Authentication Header (AH)
8.2.3 Internet key exchange
8.3 SSL
8.4 SSH
8.5 S/MIME
8.6 Kerberos
8.7 Anonyme Kommunikation
8.7.1 Anonyme Proxyserver
8.7.2 Crowds
8.7.3 Onion Routing

9 Schlußwort

AAbku¨rzungen

Literaturverzeichnis

Abbildungsverzeichnis

2.1 Beispiel fu¨r asymmetrische Verschlu¨sselung

3.1 OSI-Modell

3.2 U¨ bertragung mit falscher Reihenfolge

3.3 TCP/IP Reference Model

5.1 Distributed Denial-of-Service-Attacken (nach [CER99])

6.1 ARP-Protokoll

6.2 ARP-Angriff

6.3 PPP-Paket

6.4 TCP-Header

6.5 UDP-Header

6.6 DNS-Hierarchie

6.7 DNS-Anfrage

6.8 DNS-Angriff

6.9 FTP-Angriff

6.10 FTP-DoS Angriff

6.11 SMTP-Aufbau

6.12 Cookies

6.13 NFS-Architektur

7.1 Firewall

7.2 IP Spoofing

7.3 Bastion Host

7.4 Perimeternetz

7.5 Virtual Private Network

8.1 Unterschied IP-Paket mit und ohne ESP

8.2 ESP Aufbau

8.3 IKE: Main Mode

8.4 IKE: Aggressive Mode

8.5 IKE: Quick Mode

8.6 SSL Architektur

8.7 SSL Protokoll

8.8 SSH Version 1

8.9 hybride Verschlu¨sselung

8.10 Kerberos allgemein

8.11 Kerberos 4

8.12 Kerberos 5

8.13 Anonymer Proxyserver

8.14 Crowds

8.15 Onion Routing

Tabellenverzeichnis

5.1 angebliche IXPs der NSA

6.1 ICMP Nachrichten Typen

6.2 g¨angige TCP Ports

6.3 TCP Flags

6.4 FTP Kommandos

6.5 FTP-Antworten

6.6 SMTP Kommandos

6.7 HTTP-Antworten

8.1 Ports fu¨r SSL Protokolle

8.2 S/MIME-Content Typen

8.3 base64 Alphabet

10 TABELLENVERZEICHNIS

Kapitel 1 Einleitung

Netzwerke gewinnen immer mehr an Bedeutung. W¨ahrend noch vor einigen Jahren die mei-sten Heimcomputer nicht vernetzt waren, hat sich das mit der Verbreitung des Internets rasch ge¨andert, aus ehemaligen Einzelplatzrechnern wurden Teilnehmer in einem großen Netzwerk.Auch viele Firmen haben ihre bestehenden Systeme in das Internet eingebunden.

Dadurch ist aber auch das Sicherheitsbedu¨rfnis gestiegen. Heute ist es fu¨r einen Angreifer keinProblem mehr zum Beispiel von Europa aus eine Firma in Australien erfolgreich zu attackieren und dieser einen großen wirtschaftlichen Schaden zuzufu¨gen. Aber auch im privaten Bereichgewinnt die Systemsicherheit immer mehr an Bedeutung, da Personen ihre Privatsph¨are schu¨tzenwollen.

In dieser Diplomarbeit m¨ochte ich verschiedene Aspekte von Internet- und Intranetsicherheit be-handeln. In Kapitel 2 erkl¨are ich die wichtigsten Grundbegriffe im Zusammenhang mit System-sicherheit, damit auch Leser, die mit diesem Thema nicht so vertraut sind, die nachfolgenden Kapitel leicht verstehen k¨onnen. Kapitel 3 beschreibt kurz das OSI- und das TCP-Modell und denallgemeinen Aufbau von Netzwerken. Anschließend werden in Kapitel 4 allgemeine Sicherheits- probleme angefu¨hrt, auf die in der Arbeit ¨ofter eingegangen wird. Um dem Leser die Relevanzvon Sicheheitsbedrohungen n¨aher zu bringen, habe ich in Kapitel 5 einige bedeutende Angriffebeschrieben.

Auf Sicherheitsprobleme in bestehenden Netzwerkprotokollen gehe ich in Kapitel 6 n¨aher ein.Dabei beschreibe ich zuerst einige Netzwerkprotokolle und gehe dann anschließend jeweils auf deren Sicherheitsprobleme ein. Die Protokolle wurden von mir so ausgew¨ahlt, daß sie einerseitssehr bekannt sind und h¨aufig eingesetzt werden, andererseits aber m¨oglichst viele Sicherheits-probleme aufwerfen. Einige Sicherheitsmaßnahmen, die getroffen werden k¨onnen um Systeme zusichern, stelle ich in Kapitel 7 vor. In Kapitel 8 zeige ich exemplarisch verbesserte Protokolle, die mehr Sicherheit bieten sollen. Einige von diesen weisen aber auch Schw¨achen auf, die ich dannjeweils beschreibe. In Kapitel 9 bringe ich eine kurze Zusammenfassung, die die wesentlichen

Aspekte von Sicherheit im Internet und Intranet noch einmal betont.

Wesentlich ist jedoch, daß sich der Leser immer vor Augen h¨alt, daß ”Sicherheit wie eine Ket- te ist, die so stark ist wie ihr schw¨achstes Glied. Sicherheit ist ein Prozeß und kein Produkt”(vgl. [Sch00b], Seite xii). Damit ist gemeint, daß die Sicherheit eines Systems immer von meh- reren Faktoren abh¨angt, wobei sich die Faktoren zum Beispiel durch neue Erkenntnisse oder Anforderungen mit der Zeit ¨andern k¨onnen.

Kapitel 2 Grundbegriffe

In diesem Kapitel m¨ochte ich einige Grundbegriffe in Zusammenhang mit Systemsicherheit aufeinfache Weise erkl¨aren. Die Liste ist nicht vollst¨andig, soll aber dem Leser rasch einen U¨ berblickliefern. Als weiterfu¨hrende Literatur kann ich [Sch00b], [MOV97] und [RS92] empfehlen.

2.1 Authentizit¨at

Die Authentizit¨at garantiert dem Empf¨anger einer Nachricht, daß die Daten tats¨achlich vondemjenigen sind, der vorgibt der Sender zu sein. Der Empf¨anger kann sich also darauf verlassen,daß niemand anderer diese Nachricht geschickt hat.

2.2 Integrit¨at

Die Integrit¨at garantiert dem Empf¨anger einer Nachricht, daß die Daten nicht ver¨andert wurden.Zusammen mit der Authentizit¨at gew¨ahrleistet die Integrit¨at, daß die Nachricht unver¨andertvom Sender zum Empf¨anger gelangt ist und daß diese auch tats¨achlich vom Sender stammt.

2.3 Vertraulichkeit

Weder Authentizit¨at noch Integrit¨at garantieren allerdings, daß ein Angreifer die Nachricht nichtm¨oglicherweise w¨ahrend der U¨ bertragung gelesen hat. Erst die Vertraulichkeit bedeutet, daß dieNachricht tats¨achlich nur von den dafu¨r autorisierten Personen gelesen werden kann.

2.4 Beweisbarkeit

Die Beweisbarkeit erm¨oglicht es auch gegenu¨ber Dritten zu zeigen, daß eine Nachricht von ei-nem bestimmten Sender stammt. Auf den ersten Blick mag dieser Punkt etwas verwunderlich erscheinen, da bereits die Authentizit¨at zeigt, daß eine Nachricht tats¨achlich von einem bestimm-ten Sender ist. Das ist aber, wie bereits in Abschnitt 2.1 beschrieben nur insofern richtig, als der Empf¨anger sicher sein kann, daß die Nachricht tats¨achlich von einem bestimmten Senderstammt. Der Empf¨anger kann aber einem Dritten gegenu¨ber nicht beweisen, daß die Nachrichtvon diesem Sender verschickt wurde.

Das kann man mit einem einfachen Beispiel zeigen: Alice und Bob m¨ochten einander Briefeschicken, bei denen die Authentizit¨at gew¨ahrleistet ist. Sie vereinbaren ein geheimes Codewort.Jede Nachricht, egal von wem sie stammt, muß dieses Codewort enthalten, denn dann wissen die beiden, daß die Nachricht vom anderen gesendet wurde. Zus¨atzlich verschlu¨sseln sie dieNachricht, sodaß ein Angreifer, der die Nachricht abf¨angt, das Codewort nicht erf¨ahrt.

Bekommt nun zum Beispiel Bob eine Nachricht, die das Codewort enth¨alt, kann er sicher sein,daß diese von Alice ist, da nur sie und er das Codewort kennen. Er kann aber einem Dritten gegenu¨ber nicht beweisen, daß die Nachricht von Alice ist, selbst wenn er dem Dritten dasCodewort verr¨at. Er h¨atte die Nachricht n¨amlich auch selber schreiben k¨onnen, da auch er dasCodewort kennt.

Diese Form der Beweisbarkeit kann aber sehr entscheidend sein, wenn eine Nachricht einen rechtsverbindlichen Charakter haben soll. Ob die Nachricht dann tats¨achlich rechtsverbindlichist, h¨angt von mehreren rechtlichen Faktoren ab (vgl. [Bre99] und [MSPS99]).

Ein weiterer Aspekt der Beweisbarkeit ist, daß ein Sender beweisen k¨onnen muß eine Nachrichtan den Empf¨anger geschickt zu haben. Diese Form der Beweisbarkeit wird bei der herk¨ommli-chen Briefpost meistens mittels Einschreiben realisiert, wobei bei Einschreiben der Inhalt einer Sendung nicht best¨atigt wird (es wird nun best¨atigt, daß eine Sendung abgeschickt wurde).

2.5 Anonymit¨at

In der heutigen Zeit nimmt der Einsatz von Computern und Netzwerken st¨andig zu. Dadurchwird es immer einfacher, genaue Profile von Menschen zu erstellen und viele sind der Ansicht, daß wir der von George Orwell beschriebenen Welt in seinem Werk ”1984” nicht mehr so fern sind.

Auf der anderen Seite ist es natu¨rlich manchmal wichtig zu wissen, mit wem man kommuni-ziert. Beispielsweise haben die Betreiber von einigen Sites, die anonyme Proxies anbieten (siehe Abschnitt 8.7) bemerkt, daß u¨ber ihr Service h¨aufig Zahlungen mit gestohlenen Kreditkarten

geschickt wurden (vgl. [RR99]). Auch hat der Staat im Bereich der Verfolgung von Straftaten sicher ein berechtigtes Interesse herauszufinden, wer mit wem kommuniziert hat.

Auch die Vertraulichkeit erlaubt etwas Anonymit¨at, da die Nachricht nur von den dafu¨r be-stimmten Personen gelesen werden kann. Allerdings erkennt ein Angreifer trotzdem, wer mit wem kommuniziert, da er den Weg der Nachricht verfolgen kann. Das Wissen daru¨ber, daß zweiPersonen miteinander kommunzieren, reicht aber oft schon fu¨r einen Angreifer aus, um fu¨r ihnwichtige Schlu¨sse ziehen zu k¨onnen.

2.6 Verfu¨gbarkeit

Da wir uns heute immer mehr auf Computer und Netzwerke verlassen, spielt die Verfu¨gbarkeitdieser Systeme eine sehr große Rolle. Es ist heute nicht mehr akzeptabel, daß Rechner in Atom- kraftwerken, Flugzeugen, Banken, Rettungsleitstellen, etc. ausfallen, da davon Menschenleben oder die Wirtschaft abh¨angen.

Um die Verfu¨gbarkeit zu gew¨ahrleisten muß man immer das gesamte System betrachten. Esmacht keinen Sinn, wenn s¨amtliche Rechner ausfallssicher sind, aber beispielsweise nicht an eineNotstromversorgung angeschlossen sind. Deshalb gehe ich in meiner Arbeit nur fallweise auf dieses Thema ein.

2.7 Symmetrische Verschlu¨sselung

Die symmetrische Verschlu¨sselung war lange Zeit die einzige Form der Verschlu¨sselung. Bei dieser Form der Verschlu¨sselung einigen sich Sender und Empf¨anger auf einen gemeinsamen, geheimen Schlu¨ssel und einen gemeinsamen Verschlu¨sselungsalgorithmus.

Ein Beispiel fu¨r einen ganz simplen Verschlu¨sselungsalgorithmus ist die sogenannte C¨asar-Chiffre(benannt nach C¨asar, weil dieser davon Gebrauch machte). Es handelt sich dabei um eine ein-fache Verschiebechiffre.

Bei der C¨asar-Chiffre wurden die Buchstaben einfach um drei Zeichen verschoben, aus einem Awurde ein D, aus einem B ein E, aus einem Z ein C, usw.

Allgemeiner formuliert kann man den Verschlu¨sselungsalgorithmus so beschreiben: Jedem Buch-staben im Alphabet wird eine Zahl zugeordnet, beginnend bei A = 0 bis Z = 25. C = (E + k) mod 26, wobei C fu¨r den verschlu¨sselten Buchstaben steht, E fu¨r den Entschlu¨ssel-ten und k fu¨r den Schlu¨ssel. Fu¨r den Schlu¨ssel gilt allerdings, daß k < 26 sein muß, da bei k = 26 oder einem Vielfachen von 26 keine Verschlu¨sselung stattfinden wu¨rde und k > 26 keinenSinn macht, da sich die Werte aufgrund der modulo-Division ohnehin nur zwischen 0 und 25 bewegen.

Dieser Algorithmus ist natu¨rlich sehr leicht zu brechen. Einerseits ist der Schlu¨sselraum (Anzahlder m¨oglichen Schlu¨ssel) sehr klein, andererseits kann man mit Hilfe von H¨aufigkeitstabellen dieNachrichten rasch brechen.

H¨aufigkeitstabellen geben an, wie oft ein Buchstabe in einer bestimmten Sprache durchschnittlichvorkommt. Da bei einem Substitutionsverfahren jedes Zeichen immer genau durch ein anderes ersetzt wird, bleibt die Verteilung der Zeichen auch nach der Verschlu¨sselung enthalten. Da inder deutschen Sprache zum Beispiel der Buchstabe E der am h¨aufigsten verwendete ist, wird mitziemlich hoher Sicherheit auch im verschlu¨sselten Text das am h¨aufigsten verwendete Zeichenein E repr¨asentieren.

In der Zwischenzeit sind die Verschlu¨sselungsalgorithmen wesentlich sicherer geworden. BekannteBeispiele fu¨r symmetrische Verschlu¨sselungsalgorithmen sind heute IDEA, Rijndael und 3DES(Triple DES).

2.8 Asymmetrische Verschlu¨sselung

Das Hauptproblem der symmetrischen Verschlu¨sselungsalgorithmen besteht darin, daß sich Sen-der und Empf¨anger auf einen geheimen Schlu¨ssel einigen mu¨ssen. Um sich auf diesen Schlu¨sselzu einigen, ben¨otigen sie einen sicheren Kanal. In der Praxis heißt das, daß sie sich treffenmu¨ssen, um einen Schlu¨ssel zu vereinbaren. Ein weiteres Problem in diesem Zusammenhang ist,daß wenn jemand mit vielen Personen kommunizieren will, er mit jeder Person einen eigenen Schlu¨ssel vereinbaren muß. Diese Personen wiederum mu¨ssen ebenfalls mit s¨amtlichen PersonenSchlu¨ssel vereinbaren, mit denen sie kommunizieren wollen. Wollen also N Personen miteinander kommunizieren, mu¨ssen ingesamt N · (N − 1) / 2 Schlu¨ssel vereinbart werden.

Das Ziel der asymmetrischen Verschlu¨sselung ist, daß zwei oder mehrere Partner miteinander

verschlu¨sselt kommunizieren k¨onnen, ohne vorher einen gemeinsamen Schlu¨ssel vereinbart zuhaben.

In [Sin00] wird ein Verfahren auf einfache Weise beschrieben, damit der Leser asymmetrische Verschlu¨sselung leichter versteht. Alice m¨ochte Bob eine Nachricht schicken, die nur Bob lesenk¨onnen soll (siehe Abbildung 2.1). Dazu steckt sie die Nachricht in eine Kiste und versperrt diesemit einem Vorh¨angeschloß. Anschließend schickt sie die versperrte Kiste an Bob. Bob kann die Kiste nicht ¨offnen, da er den Schlu¨ssel fu¨r das Vorh¨angeschloß nicht besitzt. Er h¨angt selber ein eigenes Vorhangschloß dazu und schickt die nun mit zwei Schl¨ossern versperrte Kiste an Alicezuru¨ck. Alice sperrt ihr eigenes Schloß auf und schickt die Kiste abermals an Bob zuru¨ck. Dieserkann nun sein eigenes Schloß ¨offnen und die Nachricht in der Kiste lesen. Somit ist w¨ahrend des Tranports die Kiste immer mit mindestens einem Schloß gesichert.

Damit wird das Problem gel¨ost, daß sich Alice und Bob nicht auf einen gemeinsamen Schlu¨ssel

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2.1: Beispiel fu¨r asymmetrische Verschlu¨sselung

einigen mu¨ssen. Trotzdem gibt es bei dem Verfahren ein Problem. Alice kann nicht sicher sein,daß tats¨achlich Bob und niemand anders die Nachricht empf¨angt.

Nehmen wir an Eve m¨ochte die Nachricht an Bob abfangen und schafft es die Kiste vor Bob zubekommen. Sie h¨angt ihr eigenes Vorhangschloß auf die Kiste und schickt diese zuru¨ck an Alice.Alice glaubt, daß Bob sein Schloß auf die Kiste geh¨angt hat, ¨offnet ihr eigenes und schickt dieKiste zuru¨ck. Abermals f¨angt Eve die Kiste ab, ¨offnet ihr eigenes Schloß und kann die Nachricht,die eigentlich fu¨r Bob bestimmt war, lesen. Alice hatte keine M¨oglichkeit festzustellen, wessenSchloß dazugeh¨angt wurde, weil die Authentizit¨at von Bobs Schloß nicht gew¨ahrleistet war.Genauso kann auch Bob nicht sicher sein, daß eine Nachricht tats¨achlich von Alice stammt. Siek¨onnte genauso gut von Eve sein.

Die Mathematik hinter asymmetrischen Verschlu¨sselungsalgorithmen ist eher kompliziert. Derinteressierte Leser wird auf [MOV97] verwiesen.

Bekannte Beispiele fu¨r asymmetrische Verschlu¨sselungsalgorithmen sind RSA (vgl. [RSA78])und DH (vgl. [DH76]). Dabei verfu¨gt jeder der Kommunikationspartner u¨ber einen ¨offentlichenund einen privaten Schlu¨ssel. Der ¨offentliche Schlu¨ssel kann jeder Person u¨bermittelt werden,die jemandem etwas verschlu¨sselt schicken m¨ochte. Entschlu¨sselt werden kann die Nachricht nurmit dem privaten Schlu¨ssel, der geheimhalten gehalten werden muß.

Gegenu¨ber symmetrischen Verfahren sind asymmetrische wesentlich langsamer. Deshalb setztman heute oft ein hybrides Verfahren, bestehend aus einem symmetrischen und einem asymme- trischen Algorithmus, ein. Dabei wird ein zuf¨alliger Schlu¨ssel k generiert, mit dem die Nachricht m symmetrisch verschlu¨sselt wird. Der Schlu¨ssel k wird dann anschließend mit dem ¨offentlichenSchlu¨ssel des Empf¨angers verschlu¨sselt.

Bei der Entschlu¨sselung muß der Empf¨anger zuerst mit seinem privaten Schlu¨ssel k entschlu¨sseln, damit er dann anschließend mit Hilfe von k die Nachricht m dechiffrieren kann.

2.9 Hashfunktionen

Hashfunktionen k¨onnen zu einer beliebig langen Nachricht einen Funktionswert bilden. Im Be-reich der Kryptographie ist es außerdem wichtig, daß man von dem abgebildeten Wert keine Ru¨ckschlu¨sse auf die urspru¨ngliche Nachricht ziehen kann, selbst wenn der Angreifer weiß, wel-cher Algorithmus eingesetzt wurde.

Interessant sind Hashfunktionen im Bereich der Integrit¨at. Man kann vor dem Versenden einerNachricht den Hashwert h 1dieser Nachricht berechnen. Anschließend schickt man h 1und die Nachricht dem Empf¨anger. Dieser kann den Hashwert h 2 fu¨r die empfangene Nachricht aus-rechnen. Sind h 1 und h 2 ident, dann wurde die Nachricht nicht ver¨andert und die Integrit¨at

ist gew¨ahrleistet (die Authentizit¨at jedoch nicht, da auch h 1 bei der U¨ bertragung manipuliert

werden k¨onnte).

2.10 Zufallszahlen

Zufallszahlen spielen eine sehr wichtige Rolle in der Kryptographie. Sehr viele Protokolle basie- ren letztendlich auf der Qualit¨at der Zufallszahlen. Nur wenn ein Schlu¨ssel tats¨achlich zuf¨alliggew¨ahlt wurde (mit einer entsprechenden L¨ange) kann er als sicher gelten.

Auf ersten Blick wirkt die Generierung von Zufallszahlen trivial. Das Problem ist aber, daß der Computer eine deterministische Maschine ist. Das heißt in der gleichen Situation wird er immer gleich reagieren. Verwendet man beispielsweise die Uhr eines Computers um Zufallszahlen zu generieren, wirken die Ergebnisse auf den ersten Blick tats¨achlich zuf¨allig. Wer allerdings weißwann die Zufallszahl generiert wurde, kann ganz leicht einen Schlu¨ssel herausfinden, der aufdieser Zufallszahl basiert.

Nehmen wir an ein Angreifer weiß, daß ein Schlu¨ssel ca. um 12:00 generiert wurde. Er brauchtdann eigentlich nur s¨amtliche Werte, die zwischen 11:50 und 12:10 durch den Zufallsgeneratorerzeugt werden k¨onnen, durchprobieren. Einer der Werte ist mit Sicherheit der Schlu¨ssel. Selbsteine große Schlu¨ssell¨ange zu w¨ahlen ist sinnlos, da in diesem Zeitfenster nur eine sehr begrenzteAnzahl an Werten generiert werden kann. Auch andere Verfahren, wie etwa die aktuelle Netzlast als Quelle fu¨r Zufallszahlen heranzuziehen, sind nicht besser.

In Hochsicherheitsbereichen werden oft physikalische Prozesse, die sehr zuf¨allig wirken, heran-gezogen, wie etwa das Rauschen von Funksendern. Im privaten Bereich werden oft Mausbe- wegungen oder die Abst¨ande zwischen Tastenanschl¨agen als Zufallswerte verwendet. Werden

viele Zufallswerte ben¨otigt, wird mit Hilfe dieser Zufallswerte eine sogenannte ”seed” erzeugt, die dann fu¨r die Generierung weiterer Zufallswerte herangezogen wird, die dann aber nur nochpseudo-zuf¨allig sind, da sie wieder nach einem fixen Algorithmus errechnet werden. So lange die ”seed” geheim bleibt funktioniert diese Methode recht gut (vgl. [Sch00b]).

2.11 Covert Channels

”Unter Covert Channel (versteckte Kan¨ale) versteht man einen Kommunikationskanal der einemProzeß erlaubt Informationen auf eine Art zu u¨bertragen, die die Security Policy (die Sicher-heitsregeln) verletzen.” ([RS92], Seite 409) Covert Channels sind ein großes Problem fu¨r dieVertraulichkeit. Je geschickter ein Angreifer sie versteckt, desto schwieriger wird es sie zu ver- hindern. Theoretisch kann jede Information weitere versteckte Informationen enthalten, wenn vorher entsprechende Vereinbarungen bezu¨glich der Codierung getroffen werden. Beispielsweisek¨onnen zwei Spione vereinbaren, daß wenn einer von ihnen ein blaues Taschentuch eingesteckthat, alles in Ordnung ist, wenn er hingegen ein rotes Taschentuch eingesteckt hat, ein Problem aufgetreten ist.

Auch bei Computern kann man ¨ahnliche Vereinbarungen treffen. Beispielsweise kann eineWorkload (Maß fu¨r die momentane Auslastung des Rechners) von mehr als zwei auf einemServer bedeuten, daß alles in Ordnung ist, eine Workload darunter, daß es ein Problem gegeben hat.

2.12 Auditing

”Unter Auditing versteht man das Aufzeichnen, Untersuchen und Reviewen von sicherheitsrele- vanten Aktivit¨aten in einem vertrauenswu¨rdigen System.” ([RS92], Seite 128)

Auditing ist ein sehr wichtiger Bestandteil jedes Sicherheitskonzepts. Ohne Auditing ist es prak- tisch unm¨oglich Angriffe zu erkennen und zuru¨ckzuverfolgen. Es ist jedoch erforderlich, die Log-files, die beim Auditing erzeugt werden, abzuspeichern. Da diese Logfiles aber einfache Dateien sind, k¨onnen sie von einem Angreifer leicht manipuliert werden, wodurch sie dann wertlos sind.Deshalb sollten Logfiles entweder auf Medien geschrieben werden, die nur einmal beschreibar sind oder es mu¨ssen andere Verfahren eingesetzt werden, wie zum Beispiel kryptographischeProtokolle. Ein solches Protokoll wird unter anderem in [SK98] vorgestellt.

2.13 Digitale Signaturen

Digitale Signaturen, im Signaturgesetz auch elektronische Signaturen genannt (vgl. [Bre99]), sollen die Authentizit¨at, Integrit¨at und Beweisbarkeit garantieren. Generiert werden digitaleSignaturen mit Hilfe eines asymmetrischen Verfahrens. Erstellt wird eine Signatur von einer Signierungsfunktion, die diese aus der Nachricht selbst und dem geheimen Schlu¨ssel erzeugt.Um die Signatur zu pru¨fen errechnet der Empf¨anger mittels einer Verifizierungsfunktion, die die Nachricht, den ¨offentlichen Schlu¨ssel und die Signatur selbst heranzieht, ob diese korrekt ist.

Damit der Empf¨anger aber auch sicher sein kann, daß der ¨offentliche Schlu¨ssel tats¨achlich demSender geh¨ort, ist dieser mit einem Zertifikat einer vertrauenswu¨rdigen Stelle (Certificate Au-thority) ausgestattet. Die Certificate Authority (CA) best¨atigt, daß ein bestimmter Schlu¨sseleiner bestimmten Person geh¨ort, indem sie vorher die pers¨onlichen Daten der Person anhandvon festgelegten Kriterien (zum Beispiel Lichtbildausweis) u¨berpru¨ft hat.

Wenn der ¨offentliche Schlu¨ssel mit einem Zertifikat einer CA ausgestattet ist und die Verifizie-rungsfunktion die Korrektheit der Nachricht festgestellt hat, sind Authentizit¨at, Integrit¨at undBeweisbarkeit garantiert.

Viele halten digitale Signaturen fu¨r einen echten Ersatz herk¨ommlicher Unterschriften. Dasstimmt so allerdings nicht:

1. Mittels elektronischer Signaturen werden keine Inhalte signiert, sondern lediglich Bitfol- gen. Wie diese Bitfolgen zu interpretieren sind (wie der Inhalt angezeigt werden muß) ist Sache der jeweiligen Applikation, mit der das signierte Dokument geschrieben wurde. Das heißt, man mu¨ßte die Applikation ebenfalls mitsignieren. Die Applikation wiederum l¨auftunter einem bestimmten Betriebssystem, das eigentlich dafu¨r zust¨andig ist die Informatio-nen an die Hardware weiterzuleiten. Somit mu¨ßte auch das Betriebssystem in die digitaleSignatur miteinbezogen werden. Zum Schluß bleibt noch die Hardware, die die Informatio- nen letztendlich erst anzeigt. Das heißt, auch die mu¨ßte mitsigniert werden. In der Praxisist das aber nicht m¨oglich.
2. Da man wie unter Punkt 1 beschrieben nicht alle Komponenten signieren kann, muß der Anwender letztendlich beim Signieren bzw. beim Verifizieren einer digitalen Signatur ge- wissen Komponenten vertrauen. Er muß sich sicher sein, daß die Software tats¨achlich vordem Signieren den Text anzeigt, den er signieren m¨ochte und daß er nicht in Wirklich-keit einen anderen Text signiert. Auch beim Verifizieren einer Signatur muß er sich darauf verlassen k¨onnen, daß das Ergebnis der Verifizierung korrekt ist. Das ist aber insofernproblematisch, da die Signaturen oft mit herk¨ommlichen PCs erstellt werden, die leichtmanipuliert werden k¨onnen, da auf ihnen praktisch jede beliebige Software und somit auch
trojanische Pferde (vgl. Abschnitt 4.5) und Viren (vgl. Abschnitt 4.6) laufen k¨onnen.
3. Aufgrund m¨oglicher Manipulationen kann ein Empf¨anger also eigentlich nicht wirklichsicher sein, daß tats¨achlich der angegebene Signator ein bestimmtes Dokument signierenwollte. Aufgrund des Signaturgesetzes jedoch sind digitale Signaturen bis auf wenige Aus- nahmen rechtlich bindend.
4. Die Algorithmen, die zur Erstellung digitaler Signaturen eingesetzt werden, gelten heute als sicher. Was aber passiert, wenn diese einmal gebrochen werden, ist nicht klar. Neh- men wir an, daß bestimmte Algorithmen nicht mehr sicher sind und jeder mit einfachsten Mitteln digitale Signaturen f¨alschen kann. Natu¨rlich werden diese Algorithmen zur Erstel- lung digitaler Signaturen nicht mehr zugelassen. Die Frage ist aber, was mit Dokumenten passiert, die in der Vergangenheit signiert wurden, zu einem Zeitpunkt, als die Algorith- men noch als sicher gegolten haben. In der Regel wird es dem Willen der Vertragspartner entsprechen, wenn ein Vertrag seine Rechtskraft beh¨alt.

Problematisch wird es wenn jemand bestreitet den Vertrag signiert zu haben, denn dann fehlt letztendlich der Nachweis, daß das Dokument jemals signiert wurde, da die Algorith- men ja nicht mehr als sicher gelten. Zwar k¨onnte man die digital signierten Dokumente zumBeispiel bei einem Notar hinterlegen lassen, aber das wu¨rde den Aufwand enorm erh¨ohenund damit den digitalen Signaturen ihren Reiz, den elektronischen Gesch¨aftsverkehr zuerleichtern, nehmen.

Kapitel 3 OSI Referenz Modell

Netzwerkprotokolle werden in verschiedene Schichten unterteilt. Der Grund dafu¨r ist, daß Netz-werke dadurch etwas an Komplexit¨at verlieren. Zwar haben unterschiedliche Netzwerktypenverschiedene Schichten, aber trotzdem bieten eigentlich bei allen Netzwerkarten die darunter- liegenden Schichten Services fu¨r daru¨berliegende Schichten an. Das hat den Vorteil, daß man sich zum Beispiel als Entwickler einer Client-Server-Anwendung nicht mehr darum ku¨mmernmuß, welche Hardware fu¨r das Netzwerk eingesetzt wird oder wie die Pakete ihren Weg zum Zielfinden.

Das OSI Modell basiert auf einem Entwurf der International Standards Organization (ISO) (vgl. [DZ83]). Die Idee war, einen einheitlichen Standard fu¨r Netzwerkprotokolle zu schaffen.Der Name OSI bedeutet ”Open Systems Interconnection”. Gew¨ahlt wurde der Name, weil sichdas Modell mit der Verbindung offener Systeme besch¨aftigt, also mit Systemen, die offen sind,mit anderen Systemen zu kommunizieren (vgl. [Tan96], Seite 28).

3.1 Physical Layer

Der ”Physical Layer” (Bitu¨bertragungsschicht) ist die unterste Schicht im OSI-Modell (vgl. Ab-bildung 3.1). Er definiert, wie Bits repr¨asentiert werden. Beispielsweise wird festgelegt, welchesSignal wie lange gesendet wird, um eine Eins darzustellen. Hier wird auch bestimmt, ob beide Seiten parallel eine U¨ bertragung durchfu¨hren k¨onnen.

3.2 Data Link Layer

Eine Schicht u¨ber dem Physical Layer liegt der Data Link Layer (Verbindungssicherungsschicht).Aufgabe des Data Link Layers ist die U¨ bertragung von Daten zwischen zwei Punkten im Netz- werk. Das k¨onnen unter Umst¨anden zwei Rechner sein, aber auch ein Rechner und ein Router

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.1: OSI-Modell

oder zwei Router. Der Data Link Layer sorgt dafu¨r, daß die Daten sicher beim anderen Punktankommen. Ist das nicht der Fall, k¨onnen die Daten noch einmal geschickt werden. Zus¨atzlichist es Aufgabe des Data Link Layer dafu¨r zu sorgen, daß Daten gepuffert werden, wenn der Empf¨anger derzeit keine Daten annehmen kann.

Fu¨r diese Probleme gibt es verschiedene L¨osungen, die jeweils ihre Vor- und Nachteile haben.Finden mehr Pru¨fungen statt, wird das Netzwerk langsamer. Werden weniger Pru¨fungen durch-gefu¨hrt, ist das Netzwerk zwar schneller, aber eventuell auftretende Fehler werden nicht odererst auf h¨oherer Ebene bemerkt und mu¨ssen dann dort korrigiert werden.

3.3 Network Layer

Der Network Layer (Netzwerkschicht) kontrolliert die Operationen in einem Subnetz. Wichtig ist hier, daß kontrolliert wird, wieviele Pakete zwischen Sender und Empf¨anger verschickt wer-den. Die Routen zwischen Sender und Empf¨anger k¨onnen dabei statisch festgelegt oder auchdynamisch sein, sodaß jedes Netzwerkpaket auf einem anderen Weg zum Sender gelangt. Das kann zum Beispiel dann von Vorteil sein, wenn damit Engp¨asse bei bestimmten Netzwerkteilenvermieden werden k¨onnen. Der Nachteil dabei ist, daß Pakete m¨oglicher Weise in der falschen

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.2: U¨ bertragung mit falscher Reihenfolge

Reihenfolge ankommen k¨onnen, da sie u¨ber verschiedene Routen transportiert wurden.

Eine wichtige Rolle spielt natu¨rlich die Netzwerkadressierung, sprich wie eine bestimmte Kom-ponente im Netzwerk angesprochen werden kann. Verwenden unterschiedliche Netzwerke unter- schiedliche Netzwerkadressierungsarten, kann das zu großen Problemen fu¨hren, da die Adressie-rung erst konvertiert werden muß.

3.4 Transport Layer

Der Transport Layer (Transportschicht) erh¨alt seine Daten vom Session Layer. Er unterteilt dieDaten, wenn notwendig, in mehrere Pakete. Diese werden unter Umst¨anden auf verschiedenenWegen zum Empf¨anger geschickt. Dabei kann die Reihenfolge durcheinander geraten, wennein Netzwerkpaket, das sp¨ater geschickt wurde, fru¨her ankommt als eines, das bereits fru¨her abgeschickt wurde (vgl. Abbildung 3.2). Bei einigen Protokollen, wie etwa bei TCP (Transmission Control Protocol) (siehe Abschnitt 6.5), ist es die Aufgabe des Transport Layers, die richtige Reihenfolge wiederherzustellen.

Der Transport Layer ist auch die erste Schicht, die sich nicht mehr um das Routing zwischen Sender und Empf¨anger ku¨mmern muß. Sie kann direkt Kontakt zum Empf¨anger aufnehmen.

3.5 Session Layer

Der Session Layer (Verbindungsschicht) richtet, wie der Name schon sagt, eine Session (Sitzung) ein. In einer Session kann zum Beispiel ein Dialog mit einem anderen Rechner durchgefu¨hrt oder

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3.3: TCP/IP Reference Model

auch eine Datei u¨bertragen werden. Der Session Layer bietet bestimmte Checkpoints an, beidenen eine U¨ bertragung im Falle eines Abbruchs fortgesetzt werden kann. Das ist besonders dann wichtig, wenn eine gr¨oßere Datei u¨bertragen werden soll. Bricht die Verbindung beispielsweise

in der Mitte der U¨ bertragung ab, w¨are es sehr l¨astig, wenn man die U¨ bertragung wieder vonAnfang an beginnen mu¨ßte. Dieser Layer ist auch fu¨r die Benutzerauthentifizierung zwischenzwei Rechnern zust¨andig.

3.6 Presentation Layer

Der Presentation Layer (Datendarstellungsschicht) legt fest, wie die Daten fu¨r die U¨ bertragungcodiert werden. Hier k¨onnen Daten aber auch verschlu¨sselt oder komprimiert werden.

3.7 Application Layer

Der Application Layer (Anwendungsschicht) kommuniziert mit den Anwendungsprogrammen. Programme wie FTP, Sendmail oder auch Netscape schicken u¨ber diesen Layer ihre Daten.

3.8 TCP/IP Reference Model

Ein anderes Netzwerkreferenzmodell ist das TCP/IP Reference Model. Entstanden ist dieses Modell durch das ARPANET (Vorl¨aufer vom Internet), das vom DoD (U.S. Department ofDefense), dem amerikanischen Verteidigungsministerium, in Auftrag gegeben wurde. Ziel des ARPANETs war es ein Netzwerk zu schaffen, das auch einen Atomkrieg u¨berstehen wu¨rde. Selbst wenn ein Teil des Netzwerkes ausfallen sollte, wu¨rden die Pakete auf anderen Wegen nochimmer zu ihren Zielen gelangen.

Das erste Mal wurde das TCP/IP Reference Model von Cerf und Kahn 1974 definiert (vgl. [Tan96], Seite 35).

3.8.1 Host-to-Network Layer

Das TCP/IP Reference Model definiert diese Schicht eigentlich nicht genauer. In der Literatur wird sie kaum behandelt.

3.8.2 Internet Layer

Der Internet Layer entspricht dem Network Layer im OSI-Modell (vgl. Abbildung 3.3). Zust¨andigist er fu¨r das Routing, also der Weiterleitung der Pakete zur Zieladresse. Im Internet Layer wurdeein eigenes Protokoll definiert, n¨amlich das IP (Internet Protocol).

3.8.3 Transport Layer

U¨ ber dem Internet Layer befindet sich der Transport Layer. Hier sind zwei Protokolle definiert, das TCP (Transmission Control Protocol) und das UDP (User Datagram Protocol). TCP ist zuverl¨assig und verbindungsorientiert. Bei diesem Protokoll ist sichergestellt, daß die Daten auchtats¨achlich beim Empf¨anger ankommen. Verbindungsorientiert bedeutet, daß die Verbindung solange offen bleibt, bis sie explizit geschlossen wird.

UDP hingegen ist unzuverl¨assig und nicht verbindungsorientiert. Es ist somit nicht garantiert,daß die Daten wirklich den Empf¨anger erreichen und auch nicht, daß die Daten in der richtigenReihenfolge ankommen. Ben¨otigt wird dieses Protokoll vor allem dann, wenn es wichtiger ist,daß die Daten schnell ankommen und Zuverl¨assigkeit keine große Rolle spielt.

3.8.4 Application Layer

Der Session und der Presentation Layer werden im TCP/IP Model nicht verwendet, da die Praxis gezeigt hat, daß dieser Layer kaum ben¨otigt werden (vgl. [Tan96], Seite 37).

Im Application Layer werden Protokolle wie Telnet (vgl. Abschnitt 6.8), FTP (vgl. Abschnitt 6.10) oder SMTP (vgl. Abschnitt 6.11) angewendet. Die Liste der im Application Layer an- gewendeten Protokolle wird allerdings mit der Zeit immer gr¨oßer, da st¨andig neue Protokolledefiniert werden.

Kapitel 4 Allgemeine Sicherheitsprobleme

Im Folgenden zeige ich einige allgemeine Sicherheitsprobleme auf, damit der Leser, der mit der Materie nicht so vertraut ist, rasch einen U¨ berblick u¨ber verschiedene Attacken erh¨alt.

4.1 Denial-of-Service Attacke

Bei einer Denial-of-Service (DoS) Attacke versucht der Angreifer ein System lahmzulegen, indem er es mit Anfragen ”bombardiert”. Das System ist dann praktisch nur noch damit besch¨aftigt,die zumeist sinnlosen Anfragen des Angreifers zu bearbeiten. Es kann seiner eigentlichen Aufgabe nicht mehr nachkommen und wird somit nutzlos. Die Verfu¨gbarkeit ist gef¨ahrdet.

Ein typisches Beispiel fu¨r eine Denial-of-Service Attacke ist, wenn man bei einem Pizza-Service viele Speisen zu verschiedenen Orten, die aber nicht exisitieren, bringen l¨aßt. Gibt man genu¨gendBestellungen auf, so ist der gesamte Pizza-Service nur noch damit besch¨aftigt, diese Bestellungenzu bearbeiten und hat fu¨r andere, sinnvolle Bestellungen keine Zeit mehr.

Eine Variante von Denial-of-Service Attacken sind sogenannte Distributed-Denial-of-Service At- tacken (DDoS). Dabei geht die Attacke nicht von einer Quelle aus, sondern von vielen. Ein System wird dabei dann von vielen Quellen mit Anfragen ”bombardiert”, was eine Abwehr natu¨rlich erschwert.

4.2 Man-in-the-middle Attacke

Bei einer Man-in-the-middle Attacke befindet sich ein Angreifer zwischen kommunizierenden Systemen. Er kann dabei aktiv in die Kommunikation eingreifen und Pakete abfangen oder umleiten. Damit wird die Authentizit¨at, Vertraulichkeit oder Integrit¨at der Daten verletzt.

4.3 Sniffing

Unter Sniffing versteht man das Mitlesen von Paketen, die u¨ber das Netzwerk u¨bertragen werden.Dadurch wird die Vertraulichkeit verletzt.

Sniffing wird normalerweise mit sogenannten Netzwerksniffern durchgefu¨hrt. Diese schalten die Netzwerkkarte in den ”promiscuous mode”. U¨ blicher Weise liest die Netzwerkkarte nur die Pa- kete ein, die fu¨r sie bestimmt sind. Im promiscuous mode jedoch liest sie alle Pakete aus dem

Netzwerk ein, auch die, die nicht fu¨r sie bestimmt sind. Der Netzwerksniffer kann dann somitalle Pakete auswerten und dem Angreifer anzeigen, die bei seiner Netzwerkkarte vorbeigeschickt werden.

4.4 Spoofing

Beim Spoofing gibt der Angreifer vor jemand anderer zu sein. Dadurch bekommt er unter Umst¨anden mehr Rechte und kann diese mißbrauchen. Dabei wird die Authentizit¨at verletzt,eventuell auch die Vertraulichkeit, wenn der Angreifer Daten liest. Sofern der Angreifer Daten manipuliert, wird auch die Integrit¨at verletzt und m¨oglicherweise die Verfu¨gbarkeit gef¨ahrdet,wenn er dem System Schaden zufu¨gt.

4.5 Trojanische Pferde

Trojanische Pferde haben ihren Namen aus der griechischen Mythologie. Dabei gibt ein Pro- gramm vor eine bestimmte Funktionalit¨at zu besitzen, fu¨hrt aber in Wirklichkeit eine andere,zumeist b¨osartige Funktion aus. Zum Beispiel k¨onnte ein trojanisches Pferd eine Melodie vor-spielen und dabei im Hintergrund die Festplatte l¨oschen.

Durch trojanische Pferde kann die Vertraulichkeit verletzt werden, wenn das trojanische Pferd Daten verschickt. Aber auch die Integrit¨at und Verfu¨gbarkeit kann gef¨ahrdet werden, wenn dastrojanische Pferd Daten und Programme manipuliert oder l¨oscht.

4.6 Viren und Wu¨rmer

Viren und Wu¨rmer sind Programme, die sich selbst replizieren k¨onnen und auch meistens eineSchadensfunktion besitzen. Der Hauptunterschied zwischen Viren und Wu¨rmer besteht darin,daß sich Viren an andere Programm anh¨angen, w¨ahrend Wu¨rmer eigenst¨andige Programmesind.

Die Weitergabe von Viren und Wu¨rmern erfolgte vor einigen Jahren noch zumeist durch dasAustauschen von Raubkopien. Heutzutage ist der prim¨are Verbreitungsweg jedoch das Internet, das aufgrund seiner offenen Struktur die Verbreitung solch schadhafter Programme f¨ordert.H¨aufig werden Viren und Wu¨rmer u¨ber E-Mail, aber auch durch Abrufen von Webseiten undProgrammen verbreitet.

Viren und Wu¨rmer verletzen, so wie trojanische Pferde, die Vertraulichkeit, Integrit¨at undVerfu¨gbarkeit.

Kapitel 5 Bedeutende Angriffe in der Vergangenheit

Im folgenden beschreibe ich einige Angriffe, die aufgrund ihres Ausmaßes bekannt geworden sind. Die Liste l¨aßt sich fast beliebig erweitern, deshalb habe ich mich auf ein paar interessanteAngriffe beschr¨ankt. Interessant dabei ist, daß viele Fehler, die in der Vergangenheit begangenwurden, auch heute noch immer gemacht werden.

5.1 Internetwurm

Die nachfolgenden Informationen stammen aus [RE89], [EGH 89], [Spa88] und Auszu¨gen vomSource-Code (erh¨altlich unter http://packetstormsecurity.org/trojans/worm_src_tar.gz

- zuletzt besucht am 8. September 2001).

Am Abend des 2. November 1988 wurde das Internet von einem Wurm (vgl. Abschnitt 4.6) befallen. In ku¨rzester Zeit breitete sich der Wurm aus und legte zahlreiche Rechner lahm. Aller-dings fu¨hrte er keine Schadensfunktion aus. Wie sich sp¨ater heraustellte war der Autor diesesWurms ein Student namens Robert T. Morris.

Der Wurm nutzte zwei Sicherheitslu¨cken in UNIX aus, um in die Rechner einzudringen, n¨amlicheine in ”finger” und eine in ”sendmail”.

”Finger” ist ein simples Protokoll, das auf TCP basiert. Es dient dazu Informationen u¨ber

Benutzer eines Rechners zu u¨bertragen, zum Beispiel wer gerade eingelogged ist, welche Tele-fonnummer ein Benutzer hat oder auch wann er zuletzt seine E-Mails abgerufen hat. Heute wird das Protokoll kaum noch eingesetzt, da der Nutzen die datenschutzrechtlichen Probleme, die durch das Einsetzen dieses Protokolls entstehen, nicht u¨berwiegt. 1988 jedoch war das Inter-net noch offener und prim¨ar fur den wissenschaftlichen Informationsaustausch gedacht. Deshalbgab es kaum Sicherheitsmaßnahmen. Diese wurden erst mit der gr¨oßeren Verbreitung und der Kommerzialisierung des Internets notwendig.

Obwohl ”finger” ein sehr einfaches Protokoll ist, hatte es eine gravierende Sicherheitslu¨cke, diees einem Angreifer erm¨oglichte ”root”-Rechte auf einem Rechner zu erlangen. Zwar war dieSicherheitslu¨cke bereits seit einem Jahr bekannt (vgl. [Spa88], Seite 23), aber niemand hatte siebis dahin korrigiert.

Die Sicherheitslu¨cke bestand darin, daß in C bei einigen Funktionen die Buffergrenzen nichtabgefragt werden. Zu diesen Funktionen geh¨oren unter anderem gets, scanf, strcat und sprintf.Obwohl die Probleme mit diesen Funktionen bekannt sind, werden sie teilweise heute noch immer verwendet. Besser w¨are es Funktionen wie strcpy durch strncpy zu ersetzen.

In ”finger” wurde gets verwendet um die Eingaben einzulesen. Der Wurm ¨offnete eine Verbindungzum Port 79 (finger-Port) eines Rechners, den er befallen wollte. Anschließend schickte er einen 536 Byte langen String an diesen Port. Dieser String war zu lange und u¨berschrieb somit Teile desStacks. Die Instruktionen, die auf den Stack geschrieben wurden, bewirkten, daß am Ende des Hauptprogramms des finger-Daemons eine Shell ge¨offnet wurde. Damit hatte der Wurm einenShell-Zugang, der meistens u¨ber root-Rechte verfu¨gte, da der finger-Daemon normalerweise unterdiesem Benutzer l¨auft.

Auch in ”sendmail” existierte eine Sicherheitslu¨cke mit Hilfe des ”DEBUG”-Kommandos. DiesesKommando existiert in den heutigen Sendmail Implementierungen nicht mehr, war aber fru¨herzum Testen sehr praktisch. Der Wurm sendete dabei folgende Kommandos an den sendmail- Daemon:

[...]

Ende der Leseprobe aus 137 Seiten

Details

Titel
Sicherheit von Internet- und Intranetdiensten
Hochschule
Alpen-Adria-Universität Klagenfurt  (Institut für Wirtschaftsinformatik und Anwendungssysteme)
Note
Gut
Autor
Jahr
2001
Seiten
137
Katalognummer
V10774
ISBN (eBook)
9783638171120
ISBN (Buch)
9783638690850
Dateigröße
1321 KB
Sprache
Deutsch
Schlagworte
Sicherheit, Internet-, Intranetdiensten
Arbeit zitieren
Dipl.-Ing. Florian Fuchs (Autor:in), 2001, Sicherheit von Internet- und Intranetdiensten, München, GRIN Verlag, https://www.grin.com/document/10774

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: Sicherheit von Internet- und Intranetdiensten



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden