newsseite
24. August 2003 UC-Hauptseite Forum Impressum Nr. 37 / 34. Woche

Sinn und Unsinn von Personal Firewalls

ein Beitrag von Timo Kehler

Nicht nur seit dem W32.Blaster.Worm wünschen sich viele User eine Sicherung des eigenen Rechners. Manche werden sich noch an den I Love You Wurm oder andere erinnern, was bei Firmen für Millionen Schäden sorgte und für kaputte Nerven bei den Anwendern. Dann schützen wir einfach unseren Rechner dachten viele, damit so etwas nicht mehr passiert. Nur womit? Viele mehr oder minder professionelle Internetmagazine, Nachrichten, Webseiten, Firmen, usw. priesen sogenannte Personal Firewalls (PF) oder Desktop Firewalls an.

Die Sicherheitsfrage

Gute Idee. Eine Software installieren und sicher sein. Aber ist das so einfach? Ist man dann immer sicher? Muss man kein Informatikstudium beendet haben, um diese PF's zu bedienen und konfigurieren? Die Firmen, die solche Software installieren haben schon die Antworten darauf. Natürlich ist man da sicher und die Programme sind auch ganz einfach zu installieren.
Aber stimmt das auch? Ist das nur Werbung oder ist da etwas Wahres dran? Und wenn es nur Werbung ist, wie schütze ich mich dann richtig?

Firewalls und Personal Firewalls

Fangen wir am besten mit dem größten Fehler an, den fast jeder, der sich nicht genug mit dem Thema beschäftigt hat, macht: dem Namen. Denn viele Menschen verwechseln Firewalls (FW) mit Personal Firewalls. Nur was ist der Unterschied von beiden? Fangen wir einmal mit dem Begriff an den jeder kennt: Firewall, was übersetzt Feuerwand heisst. Auf jeden Fall ist eine Firewall dazu da, um irgendwas zu schützen. Der Unterschied zur Personal Firewall ist nun was geschützt werden soll.
Eine Firewall ist dazu da, um ein sicheres Netzwerk, z.B. das eigene Netzwerk, vor einem unsicheren Netzwerk, normalerweise dem Internet, zu schützen. Eine Personal Firewall installiert man im Gegensatz dazu auf dem Rechner, auf dem man arbeitet. Was die Vor- und Nachteile dabei sind, erkläre ich später.
Der nächste Unterschied ist, dass eine Firewall ein Konzept und eine Personal Firewall eine Software ist. Bei dem Konzept wird zuerst das Soll mit dem Ist des Netzwerkes verglichen, dann der gewünschte Schutz ermittelt. Schließlich wird die Hard- und Software ausgesucht, die benötigt wird, um dieses Konzept zu erfüllen. Manche nennen den Kasten (egal ob ein Rechner oder eine "Black Box"), der die ganze Hard- und Software enthält auch Firewall. Als Software werden z.B. Paketfilter und Proxys verwendet.

Personal Firewalls sind dagegen Programme, die auf dem Rechner installiert werden und die diesen Rechner schützen sollen. Normal enthalten diese einen Paketfilter. Diese Programme sind für alle Benutzer gleich und unterscheiden sich nur durch die Konfigurationsmöglichkeiten, die meist sehr beschränkt sind im Gegensatz zu richtigen Paketfiltern. Das Problem dabei ist, dass die ganzen Rechner und Netzwerkkonfigurationen von allen Nutzern komplett verschieden sind. Nicht bei jeder Firewall ist ein Paketfilter optimal, manche benötigen andere Programme. Es gibt jedoch eine Gemeinsamkeit bei allen Nutzern von Personal Firewalls: Sie benutzen Windows. Davon abgesehen gibt es auch nur Personal Firewalls für Windows.

Von 'bösen' Ports und IP-Adressen

