Legend has it that in the Middle Ages, monchs raised carp to be as "round" as possible. The reason was that during Lent, one could only eat as much as fit on a plate, and the round shape of a carp gave them the most "fish per plate". But we are not here to exchange recipes. I want to talk about CARP and the network failover feature.
Catching CARP: Fishing for Firewall States in PFSync Traffic, (Wed, Jan 22nd)
AI Executive Summary & Key Takeaways
<strong>Datum:</strong> Mittwoch, 22. Januar 2025 </p>
<hr />
<h3><strong>Einleitung: CARP und PFSYNC – Grundlagen der Netzwerk-Redundanz</strong></h3>
<p>CARP (Common Address Redundancy Protocol) ist ein freier Protokollstandard, entwickelt von OpenBSD, um die IP-Adresse zwischen zwei Firewalls zu synchronisieren und eine schnelle Failover-Übertragung sicherzustellen. Dieses System ist besonders in Netzwerken mit hohem Sicherheitsanforderungen nützlich, da es verhindert, dass Dienste durch Ausfälle unterbrochen werden. PFSYNC (PFSYNC) spielt hier eine zentrale Rolle: Es ermöglicht die Synchronisation des Verbindungszustands zwischen den Firewalls, sodass der Sekundär-Server bei einem Ausfall des Primärservers automatisch die aktiven Verbindungen aufnimmt. </p>
<hr />
<h3><strong>Technische Details: Wie PFSYNC funktioniert</strong></h3>
<p>PFSYNC ist ein unicast-Protokoll (Protokollnummer 240) mit einem TTL von 255, das darauf abzielt, Spoofing-Angriffe zu verhindern. Die Datenpakete enthalten folgende Elemente:<br />
1. <strong>Version</strong>: Definiert die aktuelle Version des Protokolls (z. B. Version 5).<br />
2. <strong>Länge</strong>: Gibt die Größe des Datensatzes in Bytes an.<br />
3. <strong>MD5-Hash</strong>: Wird als Prüfsumme verwendet, um die Integrität der Daten zu überprüfen.<br />
4. <strong>Subheader</strong>: Beschreibt die nachfolgenden Nachrichten und enthält Typen und Längen von Verbindungszuständen (z. B. IP-Adressen, Ports). </p>
<p>Die Daten sind in einem Format ähnlich wie NetFlow strukturiert, wobei Informationen zu Session-Zuständen, IP-Adressen und TCP-Einstellungen (z. B. Window Scale, Sequenznummern) enthalten sind. Allerdings werden die genauen Details der Datenmenge (z. B. Gesamtverkehr) nicht im Protokoll kommuniziert. </p>
<hr />
<h3><strong>Sicherheitsaspekte: Risiken und Schutzmaßnahmen</strong></h3>
<p>PFSYNC ist in Klartext übertragen, was es für Angreifer leichter macht, den Datenstrom zu decodieren. Dies erfordert eine separate Netzwerkverbindung (z. B. VLAN oder Tunnel) zur Vermeidung von Intersektionen mit unautorisierten Netzen. Die offene Natur des Protokolls unterstreicht die Notwendigkeit von zusätzlichen Sicherheitsmaßnahmen, wie z. B. Verschlüsselung oder Firewalls, um den Datenverkehr zu schützen. </p>
<hr />
<h3><strong>Praktisches Beispiel: Analyse von PFSYNC-Daten</strong></h3>
<p>Im Beispiel wird ein Szenario beschrieben, in dem zwei Firewalls (IP-Adressen 192.0.2.2 und 192.0.2.3) Verbindungen zu DNS-Servern herstellen. Die PFSYNC-Traffic-Pakete enthalten:<br />
- <strong>Neue Zustände</strong>: Drei neue Verbindungen, die als "neu" markiert sind.<br />
- <strong>Aktualisierte Zustände</strong>: Sieben komprimierte Updates, die den aktuellen Status der Verbindungen darstellen. </p>
<p>Die Analyse solcher Daten kann mit Tools wie <code>tcpdump</code> erfolgen (z. B. auf OPNsense-Systemen), obwohl Wireshark aktuell keine Decodierung des PFSYNC-Protokolls unterstützt. </p>
<hr />
<h3><strong>Weiterführende Informationen</strong></h3>
<ol>
<li><strong>CARP-Definition</strong>: <a href="https://www.openbsd.org/faq/pf/carp.html">OpenBSD FAQ</a> </li>
<li><strong>Protokollnummer 240</strong>: <a href="https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">IANA-Beleg</a> </li>
<li><strong>PFSYNC-V5-Dokumentation</strong>: <a href="https://www.openbsd.org/papers/pfsync_v5.pdf">OpenBSD-PDF</a> </li>
</ol>
<hr />
<h3><strong>Fazit</strong></h3>
<p>PFSYNC ist ein leistungsfähiges Werkzeug zur Netzwerk-Redundanz, aber seine Klartext-Natur erfordert besondere Sicherheitsvorkehrungen. Die Analyse von PFSYNC-Daten kann wertvolle Einblicke in die Verbindungsstruktur eines Netzwerks geben – allerdings mit der Erkenntnis, dass die Daten nicht vollständig entschlüsselt werden können, ohne zusätzliche Maßnahmen. Für Fachbesucher ist ein Video zur Decodierung von PFSYNC-Paketen (z. B. im Stil „Packet Tuesday“) eine interessante Ergänzung. </p>
<hr />
<p><strong>Autor:</strong> Johannes B. Ullrich, Ph.D., Leiter der Forschung, <a href="https://www.openbsd.org/">OpenBSD-Team</a></p><!-- END: Dynamically Added Content -->
SOCIAL SHARE CARD GENERATOR