MITM-Angriff auf kabelgebundenes 802.1x mit einem Raspberry Pi

Andrea Dainese
10 March 2024
Post cover

In den letzten Jahren haben Netzwerkzugriffskontrolllösungen (NAC) auf Basis des 802.1x-Protokolls erheblichen Auftrieb erhalten. Wie alle Sicherheitslösungen ist es entscheidend, ihre Funktionalität sorgfältig zu bewerten, um sie in eine angemessene Cybersicherheitsstrategie zu integrieren.

Ich verstehe, dass diese Bewertung hochspezifisches technisches Wissen erfordert, und oft verlassen sich diejenigen, die bewerten, auf das, was in den Datenblättern beschrieben ist. Dieser Beitrag dient drei Zwecken:

  • das Bewusstsein dafür zu schärfen, dass eine falsche Bewertung einer Sicherheitslösung Organisationen Bedrohungen aussetzt;
  • die Schritte zu beschreiben, mit denen ein Bedrohungsakteur Schwachstellen in NAC-Lösungen ausnutzen kann,
  • informativ zu sein und daher auch für nicht-technische Personen verständlich zu sein.

Einleitung: NAC-Lösungen

Zunächst ist ein Überblick über NAC- oder Netzwerkzugriffskontrolllösungen erforderlich. Diese Lösungen basieren auf dem 802.1x-Protokoll, um verbundene Geräte zu authentifizieren und zu autorisieren. Einige Lösungen bewerten über zusätzliche Komponenten auch das Verhalten der Geräte, um Anomalien zu identifizieren.

Das Problem, das diese Lösungen lösen sollen, hängt mit dem unbefugten Zugriff auf Ethernet-Anschlüsse durch unbefugte Geräte zusammen. Diese Lösungen schützen insbesondere in Büros und öffentlichen Bereichen natürlicherweise zugängliche Anschlüsse.

Im Laufe der Zeit haben sich diese Lösungen weiterentwickelt, um nicht nur Geräte zu authentifizieren, sondern auch zu autorisieren und zu profilieren. Mit anderen Worten ist es möglich, Ethernet-Anschlüsse basierend auf verbundenen Geräten dynamisch zu konfigurieren. Diese Funktionalität trägt erheblich zur Verbesserung und Automatisierung des Managements großer und dynamischer Campus-Bereiche bei.

Die Geräteauthentifizierung basiert auf dem 802.1x-Protokoll: Der Switch fordert vom Gerät eine Authentifizierung an, und die Authentifizierungen werden über externe Server validiert. Die Authentifizierung kann über Benutzername und Passwort oder über Zertifikate erfolgen. Sobald das Gerät authentifiziert ist, ist der Kanal aktiv, bis die Sitzung abläuft, die dann erneuert werden muss.

Im Laufe der Zeit haben sich Lösungen weiterentwickelt, um mehrere verbundene Geräte zu unterstützen, wie zum Beispiel:

  • Telefon mit kaskadierten Computern;
  • Computer mit virtuellen Maschinen;

Allerdings gibt es in der realen Welt zahlreiche Geräte, die das 802.1x-Protokoll nicht implementieren. NAC-Lösungen haben sich weiter “entwickelt” (vielleicht wäre es korrekter zu sagen “degeneriert”), indem sie Geräte anhand ihrer MAC-Adresse authentifizieren: Diese Funktionalität wird MAB oder MAC-Adress-Bypass genannt. Es ist offensichtlich, dass der Begriff “Bypass” nicht mit einer Sicherheitsfunktion in Verbindung gebracht werden kann, und tatsächlich erinnern wir daran, dass NAC-Lösungen auch für die Automatisierung verwendet werden.

Die wichtigste Überlegung betrifft jedoch, wie eine authentifizierte Sitzung hergestellt wird. 802.1x ermöglicht die Authentifizierung des Kanals, nicht einzelner Pakete. Speziell ordnet der Switch die authentifizierte Sitzung der MAC-Adresse des Geräts zu. Ein Angreifer kann also ein bösartiges Gerät zwischen das authentifizierte Gerät und den Switch einfügen und den authentifizierten Kanal ausnutzen.

Die letzte Überlegung betrifft, was ich “stille” Geräte nenne. Damit NAC-Lösungen funktionieren, müssen verbundene Geräte 802.1x unterstützen oder mindestens ein Paket senden, um ihre MAC-Adresse dem Switch bekannt zu machen. Einige Geräte sind darauf ausgelegt, Daten zu empfangen, aber nicht zu senden, was es unmöglich macht, eine NAC-Lösung zu verwenden.

Switch-Konfiguration

Die Switch-Konfiguration sollte sorgfältig bewertet werden, um Risiken zu minimieren, die, wie wir später sehen werden, dennoch vorhanden sind.

Jeder Ethernet-Anschluss kann je nach Anbieter in verschiedenen Modi konfiguriert werden. Bei Cisco-Switches sind die Modi:

  • Multi-Host: Sobald der Port vom verbundenen Gerät authentifiziert wurde, kann jedes andere Gerät den Kanal verwenden (zum Beispiel im Fall von virtuellen Maschinen).
  • Multi-Domain: Jedes verbundene Gerät, das zu einer spezifischen VLAN gehört, muss authentifiziert werden (zum Beispiel im Fall von kaskadierten Telefonen und Computern).
  • Multi-Auth: Jede MAC-Adresse, die auf dem Ethernet-Port erscheint, muss authentifiziert werden.
  • MAB: Es erfolgt keine echte Authentifizierung, sondern nur eine Überprüfung, ob die MAC-Adresse aktiviert ist.