Der eine oder andere Nutzer einer PF kennt bestimmt die Meldung, dass ein Trojaner auf einem bestimmten Port blockiert wurde. Das ist auf dem ersten Blick zwar eine gute Meldung - auf PF-Meldungen komme ich im nächsten Absatz zu sprechen, aber was sieht ein User, der noch nicht wirklich viel von Netzwerktechnik weiss? Er liest Port. Aber was ist das? Viele beschreiben Ports als Türen durch die Daten auf den Rechner kommen und auch die bösen Hacker zugreifen. Also muss man die ganzen 'bösen' Ports schliessen. Nein, so einfach ist das nicht. Ports sind Addressen um Daten, die den Rechner erreicht haben, dem Programm zuzuordnen, für das die Daten bestimmt sind.
Dazu ein Beispiel. Wir wollen eine Webseite anschauen. Wir öffnen unseren Browser und geben 'http://www.userchannel.de/' in die Adressleiste. Und da wir schon so oft auf der Seite waren, dass die IP schon aufgelöst wurde und in unserem DNS-Speicher gespeichert ist, brauchen wir uns nur noch auf die Webseitenübertragung zu konzentrieren. Der Browser schickt jetzt an userchannel.de ein Paket, dass er die Seite sehen möchte. Der Browser sucht sich jetzt einen von den vielen zur Verfügung stehenden Ports aus z.B. 50000. Die meisten Webserver, wie auch userchannel.de, sind auf Port 80 erreichbar. Jetzt hat unser Paket die Daten von unserer IP und der IP des Webservers auf der userchannel.de liegt und die Daten für die Ports. Quellport ist 50000 und Zielport ist 80. Jetzt wird unser Paket durchs Internet gejagt und kommt zum Schluss bei userchannel.de an. Der Rechner schaut sich das Paket an und sieht den Port 80. Jetzt schaut er nach welcher Dienst auf dem Port 80 lauscht. Das ist der Webserver, welcher so konfiguriert wurde, dass er alle Pakete, die an die Portadresse 80 gehen, annimmt und bearbeitet. Die Seite wird jetzt ausgeliefert und kommt dann irgendwann beim User an. Jetzt schaut der Computer das Paket an und vergleicht den Port mit dem gemerkten Port des Browsers und übergibt die Seite dem Browser. Dieser zeigt die Seite jetzt dem User.
Wie man sieht, ist an Ports also nichts Böses, da es ja nur Addressen sind. Aber Moment, unsere PF hatte doch gemeldet, dass sie den Port blockiert hat. Wie blockiert man Addressen? Gar nicht. Man kann nur Verbindungen und Pakete blockieren oder filtern. Also melden PF's technisch nicht ganz korrekte Informationen. So etwas sollte eigentlich im Sicherheitsbereich nicht passieren. Eine Öllampe im Auto sollte auch nicht anzeigen wenn der Motor zu warm wird.
Der Browser hat in unserem Beispiel den Port 50000 ausgesucht, was zusätzlich zeigt das Ports dynamisch vergeben werden. Also ein Webserver muss nicht auf Port 80 lauschen, er kann auf jedem anderen beliebigen Port lauschen (bis auf ein paar technische Einschränkungen, welche aber hier nicht wichtig sind). Wenn jetzt ein Webserver auf Port 81 lauscht und man konfiguriert seine PF so, das der Browser nur Zugriff auf ausgehende Verbindungen auf Port 80 hat, um zu surfen, bekommt man keinen Zugriff auf diesen und viele andere Webserver. Vor allem Dynamische Webserver lauschen oft auf anderen Ports.

Warum keine Personal Firewall?

Wie schon erwähnt, läuft eine PF auf dem lokalen Rechner und nicht zwischen zwei Netzwerken. Warum ist das jetzt schlecht? Jedes Programm, das auf dem gleichen Rechner läuft, z.B. auch ein Trojaner, hat jetzt Zugriff auf die PF.
Dazu ein Beispiel. Wir haben einen Rechner mit Windows NT (egal ob NT, 2000 oder XP) mit einem Rechtesystem. Da wir aber zu faul sind, dieses zu nutzen, melden wir uns jedesmal mit dem Administrator an und führen auch alle Programme mit diesen Rechten aus. Die PF läuft normal immer mit Administratorrechten. Aber jetzt wollen wir auch noch Mails abrufen. Leider bekommen wir eine Mail die einen Virus enthält. Diesen führen wir, warum auch immer, aus. Da wir mit Administratorrechten arbeiten, hat der Virus die gleichen Rechte. Daher kann der Virus die PF umgehen, abschiessen oder was auch immer der Virus machen will. Ein gutes Beispiel dafür ist Bugbear.
Haben wir dagegen in der gleichen Umgebung eine richtige Firewall, die nicht auf dem Rechner läuft, kann sie auch nicht von dem Virus, egal welche Rechte er auch immer hat, verändert werden. Ausserdem klickt der Computer viel schneller als jeder User. Es gibt einen Quellcode für eine etwas ältere Zonealarm-Version, die immer auf akzeptieren der Pakete klickt.
Kommen wir durch diesem Umstand gleich zum nächsten Punkt. Es gibt keine PF's, die kernelbasiert sind, das heisst die Programme laufen als normale Programme und sind nicht im Betriebssystem integriert. Wieder zurück zu dem Virus der unsere PF verändert: Unser Virus schiesst unsere PF ab und hat dann ungehinderten Zugang zum Internet. Haben wir dagegen eine kernelbasierte Firewall, welche mit noch höheren Rechten als jeder Benutzer läuft und somit von keinem Programm verändert werden kann, ausser dem Betriebssystem selbst, ist die Sicherheit ungleich höher.
Unter Windows sind auch abgestürzte Programme, die sich als Icon im Systray (da wo die Uhr ist) einnisten, nur dann erkennbar wenn man mit der Maus über das Icon fährt. Man merkt also nicht gleich ob die PF abgestürzt ist oder nicht. Bei kernelbasierten Paketfiltern stürzt dann der ganze Rechner ab, was aber dann in diesem Fall besser ist, als dass sich jemand einhacken kann.
PF's verwenden Paketfilter, um Verbindungen zu schützen. Ein Paketfilter schaut sich den Kopf eines Paketes an und entscheidet anhand der IP und des Ports, ob eine Verbindung neu oder schon aufgebaut ist, ob ein Paket erlaubt oder verboten ist. Bessere Filter schauen zusätzlich noch bestimmte Daten wie z.B. die Flags an. Aber woher weiss die PF ob ein Paket böse oder gut ist? Wie gesagt werden die Ports dynamisch vergeben und somit bringt es nichts nach Ports zu filtern. Proxys schauen sich zusätzlich den Inhalt des Paketes an und können da verschiedene Dinge blockieren.

