Ein Angebot für € 9,99 €
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
Als professioneller Netzwerkadministrator und Entwickler erfahren Sie in diesem Buch alles Notwendige über Techniken zur Kryptographie, den Kerberos-Standard, das Netzwerkmodell des Active Directory, das Authentifizierungsverfahren unter Windows 2000 sowie verschlüsselte Dateisysteme. Der Autor behandelt sämtliche Funktionen von Windows 2000, die laut Hersteller die Sicherheit eines Netzwerkes garantieren sollen. Ein sehr technisches Buch für ambitionierte Leser.
Windows 2000 hat gegenüber Windows NT große Fortschritte bei den Sicherheitsfunktionen gemacht. Das Buch behandelt sämtliche…mehr
Als professioneller Netzwerkadministrator und Entwickler erfahren Sie in diesem Buch alles Notwendige über Techniken zur Kryptographie, den Kerberos-Standard, das Netzwerkmodell des Active Directory, das Authentifizierungsverfahren unter Windows 2000 sowie verschlüsselte Dateisysteme. Der Autor behandelt sämtliche Funktionen von Windows 2000, die laut Hersteller die Sicherheit eines Netzwerkes garantieren sollen. Ein sehr technisches Buch für ambitionierte Leser.
Windows 2000 hat gegenüber Windows NT große Fortschritte bei den Sicherheitsfunktionen gemacht. Das Buch behandelt sämtliche Funktionen von Windows 2000, die laut Hersteller die Sicherheit eines Netzwerkes garantieren sollen. Es enthält Techniken der Kryptografie, den Kerberos-Standard, das Netzwerkmodell des Active Directory, das Authentizierungsverfahren unter Windows 2000 und verschlüsselte Dateisysteme. Ein sehr technisches Buch für Netzwerkadministratoren und Entwickler. Auf der CD-ROM: Beispiele für sicheren Code.
Windows 2000 hat gegenüber Windows NT große Fortschritte bei den Sicherheitsfunktionen gemacht. Das Buch behandelt sämtliche Funktionen von Windows 2000, die laut Hersteller die Sicherheit eines Netzwerkes garantieren sollen. Es enthält Techniken der Kryptografie, den Kerberos-Standard, das Netzwerkmodell des Active Directory, das Authentizierungsverfahren unter Windows 2000 und verschlüsselte Dateisysteme. Ein sehr technisches Buch für Netzwerkadministratoren und Entwickler. Auf der CD-ROM: Beispiele für sicheren Code.
Produktdetails
- Produktdetails
- New Technology
- Verlag: Markt +Technik
- Seitenzahl: 882
- Abmessung: 245mm
- Gewicht: 1540g
- ISBN-13: 9783827256836
- ISBN-10: 3827256836
- Artikelnr.: 24637649
- New Technology
- Verlag: Markt +Technik
- Seitenzahl: 882
- Abmessung: 245mm
- Gewicht: 1540g
- ISBN-13: 9783827256836
- ISBN-10: 3827256836
- Artikelnr.: 24637649
Einführung 27
Der zufällige Netzwerkadministrator 27
Glaubenskriege und FUZ 28
Der Aufbau dieses Buchs 28
Wie Sie dieses Buch benutzen sollten 29
Feedback von Ihrer Seite 30
Viel Spaß! 30
Teil I: Systemgrundlagen von Windows 2000 31
Kapitel 1 Architektur 33
1.1 Ein neues Windows 34
1.2 Das Betriebssystemmodell von Windows 2000 36
1.2.1 Kernelmodus und Benutzermodus 36
1.2.2 Die Hardware Abstraction Layer 38
1.2.3 Der Kernel 38
1.2.4 Die Executive 39
1.2.5 Win32-Komponenten im Kernelmodus 40
1.2.6 Gerätetreiber 41
1.2.7 Module im Benutzermodus 41
1.2.8 System-Support-Prozesse 41
1.2.9 Dienste 44
1.2.10 Umgebungssubsysteme 45
1.3 Systemprozesse und -dateien von Windows 2000 47
1.4 Speicher 49
1.4.1 Kernelpool 55
1.5 Kernelobjekte 55
1.5.1 Handletabellen für Kernelobjekte 56
1.5.2 Kernelobjekte gemeinsam verwenden 56
1.5.3 Object Reference Calling 57
1.5.4 Sicherheit 58
1.6 Ausnahme- und Interrupt-Behandlung 58
1.6.1 Ausnahmebehandlung 59
1.7 Globale Flags 60
1.8 Zusammenfassung 61
Kapitel 2 Prozesse und Threads 63
2.1 Das Job-Objekt 64
2.1.1 Einzelheiten eines Jobs 67
2.1.2 Konteninformationen 69
2.1.3 Einschränkungen 69
2.1.4 Einschränkungen für die Benutzeroberfläche 70
2.1.5 Sicherheit 70
2.2 Prozesse 71
2.2.1 Wenn RestrictRun nicht implementiert ist 72
2.2.2 CreateProcess() aufrufen 74
2.2.3 Prozessobjekte im Kernel (der Block eprocess) 75
2.2.4 Datenstrukturen im Benutzermodus
(der Process Environment Block) 77
2.3 Threads 78
2.4 Zusammenfassung 79
Kapitel 3 Sicherheitsmodell 81
3.1 Objekte sichern 82
3.1.1 SIDs 84
3.1.2 Zugriffskontrolllisten (ACLs) 90
3.1.3 ACLs und ACEs zuweisen und erben 93
3.1.4 SD/ACL/ACE - Zusammenfassung 95
3.1.5 Token 95
3.1.6 Privilegien und Benutzerrechte 100
3.1.7 System-Kontext 104
3.1.8 Identitätswechsel (Impersonation) 105
3.1.9 Eingeschränkte Token 106
3.1.10 Sicherheit 106
3.2 Komponenten der Sicherheitsarchitektur von Windows 2000 107
3.2.1 Der Security Reference Monitor (SRM) 108
3.2.2 Die Local Security Authority (LSA) 110
3.2.3 Winlogon.exe 111
3.2.4 Graphical Identification and Authentication (GINA) 112
3.2.5 Network Logon Service 112
3.2.6 Sicherheitspakete 113
3.2.7 SSPI 113
3.2.8 SAM-Datenbank 113
3.2.9 Active Directory 114
3.3 Die Benutzeranmeldung 114
3.4 Zusammenfassung 117
Kapitel 4 NTFS 5.0 119
4.1 Die Master File Table (MFT) 120
4.1.1 Dateien 120
4.2 Datenströme 122
4.2.1 Benannte und unbenannte Datenströme 123
4.2.2 Verwendung mehrerer Datenströme 124
4.2.3 Verteilte Datenströme 125
4.2.4 Komprimierte Datenströme 126
4.2.5 Verschlüsselte Datenströme 128
4.3 Metadaten 128
4.4 Feste Verknüpfungen 130
4.5 Analysepunkte 131
4.6 Datenträgerkontingente (Quotas) 132
4.7 Zusammenfassung 134
Kapitel 5 Dienste 135
5.1 Was ist ein Dienst? 136
5.2 Der Service Control Manager (SCM) 137
5.2.1 Remote-Verbindungen zum SCM 138
5.2.2 Dienstanmeldung 139
5.2.3 Wiederherstellung 140
5.3 Sicherheit für Dienstobjekte 141
5.4 Starten eines Dienstes 142
5.5 Mehrere Dienste in einem Prozess 146
5.5.1 Sicherheitsauswirkungen 148
5.6 Generelle Sicherheitsbedenken hinsichtlich der Dienste 150
5.6.1 Die Benutzung einzelner Konten 151
5.6.2 Identitätswechsel (Impersonation) 152
5.6.3 Überwachen, überwachen und überwachen! 152
5.6.4 Interagieren Sie nicht! 153
5.6.5 Einer nach dem anderen, bitte 154
5.7 Sicherheitsbedenken in Bezug auf Dienste für Programmierer 155
5.7.1 Meldungen akzeptieren 155
5.7.2 Anforderungen zum Anhalten nicht akzeptieren 155
5.7.3 Meldungen zum Unterbrechen und Fortsetzen akzeptieren 156
5.7.4 Verhalten bei seltsamen Meldungen 156
5.8 Zusammenfassung 157
Kapitel 6 Gerätetreiber 159
6.1 Das I/O-Modell in Windows 2000 160
6.2 Arten von Treibern 160
6.2.1 Der Treiberstapel des Dateisystems 162
6.3 Speicher im Kernelmodus 165
6.3.1 Kernelspeicher und Paging 165
6.3.2 Für Kernelprozesse verfügbarer Speicher 165
6.4 Sichere Treiber schreiben 166
6.4.1 Pufferlängen überprüfen 166
6.4.2 Nicht initialisierte Daten nicht in den
Benutzermodus zurücksetzen 167
6.4.3 Probing, wenn notwendig 167
6.4.4 Try/Except-Blöcke verwenden 167
6.4.5 Auf I/O-Anfragen mit eingebetteten Zeigern achten 167
6.4.6 Die Handhabung von Nulllängen-Puffern 167
6.4.7 Probleme mit direkten doppelten I/O-Zuordnungen 168
6.4.8 Das DDK sorgfältig lesen 168
6.4.9 Wie der Feind denken 168
6.5 Signierung von Treibern 168
6.6 Bösartige Treiber 169
6.6.1 Was ist installiert? 170
6.7 Zusammenfassung 171
Teil II: Grundlagen der Netzwerksicherheit 173
Kapitel 7 Die Protokolle NetBIOS, NetBEUI, SMB und TCP/IP 175
7.1 Die Geschichte von TCP/IP 176
7.2 Die TCP/IP-Familie 177
7.3 Der TCP/IP-Protokollstapel 178
7.4 Protokolle der Transportschicht 179
7.4.1 Das Transmission Control Protocol (TCP) 180
7.4.2 User Datagram Protocol (UDP) 182
7.4.3 Internet Protocol (IP) 183
7.4.4 Internet Control Message Protocol (ICMP) 185
7.4.5 Internet Router Discovery Protocol (IRDP) 186
7.4.6 Internet Group Management Protocol (IGMP) 187
7.4.7 Address Resolution Protocol (ARP) 187
7.5 Protokolle der Anwendungsschicht 188
7.5.1 Das NetBIOS-Interface 189
7.5.2 NetBIOS-Namensverwaltung 189
7.5.3 NetBIOS-Namensregistrierung und -auflösung für
Multi-Homed-Computer 191
7.5.4 NetBIOS-Datagramme 191
7.5.5 NetBIOS-Sitzungen 191
7.5.6 File Transfer Protocol (FTP) 192
7.5.7 Simple Mail Transfer Protocol (SMTP) 192
7.5.8 Hypertext Transfer Protocol (HTTP) 192
7.6 NetBEUI 193
7.7 Server Message Block (SMB) 194
7.8 IP-Adressierung 195
7.8.1 Multi-Homed Computer 196
7.8.2 Adressklassen 196
7.9 Namensauflösung 197
7.9.1 Auflösung von Hostnamen 198
7.9.2 Auflösung von Hostnamen über eine hosts-Datei 198
7.9.3 Domain Name System (DNS) 199
7.9.4 Eine hosts-Datei mit DNS kombinieren 200
7.10 Verbesserungen von TCP/IP unter Windows 2000 202
7.10.1 Unterstützung für große Fenster 202
7.10.2 Selektive Bestätigungen 202
7.10.3 Einschätzung der Roundtrip Time (RTT) 203
7.10.4 TCP-Zeitstempel (RFC 1323) 203
7.10.5 Erkennung der PMTU (Path Maximum Transmission Unit) 203
7.10.6 Erkennung toter Gateways 204
7.10.7 TCP-Zeitgeber für Neuübertragungen 204
7.10.8 TCP-Keep-Alive-Meldungen 205
7.10.9 Slow-Start-Algorithmus und Vermeidung von Überlastungen 205
7.10.10 Silly Window Syndrom (SWS) 205
7.10.11 Nagle-Algorithmus 205
7.10.12 TCP-Timed-Wait-Verzögerung 206
7.10.13 Maximum Transmission Unit (MTU) 206
7.11 Dynamic Host Configuration Protocol 206
7.11.1 Unterstützung für Benutzerklassen 207
7.11.2 Multicast-Unterstützung 207
7.11.3 Erkennung von DHCP-Rogue-Servern 207
7.11.4 Fehlertoleranz 207
7.11.5 Unterstützung für DHCP-Clients 207
7.12 Dynamische Bandbreitenzuordnung 208
7.13 Quality of Service 208
7.13.1 Der RSVP-QoS-Dienst 208
7.13.2 Diff-Serve Class of Services 209
7.14 Tools und Strategien für TCP/IP-Troubleshooting 209
7.14.1 IPConfig 209
7.14.2 ping 209
7.14.3 arp 210
7.14.4 Tracert 210
7.14.5 Route 210
7.14.6 Netstat 210
7.14.7 NBTStat 211
7.14.8 Nslookup 211
7.14.9 Microsoft Netzwerkmonitor 212
7.15 Zusammenfassung 213
Kapitel 8 Kryptographie 215
8.1 Geschichte der Kryptographie 218
8.1.1 Kryptographie und die Regierung 219
8.1.2 Exportbeschränkungen 220
8.1.3 Der Clipper-Chip 220
8.1.4 Treuhandaufbewahrung und Wiederherstellung von Schlüsseln 221
8.2 Schlüssel und Schlüssellängen 222
8.3 Arten der Verschlüsselung 223
8.3.1 Private-Key-Verschlüsselung 223
8.3.2 Public-Key-Verschlüsselung 224
8.4 Übliche Verschlüsselungsalgorithmen 226
8.4.1 Der Data Encryption Standard (DES) 227
8.4.2 Hash-Algorithmen 227
8.4.3 RSA 228
8.4.4 Diffie-Hellman 228
8.4.5 Digital Signature Algorithm (DSA) 229
8.5 Applikationen, die Verschlüsselung verwenden 229
8.5.1 Nachrichtenübertragung 229
8.5.2 Webserver 232
8.5.3 Virtuelle Private Netzwerke 234
8.5.4 Mobiltelefone 236
8.5.5 Windows 2000 237
8.6 Die Zukunft der Kryptographie 237
8.7 Zusammenfassung 238
Kapitel 9 Einführung in IPSec 239
9.1 Was ist ein VPN und warum benutzt man es? 240
9.2 Übliche Probleme in der Informationssicherheit 242
9.2.1 Netzwerk-"Sniffing" 242
9.2.2 Datenintegrität 242
9.2.3 Passwortangriffe (Wörterbuchangriffe) 243
9.2.4 Denial-of-Service-Angriffe (DoS) 244
9.2.5 Man-in-the-Middle-Angriff 244
9.2.6 Spoofing 244
9.3 IPSec: Die auf Standards basierende Lösung für IP-Sicherheit 245
9.3.1 IPSec-Protokolltypen 246
9.3.2 Encapsulating Security Payload 247
9.3.3 Internet Security Key Association Key Management
Protocol (ISAKMP/Oakley ) 249
9.4 Das IPSec-Modell 252
9.5 Tunneling 253
9.5.1 ESP-Tunnelmodus 256
9.5.2 AH-Tunnelmodus 256
9.5.3 L2TP und IPSec 256
9.5.4 IPSec: Schutz gegen Angriffe 257
9.5.5 Public-Key-Verschlüsselung 257
9.6 Zusammenfassung 258
Kapitel 10 PKI 261
10.1 Zertifizierungsstellen 264
10.1.1 Hierarchie der Zertifizierungsstellen 265
10.2 Digitale Zertifikate 266
10.2.1 Ein Schlüsselpaar generieren 267
10.2.2 Ein Zertifikat ausstellen 268
10.2.3 X.509-Zertifikate 269
10.2.4 Zertifikatssperrlisten 271
10.3 PGP "Web of Trust" 271
10.4 Digitale Signaturen 272
10.5 Windows 2000 und die Public-Key-Infrastruktur 273
10.5.1 PKI-Komponenten in Windows 2000 273
10.5.2 Interoperabilität der PKI in Windows 2000 274
10.5.3 Windows 2000 Zertifikatsdienste 276
10.5.4 Eine unternehmensinterne CA mit Hilfe der Microsoft Zertifikatsdienste einsetzen 276
10.5.5 Schlüssel und Zertifikate benutzen 277
10.6 Warum sollten Sie eine PKI unter Windows 2000 benutzen? 278
10.6.1 Webserver-Sicherheit 278
10.6.2 Sichere E-Mail 279
10.6.3 Das verschlüsselte Dateisystem 280
10.6.4 IP Security (IPSec) 280
10.7 Zusammenfassung 281
Kapitel 11 Das Kerberos-Protokoll 283
11.1 Die Konzepte von Kerberos 284
11.1.1 Geteilte Geheimnisse 284
11.1.2 Mehrfache Authentifizierung 284
11.2 Kerberos-Komponenten unter Windows 2000 285
11.2.1 Das Key Distribution Center (KDC) 285
11.2.2 Kontodatenbank 286
11.2.3 Kerberos Security Support Provider 286
11.2.4 Namensauflösung über DNS 287
11.2.5 Physikalische Sicherheit 288
11.3 Was tut Kerberos für Windows 2000? 288
11.3.1 Anmeldung über NT LAN Manager 288
11.3.2 Single-Sign-On (SSO) 290
11.4 Die Authentifizierung unter Windows 2000 291
11.4.1 Netzwerkressourcen aus einer anderen Domäne benutzen 292
11.4.2 Transitive Vertrauensstellungen 294
11.4.3 Netzwerk-Performance 295
11.4.4 Beglaubigungscache 296
11.4.5 Verknüpfte Vertrauensstellungen 296
11.4.6 Netzwerksicherheit 297
11.5 Wie funktioniert Kerberos? 298
11.5.1 Abgelaufene Tickets 302
11.5.2 Gültigkeitsdauer der Tickets 302
11.5.3 Kerberos-Ticketfelder 303
11.5.4 Kerberos-Ticket-Flags 304
11.5.5 Forwardable/Forwarded Tickets 306
11.5.6 Renewable Tickets 306
11.5.7 Delegierung der Authentifizierung 306
11.5.8 Proxy-Tickets 307
11.5.9 Erweiterungen für das Kerberos-Protokoll 307
11.6 Administration von Kerberos 308
11.6.1 Konfigurierbare Richtlinien 308
11.6.2 Warum sollten Sie die Standardrichtlinien für Kerberos ändern? 309
11.6.3 Kerberos-Informationen auf dem Client 311
11.7 Zusammenfassung 313
Kapitel 12 X.500/LDAP 315
12.1 Informationen über das Netzwerk verfolgen 316
12.2 Was ist X.500? 317
12.2.1 Die Directory Information Base und der
Directory Information Tree 318
12.2.2 Der Directory User Agent 318
12.2.3 Der Directory System Agent 320
12.2.4 Open-System-Protokolle für Verzeichnisdienste 320
12.3 LDAP 321
12.3.1 LDAP, ein Protokoll 324
12.3.2 LDAP, ein API 329
12.4 Objekte und Attribute 330
12.4.1 Objektklassen 331
12.4.2 Was ist Vererbung? 332
12.4.3 Was sind Attribute? 334
12.5 Das Verzeichnisschema 337
12.5.1 Operationale LDAP-Attribute 338
12.5.2 Objekte im Verzeichnis benennen 338
12.6 Zusammenfassung 340
Teil III: Netzwerksicherheit unter Windows 2000 341
Kapitel 13 Vernetzungsmodell 343
13.1 Vernetzung unter Windows 2000: Was ist neu? 344
13.2 Windows DNA 345
13.3 Active Directory 346
13.3.1 Dienste des Active Directory 347
13.3.2 DNS und Active Directory 347
13.4 Netzwerkdienste 348
13.4.1 Windows 2000-Netzwerkdienste 349
13.4.2 Protokollstapel 350
13.5 Kommunikationsdienste und APIs 352
13.5.1 Windows Sockets 353
13.5.2 Named Pipes 353
13.5.3 NetBIOS 353
13.5.4 WinInet 354
13.5.5 RPC 354
13.5.6 COM/DCOM 355
13.5.7 COM+ 355
13.6 Sicherheit in Windows-2000-Netzwerken 356
13.6.1 IP Security 356
13.6.2 Authentifizierung 357
13.6.3 SSPI 357
13.6.4 CryptoAPI 358
13.6.5 Zertifikatsserver 359
13.6.6 VPN 359
13.6.7 EFS 360
13.7 Zusammenfassung 361
Kapitel 14 Active Directory 363
14.1 Das Verzeichnis 364
14.2 Komponenten des Active Directory 365
14.2.1 Objekte 366
14.2.2 Domänen 367
14.3 Offenes Design des Active Directory 371
14.3.1 Überblick über X.500 373
14.3.2 LDAP 374
14.4 Konzepte des Active Directory 375
14.4.1 Das Schema 375
14.4.2 Der globale Katalog 381
14.4.3 Der Namenraum 382
14.5 Namenskonventionen im Active Directory 383
14.5.1 Qualifizierter Name 383
14.5.2 Relativ qualifizierte Namen 383
14.5.3 Benutzerhauptnamen 384
14.6 Gruppen 384
14.6.1 Universelle Gruppen 384
14.6.2 Globale Gruppen 385
14.6.3 Lokale Domänengruppen 385
14.6.4 Lokale Gruppen 385
14.7 Aufbau des Active Directory 385
14.7.1 Replikation 386
14.7.2 Replikationsprotokolle 389
14.7.3 Multimaster-Replikation 390
14.7.4 FSMO 391
14.8 Sicherheit 392
14.8.1 Server-Rollen 392
14.9 Interoperabilität 393
14.10 Die Komponenten der Active Directory Engine 395
14.10.1 Datenbankstruktur 396
14.10.2 Datenbankdateien im Active Directory 396
14.11 Tools aus dem Windows 2000 Resource Kit 397
14.12 Zusammenfassung 398
Kapitel 15 Authentifizierung 399
15.1 Neue Protokolle 400
15.2 Das Schlüsselelement der Authentifizierung - der Benutzer! 402
15.3 Das Sicherheitssubsystem von Windows 2000 403
15.3.1 Die Local Security Authority (LSA) 404
15.3.2 Der Security Account Manager und das Active Directory 405
15.3.3 Der Security Reference Monitor 406
15.4 Der Anmeldeprozess 406
15.4.1 Die einzelnen Schritte der Anmeldung 407
15.4.2 Die allgemeine Anmeldesequenz 408
15.4.3 Die Authentifizierung 408
15.5 NTLM verstehen 411
15.5.1 Die benutzten NTLM-Versionen 411
15.5.2 LM gegen NTLM 412
15.5.3 Überprüfen, welche Version Sie verwenden 413
15.5.4 Kompatibilitätswerte für LM in der Registry einrichten 413
15.6 Die Risiken der Benutzung von NTLM 416
15.6.1 L0phtCrack 416
15.6.2 Netzwerkpaket-Sniffer 418
15.7 SSL/TLS verstehen 420
15.7.1 Den Public-Key-Prozess verstehen 422
15.8 Zusammenfassung 424
Kapitel 16 SSPI 425
16.1 Sichere Vernetzung durch SSPI 426
16.1.1 SSPI und das Sicherheitsmodell von Windows 2000 428
16.1.2 SSPI und Sicherheitspakete 428
16.2 Sichere Applikationen entwickeln 430
16.3 Package Management API 433
16.3.1 EnumerateSecurityPackages 433
16.3.2 QuerySecurityPackageInfo 434
16.4 Credential Management API 435
16.4.1 AcquireCredentialsHandle 435
16.4.2 FreeCredentialsHandle 437
16.4.3 QueryCredentialsAttributes 437
16.5 Context Management API 438
16.5.1 InitializeSecurityContext 438
16.5.2 AcceptSecurityContext 442
16.5.3 CompleteAuthToken 444
16.5.4 DeleteSecurityContext 445
16.5.5 QueryContextAttributes 445
16.5.6 ApplyControlToken 446
16.5.7 ImpersonateSecurityContext 446
16.5.8 RevertSecurityContext 446
16.5.9 ExportSecurityContext und ImportSecurityContext 446
16.6 Message Support API 446
16.6.1 MakeSignature 447
16.6.2 VerifySignature 448
16.6.3 EncryptMessage 450
16.6.4 DecryptMessage 452
16.7 Zusammenfassung 454
Kapitel 17 CryptoAPI 455
17.1 Sichere Kommunikation 456
17.2 Kryptographie und CryptoAPI 457
17.2.1 Signaturen und Hash-Werte 457
17.2.2 Zertifikate 458
17.2.3 Kryptographische Algorithmen 459
17.2.4 Kryptographische Dienstanbieter 460
17.3 CryptoAPI Administration 461
17.4 Kryptographie in Ihren Applikationen aktivieren 462
17.4.1 Die Funktionsbereiche des CryptoAPI 462
17.4.2 Beispiel für die Verschlüsselung 463
17.4.3 Beispiel für die Entschlüsselung 468
17.4.4 Nachrichten verschlüsseln 470
17.4.5 Nachrichten entschlüsseln 475
17.5 Zusammenfassung 477
Kapitel 18 Microsoft Zertifikatsdienste 479
18.1 Übersicht über die Verwendung von Zertifikaten 480
18.2 Kryptographie mit öffentlichen Schlüsseln 484
18.2.1 Wie funktioniert die Kryptographie mit
öffentlichen Schlüsseln? 485
18.2.2 Kryptographie mit öffentlichen Schlüsseln im Vergleich zu Kryptographie mit symmetrischen Schlüsseln 488
18.2.3 Mögliche Probleme mit Verschlüsselungssystemen
über öffentliche Schlüssel 489
18.3 Digitale Zertifikate 490
18.3.1 Was ist ein Zertifikat? 490
18.3.2 Format der X.509-Zertifikate 490
18.3.3 PKCS 7 491
18.3.4 PKCS 10 493
18.4 Zertifizierungsstellen und Infrastrukturen mit
öffentlichen Schlüsseln 494
18.4.1 Ausstellen von Zertifikaten 494
18.4.2 Erneuern von Zertifikaten 494
18.4.3 Widerrufen von Zertifikaten und Veröffentlichen einer Zertifikatssperrliste 495
18.4.4 PKIs 495
18.5 Zertifikatsdienste 496
18.5.1 Wie funktionieren die Zertifikatsdienste? 496
18.5.2 Planung der Einrichtung einer PKI 498
18.6 Installation der Zertifikatsdienste 498
18.7 Verwalten einer Zertifizierungsstelle 505
18.7.1 Verwaltung mit Hilfe einer MMC 505
18.7.2 Verwaltung über die Befehlszeile 510
18.8 Zusammenfassung 515
Kapitel 19 COM/DCOM/RPC 517
19.1 RPC, COM, DCOM, COM+: Wo ist der Unterschied? 518
19.1.1 Geschichtliche Entwicklung von COM 518
19.1.2 Sicherheit bei RPC 519
19.1.3 Sicherheit in COM/DCOM: das Erbe von RPC 521
19.1.4 Sicherheit in COM+: COM+ = COM + MTS 524
19.2 Verwaltung der COM+-Sicherheit 529
19.2.1 Die Konfiguration von COM-Sicherheit 529
19.2.2 Konfiguration der COM+-Sicherheit 536
19.3 Programmatische Implementierung der
COM+-Sicherheitsfunktionen 540
19.3.1 Initialisierung der Sicherheit 540
19.3.2 IClientSecurity 544
19.3.3 IServerSecurity 547
19.3.4 Hilfsfunktionen, die von COM bereitgestellt werden 550
19.3.5 Programmatische rollenbasierte Sicherheit 553
19.3.6 Delegierung und Cloaking 555
19.4 Das Schreiben sicherer N-Tier-Anwendungen 559
19.5 Zusammenfassung 560
Kapitel 20 VPNs 561
20.1 Warum sollten Sie ein VPN verwenden? 562
20.1.1 Intranets und Extranets 563
20.1.2 Sicherheit im Internet 564
20.1.3 Fähigkeiten von VPNs 566
20.1.4 Arten von VPNs 567
20.2 VPNs und Windows 2000 569
20.2.1 VPN-Protokolle 569
20.2.2 Verbindung über ein Windows-2000-VPN herstellen 571
20.3 Konfiguration des VPN-Clients 573
20.4 Verwalten des VPN-Servers 582
20.5 Zusammenfassung 585
Kapitel 21 EFS 587
21.1 EFS-Konzepte 588
21.1.1 Data Encryption Standard Exclusive (DESX) 589
21.1.2 Plattformen für EFS 590
21.2 Architektur von EFS 590
21.3 EFS und PKI 591
21.4 Zertifikatsdienste 591
21.5 Verschlüsselung 592
21.6 Entschlüsselung 594
21.6.1 Wiederherstellung 595
21.7 Einsatz von EFS 596
21.7.1 Dateien oder Ordner verschlüsseln 597
21.7.2 Sicherung von verschlüsselten Dateien und Ordnern 601
21.7.3 Befehlszeilenprogramme 607
21.7.4 Aktivieren und Deaktivieren von EFS 608
21.7.5 Speichern verschlüsselter Dateien im Netzwerk 609
21.7.6 Richtlinien im Umgang mit EFS 611
21.8 Zusammenfassung 613
Kapitel 22 DNS/DDNS/WINS 615
22.1 Domain Name System 616
22.1.1 Geschichte von DNS 616
22.1.2 DNS 618
22.1.3 Die DNS-Hierarchie 618
22.1.4 Installation des DNS-Servers unter Windows 2000 Server 623
22.1.5 Konfiguration von DNS 626
22.2 Dynamisches DNS 632
22.2.1 Dynamic Host Configuration Protocol (DHCP) 632
22.2.2 Wie funktioniert DHCP? 633
22.2.3 DHCP-Sicherheitsprobleme 634
22.2.4 DDNS in einer Umgebung mit Windows 2000 634
22.3 Sicherheitsprobleme im Umgang mit DNS 635
22.3.1 Sichere DNS-Implementierung (Geteiltes DNS) 636
22.4 WINS (Windows Internet Name Service) und Windows 2000 638
22.4.1 Funktionen von WINS 639
22.4.2 NetBIOS-Knotentypen 640
22.4.3 Elemente eines WINS-Netzwerks 641
22.4.4 Sicherheitsprobleme mit WINS 642
22.5 Zusammenfassung 642
Teil IV: Netzwerkdienste und sich selbst schützen 645
Kapitel 23 Computersicherheit in der Praxis 647
23.1 Soziale Manipulation 648
23.1.1 Bewusstsein, Richtlinien und Training 649
23.1.2 Trojaner 649
23.1.3 Verteilung 650
23.1.4 Abwartende trojanische Programme 651
23.1.5 Verringern der Bedrohung durch trojanische Programme 654
23.1.6 Prinzip der geringsten Rechte 655
23.2 Umschalten zwischen privilegierten und nicht
privilegierten Kontexten 655
23.2.1 su ist in NT 4 nicht so einfach 656
23.2.2 Sekundärer Anmeldedienst 657
23.2.3 Probleme mit der sekundären Anmeldung 658
23.2.4 Das Problem des Startens von Prozessen 659
23.2.5 Terminaldienste 662
23.2.6 Verwendung der sekundären Anmeldung 662
23.3 Weitere Sicherheitstechniken 664
23.4 Zusammenfassung 665
Kapitel 24 Aufbau und Administration eines sicheren Servers 667
24.1 Aufbau eines sicheren Servers 668
24.1.1 Einsatz unterschiedlicher Server für unterschiedliche Dienste 668
24.1.2 Sorgfältige Auswahl der Hardware und ein sicherer Standort 669
24.1.3 Muss eine ganz neue Installation durchgeführt werden? 669
24.1.4 Verwenden von NTFS 670
24.1.5 Besonderheiten des Encrypting File System (EFS) 676
24.1.6 Unnötige Dienste oder Komponenten 676
24.1.7 Unnötige Programme 679
24.2 Verwalten der Überwachung und das Erstellen
von Zugriffsberechtigungen auf Ressourcen 680
24.2.1 Einrichten der Überwachungsrichtlinie 681
24.2.2 Aktivieren der Überwachung 681
24.2.3 Einrichten der Überwachung von Dateien und Ordnern 684
24.2.4 Einrichten der Überwachung von Druckern 688
24.2.5 Anzeigen von Überwachungsereignissen 689
24.3 Systemdienste 692
24.4 Die Programme zur Sicherheitskonfiguration 697
24.4.1 Gruppenrichtlinien 697
24.4.2 Das Snap-In Gruppenrichtlinie 698
24.4.3 Sicherheitsvorlagen verwenden 699
24.4.4 Andere Optionen der Sicherheitsvorlage 703
24.4.5 Verwenden von Sicherheitsvorlagen für die
Analyse eines Systems 704
24.4.6 Konfigurieren des Systems mit Sicherheitsvorlagen 706
24.4.7 Das Programm SECEDIT 706
24.5 Zusammenfassung 709
Kapitel 25 Sicherheit bei Standleitungen 711
25.1 Einwählverbindungen 712
25.2 Breitbandverbindungen 713
25.3 Was ist zu tun? 715
25.3.1 Firewall-Lösungen 715
25.3.2 Host-basierte Lösungen 717
25.4 Netzwerkadressübersetzung 718
25.4.1 Was macht NAT? 718
25.4.2 Aktivieren der gemeinsamen Internetnutzung
in Windows 2000 720
25.4.3 NAT und die Sicherheit 724
25.5 Allgemeine Sicherheitstipps für Breitband-Verbindungen 726
25.6 Zusammenfassung 727
Kapitel 26 Angriffe erkennen und handhaben 729
26.1 Warum brauchen Sie ein Intrusion Response Team? 730
26.2 Ein Intrusion Response Team aufbauen 731
26.2.1 IRT-Satzung 732
26.2.2 Den Kontakt halten 733
26.3 Angriffe erkennen 733
26.3.1 Offenkundige Beweise 733
26.3.2 Seltsames Netzwerkverhalten 734
26.3.3 Beobachten Sie Ihre Protokolle 735
26.4 Reaktion auf Angriffe 738
26.4.1 Keine Panik 738
26.4.2 Sammeln Sie Ihr Team, und bereiten Sie Ihre Aktionen vor 739
26.4.3 Analysieren Sie die Situation 740
26.4.4 Beweise sammeln 743
26.4.5 Die Bedrohung neutralisieren 745
26.4.6 Analyse der Beweise 746
26.4.7 Angriffe melden 747
26.4.8 Einen Angriff verfolgen 748
26.5 Zusammenfassung 748
Kapitel 27 Aktuelle Sicherheitsprobleme 751
27.1 Warum Sie niemals vollkommen sicher sein werden 752
27.1.1 Ein aktuelles Beispiel - verteilte Denial-of-Service-Angriffe 752
27.1.2 Ein anderes aktuelles Beispiel - Datenkompromittierungen 753
27.1.3 Neue Protokolle und neue Software - neue Wege für Angriffe 754
27.2 Über neue Sicherheitsprobleme von Microsoft
auf dem Laufenden bleiben 754
27.2.1 Aktuelle Service Packs und Hot Fixes 755
27.2.2 Windows Update verwenden 756
27.3 Applikationen regelmäßig überprüfen 758
27.4 Auf dem Laufenden bleiben 759
27.4.1 Was ist NTBugTraq? 759
27.4.2 Forum of Incident Response and Security Teams (FIRST) 759
27.4.3 Das Systems Administration, Networking
Security (SANS) Institute 759
27.4.4 Das Computer Emergency Response Team (CERT) 760
27.4.5 Windows 2000 Magazine 760
27.4.6 Die Firewalls Mailing-Liste 760
27.4.7 Computer Operations, Audit and Security
Technology (COAST) 761
27.4.8 Federal Computer Incidence Response Capability 761
27.5 Ihre Benutzergemeinde schulen 761
27.6 Überprüfen Sie Ihre Server regelmäßig 762
27.6.1 Windows-Ereignisanzeige und Protokolldateien
von Applikationen 762
27.6.2 Auf SNMP- und RMON-Traps und -Ereignisse achten 763
27.7 Zusammenfassung 763
Kapitel 28 Sicherheitstests im eigenen Netzwerk 765
28.1 Warum werden Einbruchsversuche gemacht? 766
28.2 Denken als Cracker 767
28.3 Erkennen von Bedrohungen 768
28.3.1 Remote- und lokale Bedrohungen 769
28.3.2 Externe und interne Bedrohungen 770
28.4 Tiger-Teams 771
28.5 Externe Berater 771
28.6 Vorbereitungen für einen Einbruchsversuch 772
28.7 Erstellen eines Angriffsplans 773
28.7.1 Die Planung 774
28.7.2 Erlaubnis 777
28.8 Erkunden der Site 777
28.8.1 Lokal 777
28.8.2 Remote 779
28.9 Sammeln und Auswerten der gefundenen Daten 789
28.9.1 Erstellen einer Karte 789
28.9.2 Überprüfen von offenen Ports und Diensten 790
28.9.3 Überprüfen der Nutzung von bekannten Lücken 790
28.9.4 Sicherheitsrelevante Seiten von Herstellern 792
28.9.5 "Gray Hat"-Sites 792
28.10 Ausbeuten der Site 794
28.10.1 Mögliche Grade 794
28.10.2 Aktiver Angriff 795
28.10.3 Bekannte Angriffe 796
28.11 Bericht und weiterer Verlauf 798
28.11.1 Definition von Bedrohungsstufen 799
28.11.2 Erstellen eines Berichts 800
28.11.3 Reparaturmaßnahmen 800
28.11.4 Definieren von Problembereichen 801
28.11.5 Der weitere Verlauf der Einbruchsversuche 801
28.12 Verfügbare Programme 801
28.12.1 Kommerzielle Produkte 802
28.12.2 Programme aus der Sicherheitsszene 802
28.13 Zusammenfassung 804
Kapitel 29 Sicheren Programm-Code schreiben 805
29.1 Sichere Programme entwickeln 806
29.1.1 Warum sollte man sicheren Code schreiben? 807
29.1.2 Wo treten Sicherheitsprobleme auf? 807
29.1.3 Was kann ich beitragen? 808
29.2 Software-Sicherheit 808
29.2.1 Geben Sie Ihrer Software nur die nötigsten Rechte 810
29.2.2 Prüfen aller Return-Codes 810
29.2.3 Vermeiden Sie Annahmen 810
29.2.4 Testen Sie Ihren Code 811
29.2.5 Im Fehlerfall beenden 811
29.2.6 Denken Sie "um die Ecke" 812
29.3 Programmierprobleme 812
29.3.1 Mangel an Sicherheitsbewusstsein 812
29.3.2 Schlechtes Code-Design 813
29.3.3 Schlechter Code-Test 814
29.3.4 Nicht in Betracht gezogene Möglichkeiten 815
29.3.5 Zu komplexer Code 816
29.3.6 Zu einfacher Code 817
29.3.7 Schlechte Eingabeprüfung 817
29.3.8 Schlechte Prüfung der Grenzen 818
29.3.9 Überschnelle Schwingungen 818
29.4 Überprüfen von Code 819
29.4.1 Der Prüfprozess 819
29.5 Code-Probleme lösen 822
29.5.1 Wenn Sie den Code besitzen 822
29.5.2 Wenn Sie den Code nicht besitzen 823
29.5.3 Hilfreiche Programme 823
29.6 Puffer-Überläufe 825
29.6.1 Was ist ein Puffer-Überlauf? 825
29.6.2 Beispiel für einen Puffer-Überlauf 826
29.6.3 Ausnutzen eines Puffer-Überlaufs 828
29.6.4 Das Schließen der Lücke bei einem Puffer-Überlauf 836
29.7 Sprachspezifische Implementierungen 838
29.7.1 Visual C++ 838
29.7.2 Visual Basic 840
29.7.3 Java-Sicherheit 840
29.7.4 Perl 842
29.8 Sicherheit bei der Programmierung von Web-Anwendungen 844
29.8.1 CGI/Perl 845
29.8.2 SSI und andere Sprachen 846
29.8.3 ASP 847
29.9 Zusammenfassung 847
Stichwortverzeichnis 849
Der zufällige Netzwerkadministrator 27
Glaubenskriege und FUZ 28
Der Aufbau dieses Buchs 28
Wie Sie dieses Buch benutzen sollten 29
Feedback von Ihrer Seite 30
Viel Spaß! 30
Teil I: Systemgrundlagen von Windows 2000 31
Kapitel 1 Architektur 33
1.1 Ein neues Windows 34
1.2 Das Betriebssystemmodell von Windows 2000 36
1.2.1 Kernelmodus und Benutzermodus 36
1.2.2 Die Hardware Abstraction Layer 38
1.2.3 Der Kernel 38
1.2.4 Die Executive 39
1.2.5 Win32-Komponenten im Kernelmodus 40
1.2.6 Gerätetreiber 41
1.2.7 Module im Benutzermodus 41
1.2.8 System-Support-Prozesse 41
1.2.9 Dienste 44
1.2.10 Umgebungssubsysteme 45
1.3 Systemprozesse und -dateien von Windows 2000 47
1.4 Speicher 49
1.4.1 Kernelpool 55
1.5 Kernelobjekte 55
1.5.1 Handletabellen für Kernelobjekte 56
1.5.2 Kernelobjekte gemeinsam verwenden 56
1.5.3 Object Reference Calling 57
1.5.4 Sicherheit 58
1.6 Ausnahme- und Interrupt-Behandlung 58
1.6.1 Ausnahmebehandlung 59
1.7 Globale Flags 60
1.8 Zusammenfassung 61
Kapitel 2 Prozesse und Threads 63
2.1 Das Job-Objekt 64
2.1.1 Einzelheiten eines Jobs 67
2.1.2 Konteninformationen 69
2.1.3 Einschränkungen 69
2.1.4 Einschränkungen für die Benutzeroberfläche 70
2.1.5 Sicherheit 70
2.2 Prozesse 71
2.2.1 Wenn RestrictRun nicht implementiert ist 72
2.2.2 CreateProcess() aufrufen 74
2.2.3 Prozessobjekte im Kernel (der Block eprocess) 75
2.2.4 Datenstrukturen im Benutzermodus
(der Process Environment Block) 77
2.3 Threads 78
2.4 Zusammenfassung 79
Kapitel 3 Sicherheitsmodell 81
3.1 Objekte sichern 82
3.1.1 SIDs 84
3.1.2 Zugriffskontrolllisten (ACLs) 90
3.1.3 ACLs und ACEs zuweisen und erben 93
3.1.4 SD/ACL/ACE - Zusammenfassung 95
3.1.5 Token 95
3.1.6 Privilegien und Benutzerrechte 100
3.1.7 System-Kontext 104
3.1.8 Identitätswechsel (Impersonation) 105
3.1.9 Eingeschränkte Token 106
3.1.10 Sicherheit 106
3.2 Komponenten der Sicherheitsarchitektur von Windows 2000 107
3.2.1 Der Security Reference Monitor (SRM) 108
3.2.2 Die Local Security Authority (LSA) 110
3.2.3 Winlogon.exe 111
3.2.4 Graphical Identification and Authentication (GINA) 112
3.2.5 Network Logon Service 112
3.2.6 Sicherheitspakete 113
3.2.7 SSPI 113
3.2.8 SAM-Datenbank 113
3.2.9 Active Directory 114
3.3 Die Benutzeranmeldung 114
3.4 Zusammenfassung 117
Kapitel 4 NTFS 5.0 119
4.1 Die Master File Table (MFT) 120
4.1.1 Dateien 120
4.2 Datenströme 122
4.2.1 Benannte und unbenannte Datenströme 123
4.2.2 Verwendung mehrerer Datenströme 124
4.2.3 Verteilte Datenströme 125
4.2.4 Komprimierte Datenströme 126
4.2.5 Verschlüsselte Datenströme 128
4.3 Metadaten 128
4.4 Feste Verknüpfungen 130
4.5 Analysepunkte 131
4.6 Datenträgerkontingente (Quotas) 132
4.7 Zusammenfassung 134
Kapitel 5 Dienste 135
5.1 Was ist ein Dienst? 136
5.2 Der Service Control Manager (SCM) 137
5.2.1 Remote-Verbindungen zum SCM 138
5.2.2 Dienstanmeldung 139
5.2.3 Wiederherstellung 140
5.3 Sicherheit für Dienstobjekte 141
5.4 Starten eines Dienstes 142
5.5 Mehrere Dienste in einem Prozess 146
5.5.1 Sicherheitsauswirkungen 148
5.6 Generelle Sicherheitsbedenken hinsichtlich der Dienste 150
5.6.1 Die Benutzung einzelner Konten 151
5.6.2 Identitätswechsel (Impersonation) 152
5.6.3 Überwachen, überwachen und überwachen! 152
5.6.4 Interagieren Sie nicht! 153
5.6.5 Einer nach dem anderen, bitte 154
5.7 Sicherheitsbedenken in Bezug auf Dienste für Programmierer 155
5.7.1 Meldungen akzeptieren 155
5.7.2 Anforderungen zum Anhalten nicht akzeptieren 155
5.7.3 Meldungen zum Unterbrechen und Fortsetzen akzeptieren 156
5.7.4 Verhalten bei seltsamen Meldungen 156
5.8 Zusammenfassung 157
Kapitel 6 Gerätetreiber 159
6.1 Das I/O-Modell in Windows 2000 160
6.2 Arten von Treibern 160
6.2.1 Der Treiberstapel des Dateisystems 162
6.3 Speicher im Kernelmodus 165
6.3.1 Kernelspeicher und Paging 165
6.3.2 Für Kernelprozesse verfügbarer Speicher 165
6.4 Sichere Treiber schreiben 166
6.4.1 Pufferlängen überprüfen 166
6.4.2 Nicht initialisierte Daten nicht in den
Benutzermodus zurücksetzen 167
6.4.3 Probing, wenn notwendig 167
6.4.4 Try/Except-Blöcke verwenden 167
6.4.5 Auf I/O-Anfragen mit eingebetteten Zeigern achten 167
6.4.6 Die Handhabung von Nulllängen-Puffern 167
6.4.7 Probleme mit direkten doppelten I/O-Zuordnungen 168
6.4.8 Das DDK sorgfältig lesen 168
6.4.9 Wie der Feind denken 168
6.5 Signierung von Treibern 168
6.6 Bösartige Treiber 169
6.6.1 Was ist installiert? 170
6.7 Zusammenfassung 171
Teil II: Grundlagen der Netzwerksicherheit 173
Kapitel 7 Die Protokolle NetBIOS, NetBEUI, SMB und TCP/IP 175
7.1 Die Geschichte von TCP/IP 176
7.2 Die TCP/IP-Familie 177
7.3 Der TCP/IP-Protokollstapel 178
7.4 Protokolle der Transportschicht 179
7.4.1 Das Transmission Control Protocol (TCP) 180
7.4.2 User Datagram Protocol (UDP) 182
7.4.3 Internet Protocol (IP) 183
7.4.4 Internet Control Message Protocol (ICMP) 185
7.4.5 Internet Router Discovery Protocol (IRDP) 186
7.4.6 Internet Group Management Protocol (IGMP) 187
7.4.7 Address Resolution Protocol (ARP) 187
7.5 Protokolle der Anwendungsschicht 188
7.5.1 Das NetBIOS-Interface 189
7.5.2 NetBIOS-Namensverwaltung 189
7.5.3 NetBIOS-Namensregistrierung und -auflösung für
Multi-Homed-Computer 191
7.5.4 NetBIOS-Datagramme 191
7.5.5 NetBIOS-Sitzungen 191
7.5.6 File Transfer Protocol (FTP) 192
7.5.7 Simple Mail Transfer Protocol (SMTP) 192
7.5.8 Hypertext Transfer Protocol (HTTP) 192
7.6 NetBEUI 193
7.7 Server Message Block (SMB) 194
7.8 IP-Adressierung 195
7.8.1 Multi-Homed Computer 196
7.8.2 Adressklassen 196
7.9 Namensauflösung 197
7.9.1 Auflösung von Hostnamen 198
7.9.2 Auflösung von Hostnamen über eine hosts-Datei 198
7.9.3 Domain Name System (DNS) 199
7.9.4 Eine hosts-Datei mit DNS kombinieren 200
7.10 Verbesserungen von TCP/IP unter Windows 2000 202
7.10.1 Unterstützung für große Fenster 202
7.10.2 Selektive Bestätigungen 202
7.10.3 Einschätzung der Roundtrip Time (RTT) 203
7.10.4 TCP-Zeitstempel (RFC 1323) 203
7.10.5 Erkennung der PMTU (Path Maximum Transmission Unit) 203
7.10.6 Erkennung toter Gateways 204
7.10.7 TCP-Zeitgeber für Neuübertragungen 204
7.10.8 TCP-Keep-Alive-Meldungen 205
7.10.9 Slow-Start-Algorithmus und Vermeidung von Überlastungen 205
7.10.10 Silly Window Syndrom (SWS) 205
7.10.11 Nagle-Algorithmus 205
7.10.12 TCP-Timed-Wait-Verzögerung 206
7.10.13 Maximum Transmission Unit (MTU) 206
7.11 Dynamic Host Configuration Protocol 206
7.11.1 Unterstützung für Benutzerklassen 207
7.11.2 Multicast-Unterstützung 207
7.11.3 Erkennung von DHCP-Rogue-Servern 207
7.11.4 Fehlertoleranz 207
7.11.5 Unterstützung für DHCP-Clients 207
7.12 Dynamische Bandbreitenzuordnung 208
7.13 Quality of Service 208
7.13.1 Der RSVP-QoS-Dienst 208
7.13.2 Diff-Serve Class of Services 209
7.14 Tools und Strategien für TCP/IP-Troubleshooting 209
7.14.1 IPConfig 209
7.14.2 ping 209
7.14.3 arp 210
7.14.4 Tracert 210
7.14.5 Route 210
7.14.6 Netstat 210
7.14.7 NBTStat 211
7.14.8 Nslookup 211
7.14.9 Microsoft Netzwerkmonitor 212
7.15 Zusammenfassung 213
Kapitel 8 Kryptographie 215
8.1 Geschichte der Kryptographie 218
8.1.1 Kryptographie und die Regierung 219
8.1.2 Exportbeschränkungen 220
8.1.3 Der Clipper-Chip 220
8.1.4 Treuhandaufbewahrung und Wiederherstellung von Schlüsseln 221
8.2 Schlüssel und Schlüssellängen 222
8.3 Arten der Verschlüsselung 223
8.3.1 Private-Key-Verschlüsselung 223
8.3.2 Public-Key-Verschlüsselung 224
8.4 Übliche Verschlüsselungsalgorithmen 226
8.4.1 Der Data Encryption Standard (DES) 227
8.4.2 Hash-Algorithmen 227
8.4.3 RSA 228
8.4.4 Diffie-Hellman 228
8.4.5 Digital Signature Algorithm (DSA) 229
8.5 Applikationen, die Verschlüsselung verwenden 229
8.5.1 Nachrichtenübertragung 229
8.5.2 Webserver 232
8.5.3 Virtuelle Private Netzwerke 234
8.5.4 Mobiltelefone 236
8.5.5 Windows 2000 237
8.6 Die Zukunft der Kryptographie 237
8.7 Zusammenfassung 238
Kapitel 9 Einführung in IPSec 239
9.1 Was ist ein VPN und warum benutzt man es? 240
9.2 Übliche Probleme in der Informationssicherheit 242
9.2.1 Netzwerk-"Sniffing" 242
9.2.2 Datenintegrität 242
9.2.3 Passwortangriffe (Wörterbuchangriffe) 243
9.2.4 Denial-of-Service-Angriffe (DoS) 244
9.2.5 Man-in-the-Middle-Angriff 244
9.2.6 Spoofing 244
9.3 IPSec: Die auf Standards basierende Lösung für IP-Sicherheit 245
9.3.1 IPSec-Protokolltypen 246
9.3.2 Encapsulating Security Payload 247
9.3.3 Internet Security Key Association Key Management
Protocol (ISAKMP/Oakley ) 249
9.4 Das IPSec-Modell 252
9.5 Tunneling 253
9.5.1 ESP-Tunnelmodus 256
9.5.2 AH-Tunnelmodus 256
9.5.3 L2TP und IPSec 256
9.5.4 IPSec: Schutz gegen Angriffe 257
9.5.5 Public-Key-Verschlüsselung 257
9.6 Zusammenfassung 258
Kapitel 10 PKI 261
10.1 Zertifizierungsstellen 264
10.1.1 Hierarchie der Zertifizierungsstellen 265
10.2 Digitale Zertifikate 266
10.2.1 Ein Schlüsselpaar generieren 267
10.2.2 Ein Zertifikat ausstellen 268
10.2.3 X.509-Zertifikate 269
10.2.4 Zertifikatssperrlisten 271
10.3 PGP "Web of Trust" 271
10.4 Digitale Signaturen 272
10.5 Windows 2000 und die Public-Key-Infrastruktur 273
10.5.1 PKI-Komponenten in Windows 2000 273
10.5.2 Interoperabilität der PKI in Windows 2000 274
10.5.3 Windows 2000 Zertifikatsdienste 276
10.5.4 Eine unternehmensinterne CA mit Hilfe der Microsoft Zertifikatsdienste einsetzen 276
10.5.5 Schlüssel und Zertifikate benutzen 277
10.6 Warum sollten Sie eine PKI unter Windows 2000 benutzen? 278
10.6.1 Webserver-Sicherheit 278
10.6.2 Sichere E-Mail 279
10.6.3 Das verschlüsselte Dateisystem 280
10.6.4 IP Security (IPSec) 280
10.7 Zusammenfassung 281
Kapitel 11 Das Kerberos-Protokoll 283
11.1 Die Konzepte von Kerberos 284
11.1.1 Geteilte Geheimnisse 284
11.1.2 Mehrfache Authentifizierung 284
11.2 Kerberos-Komponenten unter Windows 2000 285
11.2.1 Das Key Distribution Center (KDC) 285
11.2.2 Kontodatenbank 286
11.2.3 Kerberos Security Support Provider 286
11.2.4 Namensauflösung über DNS 287
11.2.5 Physikalische Sicherheit 288
11.3 Was tut Kerberos für Windows 2000? 288
11.3.1 Anmeldung über NT LAN Manager 288
11.3.2 Single-Sign-On (SSO) 290
11.4 Die Authentifizierung unter Windows 2000 291
11.4.1 Netzwerkressourcen aus einer anderen Domäne benutzen 292
11.4.2 Transitive Vertrauensstellungen 294
11.4.3 Netzwerk-Performance 295
11.4.4 Beglaubigungscache 296
11.4.5 Verknüpfte Vertrauensstellungen 296
11.4.6 Netzwerksicherheit 297
11.5 Wie funktioniert Kerberos? 298
11.5.1 Abgelaufene Tickets 302
11.5.2 Gültigkeitsdauer der Tickets 302
11.5.3 Kerberos-Ticketfelder 303
11.5.4 Kerberos-Ticket-Flags 304
11.5.5 Forwardable/Forwarded Tickets 306
11.5.6 Renewable Tickets 306
11.5.7 Delegierung der Authentifizierung 306
11.5.8 Proxy-Tickets 307
11.5.9 Erweiterungen für das Kerberos-Protokoll 307
11.6 Administration von Kerberos 308
11.6.1 Konfigurierbare Richtlinien 308
11.6.2 Warum sollten Sie die Standardrichtlinien für Kerberos ändern? 309
11.6.3 Kerberos-Informationen auf dem Client 311
11.7 Zusammenfassung 313
Kapitel 12 X.500/LDAP 315
12.1 Informationen über das Netzwerk verfolgen 316
12.2 Was ist X.500? 317
12.2.1 Die Directory Information Base und der
Directory Information Tree 318
12.2.2 Der Directory User Agent 318
12.2.3 Der Directory System Agent 320
12.2.4 Open-System-Protokolle für Verzeichnisdienste 320
12.3 LDAP 321
12.3.1 LDAP, ein Protokoll 324
12.3.2 LDAP, ein API 329
12.4 Objekte und Attribute 330
12.4.1 Objektklassen 331
12.4.2 Was ist Vererbung? 332
12.4.3 Was sind Attribute? 334
12.5 Das Verzeichnisschema 337
12.5.1 Operationale LDAP-Attribute 338
12.5.2 Objekte im Verzeichnis benennen 338
12.6 Zusammenfassung 340
Teil III: Netzwerksicherheit unter Windows 2000 341
Kapitel 13 Vernetzungsmodell 343
13.1 Vernetzung unter Windows 2000: Was ist neu? 344
13.2 Windows DNA 345
13.3 Active Directory 346
13.3.1 Dienste des Active Directory 347
13.3.2 DNS und Active Directory 347
13.4 Netzwerkdienste 348
13.4.1 Windows 2000-Netzwerkdienste 349
13.4.2 Protokollstapel 350
13.5 Kommunikationsdienste und APIs 352
13.5.1 Windows Sockets 353
13.5.2 Named Pipes 353
13.5.3 NetBIOS 353
13.5.4 WinInet 354
13.5.5 RPC 354
13.5.6 COM/DCOM 355
13.5.7 COM+ 355
13.6 Sicherheit in Windows-2000-Netzwerken 356
13.6.1 IP Security 356
13.6.2 Authentifizierung 357
13.6.3 SSPI 357
13.6.4 CryptoAPI 358
13.6.5 Zertifikatsserver 359
13.6.6 VPN 359
13.6.7 EFS 360
13.7 Zusammenfassung 361
Kapitel 14 Active Directory 363
14.1 Das Verzeichnis 364
14.2 Komponenten des Active Directory 365
14.2.1 Objekte 366
14.2.2 Domänen 367
14.3 Offenes Design des Active Directory 371
14.3.1 Überblick über X.500 373
14.3.2 LDAP 374
14.4 Konzepte des Active Directory 375
14.4.1 Das Schema 375
14.4.2 Der globale Katalog 381
14.4.3 Der Namenraum 382
14.5 Namenskonventionen im Active Directory 383
14.5.1 Qualifizierter Name 383
14.5.2 Relativ qualifizierte Namen 383
14.5.3 Benutzerhauptnamen 384
14.6 Gruppen 384
14.6.1 Universelle Gruppen 384
14.6.2 Globale Gruppen 385
14.6.3 Lokale Domänengruppen 385
14.6.4 Lokale Gruppen 385
14.7 Aufbau des Active Directory 385
14.7.1 Replikation 386
14.7.2 Replikationsprotokolle 389
14.7.3 Multimaster-Replikation 390
14.7.4 FSMO 391
14.8 Sicherheit 392
14.8.1 Server-Rollen 392
14.9 Interoperabilität 393
14.10 Die Komponenten der Active Directory Engine 395
14.10.1 Datenbankstruktur 396
14.10.2 Datenbankdateien im Active Directory 396
14.11 Tools aus dem Windows 2000 Resource Kit 397
14.12 Zusammenfassung 398
Kapitel 15 Authentifizierung 399
15.1 Neue Protokolle 400
15.2 Das Schlüsselelement der Authentifizierung - der Benutzer! 402
15.3 Das Sicherheitssubsystem von Windows 2000 403
15.3.1 Die Local Security Authority (LSA) 404
15.3.2 Der Security Account Manager und das Active Directory 405
15.3.3 Der Security Reference Monitor 406
15.4 Der Anmeldeprozess 406
15.4.1 Die einzelnen Schritte der Anmeldung 407
15.4.2 Die allgemeine Anmeldesequenz 408
15.4.3 Die Authentifizierung 408
15.5 NTLM verstehen 411
15.5.1 Die benutzten NTLM-Versionen 411
15.5.2 LM gegen NTLM 412
15.5.3 Überprüfen, welche Version Sie verwenden 413
15.5.4 Kompatibilitätswerte für LM in der Registry einrichten 413
15.6 Die Risiken der Benutzung von NTLM 416
15.6.1 L0phtCrack 416
15.6.2 Netzwerkpaket-Sniffer 418
15.7 SSL/TLS verstehen 420
15.7.1 Den Public-Key-Prozess verstehen 422
15.8 Zusammenfassung 424
Kapitel 16 SSPI 425
16.1 Sichere Vernetzung durch SSPI 426
16.1.1 SSPI und das Sicherheitsmodell von Windows 2000 428
16.1.2 SSPI und Sicherheitspakete 428
16.2 Sichere Applikationen entwickeln 430
16.3 Package Management API 433
16.3.1 EnumerateSecurityPackages 433
16.3.2 QuerySecurityPackageInfo 434
16.4 Credential Management API 435
16.4.1 AcquireCredentialsHandle 435
16.4.2 FreeCredentialsHandle 437
16.4.3 QueryCredentialsAttributes 437
16.5 Context Management API 438
16.5.1 InitializeSecurityContext 438
16.5.2 AcceptSecurityContext 442
16.5.3 CompleteAuthToken 444
16.5.4 DeleteSecurityContext 445
16.5.5 QueryContextAttributes 445
16.5.6 ApplyControlToken 446
16.5.7 ImpersonateSecurityContext 446
16.5.8 RevertSecurityContext 446
16.5.9 ExportSecurityContext und ImportSecurityContext 446
16.6 Message Support API 446
16.6.1 MakeSignature 447
16.6.2 VerifySignature 448
16.6.3 EncryptMessage 450
16.6.4 DecryptMessage 452
16.7 Zusammenfassung 454
Kapitel 17 CryptoAPI 455
17.1 Sichere Kommunikation 456
17.2 Kryptographie und CryptoAPI 457
17.2.1 Signaturen und Hash-Werte 457
17.2.2 Zertifikate 458
17.2.3 Kryptographische Algorithmen 459
17.2.4 Kryptographische Dienstanbieter 460
17.3 CryptoAPI Administration 461
17.4 Kryptographie in Ihren Applikationen aktivieren 462
17.4.1 Die Funktionsbereiche des CryptoAPI 462
17.4.2 Beispiel für die Verschlüsselung 463
17.4.3 Beispiel für die Entschlüsselung 468
17.4.4 Nachrichten verschlüsseln 470
17.4.5 Nachrichten entschlüsseln 475
17.5 Zusammenfassung 477
Kapitel 18 Microsoft Zertifikatsdienste 479
18.1 Übersicht über die Verwendung von Zertifikaten 480
18.2 Kryptographie mit öffentlichen Schlüsseln 484
18.2.1 Wie funktioniert die Kryptographie mit
öffentlichen Schlüsseln? 485
18.2.2 Kryptographie mit öffentlichen Schlüsseln im Vergleich zu Kryptographie mit symmetrischen Schlüsseln 488
18.2.3 Mögliche Probleme mit Verschlüsselungssystemen
über öffentliche Schlüssel 489
18.3 Digitale Zertifikate 490
18.3.1 Was ist ein Zertifikat? 490
18.3.2 Format der X.509-Zertifikate 490
18.3.3 PKCS 7 491
18.3.4 PKCS 10 493
18.4 Zertifizierungsstellen und Infrastrukturen mit
öffentlichen Schlüsseln 494
18.4.1 Ausstellen von Zertifikaten 494
18.4.2 Erneuern von Zertifikaten 494
18.4.3 Widerrufen von Zertifikaten und Veröffentlichen einer Zertifikatssperrliste 495
18.4.4 PKIs 495
18.5 Zertifikatsdienste 496
18.5.1 Wie funktionieren die Zertifikatsdienste? 496
18.5.2 Planung der Einrichtung einer PKI 498
18.6 Installation der Zertifikatsdienste 498
18.7 Verwalten einer Zertifizierungsstelle 505
18.7.1 Verwaltung mit Hilfe einer MMC 505
18.7.2 Verwaltung über die Befehlszeile 510
18.8 Zusammenfassung 515
Kapitel 19 COM/DCOM/RPC 517
19.1 RPC, COM, DCOM, COM+: Wo ist der Unterschied? 518
19.1.1 Geschichtliche Entwicklung von COM 518
19.1.2 Sicherheit bei RPC 519
19.1.3 Sicherheit in COM/DCOM: das Erbe von RPC 521
19.1.4 Sicherheit in COM+: COM+ = COM + MTS 524
19.2 Verwaltung der COM+-Sicherheit 529
19.2.1 Die Konfiguration von COM-Sicherheit 529
19.2.2 Konfiguration der COM+-Sicherheit 536
19.3 Programmatische Implementierung der
COM+-Sicherheitsfunktionen 540
19.3.1 Initialisierung der Sicherheit 540
19.3.2 IClientSecurity 544
19.3.3 IServerSecurity 547
19.3.4 Hilfsfunktionen, die von COM bereitgestellt werden 550
19.3.5 Programmatische rollenbasierte Sicherheit 553
19.3.6 Delegierung und Cloaking 555
19.4 Das Schreiben sicherer N-Tier-Anwendungen 559
19.5 Zusammenfassung 560
Kapitel 20 VPNs 561
20.1 Warum sollten Sie ein VPN verwenden? 562
20.1.1 Intranets und Extranets 563
20.1.2 Sicherheit im Internet 564
20.1.3 Fähigkeiten von VPNs 566
20.1.4 Arten von VPNs 567
20.2 VPNs und Windows 2000 569
20.2.1 VPN-Protokolle 569
20.2.2 Verbindung über ein Windows-2000-VPN herstellen 571
20.3 Konfiguration des VPN-Clients 573
20.4 Verwalten des VPN-Servers 582
20.5 Zusammenfassung 585
Kapitel 21 EFS 587
21.1 EFS-Konzepte 588
21.1.1 Data Encryption Standard Exclusive (DESX) 589
21.1.2 Plattformen für EFS 590
21.2 Architektur von EFS 590
21.3 EFS und PKI 591
21.4 Zertifikatsdienste 591
21.5 Verschlüsselung 592
21.6 Entschlüsselung 594
21.6.1 Wiederherstellung 595
21.7 Einsatz von EFS 596
21.7.1 Dateien oder Ordner verschlüsseln 597
21.7.2 Sicherung von verschlüsselten Dateien und Ordnern 601
21.7.3 Befehlszeilenprogramme 607
21.7.4 Aktivieren und Deaktivieren von EFS 608
21.7.5 Speichern verschlüsselter Dateien im Netzwerk 609
21.7.6 Richtlinien im Umgang mit EFS 611
21.8 Zusammenfassung 613
Kapitel 22 DNS/DDNS/WINS 615
22.1 Domain Name System 616
22.1.1 Geschichte von DNS 616
22.1.2 DNS 618
22.1.3 Die DNS-Hierarchie 618
22.1.4 Installation des DNS-Servers unter Windows 2000 Server 623
22.1.5 Konfiguration von DNS 626
22.2 Dynamisches DNS 632
22.2.1 Dynamic Host Configuration Protocol (DHCP) 632
22.2.2 Wie funktioniert DHCP? 633
22.2.3 DHCP-Sicherheitsprobleme 634
22.2.4 DDNS in einer Umgebung mit Windows 2000 634
22.3 Sicherheitsprobleme im Umgang mit DNS 635
22.3.1 Sichere DNS-Implementierung (Geteiltes DNS) 636
22.4 WINS (Windows Internet Name Service) und Windows 2000 638
22.4.1 Funktionen von WINS 639
22.4.2 NetBIOS-Knotentypen 640
22.4.3 Elemente eines WINS-Netzwerks 641
22.4.4 Sicherheitsprobleme mit WINS 642
22.5 Zusammenfassung 642
Teil IV: Netzwerkdienste und sich selbst schützen 645
Kapitel 23 Computersicherheit in der Praxis 647
23.1 Soziale Manipulation 648
23.1.1 Bewusstsein, Richtlinien und Training 649
23.1.2 Trojaner 649
23.1.3 Verteilung 650
23.1.4 Abwartende trojanische Programme 651
23.1.5 Verringern der Bedrohung durch trojanische Programme 654
23.1.6 Prinzip der geringsten Rechte 655
23.2 Umschalten zwischen privilegierten und nicht
privilegierten Kontexten 655
23.2.1 su ist in NT 4 nicht so einfach 656
23.2.2 Sekundärer Anmeldedienst 657
23.2.3 Probleme mit der sekundären Anmeldung 658
23.2.4 Das Problem des Startens von Prozessen 659
23.2.5 Terminaldienste 662
23.2.6 Verwendung der sekundären Anmeldung 662
23.3 Weitere Sicherheitstechniken 664
23.4 Zusammenfassung 665
Kapitel 24 Aufbau und Administration eines sicheren Servers 667
24.1 Aufbau eines sicheren Servers 668
24.1.1 Einsatz unterschiedlicher Server für unterschiedliche Dienste 668
24.1.2 Sorgfältige Auswahl der Hardware und ein sicherer Standort 669
24.1.3 Muss eine ganz neue Installation durchgeführt werden? 669
24.1.4 Verwenden von NTFS 670
24.1.5 Besonderheiten des Encrypting File System (EFS) 676
24.1.6 Unnötige Dienste oder Komponenten 676
24.1.7 Unnötige Programme 679
24.2 Verwalten der Überwachung und das Erstellen
von Zugriffsberechtigungen auf Ressourcen 680
24.2.1 Einrichten der Überwachungsrichtlinie 681
24.2.2 Aktivieren der Überwachung 681
24.2.3 Einrichten der Überwachung von Dateien und Ordnern 684
24.2.4 Einrichten der Überwachung von Druckern 688
24.2.5 Anzeigen von Überwachungsereignissen 689
24.3 Systemdienste 692
24.4 Die Programme zur Sicherheitskonfiguration 697
24.4.1 Gruppenrichtlinien 697
24.4.2 Das Snap-In Gruppenrichtlinie 698
24.4.3 Sicherheitsvorlagen verwenden 699
24.4.4 Andere Optionen der Sicherheitsvorlage 703
24.4.5 Verwenden von Sicherheitsvorlagen für die
Analyse eines Systems 704
24.4.6 Konfigurieren des Systems mit Sicherheitsvorlagen 706
24.4.7 Das Programm SECEDIT 706
24.5 Zusammenfassung 709
Kapitel 25 Sicherheit bei Standleitungen 711
25.1 Einwählverbindungen 712
25.2 Breitbandverbindungen 713
25.3 Was ist zu tun? 715
25.3.1 Firewall-Lösungen 715
25.3.2 Host-basierte Lösungen 717
25.4 Netzwerkadressübersetzung 718
25.4.1 Was macht NAT? 718
25.4.2 Aktivieren der gemeinsamen Internetnutzung
in Windows 2000 720
25.4.3 NAT und die Sicherheit 724
25.5 Allgemeine Sicherheitstipps für Breitband-Verbindungen 726
25.6 Zusammenfassung 727
Kapitel 26 Angriffe erkennen und handhaben 729
26.1 Warum brauchen Sie ein Intrusion Response Team? 730
26.2 Ein Intrusion Response Team aufbauen 731
26.2.1 IRT-Satzung 732
26.2.2 Den Kontakt halten 733
26.3 Angriffe erkennen 733
26.3.1 Offenkundige Beweise 733
26.3.2 Seltsames Netzwerkverhalten 734
26.3.3 Beobachten Sie Ihre Protokolle 735
26.4 Reaktion auf Angriffe 738
26.4.1 Keine Panik 738
26.4.2 Sammeln Sie Ihr Team, und bereiten Sie Ihre Aktionen vor 739
26.4.3 Analysieren Sie die Situation 740
26.4.4 Beweise sammeln 743
26.4.5 Die Bedrohung neutralisieren 745
26.4.6 Analyse der Beweise 746
26.4.7 Angriffe melden 747
26.4.8 Einen Angriff verfolgen 748
26.5 Zusammenfassung 748
Kapitel 27 Aktuelle Sicherheitsprobleme 751
27.1 Warum Sie niemals vollkommen sicher sein werden 752
27.1.1 Ein aktuelles Beispiel - verteilte Denial-of-Service-Angriffe 752
27.1.2 Ein anderes aktuelles Beispiel - Datenkompromittierungen 753
27.1.3 Neue Protokolle und neue Software - neue Wege für Angriffe 754
27.2 Über neue Sicherheitsprobleme von Microsoft
auf dem Laufenden bleiben 754
27.2.1 Aktuelle Service Packs und Hot Fixes 755
27.2.2 Windows Update verwenden 756
27.3 Applikationen regelmäßig überprüfen 758
27.4 Auf dem Laufenden bleiben 759
27.4.1 Was ist NTBugTraq? 759
27.4.2 Forum of Incident Response and Security Teams (FIRST) 759
27.4.3 Das Systems Administration, Networking
Security (SANS) Institute 759
27.4.4 Das Computer Emergency Response Team (CERT) 760
27.4.5 Windows 2000 Magazine 760
27.4.6 Die Firewalls Mailing-Liste 760
27.4.7 Computer Operations, Audit and Security
Technology (COAST) 761
27.4.8 Federal Computer Incidence Response Capability 761
27.5 Ihre Benutzergemeinde schulen 761
27.6 Überprüfen Sie Ihre Server regelmäßig 762
27.6.1 Windows-Ereignisanzeige und Protokolldateien
von Applikationen 762
27.6.2 Auf SNMP- und RMON-Traps und -Ereignisse achten 763
27.7 Zusammenfassung 763
Kapitel 28 Sicherheitstests im eigenen Netzwerk 765
28.1 Warum werden Einbruchsversuche gemacht? 766
28.2 Denken als Cracker 767
28.3 Erkennen von Bedrohungen 768
28.3.1 Remote- und lokale Bedrohungen 769
28.3.2 Externe und interne Bedrohungen 770
28.4 Tiger-Teams 771
28.5 Externe Berater 771
28.6 Vorbereitungen für einen Einbruchsversuch 772
28.7 Erstellen eines Angriffsplans 773
28.7.1 Die Planung 774
28.7.2 Erlaubnis 777
28.8 Erkunden der Site 777
28.8.1 Lokal 777
28.8.2 Remote 779
28.9 Sammeln und Auswerten der gefundenen Daten 789
28.9.1 Erstellen einer Karte 789
28.9.2 Überprüfen von offenen Ports und Diensten 790
28.9.3 Überprüfen der Nutzung von bekannten Lücken 790
28.9.4 Sicherheitsrelevante Seiten von Herstellern 792
28.9.5 "Gray Hat"-Sites 792
28.10 Ausbeuten der Site 794
28.10.1 Mögliche Grade 794
28.10.2 Aktiver Angriff 795
28.10.3 Bekannte Angriffe 796
28.11 Bericht und weiterer Verlauf 798
28.11.1 Definition von Bedrohungsstufen 799
28.11.2 Erstellen eines Berichts 800
28.11.3 Reparaturmaßnahmen 800
28.11.4 Definieren von Problembereichen 801
28.11.5 Der weitere Verlauf der Einbruchsversuche 801
28.12 Verfügbare Programme 801
28.12.1 Kommerzielle Produkte 802
28.12.2 Programme aus der Sicherheitsszene 802
28.13 Zusammenfassung 804
Kapitel 29 Sicheren Programm-Code schreiben 805
29.1 Sichere Programme entwickeln 806
29.1.1 Warum sollte man sicheren Code schreiben? 807
29.1.2 Wo treten Sicherheitsprobleme auf? 807
29.1.3 Was kann ich beitragen? 808
29.2 Software-Sicherheit 808
29.2.1 Geben Sie Ihrer Software nur die nötigsten Rechte 810
29.2.2 Prüfen aller Return-Codes 810
29.2.3 Vermeiden Sie Annahmen 810
29.2.4 Testen Sie Ihren Code 811
29.2.5 Im Fehlerfall beenden 811
29.2.6 Denken Sie "um die Ecke" 812
29.3 Programmierprobleme 812
29.3.1 Mangel an Sicherheitsbewusstsein 812
29.3.2 Schlechtes Code-Design 813
29.3.3 Schlechter Code-Test 814
29.3.4 Nicht in Betracht gezogene Möglichkeiten 815
29.3.5 Zu komplexer Code 816
29.3.6 Zu einfacher Code 817
29.3.7 Schlechte Eingabeprüfung 817
29.3.8 Schlechte Prüfung der Grenzen 818
29.3.9 Überschnelle Schwingungen 818
29.4 Überprüfen von Code 819
29.4.1 Der Prüfprozess 819
29.5 Code-Probleme lösen 822
29.5.1 Wenn Sie den Code besitzen 822
29.5.2 Wenn Sie den Code nicht besitzen 823
29.5.3 Hilfreiche Programme 823
29.6 Puffer-Überläufe 825
29.6.1 Was ist ein Puffer-Überlauf? 825
29.6.2 Beispiel für einen Puffer-Überlauf 826
29.6.3 Ausnutzen eines Puffer-Überlaufs 828
29.6.4 Das Schließen der Lücke bei einem Puffer-Überlauf 836
29.7 Sprachspezifische Implementierungen 838
29.7.1 Visual C++ 838
29.7.2 Visual Basic 840
29.7.3 Java-Sicherheit 840
29.7.4 Perl 842
29.8 Sicherheit bei der Programmierung von Web-Anwendungen 844
29.8.1 CGI/Perl 845
29.8.2 SSI und andere Sprachen 846
29.8.3 ASP 847
29.9 Zusammenfassung 847
Stichwortverzeichnis 849
Einführung 27
Der zufällige Netzwerkadministrator 27
Glaubenskriege und FUZ 28
Der Aufbau dieses Buchs 28
Wie Sie dieses Buch benutzen sollten 29
Feedback von Ihrer Seite 30
Viel Spaß! 30
Teil I: Systemgrundlagen von Windows 2000 31
Kapitel 1 Architektur 33
1.1 Ein neues Windows 34
1.2 Das Betriebssystemmodell von Windows 2000 36
1.2.1 Kernelmodus und Benutzermodus 36
1.2.2 Die Hardware Abstraction Layer 38
1.2.3 Der Kernel 38
1.2.4 Die Executive 39
1.2.5 Win32-Komponenten im Kernelmodus 40
1.2.6 Gerätetreiber 41
1.2.7 Module im Benutzermodus 41
1.2.8 System-Support-Prozesse 41
1.2.9 Dienste 44
1.2.10 Umgebungssubsysteme 45
1.3 Systemprozesse und -dateien von Windows 2000 47
1.4 Speicher 49
1.4.1 Kernelpool 55
1.5 Kernelobjekte 55
1.5.1 Handletabellen für Kernelobjekte 56
1.5.2 Kernelobjekte gemeinsam verwenden 56
1.5.3 Object Reference Calling 57
1.5.4 Sicherheit 58
1.6 Ausnahme- und Interrupt-Behandlung 58
1.6.1 Ausnahmebehandlung 59
1.7 Globale Flags 60
1.8 Zusammenfassung 61
Kapitel 2 Prozesse und Threads 63
2.1 Das Job-Objekt 64
2.1.1 Einzelheiten eines Jobs 67
2.1.2 Konteninformationen 69
2.1.3 Einschränkungen 69
2.1.4 Einschränkungen für die Benutzeroberfläche 70
2.1.5 Sicherheit 70
2.2 Prozesse 71
2.2.1 Wenn RestrictRun nicht implementiert ist 72
2.2.2 CreateProcess() aufrufen 74
2.2.3 Prozessobjekte im Kernel (der Block eprocess) 75
2.2.4 Datenstrukturen im Benutzermodus
(der Process Environment Block) 77
2.3 Threads 78
2.4 Zusammenfassung 79
Kapitel 3 Sicherheitsmodell 81
3.1 Objekte sichern 82
3.1.1 SIDs 84
3.1.2 Zugriffskontrolllisten (ACLs) 90
3.1.3 ACLs und ACEs zuweisen und erben 93
3.1.4 SD/ACL/ACE - Zusammenfassung 95
3.1.5 Token 95
3.1.6 Privilegien und Benutzerrechte 100
3.1.7 System-Kontext 104
3.1.8 Identitätswechsel (Impersonation) 105
3.1.9 Eingeschränkte Token 106
3.1.10 Sicherheit 106
3.2 Komponenten der Sicherheitsarchitektur von Windows 2000 107
3.2.1 Der Security Reference Monitor (SRM) 108
3.2.2 Die Local Security Authority (LSA) 110
3.2.3 Winlogon.exe 111
3.2.4 Graphical Identification and Authentication (GINA) 112
3.2.5 Network Logon Service 112
3.2.6 Sicherheitspakete 113
3.2.7 SSPI 113
3.2.8 SAM-Datenbank 113
3.2.9 Active Directory 114
3.3 Die Benutzeranmeldung 114
3.4 Zusammenfassung 117
Kapitel 4 NTFS 5.0 119
4.1 Die Master File Table (MFT) 120
4.1.1 Dateien 120
4.2 Datenströme 122
4.2.1 Benannte und unbenannte Datenströme 123
4.2.2 Verwendung mehrerer Datenströme 124
4.2.3 Verteilte Datenströme 125
4.2.4 Komprimierte Datenströme 126
4.2.5 Verschlüsselte Datenströme 128
4.3 Metadaten 128
4.4 Feste Verknüpfungen 130
4.5 Analysepunkte 131
4.6 Datenträgerkontingente (Quotas) 132
4.7 Zusammenfassung 134
Kapitel 5 Dienste 135
5.1 Was ist ein Dienst? 136
5.2 Der Service Control Manager (SCM) 137
5.2.1 Remote-Verbindungen zum SCM 138
5.2.2 Dienstanmeldung 139
5.2.3 Wiederherstellung 140
5.3 Sicherheit für Dienstobjekte 141
5.4 Starten eines Dienstes 142
5.5 Mehrere Dienste in einem Prozess 146
5.5.1 Sicherheitsauswirkungen 148
5.6 Generelle Sicherheitsbedenken hinsichtlich der Dienste 150
5.6.1 Die Benutzung einzelner Konten 151
5.6.2 Identitätswechsel (Impersonation) 152
5.6.3 Überwachen, überwachen und überwachen! 152
5.6.4 Interagieren Sie nicht! 153
5.6.5 Einer nach dem anderen, bitte 154
5.7 Sicherheitsbedenken in Bezug auf Dienste für Programmierer 155
5.7.1 Meldungen akzeptieren 155
5.7.2 Anforderungen zum Anhalten nicht akzeptieren 155
5.7.3 Meldungen zum Unterbrechen und Fortsetzen akzeptieren 156
5.7.4 Verhalten bei seltsamen Meldungen 156
5.8 Zusammenfassung 157
Kapitel 6 Gerätetreiber 159
6.1 Das I/O-Modell in Windows 2000 160
6.2 Arten von Treibern 160
6.2.1 Der Treiberstapel des Dateisystems 162
6.3 Speicher im Kernelmodus 165
6.3.1 Kernelspeicher und Paging 165
6.3.2 Für Kernelprozesse verfügbarer Speicher 165
6.4 Sichere Treiber schreiben 166
6.4.1 Pufferlängen überprüfen 166
6.4.2 Nicht initialisierte Daten nicht in den
Benutzermodus zurücksetzen 167
6.4.3 Probing, wenn notwendig 167
6.4.4 Try/Except-Blöcke verwenden 167
6.4.5 Auf I/O-Anfragen mit eingebetteten Zeigern achten 167
6.4.6 Die Handhabung von Nulllängen-Puffern 167
6.4.7 Probleme mit direkten doppelten I/O-Zuordnungen 168
6.4.8 Das DDK sorgfältig lesen 168
6.4.9 Wie der Feind denken 168
6.5 Signierung von Treibern 168
6.6 Bösartige Treiber 169
6.6.1 Was ist installiert? 170
6.7 Zusammenfassung 171
Teil II: Grundlagen der Netzwerksicherheit 173
Kapitel 7 Die Protokolle NetBIOS, NetBEUI, SMB und TCP/IP 175
7.1 Die Geschichte von TCP/IP 176
7.2 Die TCP/IP-Familie 177
7.3 Der TCP/IP-Protokollstapel 178
7.4 Protokolle der Transportschicht 179
7.4.1 Das Transmission Control Protocol (TCP) 180
7.4.2 User Datagram Protocol (UDP) 182
7.4.3 Internet Protocol (IP) 183
7.4.4 Internet Control Message Protocol (ICMP) 185
7.4.5 Internet Router Discovery Protocol (IRDP) 186
7.4.6 Internet Group Management Protocol (IGMP) 187
7.4.7 Address Resolution Protocol (ARP) 187
7.5 Protokolle der Anwendungsschicht 188
7.5.1 Das NetBIOS-Interface 189
7.5.2 NetBIOS-Namensverwaltung 189
7.5.3 NetBIOS-Namensregistrierung und -auflösung für
Multi-Homed-Computer 191
7.5.4 NetBIOS-Datagramme 191
7.5.5 NetBIOS-Sitzungen 191
7.5.6 File Transfer Protocol (FTP) 192
7.5.7 Simple Mail Transfer Protocol (SMTP) 192
7.5.8 Hypertext Transfer Protocol (HTTP) 192
7.6 NetBEUI 193
7.7 Server Message Block (SMB) 194
7.8 IP-Adressierung 195
7.8.1 Multi-Homed Computer 196
7.8.2 Adressklassen 196
7.9 Namensauflösung 197
7.9.1 Auflösung von Hostnamen 198
7.9.2 Auflösung von Hostnamen über eine hosts-Datei 198
7.9.3 Domain Name System (DNS) 199
7.9.4 Eine hosts-Datei mit DNS kombinieren 200
7.10 Verbesserungen von TCP/IP unter Windows 2000 202
7.10.1 Unterstützung für große Fenster 202
7.10.2 Selektive Bestätigungen 202
7.10.3 Einschätzung der Roundtrip Time (RTT) 203
7.10.4 TCP-Zeitstempel (RFC 1323) 203
7.10.5 Erkennung der PMTU (Path Maximum Transmission Unit) 203
7.10.6 Erkennung toter Gateways 204
7.10.7 TCP-Zeitgeber für Neuübertragungen 204
7.10.8 TCP-Keep-Alive-Meldungen 205
7.10.9 Slow-Start-Algorithmus und Vermeidung von Überlastungen 205
7.10.10 Silly Window Syndrom (SWS) 205
7.10.11 Nagle-Algorithmus 205
7.10.12 TCP-Timed-Wait-Verzögerung 206
7.10.13 Maximum Transmission Unit (MTU) 206
7.11 Dynamic Host Configuration Protocol 206
7.11.1 Unterstützung für Benutzerklassen 207
7.11.2 Multicast-Unterstützung 207
7.11.3 Erkennung von DHCP-Rogue-Servern 207
7.11.4 Fehlertoleranz 207
7.11.5 Unterstützung für DHCP-Clients 207
7.12 Dynamische Bandbreitenzuordnung 208
7.13 Quality of Service 208
7.13.1 Der RSVP-QoS-Dienst 208
7.13.2 Diff-Serve Class of Services 209
7.14 Tools und Strategien für TCP/IP-Troubleshooting 209
7.14.1 IPConfig 209
7.14.2 ping 209
7.14.3 arp 210
7.14.4 Tracert 210
7.14.5 Route 210
7.14.6 Netstat 210
7.14.7 NBTStat 211
7.14.8 Nslookup 211
7.14.9 Microsoft Netzwerkmonitor 212
7.15 Zusammenfassung 213
Kapitel 8 Kryptographie 215
8.1 Geschichte der Kryptographie 218
8.1.1 Kryptographie und die Regierung 219
8.1.2 Exportbeschränkungen 220
8.1.3 Der Clipper-Chip 220
8.1.4 Treuhandaufbewahrung und Wiederherstellung von Schlüsseln 221
8.2 Schlüssel und Schlüssellängen 222
8.3 Arten der Verschlüsselung 223
8.3.1 Private-Key-Verschlüsselung 223
8.3.2 Public-Key-Verschlüsselung 224
8.4 Übliche Verschlüsselungsalgorithmen 226
8.4.1 Der Data Encryption Standard (DES) 227
8.4.2 Hash-Algorithmen 227
8.4.3 RSA 228
8.4.4 Diffie-Hellman 228
8.4.5 Digital Signature Algorithm (DSA) 229
8.5 Applikationen, die Verschlüsselung verwenden 229
8.5.1 Nachrichtenübertragung 229
8.5.2 Webserver 232
8.5.3 Virtuelle Private Netzwerke 234
8.5.4 Mobiltelefone 236
8.5.5 Windows 2000 237
8.6 Die Zukunft der Kryptographie 237
8.7 Zusammenfassung 238
Kapitel 9 Einführung in IPSec 239
9.1 Was ist ein VPN und warum benutzt man es? 240
9.2 Übliche Probleme in der Informationssicherheit 242
9.2.1 Netzwerk-"Sniffing" 242
9.2.2 Datenintegrität 242
9.2.3 Passwortangriffe (Wörterbuchangriffe) 243
9.2.4 Denial-of-Service-Angriffe (DoS) 244
9.2.5 Man-in-the-Middle-Angriff 244
9.2.6 Spoofing 244
9.3 IPSec: Die auf Standards basierende Lösung für IP-Sicherheit 245
9.3.1 IPSec-Protokolltypen 246
9.3.2 Encapsulating Security Payload 247
9.3.3 Internet Security Key Association Key Management
Protocol (ISAKMP/Oakley ) 249
9.4 Das IPSec-Modell 252
9.5 Tunneling 253
9.5.1 ESP-Tunnelmodus 256
9.5.2 AH-Tunnelmodus 256
9.5.3 L2TP und IPSec 256
9.5.4 IPSec: Schutz gegen Angriffe 257
9.5.5 Public-Key-Verschlüsselung 257
9.6 Zusammenfassung 258
Kapitel 10 PKI 261
10.1 Zertifizierungsstellen 264
10.1.1 Hierarchie der Zertifizierungsstellen 265
10.2 Digitale Zertifikate 266
10.2.1 Ein Schlüsselpaar generieren 267
10.2.2 Ein Zertifikat ausstellen 268
10.2.3 X.509-Zertifikate 269
10.2.4 Zertifikatssperrlisten 271
10.3 PGP "Web of Trust" 271
10.4 Digitale Signaturen 272
10.5 Windows 2000 und die Public-Key-Infrastruktur 273
10.5.1 PKI-Komponenten in Windows 2000 273
10.5.2 Interoperabilität der PKI in Windows 2000 274
10.5.3 Windows 2000 Zertifikatsdienste 276
10.5.4 Eine unternehmensinterne CA mit Hilfe der Microsoft Zertifikatsdienste einsetzen 276
10.5.5 Schlüssel und Zertifikate benutzen 277
10.6 Warum sollten Sie eine PKI unter Windows 2000 benutzen? 278
10.6.1 Webserver-Sicherheit 278
10.6.2 Sichere E-Mail 279
10.6.3 Das verschlüsselte Dateisystem 280
10.6.4 IP Security (IPSec) 280
10.7 Zusammenfassung 281
Kapitel 11 Das Kerberos-Protokoll 283
11.1 Die Konzepte von Kerberos 284
11.1.1 Geteilte Geheimnisse 284
11.1.2 Mehrfache Authentifizierung 284
11.2 Kerberos-Komponenten unter Windows 2000 285
11.2.1 Das Key Distribution Center (KDC) 285
11.2.2 Kontodatenbank 286
11.2.3 Kerberos Security Support Provider 286
11.2.4 Namensauflösung über DNS 287
11.2.5 Physikalische Sicherheit 288
11.3 Was tut Kerberos für Windows 2000? 288
11.3.1 Anmeldung über NT LAN Manager 288
11.3.2 Single-Sign-On (SSO) 290
11.4 Die Authentifizierung unter Windows 2000 291
11.4.1 Netzwerkressourcen aus einer anderen Domäne benutzen 292
11.4.2 Transitive Vertrauensstellungen 294
11.4.3 Netzwerk-Performance 295
11.4.4 Beglaubigungscache 296
11.4.5 Verknüpfte Vertrauensstellungen 296
11.4.6 Netzwerksicherheit 297
11.5 Wie funktioniert Kerberos? 298
11.5.1 Abgelaufene Tickets 302
11.5.2 Gültigkeitsdauer der Tickets 302
11.5.3 Kerberos-Ticketfelder 303
11.5.4 Kerberos-Ticket-Flags 304
11.5.5 Forwardable/Forwarded Tickets 306
11.5.6 Renewable Tickets 306
11.5.7 Delegierung der Authentifizierung 306
11.5.8 Proxy-Tickets 307
11.5.9 Erweiterungen für das Kerberos-Protokoll 307
11.6 Administration von Kerberos 308
11.6.1 Konfigurierbare Richtlinien 308
11.6.2 Warum sollten Sie die Standardrichtlinien für Kerberos ändern? 309
11.6.3 Kerberos-Informationen auf dem Client 311
11.7 Zusammenfassung 313
Kapitel 12 X.500/LDAP 315
12.1 Informationen über das Netzwerk verfolgen 316
12.2 Was ist X.500? 317
12.2.1 Die Directory Information Base und der
Directory Information Tree 318
12.2.2 Der Directory User Agent 318
12.2.3 Der Directory System Agent 320
12.2.4 Open-System-Protokolle für Verzeichnisdienste 320
12.3 LDAP 321
12.3.1 LDAP, ein Protokoll 324
12.3.2 LDAP, ein API 329
12.4 Objekte und Attribute 330
12.4.1 Objektklassen 331
12.4.2 Was ist Vererbung? 332
12.4.3 Was sind Attribute? 334
12.5 Das Verzeichnisschema 337
12.5.1 Operationale LDAP-Attribute 338
12.5.2 Objekte im Verzeichnis benennen 338
12.6 Zusammenfassung 340
Teil III: Netzwerksicherheit unter Windows 2000 341
Kapitel 13 Vernetzungsmodell 343
13.1 Vernetzung unter Windows 2000: Was ist neu? 344
13.2 Windows DNA 345
13.3 Active Directory 346
13.3.1 Dienste des Active Directory 347
13.3.2 DNS und Active Directory 347
13.4 Netzwerkdienste 348
13.4.1 Windows 2000-Netzwerkdienste 349
13.4.2 Protokollstapel 350
13.5 Kommunikationsdienste und APIs 352
13.5.1 Windows Sockets 353
13.5.2 Named Pipes 353
13.5.3 NetBIOS 353
13.5.4 WinInet 354
13.5.5 RPC 354
13.5.6 COM/DCOM 355
13.5.7 COM+ 355
13.6 Sicherheit in Windows-2000-Netzwerken 356
13.6.1 IP Security 356
13.6.2 Authentifizierung 357
13.6.3 SSPI 357
13.6.4 CryptoAPI 358
13.6.5 Zertifikatsserver 359
13.6.6 VPN 359
13.6.7 EFS 360
13.7 Zusammenfassung 361
Kapitel 14 Active Directory 363
14.1 Das Verzeichnis 364
14.2 Komponenten des Active Directory 365
14.2.1 Objekte 366
14.2.2 Domänen 367
14.3 Offenes Design des Active Directory 371
14.3.1 Überblick über X.500 373
14.3.2 LDAP 374
14.4 Konzepte des Active Directory 375
14.4.1 Das Schema 375
14.4.2 Der globale Katalog 381
14.4.3 Der Namenraum 382
14.5 Namenskonventionen im Active Directory 383
14.5.1 Qualifizierter Name 383
14.5.2 Relativ qualifizierte Namen 383
14.5.3 Benutzerhauptnamen 384
14.6 Gruppen 384
14.6.1 Universelle Gruppen 384
14.6.2 Globale Gruppen 385
14.6.3 Lokale Domänengruppen 385
14.6.4 Lokale Gruppen 385
14.7 Aufbau des Active Directory 385
14.7.1 Replikation 386
14.7.2 Replikationsprotokolle 389
14.7.3 Multimaster-Replikation 390
14.7.4 FSMO 391
14.8 Sicherheit 392
14.8.1 Server-Rollen 392
14.9 Interoperabilität 393
14.10 Die Komponenten der Active Directory Engine 395
14.10.1 Datenbankstruktur 396
14.10.2 Datenbankdateien im Active Directory 396
14.11 Tools aus dem Windows 2000 Resource Kit 397
14.12 Zusammenfassung 398
Kapitel 15 Authentifizierung 399
15.1 Neue Protokolle 400
15.2 Das Schlüsselelement der Authentifizierung - der Benutzer! 402
15.3 Das Sicherheitssubsystem von Windows 2000 403
15.3.1 Die Local Security Authority (LSA) 404
15.3.2 Der Security Account Manager und das Active Directory 405
15.3.3 Der Security Reference Monitor 406
15.4 Der Anmeldeprozess 406
15.4.1 Die einzelnen Schritte der Anmeldung 407
15.4.2 Die allgemeine Anmeldesequenz 408
15.4.3 Die Authentifizierung 408
15.5 NTLM verstehen 411
15.5.1 Die benutzten NTLM-Versionen 411
15.5.2 LM gegen NTLM 412
15.5.3 Überprüfen, welche Version Sie verwenden 413
15.5.4 Kompatibilitätswerte für LM in der Registry einrichten 413
15.6 Die Risiken der Benutzung von NTLM 416
15.6.1 L0phtCrack 416
15.6.2 Netzwerkpaket-Sniffer 418
15.7 SSL/TLS verstehen 420
15.7.1 Den Public-Key-Prozess verstehen 422
15.8 Zusammenfassung 424
Kapitel 16 SSPI 425
16.1 Sichere Vernetzung durch SSPI 426
16.1.1 SSPI und das Sicherheitsmodell von Windows 2000 428
16.1.2 SSPI und Sicherheitspakete 428
16.2 Sichere Applikationen entwickeln 430
16.3 Package Management API 433
16.3.1 EnumerateSecurityPackages 433
16.3.2 QuerySecurityPackageInfo 434
16.4 Credential Management API 435
16.4.1 AcquireCredentialsHandle 435
16.4.2 FreeCredentialsHandle 437
16.4.3 QueryCredentialsAttributes 437
16.5 Context Management API 438
16.5.1 InitializeSecurityContext 438
16.5.2 AcceptSecurityContext 442
16.5.3 CompleteAuthToken 444
16.5.4 DeleteSecurityContext 445
16.5.5 QueryContextAttributes 445
16.5.6 ApplyControlToken 446
16.5.7 ImpersonateSecurityContext 446
16.5.8 RevertSecurityContext 446
16.5.9 ExportSecurityContext und ImportSecurityContext 446
16.6 Message Support API 446
16.6.1 MakeSignature 447
16.6.2 VerifySignature 448
16.6.3 EncryptMessage 450
16.6.4 DecryptMessage 452
16.7 Zusammenfassung 454
Kapitel 17 CryptoAPI 455
17.1 Sichere Kommunikation 456
17.2 Kryptographie und CryptoAPI 457
17.2.1 Signaturen und Hash-Werte 457
17.2.2 Zertifikate 458
17.2.3 Kryptographische Algorithmen 459
17.2.4 Kryptographische Dienstanbieter 460
17.3 CryptoAPI Administration 461
17.4 Kryptographie in Ihren Applikationen aktivieren 462
17.4.1 Die Funktionsbereiche des CryptoAPI 462
17.4.2 Beispiel für die Verschlüsselung 463
17.4.3 Beispiel für die Entschlüsselung 468
17.4.4 Nachrichten verschlüsseln 470
17.4.5 Nachrichten entschlüsseln 475
17.5 Zusammenfassung 477
Kapitel 18 Microsoft Zertifikatsdienste 479
18.1 Übersicht über die Verwendung von Zertifikaten 480
18.2 Kryptographie mit öffentlichen Schlüsseln 484
18.2.1 Wie funktioniert die Kryptographie mit
öffentlichen Schlüsseln? 485
18.2.2 Kryptographie mit öffentlichen Schlüsseln im Vergleich zu Kryptographie mit symmetrischen Schlüsseln 488
18.2.3 Mögliche Probleme mit Verschlüsselungssystemen
über öffentliche Schlüssel 489
18.3 Digitale Zertifikate 490
18.3.1 Was ist ein Zertifikat? 490
18.3.2 Format der X.509-Zertifikate 490
18.3.3 PKCS 7 491
18.3.4 PKCS 10 493
18.4 Zertifizierungsstellen und Infrastrukturen mit
öffentlichen Schlüsseln 494
18.4.1 Ausstellen von Zertifikaten 494
18.4.2 Erneuern von Zertifikaten 494
18.4.3 Widerrufen von Zertifikaten und Veröffentlichen einer Zertifikatssperrliste 495
18.4.4 PKIs 495
18.5 Zertifikatsdienste 496
18.5.1 Wie funktionieren die Zertifikatsdienste? 496
18.5.2 Planung der Einrichtung einer PKI 498
18.6 Installation der Zertifikatsdienste 498
18.7 Verwalten einer Zertifizierungsstelle 505
18.7.1 Verwaltung mit Hilfe einer MMC 505
18.7.2 Verwaltung über die Befehlszeile 510
18.8 Zusammenfassung 515
Kapitel 19 COM/DCOM/RPC 517
19.1 RPC, COM, DCOM, COM+: Wo ist der Unterschied? 518
19.1.1 Geschichtliche Entwicklung von COM 518
19.1.2 Sicherheit bei RPC 519
19.1.3 Sicherheit in COM/DCOM: das Erbe von RPC 521
19.1.4 Sicherheit in COM+: COM+ = COM + MTS 524
19.2 Verwaltung der COM+-Sicherheit 529
19.2.1 Die Konfiguration von COM-Sicherheit 529
19.2.2 Konfiguration der COM+-Sicherheit 536
19.3 Programmatische Implementierung der
COM+-Sicherheitsfunktionen 540
19.3.1 Initialisierung der Sicherheit 540
19.3.2 IClientSecurity 544
19.3.3 IServerSecurity 547
19.3.4 Hilfsfunktionen, die von COM bereitgestellt werden 550
19.3.5 Programmatische rollenbasierte Sicherheit 553
19.3.6 Delegierung und Cloaking 555
19.4 Das Schreiben sicherer N-Tier-Anwendungen 559
19.5 Zusammenfassung 560
Kapitel 20 VPNs 561
20.1 Warum sollten Sie ein VPN verwenden? 562
20.1.1 Intranets und Extranets 563
20.1.2 Sicherheit im Internet 564
20.1.3 Fähigkeiten von VPNs 566
20.1.4 Arten von VPNs 567
20.2 VPNs und Windows 2000 569
20.2.1 VPN-Protokolle 569
20.2.2 Verbindung über ein Windows-2000-VPN herstellen 571
20.3 Konfiguration des VPN-Clients 573
20.4 Verwalten des VPN-Servers 582
20.5 Zusammenfassung 585
Kapitel 21 EFS 587
21.1 EFS-Konzepte 588
21.1.1 Data Encryption Standard Exclusive (DESX) 589
21.1.2 Plattformen für EFS 590
21.2 Architektur von EFS 590
21.3 EFS und PKI 591
21.4 Zertifikatsdienste 591
21.5 Verschlüsselung 592
21.6 Entschlüsselung 594
21.6.1 Wiederherstellung 595
21.7 Einsatz von EFS 596
21.7.1 Dateien oder Ordner verschlüsseln 597
21.7.2 Sicherung von verschlüsselten Dateien und Ordnern 601
21.7.3 Befehlszeilenprogramme 607
21.7.4 Aktivieren und Deaktivieren von EFS 608
21.7.5 Speichern verschlüsselter Dateien im Netzwerk 609
21.7.6 Richtlinien im Umgang mit EFS 611
21.8 Zusammenfassung 613
Kapitel 22 DNS/DDNS/WINS 615
22.1 Domain Name System 616
22.1.1 Geschichte von DNS 616
22.1.2 DNS 618
22.1.3 Die DNS-Hierarchie 618
22.1.4 Installation des DNS-Servers unter Windows 2000 Server 623
22.1.5 Konfiguration von DNS 626
22.2 Dynamisches DNS 632
22.2.1 Dynamic Host Configuration Protocol (DHCP) 632
22.2.2 Wie funktioniert DHCP? 633
22.2.3 DHCP-Sicherheitsprobleme 634
22.2.4 DDNS in einer Umgebung mit Windows 2000 634
22.3 Sicherheitsprobleme im Umgang mit DNS 635
22.3.1 Sichere DNS-Implementierung (Geteiltes DNS) 636
22.4 WINS (Windows Internet Name Service) und Windows 2000 638
22.4.1 Funktionen von WINS 639
22.4.2 NetBIOS-Knotentypen 640
22.4.3 Elemente eines WINS-Netzwerks 641
22.4.4 Sicherheitsprobleme mit WINS 642
22.5 Zusammenfassung 642
Teil IV: Netzwerkdienste und sich selbst schützen 645
Kapitel 23 Computersicherheit in der Praxis 647
23.1 Soziale Manipulation 648
23.1.1 Bewusstsein, Richtlinien und Training 649
23.1.2 Trojaner 649
23.1.3 Verteilung 650
23.1.4 Abwartende trojanische Programme 651
23.1.5 Verringern der Bedrohung durch trojanische Programme 654
23.1.6 Prinzip der geringsten Rechte 655
23.2 Umschalten zwischen privilegierten und nicht
privilegierten Kontexten 655
23.2.1 su ist in NT 4 nicht so einfach 656
23.2.2 Sekundärer Anmeldedienst 657
23.2.3 Probleme mit der sekundären Anmeldung 658
23.2.4 Das Problem des Startens von Prozessen 659
23.2.5 Terminaldienste 662
23.2.6 Verwendung der sekundären Anmeldung 662
23.3 Weitere Sicherheitstechniken 664
23.4 Zusammenfassung 665
Kapitel 24 Aufbau und Administration eines sicheren Servers 667
24.1 Aufbau eines sicheren Servers 668
24.1.1 Einsatz unterschiedlicher Server für unterschiedliche Dienste 668
24.1.2 Sorgfältige Auswahl der Hardware und ein sicherer Standort 669
24.1.3 Muss eine ganz neue Installation durchgeführt werden? 669
24.1.4 Verwenden von NTFS 670
24.1.5 Besonderheiten des Encrypting File System (EFS) 676
24.1.6 Unnötige Dienste oder Komponenten 676
24.1.7 Unnötige Programme 679
24.2 Verwalten der Überwachung und das Erstellen
von Zugriffsberechtigungen auf Ressourcen 680
24.2.1 Einrichten der Überwachungsrichtlinie 681
24.2.2 Aktivieren der Überwachung 681
24.2.3 Einrichten der Überwachung von Dateien und Ordnern 684
24.2.4 Einrichten der Überwachung von Druckern 688
24.2.5 Anzeigen von Überwachungsereignissen 689
24.3 Systemdienste 692
24.4 Die Programme zur Sicherheitskonfiguration 697
24.4.1 Gruppenrichtlinien 697
24.4.2 Das Snap-In Gruppenrichtlinie 698
24.4.3 Sicherheitsvorlagen verwenden 699
24.4.4 Andere Optionen der Sicherheitsvorlage 703
24.4.5 Verwenden von Sicherheitsvorlagen für die
Analyse eines Systems 704
24.4.6 Konfigurieren des Systems mit Sicherheitsvorlagen 706
24.4.7 Das Programm SECEDIT 706
24.5 Zusammenfassung 709
Kapitel 25 Sicherheit bei Standleitungen 711
25.1 Einwählverbindungen 712
25.2 Breitbandverbindungen 713
25.3 Was ist zu tun? 715
25.3.1 Firewall-Lösungen 715
25.3.2 Host-basierte Lösungen 717
25.4 Netzwerkadressübersetzung 718
25.4.1 Was macht NAT? 718
25.4.2 Aktivieren der gemeinsamen Internetnutzung
in Windows 2000 720
25.4.3 NAT und die Sicherheit 724
25.5 Allgemeine Sicherheitstipps für Breitband-Verbindungen 726
25.6 Zusammenfassung 727
Kapitel 26 Angriffe erkennen und handhaben 729
26.1 Warum brauchen Sie ein Intrusion Response Team? 730
26.2 Ein Intrusion Response Team aufbauen 731
26.2.1 IRT-Satzung 732
26.2.2 Den Kontakt halten 733
26.3 Angriffe erkennen 733
26.3.1 Offenkundige Beweise 733
26.3.2 Seltsames Netzwerkverhalten 734
26.3.3 Beobachten Sie Ihre Protokolle 735
26.4 Reaktion auf Angriffe 738
26.4.1 Keine Panik 738
26.4.2 Sammeln Sie Ihr Team, und bereiten Sie Ihre Aktionen vor 739
26.4.3 Analysieren Sie die Situation 740
26.4.4 Beweise sammeln 743
26.4.5 Die Bedrohung neutralisieren 745
26.4.6 Analyse der Beweise 746
26.4.7 Angriffe melden 747
26.4.8 Einen Angriff verfolgen 748
26.5 Zusammenfassung 748
Kapitel 27 Aktuelle Sicherheitsprobleme 751
27.1 Warum Sie niemals vollkommen sicher sein werden 752
27.1.1 Ein aktuelles Beispiel - verteilte Denial-of-Service-Angriffe 752
27.1.2 Ein anderes aktuelles Beispiel - Datenkompromittierungen 753
27.1.3 Neue Protokolle und neue Software - neue Wege für Angriffe 754
27.2 Über neue Sicherheitsprobleme von Microsoft
auf dem Laufenden bleiben 754
27.2.1 Aktuelle Service Packs und Hot Fixes 755
27.2.2 Windows Update verwenden 756
27.3 Applikationen regelmäßig überprüfen 758
27.4 Auf dem Laufenden bleiben 759
27.4.1 Was ist NTBugTraq? 759
27.4.2 Forum of Incident Response and Security Teams (FIRST) 759
27.4.3 Das Systems Administration, Networking
Security (SANS) Institute 759
27.4.4 Das Computer Emergency Response Team (CERT) 760
27.4.5 Windows 2000 Magazine 760
27.4.6 Die Firewalls Mailing-Liste 760
27.4.7 Computer Operations, Audit and Security
Technology (COAST) 761
27.4.8 Federal Computer Incidence Response Capability 761
27.5 Ihre Benutzergemeinde schulen 761
27.6 Überprüfen Sie Ihre Server regelmäßig 762
27.6.1 Windows-Ereignisanzeige und Protokolldateien
von Applikationen 762
27.6.2 Auf SNMP- und RMON-Traps und -Ereignisse achten 763
27.7 Zusammenfassung 763
Kapitel 28 Sicherheitstests im eigenen Netzwerk 765
28.1 Warum werden Einbruchsversuche gemacht? 766
28.2 Denken als Cracker 767
28.3 Erkennen von Bedrohungen 768
28.3.1 Remote- und lokale Bedrohungen 769
28.3.2 Externe und interne Bedrohungen 770
28.4 Tiger-Teams 771
28.5 Externe Berater 771
28.6 Vorbereitungen für einen Einbruchsversuch 772
28.7 Erstellen eines Angriffsplans 773
28.7.1 Die Planung 774
28.7.2 Erlaubnis 777
28.8 Erkunden der Site 777
28.8.1 Lokal 777
28.8.2 Remote 779
28.9 Sammeln und Auswerten der gefundenen Daten 789
28.9.1 Erstellen einer Karte 789
28.9.2 Überprüfen von offenen Ports und Diensten 790
28.9.3 Überprüfen der Nutzung von bekannten Lücken 790
28.9.4 Sicherheitsrelevante Seiten von Herstellern 792
28.9.5 "Gray Hat"-Sites 792
28.10 Ausbeuten der Site 794
28.10.1 Mögliche Grade 794
28.10.2 Aktiver Angriff 795
28.10.3 Bekannte Angriffe 796
28.11 Bericht und weiterer Verlauf 798
28.11.1 Definition von Bedrohungsstufen 799
28.11.2 Erstellen eines Berichts 800
28.11.3 Reparaturmaßnahmen 800
28.11.4 Definieren von Problembereichen 801
28.11.5 Der weitere Verlauf der Einbruchsversuche 801
28.12 Verfügbare Programme 801
28.12.1 Kommerzielle Produkte 802
28.12.2 Programme aus der Sicherheitsszene 802
28.13 Zusammenfassung 804
Kapitel 29 Sicheren Programm-Code schreiben 805
29.1 Sichere Programme entwickeln 806
29.1.1 Warum sollte man sicheren Code schreiben? 807
29.1.2 Wo treten Sicherheitsprobleme auf? 807
29.1.3 Was kann ich beitragen? 808
29.2 Software-Sicherheit 808
29.2.1 Geben Sie Ihrer Software nur die nötigsten Rechte 810
29.2.2 Prüfen aller Return-Codes 810
29.2.3 Vermeiden Sie Annahmen 810
29.2.4 Testen Sie Ihren Code 811
29.2.5 Im Fehlerfall beenden 811
29.2.6 Denken Sie "um die Ecke" 812
29.3 Programmierprobleme 812
29.3.1 Mangel an Sicherheitsbewusstsein 812
29.3.2 Schlechtes Code-Design 813
29.3.3 Schlechter Code-Test 814
29.3.4 Nicht in Betracht gezogene Möglichkeiten 815
29.3.5 Zu komplexer Code 816
29.3.6 Zu einfacher Code 817
29.3.7 Schlechte Eingabeprüfung 817
29.3.8 Schlechte Prüfung der Grenzen 818
29.3.9 Überschnelle Schwingungen 818
29.4 Überprüfen von Code 819
29.4.1 Der Prüfprozess 819
29.5 Code-Probleme lösen 822
29.5.1 Wenn Sie den Code besitzen 822
29.5.2 Wenn Sie den Code nicht besitzen 823
29.5.3 Hilfreiche Programme 823
29.6 Puffer-Überläufe 825
29.6.1 Was ist ein Puffer-Überlauf? 825
29.6.2 Beispiel für einen Puffer-Überlauf 826
29.6.3 Ausnutzen eines Puffer-Überlaufs 828
29.6.4 Das Schließen der Lücke bei einem Puffer-Überlauf 836
29.7 Sprachspezifische Implementierungen 838
29.7.1 Visual C++ 838
29.7.2 Visual Basic 840
29.7.3 Java-Sicherheit 840
29.7.4 Perl 842
29.8 Sicherheit bei der Programmierung von Web-Anwendungen 844
29.8.1 CGI/Perl 845
29.8.2 SSI und andere Sprachen 846
29.8.3 ASP 847
29.9 Zusammenfassung 847
Stichwortverzeichnis 849
Der zufällige Netzwerkadministrator 27
Glaubenskriege und FUZ 28
Der Aufbau dieses Buchs 28
Wie Sie dieses Buch benutzen sollten 29
Feedback von Ihrer Seite 30
Viel Spaß! 30
Teil I: Systemgrundlagen von Windows 2000 31
Kapitel 1 Architektur 33
1.1 Ein neues Windows 34
1.2 Das Betriebssystemmodell von Windows 2000 36
1.2.1 Kernelmodus und Benutzermodus 36
1.2.2 Die Hardware Abstraction Layer 38
1.2.3 Der Kernel 38
1.2.4 Die Executive 39
1.2.5 Win32-Komponenten im Kernelmodus 40
1.2.6 Gerätetreiber 41
1.2.7 Module im Benutzermodus 41
1.2.8 System-Support-Prozesse 41
1.2.9 Dienste 44
1.2.10 Umgebungssubsysteme 45
1.3 Systemprozesse und -dateien von Windows 2000 47
1.4 Speicher 49
1.4.1 Kernelpool 55
1.5 Kernelobjekte 55
1.5.1 Handletabellen für Kernelobjekte 56
1.5.2 Kernelobjekte gemeinsam verwenden 56
1.5.3 Object Reference Calling 57
1.5.4 Sicherheit 58
1.6 Ausnahme- und Interrupt-Behandlung 58
1.6.1 Ausnahmebehandlung 59
1.7 Globale Flags 60
1.8 Zusammenfassung 61
Kapitel 2 Prozesse und Threads 63
2.1 Das Job-Objekt 64
2.1.1 Einzelheiten eines Jobs 67
2.1.2 Konteninformationen 69
2.1.3 Einschränkungen 69
2.1.4 Einschränkungen für die Benutzeroberfläche 70
2.1.5 Sicherheit 70
2.2 Prozesse 71
2.2.1 Wenn RestrictRun nicht implementiert ist 72
2.2.2 CreateProcess() aufrufen 74
2.2.3 Prozessobjekte im Kernel (der Block eprocess) 75
2.2.4 Datenstrukturen im Benutzermodus
(der Process Environment Block) 77
2.3 Threads 78
2.4 Zusammenfassung 79
Kapitel 3 Sicherheitsmodell 81
3.1 Objekte sichern 82
3.1.1 SIDs 84
3.1.2 Zugriffskontrolllisten (ACLs) 90
3.1.3 ACLs und ACEs zuweisen und erben 93
3.1.4 SD/ACL/ACE - Zusammenfassung 95
3.1.5 Token 95
3.1.6 Privilegien und Benutzerrechte 100
3.1.7 System-Kontext 104
3.1.8 Identitätswechsel (Impersonation) 105
3.1.9 Eingeschränkte Token 106
3.1.10 Sicherheit 106
3.2 Komponenten der Sicherheitsarchitektur von Windows 2000 107
3.2.1 Der Security Reference Monitor (SRM) 108
3.2.2 Die Local Security Authority (LSA) 110
3.2.3 Winlogon.exe 111
3.2.4 Graphical Identification and Authentication (GINA) 112
3.2.5 Network Logon Service 112
3.2.6 Sicherheitspakete 113
3.2.7 SSPI 113
3.2.8 SAM-Datenbank 113
3.2.9 Active Directory 114
3.3 Die Benutzeranmeldung 114
3.4 Zusammenfassung 117
Kapitel 4 NTFS 5.0 119
4.1 Die Master File Table (MFT) 120
4.1.1 Dateien 120
4.2 Datenströme 122
4.2.1 Benannte und unbenannte Datenströme 123
4.2.2 Verwendung mehrerer Datenströme 124
4.2.3 Verteilte Datenströme 125
4.2.4 Komprimierte Datenströme 126
4.2.5 Verschlüsselte Datenströme 128
4.3 Metadaten 128
4.4 Feste Verknüpfungen 130
4.5 Analysepunkte 131
4.6 Datenträgerkontingente (Quotas) 132
4.7 Zusammenfassung 134
Kapitel 5 Dienste 135
5.1 Was ist ein Dienst? 136
5.2 Der Service Control Manager (SCM) 137
5.2.1 Remote-Verbindungen zum SCM 138
5.2.2 Dienstanmeldung 139
5.2.3 Wiederherstellung 140
5.3 Sicherheit für Dienstobjekte 141
5.4 Starten eines Dienstes 142
5.5 Mehrere Dienste in einem Prozess 146
5.5.1 Sicherheitsauswirkungen 148
5.6 Generelle Sicherheitsbedenken hinsichtlich der Dienste 150
5.6.1 Die Benutzung einzelner Konten 151
5.6.2 Identitätswechsel (Impersonation) 152
5.6.3 Überwachen, überwachen und überwachen! 152
5.6.4 Interagieren Sie nicht! 153
5.6.5 Einer nach dem anderen, bitte 154
5.7 Sicherheitsbedenken in Bezug auf Dienste für Programmierer 155
5.7.1 Meldungen akzeptieren 155
5.7.2 Anforderungen zum Anhalten nicht akzeptieren 155
5.7.3 Meldungen zum Unterbrechen und Fortsetzen akzeptieren 156
5.7.4 Verhalten bei seltsamen Meldungen 156
5.8 Zusammenfassung 157
Kapitel 6 Gerätetreiber 159
6.1 Das I/O-Modell in Windows 2000 160
6.2 Arten von Treibern 160
6.2.1 Der Treiberstapel des Dateisystems 162
6.3 Speicher im Kernelmodus 165
6.3.1 Kernelspeicher und Paging 165
6.3.2 Für Kernelprozesse verfügbarer Speicher 165
6.4 Sichere Treiber schreiben 166
6.4.1 Pufferlängen überprüfen 166
6.4.2 Nicht initialisierte Daten nicht in den
Benutzermodus zurücksetzen 167
6.4.3 Probing, wenn notwendig 167
6.4.4 Try/Except-Blöcke verwenden 167
6.4.5 Auf I/O-Anfragen mit eingebetteten Zeigern achten 167
6.4.6 Die Handhabung von Nulllängen-Puffern 167
6.4.7 Probleme mit direkten doppelten I/O-Zuordnungen 168
6.4.8 Das DDK sorgfältig lesen 168
6.4.9 Wie der Feind denken 168
6.5 Signierung von Treibern 168
6.6 Bösartige Treiber 169
6.6.1 Was ist installiert? 170
6.7 Zusammenfassung 171
Teil II: Grundlagen der Netzwerksicherheit 173
Kapitel 7 Die Protokolle NetBIOS, NetBEUI, SMB und TCP/IP 175
7.1 Die Geschichte von TCP/IP 176
7.2 Die TCP/IP-Familie 177
7.3 Der TCP/IP-Protokollstapel 178
7.4 Protokolle der Transportschicht 179
7.4.1 Das Transmission Control Protocol (TCP) 180
7.4.2 User Datagram Protocol (UDP) 182
7.4.3 Internet Protocol (IP) 183
7.4.4 Internet Control Message Protocol (ICMP) 185
7.4.5 Internet Router Discovery Protocol (IRDP) 186
7.4.6 Internet Group Management Protocol (IGMP) 187
7.4.7 Address Resolution Protocol (ARP) 187
7.5 Protokolle der Anwendungsschicht 188
7.5.1 Das NetBIOS-Interface 189
7.5.2 NetBIOS-Namensverwaltung 189
7.5.3 NetBIOS-Namensregistrierung und -auflösung für
Multi-Homed-Computer 191
7.5.4 NetBIOS-Datagramme 191
7.5.5 NetBIOS-Sitzungen 191
7.5.6 File Transfer Protocol (FTP) 192
7.5.7 Simple Mail Transfer Protocol (SMTP) 192
7.5.8 Hypertext Transfer Protocol (HTTP) 192
7.6 NetBEUI 193
7.7 Server Message Block (SMB) 194
7.8 IP-Adressierung 195
7.8.1 Multi-Homed Computer 196
7.8.2 Adressklassen 196
7.9 Namensauflösung 197
7.9.1 Auflösung von Hostnamen 198
7.9.2 Auflösung von Hostnamen über eine hosts-Datei 198
7.9.3 Domain Name System (DNS) 199
7.9.4 Eine hosts-Datei mit DNS kombinieren 200
7.10 Verbesserungen von TCP/IP unter Windows 2000 202
7.10.1 Unterstützung für große Fenster 202
7.10.2 Selektive Bestätigungen 202
7.10.3 Einschätzung der Roundtrip Time (RTT) 203
7.10.4 TCP-Zeitstempel (RFC 1323) 203
7.10.5 Erkennung der PMTU (Path Maximum Transmission Unit) 203
7.10.6 Erkennung toter Gateways 204
7.10.7 TCP-Zeitgeber für Neuübertragungen 204
7.10.8 TCP-Keep-Alive-Meldungen 205
7.10.9 Slow-Start-Algorithmus und Vermeidung von Überlastungen 205
7.10.10 Silly Window Syndrom (SWS) 205
7.10.11 Nagle-Algorithmus 205
7.10.12 TCP-Timed-Wait-Verzögerung 206
7.10.13 Maximum Transmission Unit (MTU) 206
7.11 Dynamic Host Configuration Protocol 206
7.11.1 Unterstützung für Benutzerklassen 207
7.11.2 Multicast-Unterstützung 207
7.11.3 Erkennung von DHCP-Rogue-Servern 207
7.11.4 Fehlertoleranz 207
7.11.5 Unterstützung für DHCP-Clients 207
7.12 Dynamische Bandbreitenzuordnung 208
7.13 Quality of Service 208
7.13.1 Der RSVP-QoS-Dienst 208
7.13.2 Diff-Serve Class of Services 209
7.14 Tools und Strategien für TCP/IP-Troubleshooting 209
7.14.1 IPConfig 209
7.14.2 ping 209
7.14.3 arp 210
7.14.4 Tracert 210
7.14.5 Route 210
7.14.6 Netstat 210
7.14.7 NBTStat 211
7.14.8 Nslookup 211
7.14.9 Microsoft Netzwerkmonitor 212
7.15 Zusammenfassung 213
Kapitel 8 Kryptographie 215
8.1 Geschichte der Kryptographie 218
8.1.1 Kryptographie und die Regierung 219
8.1.2 Exportbeschränkungen 220
8.1.3 Der Clipper-Chip 220
8.1.4 Treuhandaufbewahrung und Wiederherstellung von Schlüsseln 221
8.2 Schlüssel und Schlüssellängen 222
8.3 Arten der Verschlüsselung 223
8.3.1 Private-Key-Verschlüsselung 223
8.3.2 Public-Key-Verschlüsselung 224
8.4 Übliche Verschlüsselungsalgorithmen 226
8.4.1 Der Data Encryption Standard (DES) 227
8.4.2 Hash-Algorithmen 227
8.4.3 RSA 228
8.4.4 Diffie-Hellman 228
8.4.5 Digital Signature Algorithm (DSA) 229
8.5 Applikationen, die Verschlüsselung verwenden 229
8.5.1 Nachrichtenübertragung 229
8.5.2 Webserver 232
8.5.3 Virtuelle Private Netzwerke 234
8.5.4 Mobiltelefone 236
8.5.5 Windows 2000 237
8.6 Die Zukunft der Kryptographie 237
8.7 Zusammenfassung 238
Kapitel 9 Einführung in IPSec 239
9.1 Was ist ein VPN und warum benutzt man es? 240
9.2 Übliche Probleme in der Informationssicherheit 242
9.2.1 Netzwerk-"Sniffing" 242
9.2.2 Datenintegrität 242
9.2.3 Passwortangriffe (Wörterbuchangriffe) 243
9.2.4 Denial-of-Service-Angriffe (DoS) 244
9.2.5 Man-in-the-Middle-Angriff 244
9.2.6 Spoofing 244
9.3 IPSec: Die auf Standards basierende Lösung für IP-Sicherheit 245
9.3.1 IPSec-Protokolltypen 246
9.3.2 Encapsulating Security Payload 247
9.3.3 Internet Security Key Association Key Management
Protocol (ISAKMP/Oakley ) 249
9.4 Das IPSec-Modell 252
9.5 Tunneling 253
9.5.1 ESP-Tunnelmodus 256
9.5.2 AH-Tunnelmodus 256
9.5.3 L2TP und IPSec 256
9.5.4 IPSec: Schutz gegen Angriffe 257
9.5.5 Public-Key-Verschlüsselung 257
9.6 Zusammenfassung 258
Kapitel 10 PKI 261
10.1 Zertifizierungsstellen 264
10.1.1 Hierarchie der Zertifizierungsstellen 265
10.2 Digitale Zertifikate 266
10.2.1 Ein Schlüsselpaar generieren 267
10.2.2 Ein Zertifikat ausstellen 268
10.2.3 X.509-Zertifikate 269
10.2.4 Zertifikatssperrlisten 271
10.3 PGP "Web of Trust" 271
10.4 Digitale Signaturen 272
10.5 Windows 2000 und die Public-Key-Infrastruktur 273
10.5.1 PKI-Komponenten in Windows 2000 273
10.5.2 Interoperabilität der PKI in Windows 2000 274
10.5.3 Windows 2000 Zertifikatsdienste 276
10.5.4 Eine unternehmensinterne CA mit Hilfe der Microsoft Zertifikatsdienste einsetzen 276
10.5.5 Schlüssel und Zertifikate benutzen 277
10.6 Warum sollten Sie eine PKI unter Windows 2000 benutzen? 278
10.6.1 Webserver-Sicherheit 278
10.6.2 Sichere E-Mail 279
10.6.3 Das verschlüsselte Dateisystem 280
10.6.4 IP Security (IPSec) 280
10.7 Zusammenfassung 281
Kapitel 11 Das Kerberos-Protokoll 283
11.1 Die Konzepte von Kerberos 284
11.1.1 Geteilte Geheimnisse 284
11.1.2 Mehrfache Authentifizierung 284
11.2 Kerberos-Komponenten unter Windows 2000 285
11.2.1 Das Key Distribution Center (KDC) 285
11.2.2 Kontodatenbank 286
11.2.3 Kerberos Security Support Provider 286
11.2.4 Namensauflösung über DNS 287
11.2.5 Physikalische Sicherheit 288
11.3 Was tut Kerberos für Windows 2000? 288
11.3.1 Anmeldung über NT LAN Manager 288
11.3.2 Single-Sign-On (SSO) 290
11.4 Die Authentifizierung unter Windows 2000 291
11.4.1 Netzwerkressourcen aus einer anderen Domäne benutzen 292
11.4.2 Transitive Vertrauensstellungen 294
11.4.3 Netzwerk-Performance 295
11.4.4 Beglaubigungscache 296
11.4.5 Verknüpfte Vertrauensstellungen 296
11.4.6 Netzwerksicherheit 297
11.5 Wie funktioniert Kerberos? 298
11.5.1 Abgelaufene Tickets 302
11.5.2 Gültigkeitsdauer der Tickets 302
11.5.3 Kerberos-Ticketfelder 303
11.5.4 Kerberos-Ticket-Flags 304
11.5.5 Forwardable/Forwarded Tickets 306
11.5.6 Renewable Tickets 306
11.5.7 Delegierung der Authentifizierung 306
11.5.8 Proxy-Tickets 307
11.5.9 Erweiterungen für das Kerberos-Protokoll 307
11.6 Administration von Kerberos 308
11.6.1 Konfigurierbare Richtlinien 308
11.6.2 Warum sollten Sie die Standardrichtlinien für Kerberos ändern? 309
11.6.3 Kerberos-Informationen auf dem Client 311
11.7 Zusammenfassung 313
Kapitel 12 X.500/LDAP 315
12.1 Informationen über das Netzwerk verfolgen 316
12.2 Was ist X.500? 317
12.2.1 Die Directory Information Base und der
Directory Information Tree 318
12.2.2 Der Directory User Agent 318
12.2.3 Der Directory System Agent 320
12.2.4 Open-System-Protokolle für Verzeichnisdienste 320
12.3 LDAP 321
12.3.1 LDAP, ein Protokoll 324
12.3.2 LDAP, ein API 329
12.4 Objekte und Attribute 330
12.4.1 Objektklassen 331
12.4.2 Was ist Vererbung? 332
12.4.3 Was sind Attribute? 334
12.5 Das Verzeichnisschema 337
12.5.1 Operationale LDAP-Attribute 338
12.5.2 Objekte im Verzeichnis benennen 338
12.6 Zusammenfassung 340
Teil III: Netzwerksicherheit unter Windows 2000 341
Kapitel 13 Vernetzungsmodell 343
13.1 Vernetzung unter Windows 2000: Was ist neu? 344
13.2 Windows DNA 345
13.3 Active Directory 346
13.3.1 Dienste des Active Directory 347
13.3.2 DNS und Active Directory 347
13.4 Netzwerkdienste 348
13.4.1 Windows 2000-Netzwerkdienste 349
13.4.2 Protokollstapel 350
13.5 Kommunikationsdienste und APIs 352
13.5.1 Windows Sockets 353
13.5.2 Named Pipes 353
13.5.3 NetBIOS 353
13.5.4 WinInet 354
13.5.5 RPC 354
13.5.6 COM/DCOM 355
13.5.7 COM+ 355
13.6 Sicherheit in Windows-2000-Netzwerken 356
13.6.1 IP Security 356
13.6.2 Authentifizierung 357
13.6.3 SSPI 357
13.6.4 CryptoAPI 358
13.6.5 Zertifikatsserver 359
13.6.6 VPN 359
13.6.7 EFS 360
13.7 Zusammenfassung 361
Kapitel 14 Active Directory 363
14.1 Das Verzeichnis 364
14.2 Komponenten des Active Directory 365
14.2.1 Objekte 366
14.2.2 Domänen 367
14.3 Offenes Design des Active Directory 371
14.3.1 Überblick über X.500 373
14.3.2 LDAP 374
14.4 Konzepte des Active Directory 375
14.4.1 Das Schema 375
14.4.2 Der globale Katalog 381
14.4.3 Der Namenraum 382
14.5 Namenskonventionen im Active Directory 383
14.5.1 Qualifizierter Name 383
14.5.2 Relativ qualifizierte Namen 383
14.5.3 Benutzerhauptnamen 384
14.6 Gruppen 384
14.6.1 Universelle Gruppen 384
14.6.2 Globale Gruppen 385
14.6.3 Lokale Domänengruppen 385
14.6.4 Lokale Gruppen 385
14.7 Aufbau des Active Directory 385
14.7.1 Replikation 386
14.7.2 Replikationsprotokolle 389
14.7.3 Multimaster-Replikation 390
14.7.4 FSMO 391
14.8 Sicherheit 392
14.8.1 Server-Rollen 392
14.9 Interoperabilität 393
14.10 Die Komponenten der Active Directory Engine 395
14.10.1 Datenbankstruktur 396
14.10.2 Datenbankdateien im Active Directory 396
14.11 Tools aus dem Windows 2000 Resource Kit 397
14.12 Zusammenfassung 398
Kapitel 15 Authentifizierung 399
15.1 Neue Protokolle 400
15.2 Das Schlüsselelement der Authentifizierung - der Benutzer! 402
15.3 Das Sicherheitssubsystem von Windows 2000 403
15.3.1 Die Local Security Authority (LSA) 404
15.3.2 Der Security Account Manager und das Active Directory 405
15.3.3 Der Security Reference Monitor 406
15.4 Der Anmeldeprozess 406
15.4.1 Die einzelnen Schritte der Anmeldung 407
15.4.2 Die allgemeine Anmeldesequenz 408
15.4.3 Die Authentifizierung 408
15.5 NTLM verstehen 411
15.5.1 Die benutzten NTLM-Versionen 411
15.5.2 LM gegen NTLM 412
15.5.3 Überprüfen, welche Version Sie verwenden 413
15.5.4 Kompatibilitätswerte für LM in der Registry einrichten 413
15.6 Die Risiken der Benutzung von NTLM 416
15.6.1 L0phtCrack 416
15.6.2 Netzwerkpaket-Sniffer 418
15.7 SSL/TLS verstehen 420
15.7.1 Den Public-Key-Prozess verstehen 422
15.8 Zusammenfassung 424
Kapitel 16 SSPI 425
16.1 Sichere Vernetzung durch SSPI 426
16.1.1 SSPI und das Sicherheitsmodell von Windows 2000 428
16.1.2 SSPI und Sicherheitspakete 428
16.2 Sichere Applikationen entwickeln 430
16.3 Package Management API 433
16.3.1 EnumerateSecurityPackages 433
16.3.2 QuerySecurityPackageInfo 434
16.4 Credential Management API 435
16.4.1 AcquireCredentialsHandle 435
16.4.2 FreeCredentialsHandle 437
16.4.3 QueryCredentialsAttributes 437
16.5 Context Management API 438
16.5.1 InitializeSecurityContext 438
16.5.2 AcceptSecurityContext 442
16.5.3 CompleteAuthToken 444
16.5.4 DeleteSecurityContext 445
16.5.5 QueryContextAttributes 445
16.5.6 ApplyControlToken 446
16.5.7 ImpersonateSecurityContext 446
16.5.8 RevertSecurityContext 446
16.5.9 ExportSecurityContext und ImportSecurityContext 446
16.6 Message Support API 446
16.6.1 MakeSignature 447
16.6.2 VerifySignature 448
16.6.3 EncryptMessage 450
16.6.4 DecryptMessage 452
16.7 Zusammenfassung 454
Kapitel 17 CryptoAPI 455
17.1 Sichere Kommunikation 456
17.2 Kryptographie und CryptoAPI 457
17.2.1 Signaturen und Hash-Werte 457
17.2.2 Zertifikate 458
17.2.3 Kryptographische Algorithmen 459
17.2.4 Kryptographische Dienstanbieter 460
17.3 CryptoAPI Administration 461
17.4 Kryptographie in Ihren Applikationen aktivieren 462
17.4.1 Die Funktionsbereiche des CryptoAPI 462
17.4.2 Beispiel für die Verschlüsselung 463
17.4.3 Beispiel für die Entschlüsselung 468
17.4.4 Nachrichten verschlüsseln 470
17.4.5 Nachrichten entschlüsseln 475
17.5 Zusammenfassung 477
Kapitel 18 Microsoft Zertifikatsdienste 479
18.1 Übersicht über die Verwendung von Zertifikaten 480
18.2 Kryptographie mit öffentlichen Schlüsseln 484
18.2.1 Wie funktioniert die Kryptographie mit
öffentlichen Schlüsseln? 485
18.2.2 Kryptographie mit öffentlichen Schlüsseln im Vergleich zu Kryptographie mit symmetrischen Schlüsseln 488
18.2.3 Mögliche Probleme mit Verschlüsselungssystemen
über öffentliche Schlüssel 489
18.3 Digitale Zertifikate 490
18.3.1 Was ist ein Zertifikat? 490
18.3.2 Format der X.509-Zertifikate 490
18.3.3 PKCS 7 491
18.3.4 PKCS 10 493
18.4 Zertifizierungsstellen und Infrastrukturen mit
öffentlichen Schlüsseln 494
18.4.1 Ausstellen von Zertifikaten 494
18.4.2 Erneuern von Zertifikaten 494
18.4.3 Widerrufen von Zertifikaten und Veröffentlichen einer Zertifikatssperrliste 495
18.4.4 PKIs 495
18.5 Zertifikatsdienste 496
18.5.1 Wie funktionieren die Zertifikatsdienste? 496
18.5.2 Planung der Einrichtung einer PKI 498
18.6 Installation der Zertifikatsdienste 498
18.7 Verwalten einer Zertifizierungsstelle 505
18.7.1 Verwaltung mit Hilfe einer MMC 505
18.7.2 Verwaltung über die Befehlszeile 510
18.8 Zusammenfassung 515
Kapitel 19 COM/DCOM/RPC 517
19.1 RPC, COM, DCOM, COM+: Wo ist der Unterschied? 518
19.1.1 Geschichtliche Entwicklung von COM 518
19.1.2 Sicherheit bei RPC 519
19.1.3 Sicherheit in COM/DCOM: das Erbe von RPC 521
19.1.4 Sicherheit in COM+: COM+ = COM + MTS 524
19.2 Verwaltung der COM+-Sicherheit 529
19.2.1 Die Konfiguration von COM-Sicherheit 529
19.2.2 Konfiguration der COM+-Sicherheit 536
19.3 Programmatische Implementierung der
COM+-Sicherheitsfunktionen 540
19.3.1 Initialisierung der Sicherheit 540
19.3.2 IClientSecurity 544
19.3.3 IServerSecurity 547
19.3.4 Hilfsfunktionen, die von COM bereitgestellt werden 550
19.3.5 Programmatische rollenbasierte Sicherheit 553
19.3.6 Delegierung und Cloaking 555
19.4 Das Schreiben sicherer N-Tier-Anwendungen 559
19.5 Zusammenfassung 560
Kapitel 20 VPNs 561
20.1 Warum sollten Sie ein VPN verwenden? 562
20.1.1 Intranets und Extranets 563
20.1.2 Sicherheit im Internet 564
20.1.3 Fähigkeiten von VPNs 566
20.1.4 Arten von VPNs 567
20.2 VPNs und Windows 2000 569
20.2.1 VPN-Protokolle 569
20.2.2 Verbindung über ein Windows-2000-VPN herstellen 571
20.3 Konfiguration des VPN-Clients 573
20.4 Verwalten des VPN-Servers 582
20.5 Zusammenfassung 585
Kapitel 21 EFS 587
21.1 EFS-Konzepte 588
21.1.1 Data Encryption Standard Exclusive (DESX) 589
21.1.2 Plattformen für EFS 590
21.2 Architektur von EFS 590
21.3 EFS und PKI 591
21.4 Zertifikatsdienste 591
21.5 Verschlüsselung 592
21.6 Entschlüsselung 594
21.6.1 Wiederherstellung 595
21.7 Einsatz von EFS 596
21.7.1 Dateien oder Ordner verschlüsseln 597
21.7.2 Sicherung von verschlüsselten Dateien und Ordnern 601
21.7.3 Befehlszeilenprogramme 607
21.7.4 Aktivieren und Deaktivieren von EFS 608
21.7.5 Speichern verschlüsselter Dateien im Netzwerk 609
21.7.6 Richtlinien im Umgang mit EFS 611
21.8 Zusammenfassung 613
Kapitel 22 DNS/DDNS/WINS 615
22.1 Domain Name System 616
22.1.1 Geschichte von DNS 616
22.1.2 DNS 618
22.1.3 Die DNS-Hierarchie 618
22.1.4 Installation des DNS-Servers unter Windows 2000 Server 623
22.1.5 Konfiguration von DNS 626
22.2 Dynamisches DNS 632
22.2.1 Dynamic Host Configuration Protocol (DHCP) 632
22.2.2 Wie funktioniert DHCP? 633
22.2.3 DHCP-Sicherheitsprobleme 634
22.2.4 DDNS in einer Umgebung mit Windows 2000 634
22.3 Sicherheitsprobleme im Umgang mit DNS 635
22.3.1 Sichere DNS-Implementierung (Geteiltes DNS) 636
22.4 WINS (Windows Internet Name Service) und Windows 2000 638
22.4.1 Funktionen von WINS 639
22.4.2 NetBIOS-Knotentypen 640
22.4.3 Elemente eines WINS-Netzwerks 641
22.4.4 Sicherheitsprobleme mit WINS 642
22.5 Zusammenfassung 642
Teil IV: Netzwerkdienste und sich selbst schützen 645
Kapitel 23 Computersicherheit in der Praxis 647
23.1 Soziale Manipulation 648
23.1.1 Bewusstsein, Richtlinien und Training 649
23.1.2 Trojaner 649
23.1.3 Verteilung 650
23.1.4 Abwartende trojanische Programme 651
23.1.5 Verringern der Bedrohung durch trojanische Programme 654
23.1.6 Prinzip der geringsten Rechte 655
23.2 Umschalten zwischen privilegierten und nicht
privilegierten Kontexten 655
23.2.1 su ist in NT 4 nicht so einfach 656
23.2.2 Sekundärer Anmeldedienst 657
23.2.3 Probleme mit der sekundären Anmeldung 658
23.2.4 Das Problem des Startens von Prozessen 659
23.2.5 Terminaldienste 662
23.2.6 Verwendung der sekundären Anmeldung 662
23.3 Weitere Sicherheitstechniken 664
23.4 Zusammenfassung 665
Kapitel 24 Aufbau und Administration eines sicheren Servers 667
24.1 Aufbau eines sicheren Servers 668
24.1.1 Einsatz unterschiedlicher Server für unterschiedliche Dienste 668
24.1.2 Sorgfältige Auswahl der Hardware und ein sicherer Standort 669
24.1.3 Muss eine ganz neue Installation durchgeführt werden? 669
24.1.4 Verwenden von NTFS 670
24.1.5 Besonderheiten des Encrypting File System (EFS) 676
24.1.6 Unnötige Dienste oder Komponenten 676
24.1.7 Unnötige Programme 679
24.2 Verwalten der Überwachung und das Erstellen
von Zugriffsberechtigungen auf Ressourcen 680
24.2.1 Einrichten der Überwachungsrichtlinie 681
24.2.2 Aktivieren der Überwachung 681
24.2.3 Einrichten der Überwachung von Dateien und Ordnern 684
24.2.4 Einrichten der Überwachung von Druckern 688
24.2.5 Anzeigen von Überwachungsereignissen 689
24.3 Systemdienste 692
24.4 Die Programme zur Sicherheitskonfiguration 697
24.4.1 Gruppenrichtlinien 697
24.4.2 Das Snap-In Gruppenrichtlinie 698
24.4.3 Sicherheitsvorlagen verwenden 699
24.4.4 Andere Optionen der Sicherheitsvorlage 703
24.4.5 Verwenden von Sicherheitsvorlagen für die
Analyse eines Systems 704
24.4.6 Konfigurieren des Systems mit Sicherheitsvorlagen 706
24.4.7 Das Programm SECEDIT 706
24.5 Zusammenfassung 709
Kapitel 25 Sicherheit bei Standleitungen 711
25.1 Einwählverbindungen 712
25.2 Breitbandverbindungen 713
25.3 Was ist zu tun? 715
25.3.1 Firewall-Lösungen 715
25.3.2 Host-basierte Lösungen 717
25.4 Netzwerkadressübersetzung 718
25.4.1 Was macht NAT? 718
25.4.2 Aktivieren der gemeinsamen Internetnutzung
in Windows 2000 720
25.4.3 NAT und die Sicherheit 724
25.5 Allgemeine Sicherheitstipps für Breitband-Verbindungen 726
25.6 Zusammenfassung 727
Kapitel 26 Angriffe erkennen und handhaben 729
26.1 Warum brauchen Sie ein Intrusion Response Team? 730
26.2 Ein Intrusion Response Team aufbauen 731
26.2.1 IRT-Satzung 732
26.2.2 Den Kontakt halten 733
26.3 Angriffe erkennen 733
26.3.1 Offenkundige Beweise 733
26.3.2 Seltsames Netzwerkverhalten 734
26.3.3 Beobachten Sie Ihre Protokolle 735
26.4 Reaktion auf Angriffe 738
26.4.1 Keine Panik 738
26.4.2 Sammeln Sie Ihr Team, und bereiten Sie Ihre Aktionen vor 739
26.4.3 Analysieren Sie die Situation 740
26.4.4 Beweise sammeln 743
26.4.5 Die Bedrohung neutralisieren 745
26.4.6 Analyse der Beweise 746
26.4.7 Angriffe melden 747
26.4.8 Einen Angriff verfolgen 748
26.5 Zusammenfassung 748
Kapitel 27 Aktuelle Sicherheitsprobleme 751
27.1 Warum Sie niemals vollkommen sicher sein werden 752
27.1.1 Ein aktuelles Beispiel - verteilte Denial-of-Service-Angriffe 752
27.1.2 Ein anderes aktuelles Beispiel - Datenkompromittierungen 753
27.1.3 Neue Protokolle und neue Software - neue Wege für Angriffe 754
27.2 Über neue Sicherheitsprobleme von Microsoft
auf dem Laufenden bleiben 754
27.2.1 Aktuelle Service Packs und Hot Fixes 755
27.2.2 Windows Update verwenden 756
27.3 Applikationen regelmäßig überprüfen 758
27.4 Auf dem Laufenden bleiben 759
27.4.1 Was ist NTBugTraq? 759
27.4.2 Forum of Incident Response and Security Teams (FIRST) 759
27.4.3 Das Systems Administration, Networking
Security (SANS) Institute 759
27.4.4 Das Computer Emergency Response Team (CERT) 760
27.4.5 Windows 2000 Magazine 760
27.4.6 Die Firewalls Mailing-Liste 760
27.4.7 Computer Operations, Audit and Security
Technology (COAST) 761
27.4.8 Federal Computer Incidence Response Capability 761
27.5 Ihre Benutzergemeinde schulen 761
27.6 Überprüfen Sie Ihre Server regelmäßig 762
27.6.1 Windows-Ereignisanzeige und Protokolldateien
von Applikationen 762
27.6.2 Auf SNMP- und RMON-Traps und -Ereignisse achten 763
27.7 Zusammenfassung 763
Kapitel 28 Sicherheitstests im eigenen Netzwerk 765
28.1 Warum werden Einbruchsversuche gemacht? 766
28.2 Denken als Cracker 767
28.3 Erkennen von Bedrohungen 768
28.3.1 Remote- und lokale Bedrohungen 769
28.3.2 Externe und interne Bedrohungen 770
28.4 Tiger-Teams 771
28.5 Externe Berater 771
28.6 Vorbereitungen für einen Einbruchsversuch 772
28.7 Erstellen eines Angriffsplans 773
28.7.1 Die Planung 774
28.7.2 Erlaubnis 777
28.8 Erkunden der Site 777
28.8.1 Lokal 777
28.8.2 Remote 779
28.9 Sammeln und Auswerten der gefundenen Daten 789
28.9.1 Erstellen einer Karte 789
28.9.2 Überprüfen von offenen Ports und Diensten 790
28.9.3 Überprüfen der Nutzung von bekannten Lücken 790
28.9.4 Sicherheitsrelevante Seiten von Herstellern 792
28.9.5 "Gray Hat"-Sites 792
28.10 Ausbeuten der Site 794
28.10.1 Mögliche Grade 794
28.10.2 Aktiver Angriff 795
28.10.3 Bekannte Angriffe 796
28.11 Bericht und weiterer Verlauf 798
28.11.1 Definition von Bedrohungsstufen 799
28.11.2 Erstellen eines Berichts 800
28.11.3 Reparaturmaßnahmen 800
28.11.4 Definieren von Problembereichen 801
28.11.5 Der weitere Verlauf der Einbruchsversuche 801
28.12 Verfügbare Programme 801
28.12.1 Kommerzielle Produkte 802
28.12.2 Programme aus der Sicherheitsszene 802
28.13 Zusammenfassung 804
Kapitel 29 Sicheren Programm-Code schreiben 805
29.1 Sichere Programme entwickeln 806
29.1.1 Warum sollte man sicheren Code schreiben? 807
29.1.2 Wo treten Sicherheitsprobleme auf? 807
29.1.3 Was kann ich beitragen? 808
29.2 Software-Sicherheit 808
29.2.1 Geben Sie Ihrer Software nur die nötigsten Rechte 810
29.2.2 Prüfen aller Return-Codes 810
29.2.3 Vermeiden Sie Annahmen 810
29.2.4 Testen Sie Ihren Code 811
29.2.5 Im Fehlerfall beenden 811
29.2.6 Denken Sie "um die Ecke" 812
29.3 Programmierprobleme 812
29.3.1 Mangel an Sicherheitsbewusstsein 812
29.3.2 Schlechtes Code-Design 813
29.3.3 Schlechter Code-Test 814
29.3.4 Nicht in Betracht gezogene Möglichkeiten 815
29.3.5 Zu komplexer Code 816
29.3.6 Zu einfacher Code 817
29.3.7 Schlechte Eingabeprüfung 817
29.3.8 Schlechte Prüfung der Grenzen 818
29.3.9 Überschnelle Schwingungen 818
29.4 Überprüfen von Code 819
29.4.1 Der Prüfprozess 819
29.5 Code-Probleme lösen 822
29.5.1 Wenn Sie den Code besitzen 822
29.5.2 Wenn Sie den Code nicht besitzen 823
29.5.3 Hilfreiche Programme 823
29.6 Puffer-Überläufe 825
29.6.1 Was ist ein Puffer-Überlauf? 825
29.6.2 Beispiel für einen Puffer-Überlauf 826
29.6.3 Ausnutzen eines Puffer-Überlaufs 828
29.6.4 Das Schließen der Lücke bei einem Puffer-Überlauf 836
29.7 Sprachspezifische Implementierungen 838
29.7.1 Visual C++ 838
29.7.2 Visual Basic 840
29.7.3 Java-Sicherheit 840
29.7.4 Perl 842
29.8 Sicherheit bei der Programmierung von Web-Anwendungen 844
29.8.1 CGI/Perl 845
29.8.2 SSI und andere Sprachen 846
29.8.3 ASP 847
29.9 Zusammenfassung 847
Stichwortverzeichnis 849