Bundesamt für Sicherheit in der Informationstechnik

M 4.238 Einsatz eines lokalen Paketfilters

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Das gesamte Netz einer Organisation sollte durch ein entsprechendes Sicherheitsgateway geschützt sein. Server, die Dienste nach außen hin anbieten, sollten in einer Demilitarisierten Zone ( DMZ ) aufgestellt werden. Trotzdem ist es empfehlenswert, auch auf jedem Rechner entsprechende Zugriffsbeschränkungen auf Anwendungs- oder Netzebene einzurichten. Dies gilt auch für Server, die nur intern genutzt werden und nicht zuletzt auch für Clients.

Ein lokaler Paketfilter kann einen Rechner gegen Angriffe schützen, die aus dem selben Subnetz heraus gestartet werden. Außerdem kann ein solcher Paketfilter dazu benutzt werden, eine feiner abgestufte Zugriffskontrolle für einzelne Dienste zu realisieren, als dies beispielsweise mit Paketfiltern nur an Netzübergängen möglich ist.

Darüber hinaus kann ein lokaler Paketfilter auch dazu benutzt werden, ausgehende Netzverbindungen zu beschränken und so die Folgen einer Kompromittierung des Systems zu begrenzen. Ein solcher Schutz kann zwar eventuell von einem Angreifer nach einer erfolgreichen Kompromittierung des Rechners deaktiviert werden, andererseits wird ein Angreifer auf diese Weise zumindest behindert. Auf diese Weise kann entscheidende Zeit bei der Entdeckung und für mögliche Reaktionen gewonnen werden.

Zuletzt kann die Protokollfunktion eines lokalen Paketfilters es ermöglichen, bestimmte Angriffe überhaupt zu entdecken.

Praktisch alle aktuellen Betriebssysteme bieten die Möglichkeit, Filter zu definieren, die alle empfangenen oder zu sendenden Pakete nach bestimmten Regeln untersuchen und behandeln. Die Filtermöglichkeiten unterscheiden sich dabei zwischen den einzelnen Betriebssystemen teilweise erheblich. Praktisch immer können jedoch Regeln basierend auf der Quell- und Zieladresse des Pakets sowie auf dem verwendeten Protokolltyp (TCP/IP, UDP/IP, ICMP etc.) sowie gegebenenfalls dem Quell- oder Zielport definiert werden. Mit Hilfe von Paketfilterregeln können so beispielsweise Pakete, die von bestimmten Rechnern oder aus bestimmten Subnetzen stammen, gezielt verworfen werden.

Manche Serveranwendungen besitzen eigene Mechanismen, um den Zugriff auf den Dienst für einzelne IP-Adressen oder Adressbereiche zu erlauben oder zu verbieten. Gegenüber diesen Mechanismen hat ein lokaler Paketfilter auf Betriebssystemebene den Vorteil, dass er den Dienst selbst gegen mögliche Angriffe schützt, die zu einer Kompromittierung führen, bevor die eingebaute Zugriffsbeschränkung überhaupt wirksam werden kann.

Prinzipiell sollten alle Server mit hohem Schutzbedarf mit einem lokalen Paketfilter geschützt werden.

Es gibt zwei allgemeine Strategien, mit der Paketfilter-Regeln implementiert werden können: Die Blacklist-Strategie erlaubt alle Arten von Verbindungen, die nicht bestimmte Ausschlusskriterien erfüllen (Freizügige Strategie: "Alles ist erlaubt, was nicht explizit verboten ist"). Der Vorteil liegt dabei in einem

eventuell geringeren Aufwand bei der Administration und der Fehlersuche. Ein schwerwiegender Nachteil ist jedoch, dass vergessene Regeln, die den Zugriff auf nicht geschützte Netzdienste ermöglichen, als Grundlage für einen Angriff dienen können.

Demgegenüber werden bei der Whitelist-Strategie alle Arten von Verbindungen blockiert, die nicht zu einer Liste erlaubter Dienste gehören (Restriktive Strategie: "Alles ist verboten, was nicht explizit erlaubt ist").

Die Whitelist-Strategie bietet die größere Sicherheit und sollte daher grundsätzlich verwendet werden, wenn nicht wichtige Gründe dagegen sprechen. Der Nachteil liegt in einem tendenziell höheren Administrationsaufwand, da bei jeder Änderung der Anforderungen neue Regeln definiert werden müssen. In Ausnahmefällen, beispielsweise wenn ein Protokoll nicht auf fest definierten Ports arbeitet, kann auf die Blacklist-Strategie zurückgegriffen werden.

