© Nmedia - Fotolia.com

Die Funktionsweise und Sinnhaftigkeit einer Firewall

Dieser Beitrag bietet einen Überblick über die Funktionsweise einer Firewall und deren Sinn oder Unsinn. In meinem Freundeskreis höre ich oftmals folgende Aussagen:

  • "Eine Firewall schützt mich vor Hakerangriffen und Viren."
  • "Meine Firewall wehrt ständig Portscans ab, ich bin sicher."
  • "Durch meine Firewall kann ich bestimmen, welche Anwendungen Zugriff auf das Internet haben"

Hierbei ist einiges Wahres dabei, aber auch viel gefährliches Halbwissen. Generell sollte im Hintergrund behalten werden, dass der IT-Security-Sektor ein Milliardenmarkt ist und viele Unternehmen ein Interesse an einer "anhaltenden" oder "steigenden IT-Gefahrenlage" haben. Viele Softwareprodukte fluten den Nutzer mit Meldungen von erfolgreich abgewehrten Gefahren, um ihm ein Gefühl der subjektiven Sicherheit zu vermitteln. Nutzer, die sich erfolgreich von einer Gefahr beschützt gefühlt haben, empfehlen auch gerne mal ein Produkt weiter...

Grundlegendes: Vor was schützt eigentlich eine Firewall?

Im Artikel Netzwerkgrundlagen habe ich bereits kurz erläutert, wie die Kommunikation in einem Netzwerk funktioniert: IT-Geräte rufen im Internet Services auf, die von einem entfernten PC hinter einer IP und einem Port angeboten werden. Beim Anschauen dieser Webseite wurde beispielsweise mit Hilfe des Browsers eine Verbindung zur IP Adresse hinter der Domain itsecblog.de zu Port 443 (https) aufgebaut. Die meisten Desktop Firewalls sind Paketfilter mit einer so genannten Stateful Packet Inspection. Der Begriff klingt erst einmal "wichtig", beschreibt jedoch nichts anderes als eine Technik, die Datenpakete einer bestimmten Sitzung zuordnet. Ein Beispiel:

Der User "Müller" öffnet den Blog, er stellt also eine Verbindung von seinem PC mit dem Webserver dieses Blogs her. Ein Stateful Packet Inspection Filter ist nun in der Lage, alle Pakete zu identifizieren und zuzulassen, die im Rahmen des Datenaustausches zwischen dem Browser des Clients "Müller" und dem Webserver versendet werden.

Viele Firewalls bietet die Möglichkeit, den Zugriff auf bestimmte IP-Adressen bzw. Ports und Protokolle zu verhindern (bzw. erschweren).

Eine Firewall schützt vor Angriffen gegen den Client... oder?

Ein weit verbreiteter Irrtum - eine Firewall schützt nicht gegen Gefahren, die beim Surfen im Internet, dem Lesen von E-Mails oder der Verwendung anderer Anwendungen auftreten. Es ist unmöglich, beispielsweise den Browser oder das E-Mail Programm direkt über eine Internetverbindung anzugreifen. Weder ein Browser, noch ein E-Mailprogramm bieten im Internet einen Service an, mit dem ein Angreifer sich verbinden könnte. Bei Nicht-Serverdiensten wie dem Browser oder den Großteil aller Anwendungen ist eine Firewall vollkommen nutzlos. Angriffe finden grundsätzlich über die Inhaltsebene statt. Firewalls mit einem Funktionsumfang, die so etwas verhindern könnten, sind keine Firewalls mehr, sondern beispielsweise inhaltsbezogene Proxys. Mit einer Firewall im klassischen Sinne hat dies nichts mehr zu tun. Ein reines, korrekt konfigurierte Clientsystem hat keine offenen Ports. Wofür auch? Welche Aufgaben sollte eine Firewall in so einer Konfiguration übernehmen? Ein Port ohne Service dahinter ist geschlossen. Soll ein Service angeboten werden, muss die Firewall an diesem Port den Traffic durchlassen.

In dieser Konfiguration stellt eine Firewall eher eine Sicherheitslücke als ein Sicherheitsgewinn dar: Eine Firewall ist eine weitere Softwarekomponente, die Sicherheitslücken enthalten könnte und angegriffen werden kann. Einen Zweck erfüllt sie hierbei nicht. Das Betriebssystem Ubuntu hat im Auslieferungszustand die integrierte Firewall beispielsweise komplett deaktiviert. Je mehr Software an einem Kommunikationsprozess beteiligt ist, desto höher die Chancen für einen Angreifer, eine Schwachstelle zu finden!

