Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Windows Vista Netzwerk-StackInnovativer Meilenstein oder Marketingblase
Hagen Paul [email protected]
www.jauu.net
19. August 2006
VortragsfahrplanI Prolog
• Gegenwärtige Situation
• Herausforderungen
• Rewrite
I Next Generation IP Stack• NDIS 6
• QoS
• Winsock Kernel Interface - WSK
• Teredo
• Firewallinterior
• Krypto
• Compound-TCP
• TCP-Ingredienzien
• SMB 2.0
• Winsock-API
Prolog - 2/ 6
Kapitel 1Prolog
Prolog - 1/ 6
Gegenwärtige ImplementierungI Dual Stack Implementierung
• IPv4 und IPv6 als separate Module (TCPIP.sys,TCPIP6.sys)
I Technisch angegraut (Service Pack 2)
Prolog - 2/ 6
HerausforderungenI Das Herausforderungs-Referenzmodell:
• Anwendungsschicht: Triple Play ;-)
• Transportschicht: Bindeglied - Abstimmungennotwendig
• Internetschicht: Zunahme Hosts (China, Mobiltelefone)
• Netzzugangsschicht: VDLS, VDSL2 und 1GB, 10GBEthernet, 802.11n
I Säulenbildung:• Einhergehende Abstraktionsschicht
• Streaming Media
Next Generation IP Stack - 3/ 6
Kapitel 2Next Generation IP Stack
Next Generation IP Stack - 1/ 6
Microsoft Antwort: RewriteI Großer Teil des Stacks gegen neuen ausgetauscht
I Neuer Code, neue Bugs
I Network Stack ist von fundamentaler Bedeutung fürSicherheit des Betriebssystem - eine der größtenAngriffsvektoren
Next Generation IP Stack - 2/ 6
NDIS 6.0I NDIS - Network Device Interface Specification
I Kerntechniken• RSS - Receive Side Scaling
• TCP Chimney Offload (Schornstein: oben(Transportschicht) rein - unten (Netzzugangsschicht)raus)
I RSS• MS schritt um SMP und DualCore CPUs Entwicklung
Rechnung zu tragen
• Früher: Interrupt CPU gebunden, NAPI-Eigenschaften
• Heute:- parallel auf mehreren Kernen
Next Generation IP Stack - 3/ 6
- TCP-Verbindung auf Prozessor gebunden(Stichwort Cache-Trashing)
- Load Balancing: Verbindungen dynamisch verteilen
- Toeplitz Hash Funktion
I TCP Chimney Offload• TCP, IP und ARP/Neighbor Discovery und 802.X
Offload
• Chimney State Objects
• Bulk Transfers
• Sparta Software-Implementierung
• Open-Source-Info: TCP-Offload mit vielen Patentenbelegt
I vereinfachtes TreibermodellNext Generation IP Stack - 4/ 6
Quality of ServiceI Kriterien
• Anwendung
• IPv4/IPv6 Adressen
• Ports
• TCP/UDP
I DSCP oder/und Traffic Class-Feld Mangling
I Beschränkung Bandbreite (egress)
I Priorisierung von Netzwerk Verkehr
I Differenzierung für Anwendung und Benutzer möglich
I Pacer.sys(LWF): NDIS 6.0-Treiber (ehemals Psched.sys)
Next Generation IP Stack - 5/ 6
Transport Data interface - TDII Kernel-Mode Schnittstelle zwischen zwei Geräte-Treiber
I Integraler Bestandteil und Vorraussetzung fürImplementierung von Netzwerkfunktionalität
I Kein Socket-Style Interface - eher abstrakter, funktional
• TDI Provider:NDIS Protokol-Treiber (Transport Driver) welche dieGrundimplementierung von Netzprotokollen enthalten(z.B. TCP/IP)
• TDI Clients:Diese Kernel-Mode Treiber nutzen die Funktionalität derProvider. Ein tcpip Client kann dann beispielsweiseVerbindungen aufbauen, nutzen und beenden.
Next Generation IP Stack - 6/ 6
• TDI Filter:Liegt logisch zwischen beiden und kann dadurchVerbindungen abfangen und bearbeiten.Anwendungsbeispiele: Emailscanner, Firewallprodukte
I Windows Socket sind beispielsweise als TDI-Clienten aufKernelseite implementiert, eine Socket Emulation (diesekommunizieren dann mit der korrespondierenden dll imUser-Space) (afd.sys, Anpassungen überRegistry-Parameter)
Next Generation IP Stack - 7/ 6
Winsock Kernel Interface - WSKI Ersatz für Transport Driver Interface (TDI)
I Socket-Style Interface
I Asynchrones IO möglich
I Netzwerk Module (Client Module oder Provider Module)implementiert Funktionen im Netzwerkstack (Data LinkInterface, Transport Protokoll oder Netzwerk Applikation) -wie bei TDI
I Zur Zeit ist TDI Schnittstelle um mit den Netzwerkstack zuinteragieren
I Schnittstelle für Entwicklung eigener Protokolltreiber
I Performancevorteile gegenüber TDI
I http.sys ist z.B. ein Kernel Mode HTTP HandlerNext Generation IP Stack - 8/ 6
I Für die „Schrauber“: WskRegister()
Next Generation IP Stack - 9/ 6
TeredoI Tunnel Protokoll um IPv6 Konnektivität zu gewähren (NAT)
I Abstecher 6to4 und STUN (Simple Traversal of UDPThrough Network Address Translators)
I IPv6 Konnektivität ohne Kooperaation des LAN’s (schnellmal Piraten-IRC-Server
TMstarten, oder so . . . )
I IPv6 verpackt in UDP/IPv4 Paketen
I RFC 4380 - „Teredo: Tunneling IPv6 over UDP throughNetwork Address Translations (NATs)“
I Netzkomponenten: Client, Server und Relays
I Linux/BSD User-Space Implementierung: u.a. Miredo(Beta)
I Oder simpler:Next Generation IP Stack - 10/ 6
http://linide.sourceforge.net/nat-traverse/
Next Generation IP Stack - 11/ 6
Netwzwerk Zugangsschutzsystem - Firewalling
I Startschuß: Windows XP Service Pack 2
I Vista Erweiterungen:• IPv6 Filterung
• Filterung von ausgehenden Paketen
• Regeln für Quell- und Zieladresse sowie Portbereiche
• IPSec Unterstützung
• Benutzereinschränkungen möglich
• Firewall Profile
I Ausprägungen:• User-Mode Filterung:
Next Generation IP Stack - 12/ 6
- Winsock Layered Service Provider (LSP)
- Windows 2000 Packet Filtering Interface(iphlpapi.dll)
- Winsock Replacement DLL (Linux Pendant:dlopen(3))
• Kernel-Mode Filtering:- Transport Data Interface (TDI) Filter Driver
- NDIS Intermediate (IM) Driver
- WPF - Windows Filtering Platform
I Anwendungsspezifische Filterung:• Anwendungen können an dem Namen, Pfad oder einer
Prüfsumme erkannt werden
• Kernel oder Benutzerprozeß
Next Generation IP Stack - 13/ 6
I Linux (Aber: SMP Probleme):• ipt_owner.c:match_pid()
• ipt_owner.c:match_comm()
Next Generation IP Stack - 14/ 6
WPF - Windows Filtering Platform
Next Generation IP Stack - 15/ 6
I hakt sich in die Paketverarbeitungspipeline
I Interessant für Firewall, Antivirus und Diagnosesoftware
I WFP stellt eine Basis Filterung Engine bereit - Logik inModulen
I Erlaubt ein- sowie ausgehende Pakete zu analysieren undzu bearbeiten
I Möglichkeit, die Verbindung zwischen Applikation undPaket herzustellen
I Besser dokumentiert und endlich saubere Schnittstellen!
Next Generation IP Stack - 16/ 6
Compound TCPI Staukontrollalgorithmus
I Zielsetzung:• Effizienz
• TCP Fairness
I Entwicklung von MS-Research (mit Hilfe von NS-2 ;-)
I Mischung aus loss-based und delay-based Algorithmen
I Kontrolle über Verzögerung und Paketverlust
I Aggressiver Slow-Start (unter Umständen!)
I Alle verfügbaren Untersuchungen sehen vielversprechendaus – aber es fehlt an weiterführenden Studien
I Apropos: NewReno (RFC 2582; Fast Recovery
Next Generation IP Stack - 17/ 6
Anpassungen) findet Verwendung
Next Generation IP Stack - 18/ 6
TCP IngredienzienI Receive Window Auto-Tuning
• Info Generalis:- Empfangsseitige Begrenzungsmaßnahme
- Window Scaling, ein muss bei „normalen“Verbindungen (kontinental) (2n ∗ window)
- Default zwischen 1 und 2 (0 entspricht 64K)
- setsockopt()
- Middle Boxen
• Windows Server 2003 und Windows XP:- 8KB (ausreichend für 10Mbps)
- Defaultwert in Abhängigkeit des Links
Next Generation IP Stack - 19/ 6
- Unterstützung von Window-Scaling bis 1GB
- Applikationsspezifische Anpassung möglich
- Kann Manuell angepasst werden (Registry) -Neustart erforderlich ;-)
• Vista:- Weg von statischen Werten, hin zu DRS
- Durch Window Scaling bis 16MB möglich
- Bestimung durch Messungen des BDP undApplikations-Lese-Frequenz
Next Generation IP Stack - 20/ 6
SMB 2.0I Neue Version des Filtetransferprotokoll
I Mehrere Aktionen in einem Request möglich
I Feste Headergröße und größere Typfelder
I SMB 2.0 Magic: 0xFE ’S’ ’M’ ’B’
I Teilweiser dissector support in Ethereal
Next Generation IP Stack - 21/ 6
KryptografieI Diffie-Hellman Gruppe 19 und 20 Unterstützung
(elliptischer Kurvenalgorithmus)
I DES, 3DES, AES128, AES192, AES256
Next Generation IP Stack - 22/ 6
Winsock-APII Ursprung in BSD Sockets
I -DIPV6STRICT - IPv4 spezifische Strukturen und Aufrufewerfen Fehler
I WSAConnectByName()• Verbindet mit Peer, welcher mit grösster
Wahrscheinlichkeit passt
• Linux: getddrinfo(), glibc und /etc/gai.conf
• RFC suchen (kommt von MS, WSAConnectByName() wirdmit größterTM Wahrscheinlichkeit matchen
Next Generation IP Stack - 23/ 6
NAP - Network Access ProtectionI Abstrakt: Sicherheit in Netzwerken erhöhen
I Kontkret: Netzwerkzugriff erst wennSicherheitsanforderungen erfüllt
I Policy Enforcement Platform
I Überprüfung des Systems mit eventueller Anpassung
I System Health Agent und Quarantine Enforcement Clients(QECs)
I System Health Agent:1. Firewall ist aktiviert für alle Interfaces
2. Antivirus ist aktiviert und up-to-date
3. Antispyware ist aktiviert und up-to-date
Next Generation IP Stack - 24/ 6
4. Automatisches Update ist aktiviert und up-to-date
I Erweitbar: öffentliche API (Dateiversion, Registryeinträge,. . . )
I Client: XP und Vista; Server: Longhorn
I Longhorn Server wird mit aktivierter Firewall ausgeliefert -per default kann es sich nicht mit Network Policy Serververbinden
Next Generation IP Stack - 25/ 6
Was vergessen?I Strong Host Model
I Netzwerk Profile
I 802.11 - WLAN
I ESTATS
Next Generation IP Stack - 26/ 6
Weiterführende InformationenI Compound TCP (CTCP)
• www.slac.stanford.edu/cgi-wrap/getdoc/slac-tn-06-005.pdf
I Transport Driver Interface - TDI• http://www.pcausa.com/resources/tdifaq.htm
• http://www.codeproject.com/system/driverdev5asp.asp
I Windows Treiber Entwicklung• http://www.osronline.com/index.cfm
I Treiber Signierung in Vista• http://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx
• http://www.osronline.com/article.cfm?article
I Verschiedenes:• www.symantec.com/avcenter/reference/ATR-VistaAttackSurface.pdf
I Allgemeine Informationen zu den neuen Netzwerkstack:•
www.microsoft.com/germany/technet/itsolutions/network/evaluate/new_network.mspx
I Elliptische Kurvenalgorithmen:• http://www.certicom.com/index.php?action=ecc_tutorial,home
Next Generation IP Stack - 27/ 6
I Routing:• IPv6: http://www.sixxs.net/tools/grh/dfp/all/
• Tabellengröße: http://bgp.potaroo.net/
• BGPlay: http://www.ris.ripe.net/bgplay
I SMB 2.0• http://www.ethereal.com/docs/dfref/s/smb2.html
• http://samba.org/ftp/unpacked/samba4/source/libcli/smb2/
Next Generation IP Stack - 28/ 6
FINI Fragen/Anregungen/Bemerkungen?
I Falls Latenz der CPU zu gering oder der Mut zu klein war -einfach eine EMail schreiben
I [email protected]• Key-ID: 0x98350C22
• Fingerprint:490F 557B 6C48 6D7E 5706 2EA2 4A22 8D45 9835 0C22
Next Generation IP Stack - 29/ 6
MS CookiesI „Ever wonder how the Windows shell is designed? Ever try
and write a Windows shell extension? It gets easier inVista!„
I „If an application is not running on the CPU that RSS hasscheduled the receive traffic to be processed on, somecache optimizations may not occur“
Sicherungs- und Infofolien - 30/ 6
Kapitel 3Sicherungs- und Infofolien
Sicherungs- und Infofolien - 1/ 6
Completion PortsI Skalierbare Netzanwendungen mit Microsoft
I Implementiert als Warteschlagen mit fertigenAnforderungen
I Abarbeitung mit separaten Prozeß (Anzahl CPU’s)
I Ab Windows NT verfügbar
I Windows select Implementierung skaliert NULL
I CreateIoCompletionPort()
I Unix Pendants: select, poll, kqueue, epoll, threads undkevent
Sicherungs- und Infofolien - 2/ 6
DRS unter LinuxI DRS - Dynamic Right Sizing
I /proc/sys/net/ipv4/tcp_window_scaling
I Wächst von default nach max
I Speicher:• BDP: 52Mbps und RTT von 0.4s = 2.5MB
Kernelspeicher
I ip route add 23.23.23.23/32 via 10.8.0.1 win-dow 65535
Sicherungs- und Infofolien - 3/ 6
Code Signierung in VistaI Driver Reliability Signature Program (DRS) (Driver Quality
Signature, Kernel Mode Code Signing (KMCS))
I Betrifft Vista und Longhorn
I Nur Admin kann unsignierten Treiber (device drivers, filterdrivers) installieren (x86)
I x64 nur signierte Treiber erlaubt
I Bei Berürung mit PMP (Windows Vista Protected MediaPath) (z.B. PUMA) dürfen nur signierte Treiber gleichzeitiglaufen (Softice, virtuelle Laufwerke, eigene Audio Treiberade ;-)
I Zwei Signierungsausprägungen• Treiber Packet Signierung (CAT signing)
Sicherungs- und Infofolien - 4/ 6
• Embedded Signierung (Image)
I Driver binaries that load at boot time must contain anembedded signature (deutliche DRM Ambitionen zuerkennen)
I Alles was über IE kommt, muss signiert sein (fürAusführung)
I Microsoft Quotes:• To improve Windows drivers reliability and stability
• ... allow administrators and end users who are installingWindows-based software to know whether a legitimatepublisher has provided the software package
I Um es doch zu erwähnen: Nebeneffekt ist auch der Schutzvon Interessen gewisser Industriezweige vor demAnwender
Sicherungs- und Infofolien - 5/ 6
Linux keventI Hot Off The LKML-Press
I Patchset von Evgeniy Polyakov
I Generischer Mechanismus - select, poll, AIO, epoll, andinotify, netlink
I Ein Interface für Programmierer
Sicherungs- und Infofolien - 6/ 6