Wo möglich, sollte die Präferenz in folgender Reihenfolge sein: Multi-Auth, Multi-Domain, Multi-Host, MAB (Anmerkung: Definitionen hängen vom Anbieter ab, das Wichtige ist das Konzept zu verstehen).

MITM auf 802.1x

Aus der Perspektive des Angreifers bedeutet das Einfügen zwischen ein authentifiziertes Gerät und einen Switch im schlimmsten Fall, transparent zu sein. Speziell bedeutet dies, in folgender Reihenfolge:

  1. weiterleiten aller Daten zum und vom Switch, ohne Filter auf lokale Frames anzuwenden;
  2. warten auf die Authentifizierung des Kanals;
  3. senden von Daten unter Verwendung der MAC-Adresse und der IP-Adresse des authentifizierten Geräts.

Es gibt zwei mögliche Wege, das oben Gesagte umzusetzen:

  1. aufbau eines Software-Switches, der im Benutzerbereich läuft, was wahrscheinlich zu weniger optimaler Leistung führt;
  2. nutzung von Komponenten, die von Linux angeboten werden, und damit Arbeiten im Kernel-Bereich mit besserer 3. leistung, wenn auch mit einigen Einschränkungen.

In Bezug auf den zweiten Ansatz übersetzen sich die drei Schritte operativ in:

  1. kompilieren eines benutzerdefinierten Kernels, damit alle Frames über Linux Bridge weitergeleitet werden;
  2. lesen der MAC-Adresse des verbundenen Geräts;
  3. analyse der durchgehenden Daten, bis die IP-Adresse des verbundenen Geräts und die MAC-Adresse des Gateways erhalten werden;
  4. konfigurieren einer Linux Bridge, iptables und ebtables, damit eine Kommunikation nach außen unter Verwendung der MAC-Adresse und IP-Adresse des verbundenen Geräts möglich ist;
  5. aktivieren eines versteckten Kanals, der es dem bösartigen Gerät ermöglicht, remote ausgenutzt zu werden.

Das Ergebnis wird ein praktisch unsichtbares Gerät sein, das ferngesteuert werden kann.

Verteidigungsstrategien

Ein Gerät zu programmieren, um transparent eine authentifizierte 802.1x-Sitzung auszunutzen, ist nicht einfach, aber auch nicht übermäßig komplex. Daher ist es notwendig, das Risiko zu berücksichtigen, dass Ports mit promiskuitivem Zugriff wie oben beschrieben kompromittiert werden können.

Seit mehreren Jahren ist mein Ansatz, Netzwerke mit promiskuitivem Zugriff als ähnlich wie DMZ-Netzwerke zu betrachten: Hochrisikobereiche, die eine hohe Sichtbarkeit und sehr restriktive Richtlinien erfordern. Es dürfen keine Annahmen über die Sicherheit der verbundenen Geräte getroffen werden.

Ein erster Ansatz besteht daher darin, die Sichtbarkeit zu erhöhen, indem Verhaltensanalysen von Geräten hinzugefügt werden: Wenn beispielsweise ein Drucker beginnt, mit einer unbekannten Remote-Site zu kommunizieren und mehr oder weniger bedeutende Daten hochzuladen, sollte irgendwo eine rote Flagge hochgehen.

Ein zweiter Ansatz besteht darin, einen Zero-Trust-Ansatz zu verwenden, bei dem Richtlinien erstellt werden, die nur das ermöglichen, was streng erforderlich ist, um den Aktionsbereich möglicher bösartiger Geräte einzuschränken. In dieser Hinsicht kann die Verwendung von privaten VLANs die Angriffsfläche weiter reduzieren. Es ist jedoch immer notwendig, im Kopf zu behalten, wie ein Gerät authentifiziert wird: Wenn beispielsweise ein bestimmter Computer basierend auf dem Benutzer, der ihn verwendet, authentifiziert wird, und wenn nach der Benutzerauthentifizierung Firewalls die IP-Adresse des Benutzers als Grundlage für die Bewertung von Richtlinien verwenden, dann kann dieser Mechanismus nicht als sicher betrachtet werden. Tatsächlich wird das hypothetische bösartige Gerät oben die gleiche IP-Adresse verwenden, die dem Benutzer zugewiesen ist.

Ein dritter Ansatz, weniger verbreitet, aber äußerst effektiv, besteht darin, eine zusätzliche Schicht aus IPSec oder ähnlichen Protokollen zu verwenden. Dieser Ansatz betrachtet promiskuitive Netzwerke so, als wären sie öffentliche Netzwerke: Benutzer, die sich in diesen Netzwerken authentifizieren, müssen VPN-Systeme verwenden, um auf interne Unternehmensnetzwerke zuzugreifen.

Es gibt einen weiteren Ansatz, der noch nicht anwendbar ist, und der die Möglichkeit betrifft, den Gerät-Switch-Kanal zu verschlüsseln und ihn vor MITM-Angriffen unbrauchbar zu machen. MACSec (802.1ae) ist der Standard, der diese Art von Funktionalität implementiert, aber derzeit nicht auf Zugriffsswitches und Endgeräten implementiert ist.

Referenzen