Schutz gegen Attacken aus dem Netzwerk

von Martin Gräff (Ausgabe 95/2, Juni 1995)

 

Das Internet als weltumspannendes Computernetzwerk mit etwa 30 Millionen Teilnehmern wird - wie andere Einrichtungen auch - von Scherzbolden und Vandalen heimgesucht. Die Übeltaten reichen von Herumschnüffeln bis zu Diebstahl, Veränderung oder Zerstörung von Daten. Wenn sich auch die Anzahl der Attacken und die Größe der angerichteten Schäden bisher in Grenzen gehalten haben, sollte sich dennoch jeder Betreiber die Exponiertheit seines Rechners unbedingt vor Augen führen (vor allem bei sensitiven Datenbeständen), bevor er ihn am Netz in Betrieb nimmt. Sorglosigkeit kann sich in diesem Bereich fatal auswirken. "Cracker" wissen gewöhnlich recht gut über allfällige Mängel und Unzulänglichkeiten von Betriebssystemen und Serverprogrammen Bescheid - der Administrator eines Servers sollte ihnen deshalb an Kompetenz um nichts nachstehen.

Das größte Sicherheitsrisiko stellen Konfigurationsfehler und Unachtsamkeiten des Systemadministrators dar. Die Mehrzahl der Attacken nützt derartige Lücken, wie leicht zu erratende Paßwörter oder vom Hersteller vorinstallierte User-IDs.

Wer ist gefährdet?

Ein an das Netzwerk angeschlossener PC oder Macintosh ist nicht gefährdet - es sei denn, das Gerät wird von seinem Besitzer bewußt dazu verwendet, Daten am Netzwerk zur Verfügung zu stellen. Dies ist etwa dann der Fall, wenn man den Rechner als FTP-Server betreibt (auf einem PC durch den Aufruf des Programms "Ftpsrv"). Hierbei besteht allerdings die Möglichkeit, sich mit Hilfe eines Paßwortes vor ungewünschten FTP-Verbindungen zu schützen.

Novell-Server oder Apple-Fileserver sind - vor allem dann, wenn sich ihr Wirkungskreis auf das lokale Institutsnetz beschränkt und keinerlei Kooperation mit anderen Servern im Netzwerk vorgesehen ist - nur in geringem Ausmaß gefährdet. Ist jedoch das Zusammenwirken mit Servern außerhalb des eigenen Netzwerksegments erforderlich, so steigt selbstverständlich auch das Risiko.

Das klassische Schlachtfeld für die Guten und die Bösen im Netzwerk ist die Unix-Welt: Hier gibt es die gefinkeltsten Attacken und die ausgetüfteltsten Verteidigungsstrategien.

Verbindungen nach dem Internet Protocol (IP)

Jede Verbindung im Internet wird durch drei Angaben eindeutig definiert:

Die IP-Adresse:
Jeder Rechner im Internet muß eine eindeutige IP-Adresse besitzen. Diese Adresse besteht aus vier Bytes und wird meist numerisch (in der Form a.b.c.d ) geschrieben - z.B. ist 131.130.1.11 die IP-Adresse des primären Nameservers der Universität Wien.

Der Port:
Zu einem Rechner mit einer IP-Adresse können viele Verbindungen gleichzeitig betrieben werden. Die Kommunikationsendpunkte innerhalb eines Rechners sind durchnumeriert und werden als Ports bezeichnet.

Das Protokoll:
Im Internet wird - auf Basis von IP - entweder TCP oder UDP als darauf aufsetzendes Protokoll verwendet. TCP (Transmission Control Protocol) wird für verbindungsorientierte, gesicherte Datenübertragung und UDP (User Datagram Protocol) für verbindungslose Übermittlung von Nachrichten eingesetzt. Beiden gemeinsam ist die IP-typische Abwicklung des Datenverkehrs über Pakete.

Die Services, die ein Rechner anbietet, werden durch Protokoll und Port definiert: Telnet wird beispielsweise über TCP meist auf Port 23 abgewickelt. Ein Rechner, der den Zugang mittels Telnet ermöglicht, sollte daher Verbindungen auf Port 23 akzeptieren.

Schutz einzelner Rechner

Die meisten Betriebssysteme erlauben keine Zugangsbeschränkung nach der Ursprungsadresse einer Verbindung. Man kann zum Beispiel nur entscheiden, ob ein Rechner Telnet-Verbindungen von jedem Rechner im Internet akzeptieren oder generell mittels Telnet nicht erreichbar sein soll. Unter Unix kann jedoch durch Einsatz bestimmter Programme - etwa des TCP-Wrappers von Wietse Venema - der Zugang zu TCP- und UDP-basierten Services auf Basis der IP-Adresse eingeschränkt werden: In den entsprechenden Konfigurationsdateien muß vermerkt werden, welchen Rechnern ein Zugang über Telnet, FTP usw. erlaubt oder verboten ist.

