Attacken gegen Netzwerke, die auf Layer 2 ansetzen, galten bisher als zwar theoretisch möglich, real aber wenig wahrscheinlich. Mit Wireless LANs und dem Hacker-Tool Yersinia stehen Angreifern nun aber neue Mittel zur Verfügung, die die Risiken für Netzwerkbetreiber erheblich erhöhen.
Sicherheitsprobleme auf der Ebene der Netzwerkinfrastruktur können die Verfügbarkeit des
gesamten Netzwerks gefährden oder einen Angreifer in die Lage versetzen, den Verkehr kompletter
Segmente mitzulesen oder zu manipulieren. Meist ist es auch nicht möglich, Sicherheitsprobleme auf
den Layern 2 und 3 durch Maßnahmen auf anderen, höhergelegenen Netzwerkschichten zu adressieren –
was umgekehrt oft funktioniert, etwa wenn IPSec zur Sicherung von höher gelegenen Dienstprotokollen
eingesetzt wird. Dennoch wird Angriffen und Sicherheitsmaßnahmen insbesondere auf Layer 2 in vielen
Netzen nur wenig Bedeutung beigemessen, was vielleicht darauf zurückzuführen ist, dass die meisten
Angriffe die Kontrolle über einen physisch angeschlossenen Knoten voraussetzen, also – vermeintlich
– nur durch Innentäter möglich sind, deren Existenz Sicherheitsverantwortliche gern ausgeklammern.
Hinzu kommt, dass entsprechende Techniken und Tools bislang kaum verbreitet waren.
Inzwischen ist Layer-2-Angriffs-Know-how jedoch problemlos verfügbar: Seit Anfang des Jahres
liegt ein detailliertes Buch zum Thema vor [1], und Ende März wurde ein Tool veröffentlicht [2],
das viele Angriffe automatisiert, die bisher nur als theoretisch möglich galten. Ein Szenario, in
dem ein Angreifer nach der erfolgreichen Kompromittierung eines Webservers in einer DMZ dieses
System nutzt, um großflächig interne Kommunikation mitzulesen, ist mittlerweile problemlos
realisierbar – vorausgesetzt, die DMZ ist über ein eigenes VLAN implementiert und nicht über einen
dedizierten Switch. Diese Situation ist häufig anzutreffen.
Zu den auf Infrastrukturebene attackierbaren Protokollen zählen neben dem Address Resolution
Protocol (ARP, bekannt durch "ARP-Spoofing") in erster Linie DHCP, ICMP, CDP, das Spanning Tree
Protocol (STP) und Ciscos Hot Standby Router Protocol (HSRP).
"Spanning Tree" dient der Entdeckung und Vermeidung von Schleifen, wenn redundante Pfade
zwischen Switches existieren. Es basiert auf dem IEEE-802.1d-Standard. Beteiligte Switches
versenden dazu pro "Hello Interval" so genannte "Bridge Protocol Data Units" (BPDUs) auf allen
Ports an die Multicast-Adresse 01-80-c2-00-00-00. Anhand der ausgetauschten BPDUs bilden die
beteiligten Switches (meist pro VLAN) einen logischen Baum, den Spanning Tree. Dieser Baum hat eine
Wurzel, die Root Bridge, gekennzeichnet durch die niedrigste so genannte Bridge-ID, die aus einer
konfigurierbaren "Priority" und der MAC-Adresse des jeweiligen Geräts besteht. Die Switches
deaktivieren temporär redundante Verbindungen innerhalb des Baums. Bei Ausfall eines Geräts oder
einer Verbindung wird die Netzwerktopologie neu berechnet und gegebenenfalls eine neue Root Bridge
gewählt.
Ein Angreifer, der ein Gerät mit niedriger(er) Bridge-ID konnektieren kann – sei es durch
Anschluss eines Devices mit niedriger "Priority", sei es durch Verwendung eines Tools, das
STP-Pakete generiert –, kann unter Umständen den Verkehr eines ganzen VLANs insgesamt oder
teilweise zu sich umleiten. Wenn er seine Priorität in kurzen zeitlichen Abständen wechselweise auf
einen höheren und einen niedrigeren Wert setzt, kommt dies aufgrund der stetigen Neuberechnungen
des Baums mit Konnektivitätsverlust in aller Regel einem Denial-of-Service Angriff gleich.
Verfügt der Angreifer über zwei physische Konnektierungspunkte auf unterschiedlichen Switches
(im gleichen VLAN), kann er den Verkehr nach einer solchen Umleitung weiterleiten und somit eine "
Man-in-the-Middle"-Position (MITM) einnehmen. Er könnte dann den gesamten umgeleiteten Verkehr
mitlesen und so die angegriffene Organisation ausspionieren.
Üblicherweise verfügt ein Angreifer aber nicht über physische Konnektivität zu zwei Switches
etwa innerhalb eines Raums, sodass der beschriebene Angriff oft nicht möglich ist. Dies ändert sich
jedoch, sobald Wireless LANs im Einsatz sind, da dann regelmäßig der kabelgebundene Anschluss (Dose
im Büro) und der Funk-Anschluss (per AP an einen [Backbone-] Switch) auf unterschiedlichen Switches
terminieren.
Verfügt der Angreifer über eine Trunk-Verbindung (siehe dazu unten mehr), können gegebenenfalls
sogar alle VLANs beeinflusst werden. Die konkrete Auswirkung aller STP-Angriffe hängt jedoch stets
vom jeweils aktuellen Spanning Tree und dem Standort eines Angreifers ab. Die Auswirkungen des
ersten Angriffs werden beim Einsatz von "Rapid Spanning Tree" potenziell deutlich verringert.
Darüber hinaus können an vielen Switches Ports so konfiguriert werden, dass sie entweder
überhaupt keine BPDUs entgegennehmen (BPDU-Guard-Feature bei Cisco) oder sich hinter dem jeweiligen
Port keine STP Root befinden darf ("Root Guard" bei Cisco). Das "Port Security"-Feature kann
wiederum gegen den MITM-Angriff verwendet werden, weil dann der umgeleitete Verkehr nicht mehr von
den Switches entgegengenommen würde.
Das Hot Standby Router Protocol (HSRP, RFC 2281) ist ein anfänglich von Cisco entwickeltes
Protokoll, das den redundanten Betrieb mehrerer Router ermöglicht, die dabei zusammen unter einer
virtuellen IP-Adresse und MAC-Adresse erreichbar sind. Dazu tauschen die Router periodisch "Hello"
-Nachrichten aus, die an die All-Routers-on-this-Subnet-Multicast-Adresse (224.0.0.2) geschickt
werden. Die höchste dabei übermittelte "Priority" bestimmt, welcher Router der so genannte "Active
Router" wird, also den Verkehr tatsächlich entgegennimmt und weiterleitet. Die anderen Router gehen
dann in den inaktiven Standby-Modus. Ein Angreifer, der HSRP-Pakete mit einer höheren Priorität als
der der vorhandenen HSRP-Teilnehmer injizieren kann, kann so alle HSRP-Systeme seines Subnetzes in
den Standby-Status zwingen. Damit lässt sich entweder ein Denial-of-Service-Angriff durchführen,
wenn der Verkehr danach nicht weitergeleitet wird, oder der aus dem Segment fließende Verkehr kann
über das Angreifersystem umgeleitet werden.
Im Gegensatz zu "Spanning Tree" sind hier Gegenmaßnahmen oft deutlich schwieriger zu
realisieren. Cisco empfiehlt entweder den Einsatz von IPSec, um den HSRP-Verkehr zu verschlüsseln –
was auf Layer-3-Switches, die HSRP implementieren, keine Option ist – oder die Verwendung von
HSRP-Authentifizierung, wobei hier meist das Kennwort im Klartext übertragen wird und so einem
motivierten Angreifer bekannt sein sollte. Die sicherere MD5-Authentifizierung von HSRP ist erst
auf neueren Releases möglich (bei Routern ab IOS 12.3(2)T), und auch der Einsatz von IGMP-Filtern
ist eher selten anzutreffen.
Während die genannten Angriffe gegen STP und HSRP durchaus bekannt sind und schon seit geraumer
Zeit entsprechende Tools vorliegen (etwa "Irpas" [7]), sind inzwischen zwei weitere Protokolle in
den Blickpunkt gerückt, für die erstmals im Rahmen des neuen Tools "Yersinia" automatisierte
Angriffe mit gravierenden Folgen konstruiert wurden. Es handelt sich dabei um zwei proprietäre
Protokolle von Cisco: das Dynamic Trunking Protocol (DTP) und das VLAN Trunking Protocol (VTP).
Mit dem Dynamic Trunking Protocol können Trunk-Verbindungen zwischen Switches ausgehandelt
werden. Im Gegensatz zu Access Ports, über die einzelne Stationen an Switches konnektiert sind,
verbinden Trunk-Ports mehrere Geräte untereinander (Switches mit anderen Switches oder Routern).
Ein Trunk-Port ist per Default Mitglied aller VLANs eines Switches – das heißt, es wird potenziell
der Verkehr aller VLANs darüber transportiert, was jedoch durch die so genannten "allowed VLANs"
eingeschränkt werden kann. Die VLAN-Zugehörigkeit einzelner Frames wird dabei durch ihr jeweiliges "
VLAN Tag" mit übertragen. Welche Ports eines Switches Trunk-Ports sind oder werden, kann und
sollte der jeweilige Systemadministrator manuell konfigurieren. Es kann jedoch auch zwischen
Switches dynamisch ausgehandelt werden – eben mithilfe von DTP, das auf den meisten Plattformen
inzwischen implementiert ist (Ausnahmen etwa 2900XL/3500XL). Switches sollen auf diese Weise in die
Lage versetzt werden, selbstständig zu erkennen, wo sie mit anderen Switches verbunden sind, um die
jeweiligen Ports dann in den Trunk-Status zu versetzen.
DTP ist dazu üblicherweise auf allen Ports zunächst aktiviert ("The key thing to remember about
DTP is the default mode on most switches is Auto.? [3]), und auch die nachfolgende, vielfach
anzutreffende exemplarische Konfiguration ändert diesen verhandlungsbereiten Status eines Ports
nicht:
interface FastEthernet0/2
switchport access vlan 27
spanning-tree portfast
Es können daher normalerweise sogar auf (vermeintlichen) Access Ports Trunk-Verbindungen
verhandelt werden. Gelingt es einem Angreifer, einen Trunk auszuhandeln, ist meist sofort folgendes
möglich:
Das Mitlesen des Broadcast- und Multicast-Traffics aller VLANs (sonstige
Default-Konfiguration ohne Einschränkung der "allowed VLANs" und ohne "VTP Pruning" vorausgesetzt,
was sehr häufig der Fall ist),
Teilnahme am VLAN Trunking Protocol (siehe dazu unten) und dadurch oft die
Möglichkeit, die VLAN-Konfiguration zu verändern (etwa VLANs zu erzeugen oder zu löschen),
ARP-Spoofing gegen Systeme in anderen VLANs (und somit Mitlesen von deren
Verkehr).
Schematisch sieht ein solcher Angriff in etwa so aus wie in Bild 4 dargestellt.
Dieses Problem ist an sich nicht neu. Da Cisco jedoch die Spezifikation von DTP nie publiziert
hat, galt dieser Angriff lange als theoretisch und nur mithilfe aufwändig manuell erstellter Pakete
als machbar (auch [1] beschreibt noch diese Methode). Mithilfe des neuen Tools "Yersinia" (Bild 5)
kann der Angriff aber problemlos menügesteuert durchgeführt werden.
Nach der sofort erfolgreichen Verhandlung eines Trunks sieht der Angreifer dann den darüber
transportierten Verkehr, darunter alle Infrastrukturprotokolle, die über Trunks übertragen werden
(vor allem VTP, mehr dazu unten) und den gesamten Multicast- und Broadcast-Traffic des Netzes, etwa
üblicherweise auch die Routing-Protokolle (hier OSPF, Bild 6).
Des Weiteren ist es anschließend möglich, in beliebige VLANs Pakete einzuschleusen, da der Trunk
an allen VLANs teilnimmt. Der Angreifer kann also gewissermaßen den Verkehr entfernter Netze zu
sich umleiten. Die Skizze in Bild 7 verdeutlicht diesen Angriff.
Auch er ist menügesteuert im Tool Yersinia implementiert und konnte von den Autoren ohne
jegliche Probleme erfolgreich getestet werden.
Die häufig (auch von den Autoren) ausgesprochene Empfehlung, Netze zum Schutz vor ARP-Spoofing
zu segmentieren, wird damit obsolet. Ein Angreifer, der ein einziges an einen beliebigen Switch
angeschlossenes System kontrolliert, kann damit potenziell den Verkehr aller VLANs aller Switches
mitlesen, sofern die Switches untereinander verbunden sind. Dies gilt allerdings nur, solange
weitgehend eine Default-Konfiguration der Devices vorhanden ist. Die einfachste Maßnahme, den
beschriebenen Angriff zu verhindern, besteht darin, Access-Ports mit User-Zugang tatsächlich auch
statisch als solche zu konfigurieren (IOS-basierte Devices: "switchport mode access",
CatOS-Devices: "set trunk mod/port off").
Während "VLAN Tagging" dazu verwendet wird, einzelne Frames den richtigen VLANs zuzuordnen,
dient das VLAN Trunking Protocol (VTP) dazu, die VLAN-Informationen selbst zwischen verschiedenen
Switches auszutauschen – also etwa welche VLANs es gibt, wie ihre Namen lauten und so weiter. Die
Switches versenden dazu über Trunk-Ports VTP-Pakete, wobei funktionierende VTP-Kommunikation nur
zwischen Switches derselben so genannten "VTP Domain" möglich ist. Sie können dann mit VTP ihre
VLAN-Datenbanken synchronisieren und verwenden dabei eine Revisionsnummer, die bei auftretenden
Synchronisationskonflikten autorisierende Wirkung hat. Cisco Switches können in drei verschiedenen "
VTP-Modi" arbeiten:
Server (kann per Default globale VLANs erstellen/löschen),
Client (kann keine VLANs ändern) und
transparent (kann lokale VLANs erstellen/löschen, ignoriert aber VTP
Updates).
Ein Angreifer, der ein VTP-Paket mit höherer Revisionsnummer injizieren kann (durch Anschluss
eines Devices mit höherer Revisionsnummer an das Netz oder durch Senden eines entsprechenden
Netzwerkpakets; Voraussetzung ist jeweils eine bestehende Trunk-Verbindung zu einem Device, das "
vtp-server" ist), kann die VLAN-Informationen der gesamten "VTP domain/" des gesamten Netzes
löschen.
Dies kommt einem Denial-of-Service Angriff gleich. Da es sich bei VTP um Layer-2-Pakete handelt
(ähnlich CDP, hier aber mit SNAP HDLC 0x2003), muss der Angreifer dazu ein System mit physischen
Zugang zu einem der Segmente kontrollieren. Entscheidend ist die Konnektierung an einen Port eines
Devices und – wie oben beschrieben – die Möglichkeit, dort eine ("gefälschte") Trunk-Verbindung
aufzubauen. Wie der Angriff aussieht, zeigt Bild 8.
Auch dieser Angriff galt in erster Linie wegen der Voraussetzung des bestehenden Trunks bisher
als theoretisch; auch hier ist Yersinia nun ein "geeignetes Werkzeug" zur automatischen Ausführung
(Bild 9).
Die wichtigste Maßnahme zum Schutz vor VTP-basierten Sicherheitsproblemen ist die korrekte
Konfiguration von Access-Ports (siehe oben) und damit die Unterbindung unautorisierter Trunks.
Weiterhin kann ein VTP-Password konfiguriert werden, das in einen MD5 Digest der VTP-Pakete Eingang
findet, also nicht im Klartext übertragen wird.
Systemadministratoren von Netzen mit Cisco-Switches sollten heute also unbedingt auch auf
Netzwerk-Layer 2 Sicherheitsmaßnahmen implementieren. Nähere Anhaltspunkt zur Ausführung bieten
hierzu die unter [4], [5] und [6] genannten Dokumente.