Macht hoch die Tür, die Tor' macht weit...

Ports sind nur Addresen. Und bei Addressen muss es auch Ziele geben auf welche die Addressen zeigen. Diese Ziele sind die Programme wie z.B. der Webserver auf userchannel.de. Wenn man in ein Computersystem einbrechen möchte, muss es ein Tor geben, durch welches der Hacker (ich möchte jetzt keine Diskussion über Hacker und Cracker starten, ich nenne einfach mal Hacker den, der sich Zugriff zu einem System verschafft) kommt. Da nicht die Ports die Tore sind, muss es das Programm sein. Ein Programm hat Zugriff auf den Rechner, auf dem es ausgeführt wird, und bei Netzwerkprogrammen Zugriff auf das Netzwerk bzw. das Internet. Wenn jetzt ein Programm ein Sicherheitsloch hat, kann ein Hacker diese Lücke ausnutzen und so ist das Programm in diesem Moment das Tor. Das Ganze kann aber nur passieren, wenn der Dienst ein Sicherheitsloch hat und gegen diese gibt es normal mehr oder minder schnell Patches.
Jetzt gibt es zwei Fälle. Fall 1: man braucht diesen Dienst nicht. Jetzt kann man eine Firewall oder einen Paketfilter verwenden, um alle Verbindungen zu diesem Dienst zu blockieren. Wäre es da aber nicht einfacher, man beendet einfach diesen Dienst? Ja wäre es. Dann kann sich kein Hacker durch dieses Programm Zugriff auf den Rechner verschaffen. Wenn man eine PF verwendet, kann es wie oben erklärt passieren, dass diese abgeschossen wird. Da man den Dienst nicht benötigt und sich sicher nicht um ihn gekümmert hat, ist er, wenn es Sicherheitslücken gibt, anfällig. Bei einem deaktivierten Dienst passiert nie etwas, egal ob eine PF läuft oder nicht.
Jetzt zu Fall 2: Wir brauchen den Dienst, z.B. einen Webserver. Wir wollen den im Internet anbieten, da sonst keiner auf unsere Seite zugreifen kann. Also muss man die Verbindungen zu diesem Dienst erlauben. Solang der Dienst sicher ist braucht man wegen diesem also keine PF.
An dieser Stelle möchte ich einen kleinen Ausflug in die Welt der Programmierung machen. Es gibt zwei Arten seine Software zu vertreiben. Als Closed Source und Open Source. Bei Closed Source bekommt man nur ausführbare Dateien und kann den Quellcode nicht einsehen, bei Open Source dagegen kann man den Quelltext einsehen und meist auch verändern. Da es keine PF's gibt, die Open Source sind, weiss man nie genau was die PF genau macht. Sie muss keine Verbindungen blockieren, es reichen Meldungen dass sie irgend etwas geblockt hat, um zu zeigen, dass es gute Software ist. Sie kann also machen, was sie will. Sie kann auch Spyware sein und eigene Verbindungen zulassen, sie kann bestimmte Trojaner durchlassen und, und, und...

Versteckspielchen

