Grundlegendes zu zustandsbehafteten und zustandslosen Firewalls für die zustandsbehaftete Protokollprüfung
Firewalls sind seit sehr langer Zeit ein grundlegender Bestandteil der Cybersicherheitsstrategie von Unternehmen. Sie haben im Laufe der Jahre massive Ergänzungen und Verbesserungen von Produktfunktionen durchlaufen. Eine Besonderheit aus dem Jahr 1994 ist die Stateful Inspection.
Was ist eine Stateful Inspection?
Eine zustandsbehaftete Überprüfung, auch bekannt als dynamische Paketfilterung, liegt vor, wenn eine Firewall Datenpakete basierend auf dem STATE und CONTEXT von Netzwerkverbindungen filtert. Schauen wir uns an, was "Zustand" und "Kontext" für eine Netzwerkverbindung bedeuten.
Zustand
Lassen Sie uns die TCP-basierte Kommunikation des Netzwerkprotokolls zwischen zwei Endpunkten verwenden, um den Status der Verbindung zu verstehen. In TCP werden die vier Bits (SYN, ACK, RST, FIN) von den neun zuweisbaren Steuerbits verwendet, um den Zustand der Verbindung zu steuern. Firewalls können Richtlinien basierend auf diesem Verbindungsstatus anwenden. Sie müssen jedoch auch alle übrig gebliebenen, erneut übertragenen oder verzögerten Pakete berücksichtigen, die nach dem Beenden der Verbindung durch das Paket geleitet werden.
Schauen wir uns ein vereinfachtes Beispiel für die Zustandsverfolgung in Firewalls an:
- Wenn eine Clientanwendung eine Verbindung mithilfe eines Drei-Wege-Handshakes initiiert, legt der TCP-Stack das SYN-Flag fest, um den Start der Verbindung anzuzeigen. Dieses Flag wird von der Firewall verwendet, um eine NEUE Verbindung anzuzeigen.
- Der Server antwortet auf die Verbindung, indem er ein SYN + ACK sendet, woraufhin die Firewall Pakete von beiden Seiten gesehen hat und ihren internen Verbindungsstatus auf ESTABLISHED hochstuft. Aus TCP-Sicht ist die Verbindung jedoch noch nicht vollständig hergestellt, bis der Client eine Antwort mit ACK sendet.
- Wenn eine Firewall ein RST- oder FIN+ACK-Paket erkennt, markiert sie den Verbindungsstatus zum Löschen, und alle zukünftigen Pakete für diese Verbindung werden verworfen.
Pseudo-Zustand
Nicht alle Netzwerkprotokolle verfügen über einen Zustand wie TCP. UDP zum Beispiel ist ein sehr häufig verwendetes Protokoll, das von Natur aus zustandslos ist. Anwendungen, die dieses Protokoll verwenden, behalten den Zustand entweder mithilfe der Anwendungslogik bei, oder sie können ohne dieses Protokoll arbeiten. Einige beliebte Anwendungen, die UDP verwenden, sind DNS, TFTP, SNMP, RIP, DHCP usw.
Die heutige Stateful Firewall erstellt einen "Pseudo-Zustand" für diese Protokolle. Wenn eine Firewall beispielsweise ein ausgehendes Paket, wie z. B. eine DNS-Anforderung, erkennt, erstellt sie einen Eintrag mit der IP-Adresse und dem Port der Quelle und des Ziels. Anschließend werden diese Verbindungsdaten zusammen mit den Verbindungszeitüberschreitungsdaten verwendet, damit das eingehende Paket, z. B. DNS, antworten kann.
Context
Der Kontext einer Verbindung umfasst die Metadaten, die mit Paketen verknüpft sind, wie z. B.:
- IP-Adresse und Port von Quell- und Zielendpunkten
- Zeit des letzten Paketempfangs für den Umgang mit inaktiven Verbindungen
- Paketlänge
- Layer-4-TCP-Sequenznummern und -Flags
- Layer-3-Daten im Zusammenhang mit Fragmentierung und Reassemblierung zur Identifizierung der Sitzung für das fragmentierte Paket usw.
Zustandsbehaftete vs. zustandslose Inspektion
Der Hauptunterschied zwischen einer Stateful Firewall und einer Stateless Firewall besteht darin, dass eine Stateful Firewall den gesamten Kontext des Datenverkehrs und der Datenpakete analysiert und dabei ständig den Zustand der Netzwerkverbindungen verfolgt (hense "stateful"). Eine zustandslose Firewall analysiert stattdessen Datenverkehr und Datenpakete, ohne dass der vollständige Kontext der Verbindung erforderlich ist.
Werfen wir nun einen genaueren Blick auf Stateful vs. Stateless Inspection Firewalls.
Zustandslose Firewalls
Wie funktioniert eine zustandslose Firewall?
Anhand von Abbildung 1 können wir das Innenleben einer zustandslosen Firewall verstehen. Eine zustandslose Firewall wendet die Sicherheitsrichtlinie auf eingehende oder ausgehende Datenverkehrsdaten (1) an, indem sie die Protokollheader des Pakets überprüft. Es wird von OSI-Schicht 2 bis 4 untersucht. Nach der Überprüfung vergleicht eine zustandslose Firewall diese Informationen mit der Richtlinientabelle (2). Von dort aus entscheidet es über die Richtlinienaktion (4.a und 4.b): das Paket zuzulassen, zu verweigern oder zurückzusetzen.

