Spanning Tree Protocol - Vulnerabilities?

IEEE Std 802.1D-1998 definiert keinerlei Mechanismen, die den Spanning Tree Algorithmus oder das Bridge Protocol vor Attacken schützt. Jedes BPDU das an einem aktiven Switchport empfangen wird, einen korrekten Aufbau mit stimmiger FCS aufweist, wird akzeptiert und vom Spanning Tree Prozess berücksichtigt. Bei Trunk-Ports muß zusätzlich die VLAN-ID im Frame Header einem existierenden (active), an diesem Trunk-Port zugelassenen (allowed and active) VLAN entsprechen. Das war's dann aber auch.

Szenarien

Da also keinerlei Authentifizierung des Senders erfolgt ist es ein Leichtes sich Attacken für dieses System auszudenken; es reicht wenn man die Switches mit 'günstigen' BPDUs beglückt. Damit kann man je nach Gusto:

  • Den Datenverkehr im LAN zum Erliegen bringen, indem man die Switches immer wieder die Topologie neu berechnen läßt. Angriffskategorie: denial of service.
  • Einen Großteil des Traffics zu sich (Fake-Root) umleiten, um mit Hilfe eines SPAN-Ports den Datenverkehr aufzuzeichnen und abzuhören. Angriffskategorie: man in the middle.

Das Rapid Spanning Tree Protocol (RSTP), spezifiziert in IEEE Std 802.1w-2001 verschärft teilweise die Situation: durch die sehr kurzen Konvergenzzeiten fällt eine 'man in the middle' Attacke evtl. nicht, oder erst sehr spät auf.

Ist die Realität aber wirklich so bedrohlich wie es scheint? Keineswegs. Zwar bietet das STP selbst keine Schutzmechanismen gegen derartige Angriffe, aber im Zuge der Entwicklung haben Hersteller wie Cisco andere Mechanismen geschaffen, die zur Stabilität des Spanning Tree beitragen.

Schutzmaßnahmen

PortFast entdeckt BPDU an einem Edge Port, initiiert daraufhin die normale STP Prozedur; die neue Bridge würde in die Topologie integriert. Mit BPDU Guard, würde der Switchport stattdessen deaktiviert; eine Einbindung der neuen Bridge in die bestehende Spanning Tree Topologie wäre damit verhindert und der Angriff so abgewehrt.

BPDU Filtering auf dem Interface wäre auch eine Möglichkeit, da somit BPDUs weder gesendet, noch akzeptiert werden; dadurch könnte aber bei Topologieänderungen in Kombination mit Unbedachtheit, unbemerkt ein Loop entstehen.

Root Guard legt fest welche Switchports nie Root Port werden dürfen. Wenn man die edge Ports eines Access Layer Switches damit belegt, hat man schon viel erreicht.

Eine elegantere, weil umfassendere Möglichkeit, Spanning Tree gegen Angriffe zu schützen, liegt in der konsequenten Nutzung von Port Security nach IEEE Std 802.1X-2001.

Links zum Thema