Es ist empfehlenswert, auf allen Servern im Rahmen der Grundkonfiguration einen lokalen Paketfilter mit einem Basis-Regelwerk einzurichten, bei dem grundsätzlich alle Verbindungsanfragen von außen abgewiesen werden. Dieses Regelwerk sollte aktiv sein, wenn das System ans Netz angeschlossen wird. Je nachdem welche Dienste von dem System angeboten werden sollen, können nach deren Konfiguration die dafür benötigten Protokolle und Ports freigeschaltet werden. Auch für Clients sollte dieses Vorgehen zumindest dann in Betracht gezogen werden, wenn diese besondere Anforderungen an die Sicherheit stellen.

Paketfilter erlauben meist ein detailliertes Protokollieren des Netzverkehrs. Das Aufsetzen eines lokalen Paketfilters ist daher auch in sicheren Netzen, die mit einem Sicherheitsgateway von einem unsicheren Netz wie dem Internet getrennt sind, sinnvoll, denn gewonnen Informationen können für die Erkennung von Angriffen hilfreich sein. Allerdings muss dabei darauf geachtet werden, dass keine Datenschutzbestimmungen verletzt werden. Gegebenenfalls sollten die entsprechenden Stellen (Datenschutzbeauftragter, Belegschaftsvertretung oder andere) beteiligt werden.

Problem ICMP

Das Internet Control Message Protocol ICMP wird dazu verwendet, Nachrichten über Fehler bei der Übertragung von IP-Paketen zu übermitteln. Beispielsweise existieren Nachrichten, die dem Sender eines Pakets mitteilen, dass das Zielnetz nicht erreichbar ist oder dass das Paket zu groß war, um an das Zielsystem weitergeleitet zu werden. Die Funktion der Tools ping und traceroute beruhen ebenfalls auf ICMP.

Neben vielen nützlichen Eigenschaften gibt es jedoch einige ICMP-Nachrichtentypen, mit denen Angreifer sich wichtige Informationen über ein Netz verschaffen und diese direkt für Angriffe benutzen können. Leider ist der radikale Ansatz, ICMP grundsätzlich am Sicherheitsgateway zu blockieren, ebenfalls keine befriedigende Lösung, da bestimmte Funktionen dann nicht mehr verfügbar sind. Auf ping und traceroute kann zwar in der Regel auf normalen Arbeitsplatzrechnern und Servern verzichtet werden, eine globale Blockierung von ICMP kann aber zu Beeinträchtigungen führen, die schwer zu diagnostizieren sind. Daher sollte überlegt werden sowohl am Sicherheitsgateway, als auch beim lokalen Paketfilter eine selektive ICMP-Filterung vorzunehmen, sofern dieser die entsprechenden Möglichkeiten zur Verfügung stellt. Dies sollte stets unter der Berücksichtigung des Einsatzzweckes des Rechners (Server oder Arbeitsplatzrechner), dessen Schutzbedarfs und die am Sicherheitsgateway getroffenen Maßnahmen geschehen. Beispielsweise kann für das interne Netz eine größere Zahl von Nachrichtentypen zugelassen werden, als für das externe Netz.

Mehr Informationen zur Filterung von ICMP finden sich im Baustein B 3.301 Sicherheitsgateway (Firewall) und speziell in M 5.120 Behandlung von ICMP am Sicherheitsgateway .

Umsetzung und Überprüfung

Welche Möglichkeiten der Filterung und Protokollierung zur Verfügung stehen, unterscheidet sich je nach Betriebssystem. Vor dem Aufsetzen eines lokalen Paketfilters sollte die vorhandene Dokumentation zu Rate gezogen werden.

Bei der Einrichtung von Paketfilterregeln sollte mit großer Sorgfalt vorgegangen werden, da ein Fehler in einer Regel unter Umständen dazu führen kann, dass sich ein Administrator, der über das Netz auf dem Rechner arbeitet, auf diese Weise "aussperrt" und die Korrekturen von der Systemkonsole aus vornehmen muss.

Nach dem Aktivieren des lokalen Paketfilters sollte einerseits geprüft werden, ob die benötigten Dienste noch erreichbar sind, andererseits sollte mit einem Portscan überprüft werden, ob die restlichen Ports alle blockiert sind.

Beispiel: lokale Paketfilterregeln für einen Webserver

Im nachfolgenden Beispiel werden lokale Paketfilterregeln für einen Rechner vorgeschlagen, der als Webserver in einer DMZ aufgestellt ist. Dabei wird davon ausgegangen, dass die Administration des Servers von einem Arbeitsplatzrechner aus über eine ssh-Verbindung erfolgt und die Dateien für das Webangebot ebenfalls über eine ssh-Verbindung auf den Rechner übertragen werden.