Abbildung 1: Flussdiagramm mit Richtlinienentscheidungen für eine zustandslose Firewall
Was sind die Vorteile einer zustandslosen Firewall?
- Weniger ressourcenintensiv: Die Richtliniensuche wird für statische Paketdaten und Richtlinientabellen durchgeführt, sodass die Menge an CPU- und Arbeitsspeicherressourcen, die für die Suche erforderlich sind, gering ist. Dies ist effektiv für Geräte mit statischer Richtliniensuche wie Router und Switches, die Funktionen wie Zugriffssteuerungslisten (Access Control Lists, ACLs) verwenden.
- Keine erhöhte Latenz: Die zusätzliche Verarbeitung fügt keine bis minimale Overhead-Latenz oder einfache Begriffe für die Verarbeitung der Leitungsgeschwindigkeit der Pakete hinzu.
Was sind die Nachteile einer zustandslosen Firewall?
- Eingeschränkte Filterung: Eine zustandslose Firewall stützt ihre Entscheidung nur auf Daten mit geringer Genauigkeit aus der Firewall, die nur begrenzte Filterfunktionen bieten.
- ACL-Konfiguration:Das Konfigurieren und Verwalten der ACLs auf diesen Geräten ist im kleinen Maßstab fehleranfällig und im großen Maßstab fast unmöglich.
Lassen Sie mich die Herausforderungen bei der Konfiguration und Verwaltung von ACLs in kleinem und großem Maßstab erläutern. Nehmen wir zunächst den Fall der Bereitstellung in kleinem Maßstab.
- Zustandslose Firewalls sind unidirektional, da sie Richtlinienentscheidungen treffen, indem sie den Inhalt des aktuellen Pakets überprüfen, unabhängig davon, zu welchem Fluss die Pakete gehören. Um eine Richtlinie genau zu schreiben, müssen beide Seiten der Verbindung für ein bidirektionales Kommunikationsprotokoll wie TCP auf die Whitelist gesetzt werden. Das Schreiben von zwei Regeln für die Überwachung einer Verbindung wird problematisch.
- Stellen Sie sich nun ein Protokoll wie FTP vor, bei dem es für jede Transaktion zwei Verbindungssätze gibt und die Datenverbindung einen unbekannten, wenn auch ausgehandelten Port für die Verbindungszeit haben kann, es gibt keine Möglichkeit, dass eine zustandslose Firewall dies auf die Whitelist setzen kann. Diese Unfähigkeit, Richtlinien für alle Anwendungen zu schreiben, führt zu einer großen Sicherheitslücke.
- Ein weiterer Anwendungsfall kann sein, dass ein interner Host die Verbindung zum externen Internet herstellt. Wie erstellen Sie eine Richtlinie mithilfe der ACL, um den gesamten Antwortdatenverkehr zuzulassen? Dieses Tool wurde nicht für feinere Richtlinienkontrollen entwickelt und ist für ein Mikrosegmentierungs-Framework , bei dem die Richtlinien sehr feinkörnig und richtungsweisend sind, nicht von großem Nutzen.
Kommen wir nun zu dem groß angelegten Problem.
- Stellen wir uns für einen Moment vor, dass Sie einen Zauberstab haben, um alle im vorherigen Absatz beschriebenen Probleme zu überwinden. Selbst in diesem Fall sind die Ressourcen wie TCAM (ternärer inhaltsadressierbarer Speicher) auf dem Switch oder der Router-Hardware so begrenzt, dass Sie in einer Größenordnung aufgrund der Erschöpfung des TCAM-Speicherplatzes keine Richtlinie für Ihre gesamte Anwendung schreiben können.
- Selbst bei einer nicht-hardwarebasierten Implementierung verursacht die Anzahl der ACLs viele Probleme. Zum Beispiel brauchte ein Produkt, mit dem ich in der Vergangenheit gearbeitet habe, dreißig oder mehr Minuten, um eine effiziente Nachschlagetabelle (Richtlinientabelle in Abb. 1 oben) auf einem umfangreich konfigurierten ACL-System zu analysieren und zu erstellen. Und dieser Prozess wird jedes Mal ausgelöst, wenn eine einzelne Regel hinzugefügt oder gelöscht wird. Bedenken Sie, dass Sie so viele Ausfallzeiten und Auswirkungen auf Ihr kritisches Unternehmen für solch alltägliche Aufgaben haben.
Reflexive Firewalls, auch bekannt als reflexive ACLs
Eine reflexive ACL, auch bekannt als IP-Session-Filtering ACL, ist ein Mechanismus zum dynamischen Whitelisting des Rückgabeverkehrs. Der größte Teil des Workflows bei der Richtlinienentscheidung ähnelt der zustandslosen Firewall, mit Ausnahme des Mechanismus zum Identifizieren eines neuen Workflows und Hinzufügen eines automatisierten dynamischen zustandslosen ACL-Eintrags. Sehen wir uns die Lebensdauer eines Pakets anhand des folgenden Workflow-Diagramms an.

