Firewall/Regelwerk: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=== Firewall-Regelwerk ===
== Firewall-Regelwerk ==
In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine [http://de.wikipedia.org/wiki/Firewall Firewall] erlaubt und welcher [http://de.wikipedia.org/wiki/Verbot verboten] ist.  
In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine [http://de.wikipedia.org/wiki/Firewall Firewall] erlaubt und welcher [http://de.wikipedia.org/wiki/Verbot verboten] ist.
* Die Methode basiert auf [http://de.wikipedia.org/wiki/Mandatory_Access_Control Mandatory Access Control]: Je nach Absender, Zustelladresse, Protokoll und Sendevorgang erlaubte Datenpakete dürfen passieren (engl.  
* Die Methode basiert auf [http://de.wikipedia.org/wiki/Mandatory_Access_Control Mandatory Access Control]: Je nach Absender, Zustelladresse, Protokoll und Sendevorgang erlaubte Datenpakete dürfen passieren (engl.
* pass), verbotene werden abgelehnt (deny, reject) oder verworfen (drop).  
* pass), verbotene werden abgelehnt (deny, reject) oder verworfen (drop).
* Dieser Schutzmechanismus ist selbst Ziel etlicher spezifischer Angriffsmöglichkeiten.
* Dieser Schutzmechanismus ist selbst Ziel etlicher spezifischer Angriffsmöglichkeiten.


=== Grundlagen  ===
== Grundlagen  ==
Die Regeln werden für jedes Paket (bei [http://de.wikipedia.org/wiki/Stateful_Packet_Inspection Stateful Firewalls] für jede neue Verbindung) der Reihe nach geprüft, und die erste zutreffende Regel wird angewendet.  
Die Regeln werden für jedes Paket (bei [http://de.wikipedia.org/wiki/Stateful_Packet_Inspection Stateful Firewalls] für jede neue Verbindung) der Reihe nach geprüft, und die erste zutreffende Regel wird angewendet.
* Die [http://de.wikipedia.org/wiki/Reihenfolge Reihenfolge] der Regeln ist daher relevant.  
* Die [http://de.wikipedia.org/wiki/Reihenfolge Reihenfolge] der Regeln ist daher relevant.
* Eine Firewall-Regel setzt sich meist aus sechs Komponenten zusammen:# Absender-[http://de.wikipedia.org/wiki/IP-Adresse IP-Adresse] (auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
* Eine Firewall-Regel setzt sich meist aus sechs Komponenten zusammen:# Absender-[http://de.wikipedia.org/wiki/IP-Adresse IP-Adresse] (auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
# [http://de.wikipedia.org/wiki/Zielmarke Ziel]-IP-Adresse
# [http://de.wikipedia.org/wiki/Zielmarke Ziel]-IP-Adresse
Zeile 15: Zeile 15:
# [http://de.wikipedia.org/wiki/Logdatei Protokollieren] (engl. "log") ja/nein
# [http://de.wikipedia.org/wiki/Logdatei Protokollieren] (engl. "log") ja/nein


Eine weitere mögliche Komponente ist bei TCP die Inspektion der [http://de.wikipedia.org/wiki/Transmission_Control_Protocol#Verbindungsaufbau Control-Flags].  
Eine weitere mögliche Komponente ist bei TCP die Inspektion der [http://de.wikipedia.org/wiki/Transmission_Control_Protocol#Verbindungsaufbau Control-Flags].
* Durch die Kontrolle des ACK-Flags ist es möglich, einen Verbindungsaufbau nur in eine Richtung zuzulassen, so kann beispielsweise in Kombination mit einer Portregel ein Angreifer [http://de.wikipedia.org/wiki/Secure_Shell SSH] nicht verwenden.
* Durch die Kontrolle des ACK-Flags ist es möglich, einen Verbindungsaufbau nur in eine Richtung zuzulassen, so kann beispielsweise in Kombination mit einer Portregel ein Angreifer [http://de.wikipedia.org/wiki/Secure_Shell SSH] nicht verwenden.


Manche Firewall-Systeme bieten darüber hinaus noch die Möglichkeit, einzelne Regeln zu kommentieren oder zeitabhängig zu aktivieren.  
Manche Firewall-Systeme bieten darüber hinaus noch die Möglichkeit, einzelne Regeln zu kommentieren oder zeitabhängig zu aktivieren.
* Eine Möglichkeit des Kommentierens von Regeln, IP-Adressen und [http://de.wikipedia.org/wiki/Dienst Diensten] ist sehr nützlich, um unbenutzte Regeln oder Teile davon identifizieren und löschen zu können.  
* Eine Möglichkeit des Kommentierens von Regeln, IP-Adressen und [http://de.wikipedia.org/wiki/Dienst Diensten] ist sehr nützlich, um unbenutzte Regeln oder Teile davon identifizieren und löschen zu können.
* Denn das Aufräumen eines unübersichtlich gewordenen Regelwerks nach der Methode [http://de.wikipedia.org/wiki/Versuch_und_Irrtum Versuch und Irrtum] ist auf einer produktiven Firewall praktisch unmöglich.
* Denn das Aufräumen eines unübersichtlich gewordenen Regelwerks nach der Methode [http://de.wikipedia.org/wiki/Versuch_und_Irrtum Versuch und Irrtum] ist auf einer produktiven Firewall praktisch unmöglich.


Die Port-Nummer hat nur beschränkt Einfluss darauf, welcher Dienst tatsächlich über diese Regel laufen darf.  
Die Port-Nummer hat nur beschränkt Einfluss darauf, welcher Dienst tatsächlich über diese Regel laufen darf.
* Es ist beispielsweise technisch möglich, eine SSH-Verbindung so zu konfigurieren, dass sie statt über ihren Standardport TCP 22 über TCP 80 für HTTP läuft.  
* Es ist beispielsweise technisch möglich, eine SSH-Verbindung so zu konfigurieren, dass sie statt über ihren Standardport TCP 22 über TCP 80 für HTTP läuft.
* Dies kann nur eine [http://de.wikipedia.org/wiki/Firewall#Application_Layer_Firewall_.2F_Proxy_Firewall Application Layer Firewall] verhindern.
* Dies kann nur eine [http://de.wikipedia.org/wiki/Firewall#Application_Layer_Firewall_.2F_Proxy_Firewall Application Layer Firewall] verhindern.


Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z. B.  
Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z. B.
* könnte eine Gruppe „Maildienste“ die Mitglieder SMTP, POP3 und IMAP haben.  
* könnte eine Gruppe „Maildienste“ die Mitglieder SMTP, POP3 und IMAP haben.
* Eine andere Möglichkeit der Definition von IP-Adressen und Portnummern sind Zahlenbereiche, z. B. 10.0.0.30–10.0.0.40 oder Port 135–139.  
* Eine andere Möglichkeit der Definition von IP-Adressen und Portnummern sind Zahlenbereiche, z. B. 10.0.0.30–10.0.0.40 oder Port 135–139.
* Bei IP-Adressen ist dies in der Verarbeitung allerdings langsamer, als Netzbereiche mit [http://de.wikipedia.org/wiki/Netzmaske Netzmaske] anzugeben.
* Bei IP-Adressen ist dies in der Verarbeitung allerdings langsamer, als Netzbereiche mit [http://de.wikipedia.org/wiki/Netzmaske Netzmaske] anzugeben.


==== Verwerfen, Ablehnen und Erlauben  ====
=== Verwerfen, Ablehnen und Erlauben  ===
Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll, welches in das Muster eines Filters passt.  
Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll, welches in das Muster eines Filters passt.
* Es wird zwischen den folgenden Aktionen unterschieden, die je nach Produkt unterschiedlich betitelt sein können:
* Es wird zwischen den folgenden Aktionen unterschieden, die je nach Produkt unterschiedlich betitelt sein können:


===== DENY oder DROP (Verwerfen)  =====
==== DENY oder DROP (Verwerfen)  ====
Das Paket wird verworfen, also nicht durchgelassen, ohne weiter darauf zu reagieren.  
Das Paket wird verworfen, also nicht durchgelassen, ohne weiter darauf zu reagieren.
* Der Absender erhält keine Nachricht darüber, dass sein Verbindungsversuch blockiert wurde.  
* Der Absender erhält keine Nachricht darüber, dass sein Verbindungsversuch blockiert wurde.
* Der Nachteil des Verwerfens ist, dass der Sender erst nach einem Timeout von dem missglückten Verbindungsversuch erfährt.
* Der Nachteil des Verwerfens ist, dass der Sender erst nach einem Timeout von dem missglückten Verbindungsversuch erfährt.


Probleme bereitet dies mit dem [http://de.wikipedia.org/wiki/Ident Ident]-Protokoll, das oft zusammen mit [http://de.wikipedia.org/wiki/Internet_Relay_Chat IRC] und selten noch mit [http://de.wikipedia.org/wiki/Simple_Mail_Access_Protocol SMTP] eingesetzt wird.  
Probleme bereitet dies mit dem [http://de.wikipedia.org/wiki/Ident Ident]-Protokoll, das oft zusammen mit [http://de.wikipedia.org/wiki/Internet_Relay_Chat IRC] und selten noch mit [http://de.wikipedia.org/wiki/Simple_Mail_Access_Protocol SMTP] eingesetzt wird.
* Das Netzwerk wird durch zusätzliche Anfragen belastet, weil die Clients keine explizite Ablehnung erhalten und weiterhin versuchen, die Verbindung aufzubauen.  
* Das Netzwerk wird durch zusätzliche Anfragen belastet, weil die Clients keine explizite Ablehnung erhalten und weiterhin versuchen, die Verbindung aufzubauen.
* Zudem fällt das Debuggen, also die Suche nach Fehlerursachen, in einem Netz schwer, wenn die Systeme auf eine Anfrage nicht reagieren, statt eine Statusmeldung zurückzuschicken.
* Zudem fällt das Debuggen, also die Suche nach Fehlerursachen, in einem Netz schwer, wenn die Systeme auf eine Anfrage nicht reagieren, statt eine Statusmeldung zurückzuschicken.


===== REJECT (Ablehnen)  =====
==== REJECT (Ablehnen)  ====
Das Paket wird verworfen und dem Absender wird mitgeteilt, dass die Verbindung abgelehnt wurde.  
Das Paket wird verworfen und dem Absender wird mitgeteilt, dass die Verbindung abgelehnt wurde.
* Generell entspricht das eher dem Standard bei der Kommunikation zwischen Netzwerkkomponenten.  
* Generell entspricht das eher dem Standard bei der Kommunikation zwischen Netzwerkkomponenten.
* Die Mitteilung erfolgt entweder über [http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]-Unreachable oder bei [http://de.wikipedia.org/wiki/Transmission_Control_Protocol TCP] mit einem Reset-Paket.  
* Die Mitteilung erfolgt entweder über [http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]-Unreachable oder bei [http://de.wikipedia.org/wiki/Transmission_Control_Protocol TCP] mit einem Reset-Paket.
* Das Ablehnen hat den Vorteil, dass die beschriebenen Nebenwirkungen des einfachen Verwerfens ausbleiben.
* Das Ablehnen hat den Vorteil, dass die beschriebenen Nebenwirkungen des einfachen Verwerfens ausbleiben.


Es hat aber auch den Nachteil, dass bei der Verwendung von gefälschten IP-Adressen die Firewall selbst für [http://de.wikipedia.org/wiki/Denial_of_Service Denial-of-Service]-Angriffe missbraucht werden kann, indem sie den vermeintlichen Absender mit Ablehnungspaketen belastet.  
Es hat aber auch den Nachteil, dass bei der Verwendung von gefälschten IP-Adressen die Firewall selbst für [http://de.wikipedia.org/wiki/Denial_of_Service Denial-of-Service]-Angriffe missbraucht werden kann, indem sie den vermeintlichen Absender mit Ablehnungspaketen belastet.
* Einige Firewalls besitzen Funktionen wie ICMP-Rate-Limiting, die dieser Problematik entgegenwirken.
* Einige Firewalls besitzen Funktionen wie ICMP-Rate-Limiting, die dieser Problematik entgegenwirken.


===== ALLOW oder PASS (Erlauben)  =====
==== ALLOW oder PASS (Erlauben)  ====
Die Netzwerkanfrage ist erlaubt und wird durchgelassen.  
Die Netzwerkanfrage ist erlaubt und wird durchgelassen.
* Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.  
* Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.
* bei Personal Firewalls vom eigenen Computersystem ins Netz).
* bei Personal Firewalls vom eigenen Computersystem ins Netz).


===== FORWARD oder PERMIT (Erlauben)  =====
==== FORWARD oder PERMIT (Erlauben)  ====
Die Netzwerkanfrage ist erlaubt und wird weitergeleitet, was die Möglichkeit einer Umleitung auf eine vom Administrator festgelegte Netzwerkadresse einschließt.  
Die Netzwerkanfrage ist erlaubt und wird weitergeleitet, was die Möglichkeit einer Umleitung auf eine vom Administrator festgelegte Netzwerkadresse einschließt.
* Diese Begriffe beziehen sich vorwiegend auf den eingehenden Datenverkehr (also vom externen hin zum internen Netz, bzw.  
* Diese Begriffe beziehen sich vorwiegend auf den eingehenden Datenverkehr (also vom externen hin zum internen Netz, bzw.
* bei Personal Firewalls auf Anfragen aus dem Netz).
* bei Personal Firewalls auf Anfragen aus dem Netz).


==== Sicherheitsgrundsätze  ====
=== Sicherheitsgrundsätze  ===
Das ideale Regelwerk einer Firewall ist immer so aufgebaut, dass grundsätzlich jeder Netzwerk-Verkehr verboten ist und die erwünschten Verbindungen erlaubt werden ("Whitelist"-Strategie).  
Das ideale Regelwerk einer Firewall ist immer so aufgebaut, dass grundsätzlich jeder Netzwerk-Verkehr verboten ist und die erwünschten Verbindungen erlaubt werden ("Whitelist"-Strategie).
* Die andere Variante, nur unerwünschten Verkehr zu verbieten und alles andere zu erlauben, kann im schnellen Wandel der IT-Welt niemals als sicher betrachtet werden.  
* Die andere Variante, nur unerwünschten Verkehr zu verbieten und alles andere zu erlauben, kann im schnellen Wandel der IT-Welt niemals als sicher betrachtet werden.
* Die Absender- und Ziel-Adressen werden in der Regel immer numerisch und nicht als [http://de.wikipedia.org/wiki/Domain_Name_System DNS]-Name angegeben, um zu verhindern, dass ein Angreifer durch Änderungen im DNS auf das Regelwerk Einfluss nehmen kann.
* Die Absender- und Ziel-Adressen werden in der Regel immer numerisch und nicht als [http://de.wikipedia.org/wiki/Domain_Name_System DNS]-Name angegeben, um zu verhindern, dass ein Angreifer durch Änderungen im DNS auf das Regelwerk Einfluss nehmen kann.


==== Protokolle ("logging")  ====
=== Protokolle ("logging")  ===
Protokolldateien (umgangsspr: [http://de.wikipedia.org/wiki/Logdatei Logdateien]) dienen der Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche.  
Protokolldateien (umgangsspr: [http://de.wikipedia.org/wiki/Logdatei Logdateien]) dienen der Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche.
* Die Protokollierung kann auf der Firewall selbst erfolgen, wenn diese eine eingebaute Festplatte hat, oder auf einem entfernten "Log-Host".  
* Die Protokollierung kann auf der Firewall selbst erfolgen, wenn diese eine eingebaute Festplatte hat, oder auf einem entfernten "Log-Host".
* In diesem Falle kommen teils proprietärere Protokolle oder [http://de.wikipedia.org/wiki/Syslog Syslog] zum Einsatz.
* In diesem Falle kommen teils proprietärere Protokolle oder [http://de.wikipedia.org/wiki/Syslog Syslog] zum Einsatz.


Müssen die Log-Dateien [http://de.wikipedia.org/wiki/Revisionssicherheit revisionssicher] aufbewahrt werden, empfiehlt sich ein System, das einen Log-Host benutzt und für den Fehlerfall lokal protokollieren kann.  
Müssen die Log-Dateien [http://de.wikipedia.org/wiki/Revisionssicherheit revisionssicher] aufbewahrt werden, empfiehlt sich ein System, das einen Log-Host benutzt und für den Fehlerfall lokal protokollieren kann.
* Für die Auswertung von Log-Dateien ist es sehr hilfreich, wenn jeder Regel eine einzigartige Nummer zugewiesen werden kann, damit die Einträge den entsprechenden Regeln zugeordnet werden können.
* Für die Auswertung von Log-Dateien ist es sehr hilfreich, wenn jeder Regel eine einzigartige Nummer zugewiesen werden kann, damit die Einträge den entsprechenden Regeln zugeordnet werden können.


Manche Firewalls loggen jedes einzelne Netzwerkpaket, andere erstellen einen Log-Eintrag pro Verbindung.  
Manche Firewalls loggen jedes einzelne Netzwerkpaket, andere erstellen einen Log-Eintrag pro Verbindung.
* Grundsätzlich protokolliert eine Firewall alle Verbindungen.  
* Grundsätzlich protokolliert eine Firewall alle Verbindungen.
* Ausnahmen werden nur gemacht, wenn einzelne Regeln so viele Logeinträge produzieren, dass es zu technischen Problemen oder Geschwindigkeitseinbußen kommt.  
* Ausnahmen werden nur gemacht, wenn einzelne Regeln so viele Logeinträge produzieren, dass es zu technischen Problemen oder Geschwindigkeitseinbußen kommt.
* Dies kann z. B.  
* Dies kann z. B.
* bei [http://de.wikipedia.org/wiki/Denial_of_Service Denial of Service]-Angriffen passieren oder wenn [http://de.wikipedia.org/wiki/Computerwurm Würmer] im Netzwerk aktiv sind.  
* bei [http://de.wikipedia.org/wiki/Denial_of_Service Denial of Service]-Angriffen passieren oder wenn [http://de.wikipedia.org/wiki/Computerwurm Würmer] im Netzwerk aktiv sind.
* Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.
* Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.


==== Stealth-Regel  ====
=== Stealth-Regel  ===
Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.  
Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.
* Da die Reihenfolge der Regeln relevant ist, müssen davor noch die [http://de.wikipedia.org/wiki/Administrator_%28Rolle%29 Administrations]-Dienste für die Firewall erlaubt werden, damit diese Pakete nicht auch verworfen werden.  
* Da die Reihenfolge der Regeln relevant ist, müssen davor noch die [http://de.wikipedia.org/wiki/Administrator_%28Rolle%29 Administrations]-Dienste für die Firewall erlaubt werden, damit diese Pakete nicht auch verworfen werden.
* Warum eine Stealth-Regel notwendig ist, wird aus folgendem Beispiel ersichtlich:* Die Firewall hat auf einem Interface die IP-Adresse 10.0.0.1
* Warum eine Stealth-Regel notwendig ist, wird aus folgendem Beispiel ersichtlich:* Die Firewall hat auf einem Interface die IP-Adresse 10.0.0.1
* Es gibt eine Regel, die allen Firmen-PCs [http://de.wikipedia.org/wiki/Secure_Shell SSH]-Verbindungen zu den Servern im Netz 10.0.0.0/24 erlaubt.
* Es gibt eine Regel, die allen Firmen-PCs [http://de.wikipedia.org/wiki/Secure_Shell SSH]-Verbindungen zu den Servern im Netz 10.0.0.0/24 erlaubt.
Zeile 91: Zeile 91:
Da 10.0.0.1 auch ein Teil des Netzes 10.0.0.0/24 ist, dürften alle PCs in diesem Netz auf den SSH-Port der Firewall zugreifen, was die Firewall für Innentäter angreifbarer machen würde.
Da 10.0.0.1 auch ein Teil des Netzes 10.0.0.0/24 ist, dürften alle PCs in diesem Netz auf den SSH-Port der Firewall zugreifen, was die Firewall für Innentäter angreifbarer machen würde.


==== ICMP-Regeln  ====
=== ICMP-Regeln  ===
[http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP] dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen, kann aber auch für Angriffe im Netzwerk missbraucht werden.  
[http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP] dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen, kann aber auch für Angriffe im Netzwerk missbraucht werden.
* Da die rigorose Methode, ICMP entweder ganz zu blockieren oder stets zu erlauben, zuviele Probleme verursachen würde, empfehlen Fachleute, die folgenden Typen freizuschalten:* ICMP Unreachable
* Da die rigorose Methode, ICMP entweder ganz zu blockieren oder stets zu erlauben, zuviele Probleme verursachen würde, empfehlen Fachleute, die folgenden Typen freizuschalten:* ICMP Unreachable
* ICMP Unreachable, Fragmentation Needed (wird verwendet von [http://de.wikipedia.org/wiki/Path_MTU_Discovery Path MTU Discovery])
* ICMP Unreachable, Fragmentation Needed (wird verwendet von [http://de.wikipedia.org/wiki/Path_MTU_Discovery Path MTU Discovery])
Zeile 98: Zeile 98:
* ICMP Echo Request (ausgehend, wird benutzt von [http://de.wikipedia.org/wiki/Ping_%28Datenübertragung%29 Ping])
* ICMP Echo Request (ausgehend, wird benutzt von [http://de.wikipedia.org/wiki/Ping_%28Datenübertragung%29 Ping])


Alle anderen ICMP-Typen werden nur nach Bedarf freigeschaltet, bei einer Firewall ins Internet restriktiver als bei einer zwischen zwei internen Netzen.  
Alle anderen ICMP-Typen werden nur nach Bedarf freigeschaltet, bei einer Firewall ins Internet restriktiver als bei einer zwischen zwei internen Netzen.
* Wegen des Missbrauchpotenzials ist der Typ ICMP-Redirect in der Regel gesperrt.  
* Wegen des Missbrauchpotenzials ist der Typ ICMP-Redirect in der Regel gesperrt.
* Die Nachricht "ICMP Echo Request" eingehend zu erlauben erleichtert Außenstehenden zwar die Fehlersuche, ermöglicht [http://de.wikipedia.org/wiki/Cracker_%28Computer%29 Crackern] aber auch das Auskundschaften des Netzes.  
* Die Nachricht "ICMP Echo Request" eingehend zu erlauben erleichtert Außenstehenden zwar die Fehlersuche, ermöglicht [http://de.wikipedia.org/wiki/Cracker_%28Computer%29 Crackern] aber auch das Auskundschaften des Netzes.
* Außerdem gibt es auch in "ICMP Echo" immer wieder [http://de.wikipedia.org/wiki/Sicherheitslücke_%28Software%29 Sicherheitslücken] wie z.B. [http://de.wikipedia.org/wiki/Ping_of_Death Ping of Death] und andere.
* Außerdem gibt es auch in "ICMP Echo" immer wieder [http://de.wikipedia.org/wiki/Sicherheitslücke_%28Software%29 Sicherheitslücken] wie z.B. [http://de.wikipedia.org/wiki/Ping_of_Death Ping of Death] und andere.


Werden ICMP-Unreachable-Fragmentation-Needed-Pakete an einem Punkt der Route gefiltert, zum Beispiel durch ein einfaches „ICMP deny“, kann es zu Übertragungsproblemen kommen, wie im Artikel [http://de.wikipedia.org/wiki/Maximum_Transmission_Unit Maximum Transmission Unit] beschrieben.
Werden ICMP-Unreachable-Fragmentation-Needed-Pakete an einem Punkt der Route gefiltert, zum Beispiel durch ein einfaches „ICMP deny“, kann es zu Übertragungsproblemen kommen, wie im Artikel [http://de.wikipedia.org/wiki/Maximum_Transmission_Unit Maximum Transmission Unit] beschrieben.


==== Ausgehender Datenverkehr  ====
=== Ausgehender Datenverkehr  ===
Häufig wird die Kontrolle des ausgehenden Verkehrs vernachlässigt.  
Häufig wird die Kontrolle des ausgehenden Verkehrs vernachlässigt.
* So lassen viele Firewalls grundsätzlich ausgehenden Verkehr für alle Ports offen.  
* So lassen viele Firewalls grundsätzlich ausgehenden Verkehr für alle Ports offen.
* Damit stehen Schadprogrammen auf simple Weise Kommunikationswege offen, die vom Betreiber der Maschine gar nicht erkannt werden - Spamversand ist ein typischer Fall.
* Damit stehen Schadprogrammen auf simple Weise Kommunikationswege offen, die vom Betreiber der Maschine gar nicht erkannt werden - Spamversand ist ein typischer Fall.


Auf einer gut konfigurierten Firewall sind solche Wege gesperrt.  
Auf einer gut konfigurierten Firewall sind solche Wege gesperrt.
* Beispielsweise sollte ausgehende Mail nur über den Mailserver möglich sein; alle anderen Wege sind gesperrt (Unter Linux/Netfilter kann man ausgehende Verbindungen an eine Benutzer- oder Gruppen-ID binden).  
* Beispielsweise sollte ausgehende Mail nur über den Mailserver möglich sein; alle anderen Wege sind gesperrt (Unter Linux/Netfilter kann man ausgehende Verbindungen an eine Benutzer- oder Gruppen-ID binden).
* Dann können Schadprogramme zwar immer noch senden, fallen aber in der Log-Datei schnell auf.
* Dann können Schadprogramme zwar immer noch senden, fallen aber in der Log-Datei schnell auf.
[[Kategorie:Firewall]]
[[Kategorie:Firewall]]

Version vom 11. Dezember 2022, 17:11 Uhr

Firewall-Regelwerk

In einem Firewall-Regelwerk wird definiert, welcher Verkehr durch eine Firewall erlaubt und welcher verboten ist.

  • Die Methode basiert auf Mandatory Access Control: Je nach Absender, Zustelladresse, Protokoll und Sendevorgang erlaubte Datenpakete dürfen passieren (engl.
  • pass), verbotene werden abgelehnt (deny, reject) oder verworfen (drop).
  • Dieser Schutzmechanismus ist selbst Ziel etlicher spezifischer Angriffsmöglichkeiten.

Grundlagen

Die Regeln werden für jedes Paket (bei Stateful Firewalls für jede neue Verbindung) der Reihe nach geprüft, und die erste zutreffende Regel wird angewendet.

  • Die Reihenfolge der Regeln ist daher relevant.
  • Eine Firewall-Regel setzt sich meist aus sechs Komponenten zusammen:# Absender-IP-Adresse (auch Netzwerk-Adressen wie z. B. 192.168.0.0/24)
  1. Ziel-IP-Adresse
  2. Netzwerkprotokoll (TCP, UDP, ICMP, …)
  3. Port-Nummer (bei TCP und UDP)
  4. Aktion (erlauben, verwerfen oder ablehnen)
  5. Protokollieren (engl. "log") ja/nein

Eine weitere mögliche Komponente ist bei TCP die Inspektion der Control-Flags.

  • Durch die Kontrolle des ACK-Flags ist es möglich, einen Verbindungsaufbau nur in eine Richtung zuzulassen, so kann beispielsweise in Kombination mit einer Portregel ein Angreifer SSH nicht verwenden.

Manche Firewall-Systeme bieten darüber hinaus noch die Möglichkeit, einzelne Regeln zu kommentieren oder zeitabhängig zu aktivieren.

  • Eine Möglichkeit des Kommentierens von Regeln, IP-Adressen und Diensten ist sehr nützlich, um unbenutzte Regeln oder Teile davon identifizieren und löschen zu können.
  • Denn das Aufräumen eines unübersichtlich gewordenen Regelwerks nach der Methode Versuch und Irrtum ist auf einer produktiven Firewall praktisch unmöglich.

Die Port-Nummer hat nur beschränkt Einfluss darauf, welcher Dienst tatsächlich über diese Regel laufen darf.

  • Es ist beispielsweise technisch möglich, eine SSH-Verbindung so zu konfigurieren, dass sie statt über ihren Standardport TCP 22 über TCP 80 für HTTP läuft.
  • Dies kann nur eine Application Layer Firewall verhindern.

Bei größeren Regelwerken lässt sich die Übersichtlichkeit mit Systemen steigern, in denen sich Adressen oder Dienste in Gruppen zusammenfassen lassen, z. B.

  • könnte eine Gruppe „Maildienste“ die Mitglieder SMTP, POP3 und IMAP haben.
  • Eine andere Möglichkeit der Definition von IP-Adressen und Portnummern sind Zahlenbereiche, z. B. 10.0.0.30–10.0.0.40 oder Port 135–139.
  • Bei IP-Adressen ist dies in der Verarbeitung allerdings langsamer, als Netzbereiche mit Netzmaske anzugeben.

Verwerfen, Ablehnen und Erlauben

Die Regeln einer Firewall legen fest, was mit einem Netzwerkpaket passieren soll, welches in das Muster eines Filters passt.

  • Es wird zwischen den folgenden Aktionen unterschieden, die je nach Produkt unterschiedlich betitelt sein können:

DENY oder DROP (Verwerfen)

Das Paket wird verworfen, also nicht durchgelassen, ohne weiter darauf zu reagieren.

  • Der Absender erhält keine Nachricht darüber, dass sein Verbindungsversuch blockiert wurde.
  • Der Nachteil des Verwerfens ist, dass der Sender erst nach einem Timeout von dem missglückten Verbindungsversuch erfährt.

Probleme bereitet dies mit dem Ident-Protokoll, das oft zusammen mit IRC und selten noch mit SMTP eingesetzt wird.

  • Das Netzwerk wird durch zusätzliche Anfragen belastet, weil die Clients keine explizite Ablehnung erhalten und weiterhin versuchen, die Verbindung aufzubauen.
  • Zudem fällt das Debuggen, also die Suche nach Fehlerursachen, in einem Netz schwer, wenn die Systeme auf eine Anfrage nicht reagieren, statt eine Statusmeldung zurückzuschicken.

REJECT (Ablehnen)

Das Paket wird verworfen und dem Absender wird mitgeteilt, dass die Verbindung abgelehnt wurde.

  • Generell entspricht das eher dem Standard bei der Kommunikation zwischen Netzwerkkomponenten.
  • Die Mitteilung erfolgt entweder über ICMP-Unreachable oder bei TCP mit einem Reset-Paket.
  • Das Ablehnen hat den Vorteil, dass die beschriebenen Nebenwirkungen des einfachen Verwerfens ausbleiben.

Es hat aber auch den Nachteil, dass bei der Verwendung von gefälschten IP-Adressen die Firewall selbst für Denial-of-Service-Angriffe missbraucht werden kann, indem sie den vermeintlichen Absender mit Ablehnungspaketen belastet.

  • Einige Firewalls besitzen Funktionen wie ICMP-Rate-Limiting, die dieser Problematik entgegenwirken.

ALLOW oder PASS (Erlauben)

Die Netzwerkanfrage ist erlaubt und wird durchgelassen.

  • Diese Begriffe beziehen sich meist auf den ausgehenden Datenverkehr (also vom internen hin zum externen Netz, bzw.
  • bei Personal Firewalls vom eigenen Computersystem ins Netz).

FORWARD oder PERMIT (Erlauben)

Die Netzwerkanfrage ist erlaubt und wird weitergeleitet, was die Möglichkeit einer Umleitung auf eine vom Administrator festgelegte Netzwerkadresse einschließt.

  • Diese Begriffe beziehen sich vorwiegend auf den eingehenden Datenverkehr (also vom externen hin zum internen Netz, bzw.
  • bei Personal Firewalls auf Anfragen aus dem Netz).

Sicherheitsgrundsätze

Das ideale Regelwerk einer Firewall ist immer so aufgebaut, dass grundsätzlich jeder Netzwerk-Verkehr verboten ist und die erwünschten Verbindungen erlaubt werden ("Whitelist"-Strategie).

  • Die andere Variante, nur unerwünschten Verkehr zu verbieten und alles andere zu erlauben, kann im schnellen Wandel der IT-Welt niemals als sicher betrachtet werden.
  • Die Absender- und Ziel-Adressen werden in der Regel immer numerisch und nicht als DNS-Name angegeben, um zu verhindern, dass ein Angreifer durch Änderungen im DNS auf das Regelwerk Einfluss nehmen kann.

Protokolle ("logging")

Protokolldateien (umgangsspr: Logdateien) dienen der Nachvollziehbarkeit des Netzwerkverkehrs und der Fehlersuche.

  • Die Protokollierung kann auf der Firewall selbst erfolgen, wenn diese eine eingebaute Festplatte hat, oder auf einem entfernten "Log-Host".
  • In diesem Falle kommen teils proprietärere Protokolle oder Syslog zum Einsatz.

Müssen die Log-Dateien revisionssicher aufbewahrt werden, empfiehlt sich ein System, das einen Log-Host benutzt und für den Fehlerfall lokal protokollieren kann.

  • Für die Auswertung von Log-Dateien ist es sehr hilfreich, wenn jeder Regel eine einzigartige Nummer zugewiesen werden kann, damit die Einträge den entsprechenden Regeln zugeordnet werden können.

Manche Firewalls loggen jedes einzelne Netzwerkpaket, andere erstellen einen Log-Eintrag pro Verbindung.

  • Grundsätzlich protokolliert eine Firewall alle Verbindungen.
  • Ausnahmen werden nur gemacht, wenn einzelne Regeln so viele Logeinträge produzieren, dass es zu technischen Problemen oder Geschwindigkeitseinbußen kommt.
  • Dies kann z. B.
  • bei Denial of Service-Angriffen passieren oder wenn Würmer im Netzwerk aktiv sind.
  • Eine Möglichkeit, dies zu vermeiden, ist eine eigene Regel für diese Wurmangriffe, welche nicht protokolliert werden.

Stealth-Regel

Eine "Stealth"-Regel (deutsch etwa: „heimliche Regel“ oder „listige Regel“) dient dem Eigenschutz der Firewall und verbietet alle Verbindungen zu ihr selbst.

  • Da die Reihenfolge der Regeln relevant ist, müssen davor noch die Administrations-Dienste für die Firewall erlaubt werden, damit diese Pakete nicht auch verworfen werden.
  • Warum eine Stealth-Regel notwendig ist, wird aus folgendem Beispiel ersichtlich:* Die Firewall hat auf einem Interface die IP-Adresse 10.0.0.1
  • Es gibt eine Regel, die allen Firmen-PCs SSH-Verbindungen zu den Servern im Netz 10.0.0.0/24 erlaubt.

Da 10.0.0.1 auch ein Teil des Netzes 10.0.0.0/24 ist, dürften alle PCs in diesem Netz auf den SSH-Port der Firewall zugreifen, was die Firewall für Innentäter angreifbarer machen würde.

ICMP-Regeln

ICMP dient im Netzwerk zum Austausch von Fehler- und Informationsmeldungen, kann aber auch für Angriffe im Netzwerk missbraucht werden.

  • Da die rigorose Methode, ICMP entweder ganz zu blockieren oder stets zu erlauben, zuviele Probleme verursachen würde, empfehlen Fachleute, die folgenden Typen freizuschalten:* ICMP Unreachable
  • ICMP Unreachable, Fragmentation Needed (wird verwendet von Path MTU Discovery)
  • ICMP Time Exceeded in Transit (TTL expired in transit bei traceroute unter UNIX und tracert unter Windows)
  • ICMP Echo Request (ausgehend, wird benutzt von Ping)

Alle anderen ICMP-Typen werden nur nach Bedarf freigeschaltet, bei einer Firewall ins Internet restriktiver als bei einer zwischen zwei internen Netzen.

  • Wegen des Missbrauchpotenzials ist der Typ ICMP-Redirect in der Regel gesperrt.
  • Die Nachricht "ICMP Echo Request" eingehend zu erlauben erleichtert Außenstehenden zwar die Fehlersuche, ermöglicht Crackern aber auch das Auskundschaften des Netzes.
  • Außerdem gibt es auch in "ICMP Echo" immer wieder Sicherheitslücken wie z.B. Ping of Death und andere.

Werden ICMP-Unreachable-Fragmentation-Needed-Pakete an einem Punkt der Route gefiltert, zum Beispiel durch ein einfaches „ICMP deny“, kann es zu Übertragungsproblemen kommen, wie im Artikel Maximum Transmission Unit beschrieben.

Ausgehender Datenverkehr

Häufig wird die Kontrolle des ausgehenden Verkehrs vernachlässigt.

  • So lassen viele Firewalls grundsätzlich ausgehenden Verkehr für alle Ports offen.
  • Damit stehen Schadprogrammen auf simple Weise Kommunikationswege offen, die vom Betreiber der Maschine gar nicht erkannt werden - Spamversand ist ein typischer Fall.

Auf einer gut konfigurierten Firewall sind solche Wege gesperrt.

  • Beispielsweise sollte ausgehende Mail nur über den Mailserver möglich sein; alle anderen Wege sind gesperrt (Unter Linux/Netfilter kann man ausgehende Verbindungen an eine Benutzer- oder Gruppen-ID binden).
  • Dann können Schadprogramme zwar immer noch senden, fallen aber in der Log-Datei schnell auf.