Für den Webserver wurde die Namensauflösung per DNS abgeschaltet, daher ist kein Zugriff auf einen DNS-Server erforderlich. UDP kann daher vollständig blockiert werden. Vom Webserver aus wird normalerweise kein ping oder traceroute benötigt, sondern es wird nur der ICMP-Nachrichtentyp 3 (Destination unreachable) zugelassen. Für eine leichtere Diagnose im internen Netz können eventuell noch andere ICMP-Nachrichtentypen (beispielsweise Typ 8 und Typ 0: Echo request und Echo reply) erlaubt werden. Im Beispiel werden für das interne Netz eingehende Echo requests und ausgehende Echo replies erlaubt: Dies ermöglicht es, den Webserver aus dem internen Netz heraus "anzupingen".

Wichtig ist weiter, dass die ssh-Verbindungen nur zum Webserver hin erfolgen, und nicht von diesem ausgehen. Das gleiche gilt für Verbindungen zum TCP-Port 80, der zum Webserver-Prozess gehört: Es werden eingehende Verbindungen zu diesem Port zugelassen, aber keine ausgehenden Verbindungen. Dies bedeutet, dass prinzipiell keine ausgehenden Verbindungsanfragen (nur das TCP SYN-Flag ist gesetzt) benötigt werden, sondern dass nur ausgehende TCP-Pakete erlaubt sind, die zu einer bestehenden Verbindung gehören (das TCP ACK-Flag ist gesetzt). Das Sperren ausgehender Verbindungsanfragen dient, wie oben erläutert, dem Zweck, einen Angreifer, der sich beispielsweise über eine Sicherheitslücke im Webserver-Dienst Zugang zum Rechner verschafft hat, zumindest aufzuhalten. Der Angreifer kann diese Sperre zwar deaktivieren, sie bietet aber insbesondere dann einen zusätzlichen Sicherheitsgewinn, wenn sie mit entsprechenden Protokollierungs- und Alarmierungsfunktionen kombiniert wird.

Quell-Adresse:Port Ziel-Adresse:Port Protokoll TCP-Flags oder ICMP-Typ Entscheidung
intern:* Webserver:22 (ssh) TCP SYN oder ACK Akzeptieren
extern:* Webserver:22 TCP alle Blockieren
Webserver:22 intern:* TCP ACK Akzeptieren
alle:* Webserver:80 (http) TCP SYN oder ACK Akzeptieren
Webserver:80 alle:* TCP ACK Akzeptieren
alle Webserver, nicht 22 oder 80 TCP alle Blockieren
Webserver:* alle:* TCP ohne ACK Blockieren
alle alle UDP - Blockieren
alle Webserver ICMP Typ 3 Akzeptieren
Webserver alle ICMP Typ 3 Akzeptieren
intern Webserver ICMP Typ 8 Akzeptieren
Webserver intern ICMP Typ 0 Akzeptieren
Webserver alle ICMP andere Blockieren
alle Webserver ICMP andere Blockieren

Tabelle: Beispielkonfiguration für einen Paketfilter

In der Tabelle steht * für einen beliebigen Port.

Eine noch höhere Sicherheit kann in diesem Beispiel erreicht werden, wenn die internen Adressen, von denen aus ein Zugriff per ssh erlaubt sein soll, weiter eingeschränkt werden. Falls beispielsweise nur zwei Administratoren von ihren beiden Arbeitsplatzrechnern aus zugreifen, dann könnte der Zugriff auf die Adressen dieser beiden Rechner beschränkt werden.

Detailliertere Informationen zu Paketfiltern finden sich im Baustein B 3.301 Sicherheitsgateway (Firewall) .

Prüffragen:

  • Werden auf IT -Systemen lokale Zugrifssbeschränkungen auf Netz- und Anwendungsebene umgesetzt?

  • Ist die Sicherheitsstrategie der lokalen Firewall gemäß dem Whitelist-Verfahren restriktiv?

  • Ist für die Konfiguration eines lokalen Paketfilters eine Grundkonfiguration vorgesehen?

  • Werden Maßnahmen zur lokalen ICMP -Filterung eingesetzt?

  • Wird das lokale Firewall-Regelwerk regelmäßig überprüft?

  • Wird die Richtlinie zum Einsatz einer lokalen Firewall regelmäßig aktualisiert?

Stand: 13. EL Stand 2013