Abbildung 2: Flussdiagramm mit Richtlinienentscheidungen für eine reflexive ACL
Wenn eine reflexive ACL eine neue ausgehende IP-Verbindung erkennt (6 in Abb. 2), fügt sie einen dynamischen ACL-Eintrag (7) hinzu, indem sie die Quell-Ziel-IP-Adresse und den Port umkehrt. Die neue dynamische ACL ermöglicht es, den Rückverkehr anhand dieser zu validieren. In ähnlicher Weise entfernt die reflexive Firewall die dynamische ACL, wenn sie FIN-Pakete von beiden Seiten, ein RST-Paket oder eine eventuelle Zeitüberschreitung erkennt. Auf diese Weise werden beim Beenden oder Beenden der Sitzung alle zukünftigen unechten Pakete verworfen.
Was sind die Vorteile einer reflexiven Firewall?
Der einzige Vorteil einer reflexiven Firewall gegenüber einer zustandslosen Firewall ist ihre Fähigkeit, den zurückgegebenen Datenverkehr automatisch auf die Whitelist zu setzen. Auf diese Weise wird vermieden, dass die umgekehrte ACL-Regel manuell geschrieben wird.
Was sind die Nachteile einer reflexiven Firewall?
Reflexive ACLs wirken immer noch ausschließlich auf statischen Informationen innerhalb des Pakets. Der Grund dafür ist, dass sie zwar einen Fortschritt gegenüber Standard-ACLs in Bezug auf das Schreiben der Regeln für den umgekehrten Datenverkehr darstellen, es jedoch einfach ist, die reflexive ACL zu umgehen. Die reflexive Firewall weist die gleichen Mängel auf wie die zustandslose Firewall. Eine Möglichkeit, dies zu testen, wäre, das Paket so zu fragmentieren, dass die Informationen, auf die die reflexive ACL reagieren würde, auf mehrere Pakete aufgeteilt werden. Auf diese Weise kann die reflexive ACL nicht entscheiden, ob sie das einzelne Paket zulässt oder verwirft. Eine zustandsbehaftete Firewall hingegen ist in der Lage, die gesamten Fragmente, die auf mehrere Pakete aufgeteilt sind, wieder zusammenzusetzen und dann ihre Entscheidung auf STATE + CONTEXT + Paketdaten für die gesamte Sitzung zu stützen.
Der andere Nachteil von reflexiven ACLs ist die Fähigkeit, nur mit bestimmten Arten von Anwendungen zu arbeiten. Zum Beispiel: Eine sehr verbreitete Anwendung, FTP, die zum Übertragen von Dateien über das Netzwerk verwendet wird, funktioniert durch dynamisches Aushandeln von Datenports, die für die Übertragung über eine separate Verbindung auf der Steuerungsebene verwendet werden sollen. Da reflexive ACLs statisch sind, können sie nur bidirektionale Verbindungen zwischen zwei Hosts, die dasselbe Fünf-Tupel verwenden, auf die Whitelist setzen. Daher können sie keine Anwendungen wie FTP unterstützen.
Zustandsbehaftete Firewalls
Eine zustandsbehaftete Firewall wird auf den STATE und CONTEXT einer Verbindung angewendet, um die Firewallrichtlinie anzuwenden. Um das Innenleben einer zustandsbehafteten Firewall zu verstehen, sehen wir uns das folgende Flussdiagramm an.

