Kann man IPv6 ignorieren?
Während einer Schulung zum Thema IPv6 kam die Frage auf, ob man IPv6 nicht einfach ignorieren könne. Das kann man nicht: Besonders Übergangstechniken wie 6to4 und Teredo bohren Löcher in die (Firmen)-Firewall, die man nicht mehr gestopft bekommt. Und diese Löcher sind Einfallstore für beliebige Dritte.
Wenn man kein IPv6 im lokalen Netz anbietet, suchen sich die meisten Rechner IPv6 aus anderen Quellen. Dabei verwenden Sie ausgefuchste Tunneltechniken, wie Teredo.
Löcher in der Firewall
Diese Techniken bohren geschickt Löcher in die Firewall und gestatten dann dem so versorgten Rechner eine bidirektionale Kommunikation. Dabei analysieren sie die Art der Firewall (stateful oder nicht) und sorgen für eine möglichst effiziente Umgehung.
Schaut man sich eine IPv6-Teredo-Adresse im Detail an, so ist sie ziemlich einfach aufgebaut.
Die einzelnen Komponenten sind praktisch alle bekannt:
- Der Teredo-Prefix ist konstant 2001:0000
- Die IPv4 Adresse des Teredo-Servers ist praktisch immer die des Microsoft-Servers.
- Die Flags sind immer nur 0000 oder 8000, je nach Firewalltyp. Einige Versionen von Windows benutzen die undefinierten 12 Bit dieses Feldes als Scan-Schutz.
- Der externe Port ist ein unbekannter 16bit Wert, der nach dem NAT der Firmen-Firewall extern sichtbar war. Das Verschleiern erfolgt durch Bitinversion.
- Die exterene IPv4 Adresse ist die externe NAT Adresse der Firmen-Firewall. Das Verschleiern erfolgt durch Bitinversion.
Freier Zugriff von außen
Von der ganzen Adresse sind also praktisch nur die 12 bis 16bit des UDP Ports zu erraten, um einen Rechner hinter einer Firmen-Firewall ansprechen zu können. Kommen die 12bit aus dem Flag Feld hinzu, sind es 24 bis 30bit. Für viele noch existierende Windows-Versionen in den Firmen ist das Flag Feld aber schlicht konstant 0000.
Hat man eine größere Firma vor sich, so ist es nicht notwendig, einen konkreten Rechner zu erwischen. Es genügt, irgend einen zu konnektieren, um erfolgreich in die Firma einzubrechen. Hier spielt das Geburtstagsparadoxon die tragende Rolle: Je mehr Rechner die Firma hat, desto wahrscheinlicher ist es, mit einem zufälligen UDP Port einen davon ansprechen zu können.
Der Firewall-Admin hat keine Chance, diesen Datenverkehr zu unterbinden, da die Gegenstellen nicht konstant bei Microsoft liegen, sondern beliebige (dank anycast) Teredo-Relays weltweit sein können.
Was tun?
Als Firewall-Admin kann man eigentlich nur sämtliche irgendwie bekannte Teredo-Server blockieren, um den Verbindungsaufbau zu stören. Es ist jedoch günstiger, Teredo komplett zu deaktivieren.
Die Defaulteinstellung von Windows-Teredo schaltet sich in Active-Directory Umgebung inaktiv. Der Nutzer kann das Protokoll aber mit einem beherzten netsh interface ipv6 set teredo enterpriseclient trotzdem aktivieren.
Will man Teredo wirklich dauerhaft deaktivieren, ohne auf jedem Client per Registry oder Gruppenrichtlinie einzugreifen, dann gibt es nur den Königsweg: IPv6 ausrollen.
Liegt im lokalen Netz IPv6 an, werden sämtliche Übergangstechniken auf egal welchem Client deaktiviert. Und dann hat man wieder die Möglichkeit die Firewall das tun zu lassen, was sie soll: Eine Policy durchzusetzen.
Aber so machst Du mir mein Argument kaputt ;-)
Total 2 comments