Viele PF's werben damit, dass sie den Rechner verstecken können. Das ist aber technisch gar nicht möglich. PF's verwerfen Pakete einfach, die als verboten markiert sind, so dass kein Programm auf dem Rechner sie bekommt und der Server auch keine Antwort. Jetzt denken viele keine Antwort heisst versteckt, wie in irgendwelchen Filmen, wo sich jemand versteckt und dann leise ist, damit man nicht gehört werden kann. Die Netzwerktechnik ist aber entwickelt worden, damit sie alle möglichen Fehler erkennen kann. Dazu zählt auch, wenn keine Antwort kommt. Dazu gibt es den Timeout beim Server. Er zählt mit und nach einer bestimmten Zeit weiss er, dass das Paket irgendwo verloren gegangen ist. Wenn keine Antwort kommt muss das Paket im Internet verloren gegangen oder von irgend jemanden verworfen worden sein. Um unsichtbar zu sein, muss der Router des Providers ein Antwortpaket schicken, dass der Rechner, den man ansprechen wollte, nicht erreichbar ist. Hacken sich jetzt PF's beim Provider ein und ändern deren Router oder ist der Stealthmodus nur eine Werbestrategie? Die Antwort überlasse ich euch.
Die ganzen Gründe zeigen, dass PF's nicht besser funktionieren als ein gut eingerichtetes System. Also macht eine PF das gleiche wie das Betriebssystem, wenn es gescheit eingerichtet ist? Nicht ganz. Eine PF hält sich im Gegensatz zu einem Betriebssystem nicht an irgendwelche Regeln und verwirft Pakete einfach. Wenn man von jemand angesprochen wird und man nicht mit demjenigen reden will, dann sollte man es ihm sagen statt einfach nur weghören. Das spart Zeit und Nerven von beiden und ist höflicher.

Ein bisschen Schutz ist besser als keiner

Wenn ich über Netzwerksicherheit diskutiere, höre ich von PF-Anhängern immer, dass sie sowieso keine wichtigen Daten haben und dass ein bisschen Schutz besser ist als keiner. Das mag zwar stimmen, nicht jeder hat irgendwelche Formeln von neuen Biowaffen auf dem PC, aber um das geht es vielen nicht.
W32.Blaster.Worm hat auch nicht nach Daten gefragt sondern sollte Ressourcen von den Usern benutzt, um den Microsoft Server - ich hätte mir doch den Wurm einfangen sollen und mithelfen sollen ;-) - abzuschiessen. Diese Angriffstechnik nennt sich DDoS (Distributed Denial of Service) und arbeitet mit vielen ungeschützen Systemen, die alle mit einem Agenten infiziert werden und durch einen Befehl von einem Master einen beliebigen Server mit Anfragen überfluten, sodass dieser bei solch einer grossen Last zusammenbricht.
Jetzt sagt sich jeder ist ja nicht mein Server, was habe ich damit zu tun? Sehr viel! Denn Serverausfälle und übertragenes Datenvolumen kosten viel Geld. Wird ein kleinerer ISP abgeschossen muss er seine Verluste mit z.B. höheren Gebühren wieder erwirtschaften.
Jetzt zu dem 2. Argument: Ein bisschen Schutz ist wirklich besser als gar keiner. Aber PF's bringen gar keinen (zusätzlichen) Schutz mit. Wie schon erklärt kann man sein System durch gescheite Konfiguration sicherer machen als mit jeder PF möglich. Also stimmt der Spruch zwar, dass ein bisschen Schutz besser als gar keiner ist. Aber in diesem Fall steht die PF auf der Seite mit gar keinen Schutz.

Wie schützt man sich ohne Firewall?

Zu guter Letzt kommen wir noch zu der entscheidenden Frage, was man dann genau machen muss, um sein System gescheit zu konfigurieren. Dazu gibt es ein paar Dinge, die man beachten muss.
  • Nichtbenötigte Dienste deaktivieren
    Wenn man alle nicht benötigten Dienste deaktiviert (Bei Einzelplatzrechnern alle Netzwerkdienste ausser denen, die man im Internet anbieten möchte. Bei einem Netzwerk alle, die nicht für das Netzwerk gebraucht werden und auf dem Router alle Dienste) können diese nicht angegriffen werden.
    Anleitungen dazu gibt es bei Kssysteme und bei Black Viper.
  • Benöigte Dienste sichern
    Immer Sicherheitspatches einspielen und den Dienst sicher konfigurieren. Und bei Alternativsoftware die sicherste verwenden.
  • System aktuell halten
    Immer Patches für alle Software und auch für das Betriebssystem installieren.
  • Sichere Clients verwenden
    Wichtig sind auch Clientprogramme, da auf diesem Weg Würmer, Viren und Trojaner auf das System gelangen können. Man sollte z.B. IE und Outlook durch sichere Clients wie Mozilla (Fire/Thunderbird) ersetzen.


Zusätzliche Informationen

Mehr Informationen findet man bei den Faq's der Newsgroups de.comp.security.misc und de.comp.security.firewall.
Bei Fragen an mich stehe ich gern per Mail zur Verfügung.

zurück