Abbildung 3: Flussdiagramm mit Richtlinienentscheidungen für eine Stateful Firewall
Wie funktioniert eine zustandsbehaftete Firewall?
- 5-Tupel-Suche: Wenn ein Paket bei der Firewall ankommt (1 in Abb. 3), versucht es, eine Flow-Suche mit Hilfe von fünf Tupeln (Quell-IP, Quellport, Ziel-IP, Zielport, Protokoll) in einer Tabelle namens Flow oder Verbindungstabelle durchzuführen, um eine Übereinstimmung zu finden (2). Dies unterscheidet sich von der zustandslosen Firewall, bei der die 5-Tupel-Suche in der Richtlinientabelle und nicht in der Flusstabelle ausgeführt wird. Die Flow-Tabelle und die zugehörigen Tabellen, die nicht in der Abbildung dargestellt sind, enthalten den STATE+CONTEXT aller zuvor angezeigten Flows.
- Schnelle Pfad-/Datenebenenverarbeitung: Wenn ein Eintrag gefunden wird, durchläuft das Paket einen schnellen Pfad, auch bekannt als Verarbeitung auf der Datenebene. Die einfache Fast-Path-Verarbeitung umfasst Ratenprüfungen, eine Layer-3-IP-Sanitation-Prüfung, um auf Fragmentierung und Reassemblierung basierende Angriffe zu vermeiden, eine Layer-4-Sanitation-Prüfung, um Angriffe wie Spoofing, DOS usw. zu verhindern. Wenn die Firewall Layer-7-Tests durchführen kann, durchläuft sie zusätzliche Filter, die als Application Layer Gateways (ALGs) bezeichnet werden. Wenn alle Prüfungen reibungslos verlaufen, wird das Paket an den nächsten Hop (3.b) weitergeleitet.
- Langsamer Pfad / Verarbeitung des Bedienfelds: Wenn die Flow-Suche zu einem Fehler (3.a) führt, wird davon ausgegangen, dass das Paket für eine neue Verbindung bestimmt ist, und dann muss es zusätzliche Richtlinienprüfungen durchlaufen, und dieser Pfad wird als langsamer Pfad bezeichnet, auch bekannt als Verarbeitung auf Kontrollebene. Im Verarbeitungspfad der Steuerung prüft die Firewall nicht nur alles, was sie auf der Überholspur tut, sondern entscheidet auch, ob diese neue Verbindung durch die Firewall-Richtlinie zugelassen wird.
- Richtlinien-Nachschlage: Die Firewall führt dann eine Richtliniensuche durch, indem sie STATE + CONTEXT der Verbindung verwendet (5).
- Wenn eine Richtlinienübereinstimmung vorhanden ist und für diese Richtlinie eine Aktion angegeben wird, z. B. ALLOW, DENY oder RESET, wird die entsprechende Aktion ausgeführt (8.a oder 8.b). Erweiterten zustandsbehafteten Firewalls kann auch mitgeteilt werden, welche Art von Inhaltsprüfung durchgeführt werden soll. Dies wird berücksichtigt und die Firewall erstellt einen Eintrag in der Flusstabelle (9), so dass die nachfolgenden Pakete für diese Verbindung schneller verarbeitet werden können, ohne dass eine Verarbeitung auf der Kontrollebene erforderlich ist.
Was sind die Vorteile einer zustandsbehafteten Firewall?
- Höherer Schutz: Eine zustandsbehaftete Firewall bietet eine vollständige Protokollinspektion unter Berücksichtigung des STATE+-KONTEXTS des Ablaufs, wodurch zusätzliche Angriffsflächen eliminiert und das Schwachstellenmanagement in einem System verbessert wird.
- Fortgeschrittener:Eine zustandsbehaftete Firewall fungiert als Baustein für komplexere Firewalls oder Gateways auf Anwendungsebene.
- Konfigurieren der Funktion: Eine Stateful Firewall versteht den Netzwerkfluss und kann Datenpakete eines Flusses identifizieren, wodurch ein einfaches Schreiben von Regeln für bidirektionale Verbindungen oder pseudostaatliche Netzwerkprotokolle ermöglicht wird.
- Komplexe Protokolle: Da eine zustandsbehaftete Firewall tiefer in Paketnutzlasten eintauchen kann, kann sie komplexe Protokolle verstehen, die Kommunikationsport und -protokoll zur Laufzeit aushandeln, und Firewall-Richtlinien entsprechend anwenden. Denken Sie an Protokolle wie FTP, P2P-Protokolle usw.
Was sind die Nachteile einer zustandsbehafteten Firewall?
- Rechenleistung: Zustandsbehaftete Firewalls führen zusätzliche Überprüfungen durch, um mehr Sicherheit zu bieten, und diese anderen Überprüfungen erfordern mehr Rechenleistung in Bezug auf CPU-Zyklen und Arbeitsspeicher. Architekten und Entwickler von Stateful Firewalls haben über dieses Problem nachgedacht, und die meisten der neuesten Firewalls überwinden oder reduzieren dieses Problem mit hochmodernem algorithmischem Design, um die Verarbeitung auf Steuerungs- und Datenebene zu trennen – und erreichen so eine fast ähnliche Leistung bei zustandslosen Firewalls. Aber ich werde der zustandslosen Firewall hier im Vergleich zur zustandsbehafteten Firewall einen Sieg einräumen.
- Größere Angriffsfläche: Eine zustandsbehaftete Firewall kann im Vergleich zu einer zustandslosen Firewall aufgrund des größeren Speicherbedarfs der Codebasis eine größere Angriffsfläche aufweisen. Eine einfache Google-Suche liefert zahlreiche Beispiele. Wenn auch im Laufe der Zeit. Bestimmte Arten von Firewalls, wie sie in Betriebssystemen wie Linux und Windows integriert sind, wurden kampferprobt und dienen heute als zustandsbehaftete Firewalls der Enterprise-Klasse.
Conclusion
Es gibt nicht die eine perfekte Firewall. Jede Art von Firewall hat ihren Platz in einer tiefgreifenden Verteidigungsstrategie. Eine zustandslose Firewall kann an Stellen hilfreich sein, an denen eine grobkörnige Richtlinienvergabe angemessen ist, und eine zustandsbehaftete Firewall ist nützlich, wenn feinere und tiefere Richtlinienkontrollen und Netzwerksegmentierung oder Mikrosegmentierung erforderlich sind.
Heute gibt es sogar verschiedene Varianten von Firewalls zur Überprüfung des Datenverkehrs zwischen zustandsloser und zustandsbehafteter Protokollprüfung. Diese sollten bei der Auswahl einer Firewall für Ihre Umgebung beachtet werden.
Nachdem Sie nun mit dem technischen Verständnis von Statefulness ausgestattet sind, wird ich in meinem nächsten Blogbeitrag erörtern, warum Stateful Firewalling für die Mikrosegmentierung wichtig ist und warum Sie sicherstellen sollten, dass Ihr Segmentierungsanbieter dies tut.
Learn more
Für weitere Informationen zu Firewalls und anderen wichtigen Geschäftsentscheidungen in Bezug auf die Sicherheitsstrategie Ihres Unternehmens kontaktieren Sie uns.