Firewalls

Ein Firewall ist eine Einrichtung, die einen Abschnitt des Netzwerks - etwa das Netzwerk eines Instituts - vom "unsicheren" Rest des Netzwerks trennt. Die Kommunikation zwischen Internet und Subnetz (oder "privates Netz") geht ausschließlich über den Firewall, der eine Zugangskontrolle durchführt. Es gibt zwei Modelle für Firewalls: Packet Filtering und Application Gateways.

Packet Filtering

Hier entscheidet der Firewall auf Paketebene, ob die Pakete zwischen privatem Netz und Internet weitergereicht oder blockiert werden. Die Implementierung des Firewalls kann mittels Routern (durch Accesslisten) oder auf Unix-Rechnern mit entsprechender Software erfolgen. Die Konfiguration des Filters erfolgt durch Definition von Regeln, die etwa folgende Semantik haben:

  • Verbindungen zu einem Port/Protokoll von einer Adresse im Internet zu einer Adresse im privaten Netz werden erlaubt.
  • Verbindungen zu einem Port/Protokoll von einer Adresse im privaten Netz zu einer Adresse im Internet werden erlaubt.

Bei der Konfiguration können statt Ports auch Bereiche von Ports und statt Rechneradressen auch Adressen von Netzwerken angegeben werden. Die Regeln für einen Firewall könnten beispielsweise lauten:

  • Verbindungen zum SMTP-Port des Mail-Rechners im privaten Netz sind vom ganzen Internet aus möglich (SMTP = Simple Mail Transfer Protocol, das Protokoll zum Transport von eMail im Internet).
  • Telnet-Verbindungen vom privaten Netz in das Internet sind möglich.
  • SMTP-Verbindungen vom privaten Netz in das Internet sind möglich.
  • http-Verbindungen vom privaten Netz in das Internet sind möglich (http = Hypertext Transfer Protocol, das für WWW-Services verwendete Protokoll).

Bei TCP-Verbindungen sind die Folgepakete einer einmal aufgebauten Verbindung durch das gesetzte SYN-Bit erkennbar. Weil bekannt ist, wer die Verbindung aufgebaut hat, können TCP-Verbindungen einfach in einer Richtung erlaubt und in der anderen Richtung gesperrt werden. Die Überprüfung der Zugriffsbeschränkungen erfolgt beim Verbindungsaufbau, Pakete mit gesetztem SYN-Bit dürfen den Firewall ungehindert passieren. Unter den TCP-basierten Services machen vor allem Anwendungen wie FTP Probleme: FTP arbeitet mit einer Verbindung, die vom Klienten aufgebaut wird und auf der Kommandos zum Server übertragen werden. Für die Übertragung von Dateien wird eine weitere Verbindung vom Server zurück zum Klienten aufgebaut. Die Schwierigkeit liegt nun darin, daß dieser Datenstrom nicht auf ein bestimmtes Port festgelegt ist, sondern irgendein freies Port benutzt.

UDP-basierte Services stellen bei der Konfiguration des Firewalls generell ein Problem dar, da bei den Nachrichten nicht auf einfache Weise zwischen Anfragen und Antworten unterschieden werden kann.

Die Probleme mit UDP-basierten Services oder Services, welche wie FTP oder X-Windows Verbindungen zurück zum Klienten verlangen, sind mit einfachen Paketfiltern ohne Modifikation der Klienten nicht mit vertretbarem Aufwand lösbar. Die neuesten Firewall-Produkte analysieren jedoch den Datenverkehr und sind so imstande, die obigen Schwierigkeiten zu umgehen.

Application Gateways (Proxy-Server)

Bei diesem Konstruktionsprinzip wird der gesamte IP-Verkehr zwischen dem Internet und dem privaten Netzwerk blockiert, und alle Verbindungen müssen über Serverprozesse am Firewall abgewickelt werden. Die Proxy-Server arbeiten entweder transparent und schleusen den Verkehr einfach durch den Firewall durch, oder sie verlangen die Authentisierung der Verbindung, die z.B. durch Username und Paßwort erfolgen kann.

Firewalls stellen jedoch nur eine Abschirmung des privaten Netzes gegen Gefährdungen von außen dar - gegen Attacken im privaten Netz helfen sie naturgemäß nicht.