Eine Firewall macht nicht unsichtbar!

Viele Firewalls bieten eine Funktion an, "ungültige" Pakete unbeantwortet zu verwerfen (DROP) anstelle diese korrekt zurückzuweisen (REJECT). Viele erhoffen sich dadurch einen Sicherheitsgewinn. Ports, die offen sein müssen, weil dort Services angeboten werden, lassen sich per Definition nicht unsichtbar machen - schließlich soll mit diesen gearbeitet werden.

Sendet ein Attacker beispielsweise ein TCP SYN Paket an einen Port, wird folgendes zurückgegeben:

  • Wenn der Port offen ist, wird ein TCP SYN/ACK Paket zurückgegeben,
  • wenn der Port geschlossen ist, gibt das Zielsystem ein TCP RST/ACK zurück.

Weitere Möglichkeiten, die passieren können:

  • Wenn der Zielhost offline ist, gibt der Upstream-Router ein ICMP Host Unreachable Paket zurück.
  • Wenn das Netzwerk des Zielhost offline ist, gibt der Upstream-Router ein ICMP Network Unreachable zurück.
  • Wird das Paket von einer Firewall, die mit einer "REJECT" Regel konfiguriert wurde verarbeitet, wird eine vom Administrator definierte Meldung zurückgegeben.
  • Wird das Paket von einer Firewall, die mit einer "DROP" Regel konfiguriert wurde verarbeitet, wird nichts zurückgegeben.

Scannt ein Angreifer also einen Computer und erhält nichts zurück, weiß er mit ziemlicher Sicherheit, dass dort ein Computer online ist.

Filterung des Client-Traffics

Viele Firewalls bieten eine Funktion an, Anwendungen zu definieren, denen der Zugriff auf das Internet erlaubt wird. Um es kurz zu fassen: Eine ausgefeilte Schadsoftware wird einen Weg finden, trotzdem kommunizieren zu können. Eine Software, die auf einem Betriebssystem läuft, kann nicht von einer anderen, ebenfalls auf dem Betriebssystem laufenden Software sicher eingeschränkt werden.

Eine Möglichkeit, die sich schwer unterbinden lässt: Ein Trojaner öffnet im Browser eine Adresse und sendet in der HTTP Anfrage die Daten mit nach draußen, die der Trojaner stehlen möchte. Der Nutzer wurde somit nie gefragt, ob der Trojaner eine Verbindung mit dem Internet herstellen soll - die Verbindung kam durch den (in der Firewall erlaubten) Browser zustande.

In welchen Fällen eine Firewall sinnvoll sein kann

Eine Firewall kann insbesondere auf Servern sinnvoll sein, um beispielsweise Neuverbindung zu limitieren oder Weiterleitungsregeln umzusetzen. Auch ist es mit einer Firewall beispielsweise möglich, bestimmten Quell-IP-Adressen den Zugriff zu versagen.

In einem Heimnetzwerk steht jedoch meistens ein Router, der, insofern vom Nutzer manuell kein Port-Forwarding konfiguriert wurde, im internen Netzwerk IP-Adressen verteilt, auf die vom Internet nicht zugegriffen werden kann. Dieser Grundschutz ist für die meisten Nutzer vollkommen ausreichend.

Wenn trotz allem eine Firewall aktiviert sein soll...

Ich empfehle unter Windows die Nutzung der mitgelieferten Firewall. Seit Windows 7 ist die Firewall ziemlich ausgereift und lässt sich umfangreich konfigurieren. Es darf davon ausgegangen werden, dass die Windowsentwickler am besten wissen, wie eine Firewall aufgebaut werden sollte, die die Netzwerkfunktionalitäten von Windows 7/ 8 bzw. 10 erweitert. Niemand wird den Quellcode von Windows und den Netzwerkkomponenten besser kennen, als das Entwicklerteam von Microsoft.

Windows 7 Firewall Einstellungen
Windows 7 Firewall Einstellungen

Unter Linux bietet sich Iptables, ggf. mit dem (g)ufw Frontend ebenfalls an. Mit dem Frontend ist die Firewall relativ einfach zu verwalten.

Bildnachweis:

  • Beitragsbild: © Nmedia - Fotolia.com

3 Gedanken zu „Die Funktionsweise und Sinnhaftigkeit einer Firewall“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert