Inhalt

Das Buch umfasst 400 Seiten. Das Inhaltsverzeichnis gibt einen Überblick über die behandelten Themen.

Vorwort 13
Einleitung 15
1 Aufwand versus Sicherheit – was ist angemessen? 17
1.1 Warum ist es wichtig zu wissen, wer meine Anwendung angreifen will? 17
1.2 Wer sind also die typischen Angreifer? 18
1.3 Wie schlimm ist ein erfolgreicher Angriff? 29
2 Sprich »Freund« und tritt ein 31
2.1 Authentifizierung 31
2.2 Authentifizierung mittels Windows-Login 32
2.3 SQL Server-Authentifizierung mittels SQL-Logins 40
2.4 Administratives 54
3 Benutzer und Rollen 61
3.1 Autorisierung über User und Rollen 61
3.2 Rollen 76
3.3 User mit Passwort in »contained databases« 91
4 Rechte – Der Unterschied zwischen Wollen und Dürfen 99
4.1 Minimale Rechte 99
4.2 Explizite Rechte 100
4.3 Implizite Rechte 120
4.4 Besitzverkettungen 129
4.5 Datenbankübergreifende Rechte 137
5 Spieglein, Spieglein an der Wand 147
5.1 Was hat die Architektur damit zu tun? 147
5.2 Allgemeine Gegenüberstellung 150
5.3 Fat-Client 154
5.4 Thin-Client mit App-Service 162
6 Rechteprüfung in der Anwendung 169
6.1 Technische Rechte versus inhaltliche Rechte 169
6.2 Minimalistisches Konzept 170
6.3 Zuordnungstabelle 179
6.4 Rechteprüfung mit eigener Benutzerverwaltung? 190
7 SQL-Injection 201
7.1 Was ist SQL-Injection? 201
7.2 Die zweite Verteidigungslinie 213
7.3 Wirksame Abhilfe durch Parameternutzung 214
7.4 Abhilfe durch Eingabevalidierung 219
7.5 Abhilfe mit »Quoting« 222
7.6 Bedingte Abhilfe durch Einsatz von Views 223
8 Verschlüsselung mit Zertifikaten und asymmetrischen Schlüsseln 225
8.1 Was sind Zertifikate? 226
8.2 Zertifikate durch den SQL Server schützen lassen 227
8.3 Zertifikate anlegen 231
8.4 Welche Zertifikate werden vom SQL Server unterstützt? 236
8.5 Asymmetrische Verschlüsselung mit Zertifikat 238
8.6 Asymmetrische Verschlüsselung mit gespeichertem Schlüssel 243
8.7 Risiken und Nebenwirkungen 246
9 Symmetrische Verschlüsselung 247
9.1 Symmetrische Verschlüsselung mit Passwort 247
9.2 Symmetrische Schlüssel in Datenbank speichern 257
9.3 Symmetrische Verschlüsselung mit gespeichertem Schlüssel 260
9.4 Mit Zertifikat verschlüsselter symmetrischer Schlüssel 266
9.5 Symmetrischen Schlüssel mit asymmetrischem Schlüssel schützen 269
9.6 Größe zeigen 273
9.7 Abgrenzung zur »Transparent Data Encryption« 275
10 Daten hashen und signieren 277
10.1 Hashing als Einwegverschlüsselung 277
10.2 Hashing als änderungserkennung 284
10.3 Daten mit Zertifikat signieren 289
10.4 Daten mit asymmetrischem gespeicherten Schlüssel signieren 295
11 Security-Features rund um gespeicherte Prozeduren 301
11.1 Ausführung in anderem Benutzerkontext 301
11.2 Code-Signierung 323
11.2.1 Wie funktioniert Code-Signierung? 323
11.2.2 Erweiterung der User-Rechte 324
11.2.3 Praktischer Nutzen 328
11.3 Verschleierte Speicherung des Quellcodes 330
12 Auditing 335
12.1 Kontrolle des Zugangs mit SQL Audit 336
12.2 »Change Data Capture« 348
12.3 Extended Events 359
12.3.1 Zu protokollierende Extended Events definieren 359
12.3.2 änderungen aufzeichnen und auslesen 361
12.3.3 Event-Session beenden und löschen 362
12.3.4 änderungen an einer Tabelle mit Extended Events protokollieren? 363
12.3.5 Zusammenfassung Extended Events 363
12.4 Absicherung auf fachlicher Ebene 364
12.4.1 änderungen nur über gespeicherte Prozeduren 364
12.4.2 Trigger zur Protokollierung 369
12.5 Auditing in verschiedenen Szenarien 373
13 Andere bewährte Vorgehensweisen 375
13.1 Schutz vor Root-Kits 375
13.2 Fehlerbehandlung 380
13.3 Auf mehrere Pferde setzen 381
14 Umgang mit Meldungen über Sicherheitslücken 383
A Welche Rechte werden zum Debuggen benötigt? 387
Stichwortverzeichnis 397