Index

A allow_url_fopen, 510 allow_url_include, 510 Abfangen temporärer Fehler, 479 Amazon.com, 409 abgesicherter monolithischer Kernel, 135 Ambient Authority, 99, 107, 158, 416, 446 ablaufbasierte Kontrolle, 104 Ambige Interfaces, 476 Abschalten von Javascript, 503 Analysis/Paralysis Pattern, 553 Absichern von Application-Servern, 347 Anfangs- bzw. Endspanne, 571 Absicherung der Ressourcen, 350 Angriffe Absicherung der Verbindungen, 349 Klassifikation, 12 Absicherung von Servern, 169 Angriffsformen Abwehr auf der Netzwerkschicht, 39 lokale, 15 Access Control Context, 95, 203, 214 Anreicherung von Privilegien, 152 Access Control Lists, 108, 118 Antipattern, 99, 473 Access Control Markup Language, 197 API in Form paarweiser Methoden, 509 Access Control Matrix, 564 Append-Only-Recht, 152 Access Control Policies, 195 Application Integration in Acegi, 295 SSO-Infrastruktur, 285 ACL, 108, 118, 291 Application Level Security, 262 Beispiel, 119 Application Server Malware, 119 LTPA, 335 Solitaire, 119 Application Server Security, 313 , 470 Application Tower, 230 Add-Ons, 445 Application-Server, 330 Administration, 174 Architektur, 318 Administrationsfunktion, 288 Authorisierungscode in der „after the fact“-Sicherheitsmechanismen, Applikation, 329 417 Beispielarchitektur, 320 AJAX, 69 Classloader, 325 Java Script Object Notation, 75 Concurrency, 316 On-Demand JavaScript, 74 Credentials für den Zugriff auf Techniken, 72 Backends, 329 XMLHttpRequest, 72 CSIv2, 318 aktionsintegrierte Sicherheit, 554 Delegation mit Neuerzeugung Alias-Antipattern, 25 des Subjects, 346 Alias-Definition, 475 Entry–Context-Diagramm, 325 „Alles oder Nichts“-Prinzip, 116 Formen der Authentisierung, 324

623 624 Index

Identity Assertion, 334 auf Web2.0, 70 Identity Token, 334 Buffer Overflow, 30 initiale Authentisierung, 332 Cross-Site-Request-Forgery (XSRF), JAAS-Framework, 315 20 keine eigenen Threads erzeugen, 316 Cross-Site-Scripting (XSS), 18 Komponentenarchitektur, 316 durch Race Condition, 472 Multithreading, 316 externe, 18 Neuerstellung eines Subjects, 337 Genuine AJAX/Web2.0-Attacken, 79 POLA, 354 Lokale auf Applikationslevel, 30 Probleme mit ClassNotFound- neue Angriffsformen, 17 Exceptions, 327 Shatter Attack, 35 Reverse Proxy, 343 soziale, 67 Security-Context-Diagramm, 321 Surf Jacking, 23 Security-Interfaces, 328 Übersicht, 12 Separation of Concerns, 313 UNIX Shellscript und Utility-Attacken, Separation of Context, 313 36 Sicherheits-Framework, 330 Visual Spoofing, 25 Single-Sign-On, 319 War-Googling, 29 Subject Propagation, 345 XML-basiert, 24 Thread und Requestcontext, 316 Zeichencode, 25 Verwaltung von Credentials, 322 zeitliche Entwicklung, 15 Zertifikate, 339 Attacken im Navigator, 508 Application-Server-Cluster, 319 Aufgabe des Supervisors, 448 Application-Server-Verbund Aufmerksamkeit, 552 Subject-Erzeugung, 342 Ausführungsidentität, 257 Applikationsarchitektur Auslieferungszustand, 348 Aufruf von Sicherheitsprüfungen Aussagen, 403 vergessen, 233 Authentisierung in Web-Applikationen, Aufteilung in System und 278 Businesslogik, 276 Authentisierungscode in der Applikation, Businesslogik, 275 329 Eliminieren von Trusted Code, 479 Authentisierungs-Framework, 315 Eliminieren von Code, 479 Authentisierungsidentität, 257 Eliminieren von Fehlern, 478 Authentisierungsmethoden Multi-Tier, 233 Hierarchie, 16 sicherheitskritische Aspekte, 231 Authentisierungsobjekt, 289 Templates, 274 Authentisierungs-Token, 236 Wartbarkeit der Sicherheit, 233 Authorisierung, 186, 208 Arbeiten im Auftrag, 261 Authority, 433 Architektur Authority Reduction in Vista, 154 des OKWS-Web-Servers, 170 Authorization-Provider, 341 einer paravirtualisierten Lösung, 141 Automatic Processes, 553 eines Application-Servers, 318 automatisches Update, 535 Architekturschwäche, 509 automatisierte Testtools, 60 Argumentation für POLA, 106 Automobilbau, 91 ASLR, 33 Automobilindustrie, 120 Aspekte, 481 Automotive-Bereich Assertion, 404 OSGI, 365 Attacken, 70 Autorisierung, 290 Alias-Problem, 25 Autorisierungsidentität, 257 Angriff auf Password-File, 37 Autorität, 106 Application-DOS, 27 Autorität aus Designation, 556 auf Ebene der Semantik, 61 Autorität und Interaktion, 579 auf REST Architekturen, 21 Autoritäten, 403 Index 625

Autoritäten der Zugriffskontrolle, 197 Bundle, 366 Autoritätstrichter, 449, 455 Business Rule Engine, 196 Businesslogik, 274 B Bypass, 420 Bytecode Verifier, 188 Backend Security Defense in depth, 270 C unterschiedliche Views auf die Datensätze, 271 Caching, 412 Bedeutung der Identität des Ausführenden, Caja-Projekt, 530 207 Caller-Identity, 217 Bedrohungsmodelle für den Renderer, 529 Callgraph, 445 Behavior Rules, 590 Canaries, 32, 33 Behavior Sensitive, 456 Capabilities, 107, 111, 138, 426, 581 Beispiel für eine Closure, 443 Formen, 427 Beispiel OKWS-Web-Server, 169 Objekt Capabilities, 111 Beispielarchitektur eines Capability Applikationsservers, 320 Filedeskriptor, 152 Benutzbarkeit von Techniken und widerrufbar, 451 Mechanismen, 533 Capability Architecture, 526 Bequemlichkeit vs. Sicherheit, 545 Capability Safe, 530 Bestimmung der Gefährlichkeit, 433 Capability-basierte Architektur, Betriebssysteme 519, 524 Capabilities, 152 Capability-System, 437 Confused Deputy, 129 Cap-Browser, 523 durch VMs gesicherter Kernel, 136 Cap-Desk, 523 Isolation durch Trennung der Captcha, 71 Adressräume, 129 Card Reader Kernel-Datenstrukturen, 135 vorinstallierte Schlüssel, 377 Komponenten beim Microkernel, 132 Caretaker, 449 Mittel der Isolation, 129 Modellierung, 576 monolithischer Kernel, 131 Caretaker Sicherheitsbaustein, 576 Sicherheitsarchitektur, 127 CAS, 225 Treiberschema unter C, 136 Casts, 189 Beweisbare Plattformsicherheit, 610 Cell, 352 Bibliotheken Chain-of-Responsibility“-Pattern, 375 Classloader-Positionierung, 355 ChokePoint, 279 BinarySecurityToken, 397 Chroot, 152 bind(UserId, Passwort)-Aufruf, 282 Claim, 404 Blacklist, 420 Classloader, 199, 217 Blind Spot Bias, 550 Beispielcode, 367 Blindheit, 552 Default-Lookup-Policy, 326 breiter Zugang auf Daten, 270 Classloader-Hierarchie für Application- Browser, 504 Server, 327 Same Origin“-Prinzip, 78 Classloader-Vorgang, 188 Sicherheitsmodelle Internet Explorer, ClassNotFound-Exceptions, 327 Mozilla/Firefox, 78 CLDC, 380 Browser Memory Protetions, 32 C-Lists, 145 Browser Sicherheit Closures, 207, 440, 442 bösartiger Renderer, 521 Code Access Control in Application- Browserarchitektur, 504 Servern, 354 Buffer Overflows, 30 Code Access Security, 224 Beispielcode zur Erzeugung, 31 Code Security für Enterprise- Bug oder Architekturschwäche, 510 Applikationen, 223 626 Index

Codeanalyse, 433 CSIv2, 255 codebasierte Policies, 203 Delegation, 339 Codepoint, 27 Token, 286 Abbildung auf Fonts, 26 , 452 Abbildung auf Glyphs, 27 cognitive Biases, 550 D „Comet“-Anwendungen, 77 Community Sites, 78 Data Execution Protection, 33 Sicherheitsprobleme, 78 Datenbank-Views, 174 Complete Mediation, 291, 388, 428 Datenbankzugriff durch den Server, 359 Concurrency, 462 DBAccessPrincipal, 358 Concurrency und alternative Verfahren, DB-Proxies, 172 472 Deadlock, 465 Concurrent Constraint Programming, Deadlock-Problem, 465 578 Decentralized Mandatory Access Control, Conditioning, 552 153 Confinement, 447, 495, 570 Decorator, 451 Confirmation Bias, 550 , 221 Confused Deputy, 226, 421, 524 Deep Linking, 279 Confused-Deputy-Problem, 421, 580 De-Fakto, 571 Connected Limited Device Configuration „default-is-allow“ Logik, 494 (CLDC), 380 Default-is-deny, 94, 348 Connection Pool, 231 Default-Policy-Implementation, 198 Austauschen des Principals, 359 defensive consistency, 464 Identitätspropagation, 358 defensive correctness, 439 Constraints, 606 Degeneration von Architektur, 475 Container De-Jure, 570 Ausführungskontexte selber erstellen, deklarative Rollendefinition, 263 330 deklarative Security, 248 Container Managed Authentication, 288 deklarative Sicherheit Container Managed Security, 280 Designfragen, 268 Container-Architektur, 314, 317 deklaratives Modell der Zugriffskontrolle, Container-Managed-Authentisierung, 285 266 content-basierte Filterungen, 239 Delegation Continuation Passing, 472 durch Weitergabe von Credentials, 249 Control Sensitive, 456 implizites Vertrauen, 304 Convenience Interface, 447 Delegation mit Propagation des Subjects, Coordination Language, 466 346 Copy-Programm, 107 DEP, 33 CORBA-Infrastruktur, 232 Dependency-Injection-Prinzip, 138 crashme, 60, 145 Deputy Pattern, 593 Credential, 248, 551 Design der Benutzerschnittstelle, 555 Absicherung, 349 Design sicherer Systeme SSO-Schlüssel, 353 Grundprinzipien, 91 Verwaltung, 322 Regeln, 104 Credential-Diagramm, 323 Designation, 557 Cross Domain Proxy, 74 Designation und Autorität, 455 Cross Site Access Control, 23 Deskriptorsysteme, 145 Cross-Cell-Trust, 353 Diagramm, 449 Cross-Cutting Concern, 233 Die Kunst der Täuschung, 61 Cross-Site-Request-Forgery, 21 Diebold, 388 Cross-Site-Scripting Differenzierung des Take/Grant – Attacken, 18 Ansatzes, 574 Merkmale, 21 Digital Rights Management (DRM), 544 Index 627 direkte Authentisierung, 431 Propagation des Zugriffs durch Dirty Assignments, 440, 496 authentisierte User, 244 Discretionary vs. Mandatory, 544 Propagation von Identität, Recht und Diskreditierung von Capability-basierten Aufruf, 245 Systemen, 573 Requestvalidierung, 261 Diskussion der Spring Security Security, Sicherheitsprobleme Beispiel Search, 302 243 Dispatch-Funktion, 443 Endowment, 447 DLL-Hell, 327 End-to-End-Argument, 191 Domain, 258 End-to-End-Security, 229 Dominanz der heute gängigen Systeme, Enterprise Security, 229 418 Access Control, 231 Double Checked Locking Pattern, 468 drängende Fragen, 234 Double-Decoding, 49 Grundlagen, 230 Download von Applikationen, 378 Grundprinzipien, 247 Drop-Target, 528 Impersonation, 236 Duplizierung sicherheitsrelevanter Search Request, 246 Funktionen, 230 Vertrauen in Intermediate, 304 Dynamic SQL, 231 Enterprise Service Bus, 235 dynamische Rechtemanipulationen, 566 Enterprise-Applikationen dynamische Services, 364 Code Security, 223 Enterprise-Search-Plattform, 246 E Entropie, 140 Entry-Context-Diagramm, 324, 325 E, 451 Entscheidbarkeit von Sicherheit, Eigentum und Verfügung, 544 564, 580 Eigentümer, 419 Entscheidungsfindung, 552 einfaches Sicherheitsproblem, 591 Entwicklersicht vs. User-Sicht, 549 Eingabe des PINs, 373 Envelope-Techniken, 236 eingefahrene Verhaltensweise, 553 Erlaubnis, 462 Einsatz eines Caretaker- Erreichbarkeit, 438 Sicherheitsbausteins, 450 von Code, 434 EJB, 248 Erstellung einer geprüften Identität, 208 Architektur, 460 Erstellung eines Subjects, 331 Authorization Table, 256 Erweiterung eines Supervisors, 437 breiter Zugriff auf Backend-Daten, Erweiterungen, 434 254 Erweiterungsarchitektur, 35 Functional User, 254 Erweiterungsdimensionen von Take/Grant Identitäten und Rollen in einem Modellen, 574 EJB-Modul, 253, 254 Erzeugung von Subjects, 342 Interceptor-Konzept, 330 Erziehung von Usern, 553 Resource-ref, 254 Event-Driven-System, 236 Security-View, 254 eventgesteuerte Architektur, 381 embarrassingly parallel, 463 eventgetriebene Systeme, 235 Embedded Control Event-Loop-Modell, 470 Hybride Systeme, 142 Evolution der Java-Sicherheit, 184 Plattformen, 371 E-Voting, 388 Emotional Bias, 551 Exceptions, 447 Encodings, 25 executable spoofing, 500 Ende-zu-Ende-Sicherheit; 239 expecco, 610 Bruch, 242 explizite Allokation, 423 fehlerhafte Konfigurationen, 248 extensible Access Control Markup Identität, 257 Language, XACML, 403 Kreuzen von Requests, 245 externalisierbar, 420 628 Index

F Föderation, 431 FORM-Tag, 527 Facets, 439, 451 Frames, 73 Fakten, 587 Framing, 552 Fassade-Pattern, 270 Front-End vs. Back-End Security, 430 Fat Client, 231 Fully Trusted Fehlen statischer Typen, 303 Angriffsmöglichkeiten, 355 Fehleranalyse Fully Trusted Server, 226 als didaktisches Prinzip, 485 Fully Trusted“ .NET, 355 als theoretisches Prinzip, 486 Functional User, 231 Hypothesenbildung, 487 Sicherheitsmerkmale, 231 qualitative Analyse der Fehler, 487 Functional UserID, 231 Fehlermuster, 503 Funktion des Sealer/Unsealer- Fehlertoleranz, 238 Sicherheitsbausteins, 453 Festlegung von Rechten in SELinux, 177 funktionaler Ansatz, 440 Filedeskriptor, 107, 434 Funktionen, 93 Filesystemzugriffe Fuzzer, 60 Ausnutzen nicht-atomarer File- Zugriffe, 38 G nicht-atomare, 15 Filter, 419 Game Theory, 552 Filterketten ganzheitliche Betrachtung von sicheren Gefahr, 48 Systemen, 4 Filtern Gate Guardian, 37 Blacklists, 49 GAU in der Infrastruktur, 245 Whitelists, 51 Geeks, 550 Filtertechnologie, 420 Geektum, 550 FINREAD, 371 Gefahrenpotenzial, 433, 441 Architektur, 374, 381 gefährliche Funktion, 481 Card Reader, 371 Gefährlichkeit von Server-Applikationen, Kartenleserterminal, 374 164 Konzept, 371 gefahrloses Laden, 436 Service Control Object, 382 Gehorsamkeitseffekt, 559 Softwarearchitektur des Card Readers, generalisiertes Maximierungsproblem, 375 592 Stiplet, 372 geprüfte Identität, 198 Trust- und Key-Management, 376 Geschäft mit IT-Sicherheit, 417 verbotene Bibliotheken und get- und set-Methoden, 438 Mechanismen, 381 Global navigierbare Datenstrukturen, 94 Virtual Machine, 380 Global Scope, 441 Firefox-SSL-Dialog, 556 global scope pollution, 495 Firewall globale Namespaces, 474 besondere Zone, 287 globale Navigation, 474 Firewalls, 417 globale Variablen, 440 Direkte Verbindung trotz Firewalls, 39 globaler Namespace mit Ressourcen, Entscheidungsfindung eines 151 Paketfilters, 40 globales Administratorpasswort, 305 Firewall-Scripts, 46 globales DOM, 511 problematische Eigenschaften von Global-Scope-Zugriffe, 527 Applikationen, 42 Globus, 306 Web-Application Firewall (WAF), 48 Granovetter-Diagramm, 446 XML-Firewall, 52 Granter, 523 Fixpoints, 596 granulare Zugriffsmöglichkeiten, 440 Fließen von Zugriffsmöglichkeiten, 447 Granularität, 93 Index 629

Grenzen der kanalbasierten Sicherheit, 390 Hot-Plug, 364 Grid Security, 303 Hot-Swap, 364 Delegation durch Proxy-Zertifikate, HTML Sicherheitsproblematik, 527 306 http End-Certificate, 306 Remote User Header, 286 Key-Management, 308 Standards, 305 I Grid Security Infrastructure, 305 Grids, 303 Identität grobe Designfehler in OO-Bibliotheken, initiale Authentisierung, 332 527 Registries und Subjects, 332 größte Gefahr, 98 von Code, 203 Grundkonzept der Virtualisierung, 456 Identitätsmapping Grundlegende Mechanismen sicherer applikationsgesteuerte Authentisierung, Software, 419 Nachteile, 258 Grundprinzipien Credential-Mapping-System, 258 Complete Mediation, 94 Mapping einer Caller-Identität, 259 Economy of Mechanism, 93 Möglichkeiten, 261 Fail-Safe-Defaults, 94 run-as-Identität, 258 Least Common Mechanism, 100 Identitätspropagation in EJB, 257 Open Design, 97 Identity Principle of Least Privilege, 99 Propagation zu Datenbanken, 358 Psychological Acceptability, 103 Identity Assertion, 319, 334, 337 Separation of Privilege, 98 Identity Assertion und Delegation, 339 sicherer Software in JAVA EE und IFrames, 73 EJB, 250 IMG-Tag, 72, 527 Guard Object, 221 Immutable Laws of Security, 121 Gültigkeit von Capabilities, 449 Impersonation, 579 Impersonation mit JAAS, 294 H Impersonifikation, 164 Impersonifizierung Handeln im Auftrag, 164 Vor- und Nachteile, 164 Hardening, 347 Implementation des Observer Patterns, Harrison-Ulmann-Ruzzo, 564 463 Hashing von Passwörtern, 240 Implementationen des Interceptor Hauptproblematik der momentanen Patterns, 460 Browserarchitekturen, 516 Implicit Authority Demands, 24 HEALTH@NET, 608 implizite Allokation, 133, 421 Heap Spraying, 34 implizites Vertrauen, 304 Heimnetzwerk, 365 Inattentional Blindness, 551, 552 Hidden Data Flow, 478 Indentitätsmapping hidden fields, 58 Backend, 259 hierarchische Modi, 421 Infrastruktur, 229 hierarchische Rechtemodelle,, 98 COTS-Applikation, 309 hierarchische Verifikation eines Infrastruktur vs. Application Level Software-Downloads, 379 Security, 429 Higher-Order-Function, 207, 440, initiale Authentisierung, 234 441, 442 initiale Authentisierung via JAAS-Log-in, Historie von Rechten, 568 211 Hobbles und Patches, 507 INPOL, 269 hobbling, 507 INPOL-Projekt, 234 Holder-of-Key, 334 Input, 505 Homographen-Problem, 26 Input-/Output-Validierung Honeypot, 461 auf Applikationsebene, 48 630 Index

Input-Validierung JACC, 341 Bankenserver Fehler, 65 Container, Applikation und Policy Grundlagen, 38 Provider, 342 Installation, 179 Jail, 152 Administratorrechte, 179 Java 2 Security, 185, 217 Singularity, 179 Java Authentication Authorization Installer, 179 Contract for Container, 341 instanzbasierte Access Control, 273 Java Authentication und Authorization Integration der JAAS-Authorisierung, 214 Service, 185 Integration von Applikationen, 309 Java Code Access Security, 198 Intention, 547 Java Connector, 258 Intention des Nutzers, 544 JAVA EE, 186, 248 Intention, Programm und Effekt, 547 Annotationen, 276 Interaktion und Autorität, 422 Applikationsinterfaces, 251 Interaktionsmöglichkeit, 421 Authentisierung, Identitäten und Rollen Interception, 195, 420 in einem Web-Modul, 254 Interceptor, 459 Container Architecture, 341 Interceptor-Framework, 301 Delegation, 256 Interleaving, 463 Deployment-Deskriptoren, 252, 263 Intermediate, 257, 308 Fluss der Identität eines Aufrufers, 256 Intermediate-Server, 429 getCallerPrincipal, 256 Internet Threat Model, 115 getUserPrincipal, 255 Interpreter, 494 Impersonation, 256 Inversion-of-Control, 135 isUserInRole, 253, 267 Inversion-of-Control-Architektur, 436, 457 Permission, 253 Inversion-of-Control-Prinzip, 138 Ressource, 253 IOC, 135 Rolle, 253 IOFUZZ, 145 run-as, 257 IPSec, 248 Use-Caller-Identity, 257 IPTables, 43 web-app.xml, 285 Isolation, 100, 420, 447 Java Security durch Nicht-Erreichbarkeit, 420 checkPermission, 200 von Autoritätsfluss, 573 doAs() versus doASPrivileged(), 215 von Code, 327 Java Sprach- und Plattformsicherheit, 183 Isolationstechniken, 127 Java-Call-Stack, 225 Isolieren von Komponenten, 351 Java-Memory-Modell, 468 isolierende VMs, 356 Javascript, 72 Angriffsmöglichkeiten durch J JavaScript, 80 eingebettetes Script in Nutzerprofilen, JAAS, 185 79 Credential, 209 eval()-Funktion, 75 doAs, 213 Hijacking, 80 doAsPrivileged, 213 Sicherheitsprobleme, 80 doPrivileged()-Operation, 221 Subset, 530 Integration in Struts, 284 Javascript Logincontext, 209 lambda, 493 Loginmodule, 209 Java-Security Log-in-Sequenz, 210 Accesscontrolcontext, 201 mit Struts, 284 Accesscontroller, 201 Principal, 209 checkPermission, 220 Providerpattern, 210 Erweiterungen und Ableitungen von Subject, 209, 213, 215, 290 Klassen, 193 Subject.doAsPrivileged, 216 Grant Principal, 217 Index 631

heute, 187 Konditionieren, 553 Impersonifizierung, 214 Konstruktion einer solchen simplen Java 2 Security anschalten, 200 „Sandbox, 480 Kernkonzept der Java-Security, 184 Kontrolle der Autorität, 449 Klassen und Protection Domains, 201 Kontrolle der Instanziierung, 433 Liste der Permissions, 200 kontrollierte Privilege Elevation, 204 native Funktionen, 194 Konzepte der Psychologie, 549 Package als protected, 194 Packages, 194 L Packages durch Signaturen schützen, 194 Label Based Access Control, 272 Packages vor Aufruf schützen, 194 Label-based-Access–Control-System, 155 Permission, 201 Labeling, 153 Permissions als Rollendefinitionen, Lademechanismus, 34 225 Laden der Software, 434 Permission-Überprüfungen, 200 Laden und Linken, 434 Protection Domain, 198 Lambda-Kalkül, 452 Prüfung eines Zugriffs, 199 Layer-Pattern, 233 Securityexception, 202 LBAC, 153, 272 Securitymanager, 201 LDAP API, 282 Stack.Walkback, 214 Lernen und Testen, 610 Struktur der Protection Domain, 199 Lexical Scoping, 442 Übersicht, 186 Light-weight Container Security, 295 Java-Server-Code, 162 Lightweight-Third-Party Authentication JMX-Konsole, 29 (LTPA), 335 JNDI-Verzeichnis, 475 Livelock, 465 JSON, 75 Liveness, 187, 422, 568 just in time least authority, 568 Aspekt, 348 Anforderung, 591 K Loader Isolation, 457 Login-Config-Datei, 284 kanalbasierte Sicherheit, 425 lokale vs. fremdvermittelte Sicherheit, 536 kanonische Form von XML, 392 Löschen von Rechten, 568 Kapselung, 437 Lost-Update, 470 Kapselung durch virtuelle Maschinen, 139 LTPA-Key, 323 Kategorisierung, 549 KBM, 586 M Kerckhoff’sches Prinzip, 97 Kernel-DOS-Attacken, 133 Macht des Faktischen, 417 Key Continuity Management, 27, 538 Macros, 424 Key-Management, 537 Mailadressen als „First-Class-Objects“, Kilim, 472 557 Klassifikation der Schwachstellen Im Makro-Architektur, 453 Mozilla/Firefox Browser, 502 Makroarchitektur des DARPA-Browsers, Kleinstrechner, 116 523 Knowledge Behavior Models, 580, 586 Management Service Delegation, 264 Definition, 590 Managementobjekte kognitive Tendenzen, 550 Rechte, 354 kollaborative Sicherheitsmechanismen, mandantenfähige Software, 456 388 Mandantenfähigkeit, 305 komplexe Systeme, 552 Manifest File, 369 komplizierte Dialoge, 539 Man-in-the-Middle (MITM), 64 Komponenten eines Servers, 165 Map Reduce Pattern, 466 Komponenten und Applikation, 523 MBeans, 354 632 Index

Mechanismen, 415 Namespace, 138 Mechanismen der Zugriffskontrolle, 431 durch Classloader Architektur, 366 Mechanismus für granulare Übergabe, innerhalb einer VM, 368 557 Kontrakt, 148 mehrstufige Initialisierung von Objekten, Konzept, 217 461 NAT, 42 Memory Capabilities, 423 Navigations-Interface, 447 Memory Protection, 187 Navigationsrechte, 107 memory-safe, 33 Nebenläufigkeit, 462 mentales Modell, 553 und Sicherheit, 462 Metamodell für die Modellierung Netfilter Framework, 44 operationaler Aspekte, 605 UML-Diagramm, 45 Meta-Object-Facility (MOF), 605 Network Adress Translation, 42 Metasploit Frameworks, 60 Newsgator REST-Service, 410 Method-Permission-Table, 254 nicht fälschbare Referenz, 446 Microkernel, 130 Nicht-Determinismen bei der Sicherheitsprobleme, 133 Implementation, 463 Mikro-Architektur, 434 Nicht-Determinismus, 468, 553 „minderwertige“ Sicherheit, 551 nicht-deterministisch, 463 Mobmap, 444 nicht-orthogonale Aspekte der mod_security, 51 Nebenläufigkeit, 468 Model-Checking, 607 Nickname, 541 modellbasierte, integrierte Security, 619 NIZZA, 141 Modelle sicherer Kollaboration, 386 non-Functional-Requirements modell-getriebenes Security-Engineering, Delegation, 233 608 Non-Privileged, 421 Modellierung und Generierung, 605 NOP Slides, 34 Modellierung von Nutzern, 604 NoScript Firefox Extension, 22 Modifizierbarkeit, 438 Notar, 462 modulare Sicherheitszone, 438 not-executable, 34 Möglichkeit, Effekte zu erzielen, 435 Not-My-Problem-Fallacy, 552 Monitor, 464 nur Sicherheit, die funktioniert, ist monolithischer Kernel, 130 Sicherheit, 533 Sicherheitsprobleme, 134 Nutzerintention, 560 monotone Approximation, 586 nutzerspezifische Connection Multi-Application-Architektur, 366 Eigenschaften, 358 Multi-Faktor-Authentisierung, 63 NX, 34 multi-laterale Sicherheit, 2 Multi-Level-Security, 153 O Multimedia-Streaming-Applikationen, 41 Object Capability, 221, 445 multithreaded Server, 316 Object Security, 391 Multi-Threaded-Zugriff, 439 Object Spaces als Prozesse, 149 Multi-Threading, 102 objektbasierte Sicherheit, 97, 390, 425 Multi-Tier-Applikation, 233 Merkmale, 388 Multi-Tier-Applikationen, 430 Sicherheitstechniken, 391 Multi-Vendor Komponentensysteme, 363 Token, 396 MySpace, 71 Objektreferenzen, 107 OBSOC, 278 N OKL4, 133 Open-Services-Gateway-Inititative nachträgliches Eindämmen, 474 [OSGI], 364 Namen und ihre eindeutige Verwendung, Operator new, 433 540 Opt-In, 33 Index 633 orthogonale Aspekte, 467 PHP, 510 Orthogonalität von Kapselung und PIN/TAN-Lösung Concurrency, 471 leichtgewichtig, 22 OSGI, 364 Plan, 462 Bundle Signature, 370 Platform Security, 115 Bundles, 364 Plazierung von Cookies, 33 JXTA-Kopplung, 365 Pluggable Authentication Modules, 315 Servicekonzept, 364 Pluggable-Authentication-Mechanism, Services in einem Heimnetzwerk, 365 185 Versionierung, 364 Plug-Ins, 35, 134 Out of Context Problem, 552 Architekturen, 134, 135 „Outrage“-Theorie, 84 POLA, 100, 105, 151, 584 Outsourcing, 412 durch Capabilities, 426 Overattention, 553 Intermediate-Server, 430 OWASP, 13 Logfile Beispiel, 152 Prinzip, 447 P vs. POLP, 105 zur Schadensbegrenzung, 5 paarweise Methoden mit State, 476 Polaris, 159, 546 paarweiser Funktionsaufruf, 421 Policy Administration Point, 197 Packages Policy Decision Point (PDP), 197 kritische Funktionen, 355 Policy Enforcement Point, 197 PAI Projekt, 605 Policy Information Point (PIP), 197 PAM, 208, 315 Policy Providern, 341 Paper-Trail, 389 POLP, 99, 480 Parallelität ohne Synchronisierung, 470 Port Scanning, 98 Parameterübergabe, 440 Portable Interceptor Pattern, 330, 458 paravirtualisierte VM-Architekturen, 141 Powerbox, 449 Parsen von Input, 479 Prädikate, 587 Partitionierung von Funktionen, 480 primitive commands, 566 passive Subjekte, 573 Principal, 208, 209, 210, 213 Passwort-Aging-Policies, 324 Principle Passwortsynchronisierung, 241 of least Authority, 100, 105, 584 Passwortwechsel, 287 of least Privilege, 110, 480 Patches, 117 Principle of least surprise, 511 Automatisierung der Exploit- Prinzip des Same-Origin, 514 Erstellung, 118 Privatnutzer, 117 Patchlogik, 117 Privilege Escalation, 489 Patch-Service, 117 privileged, 421 Pattern Recognition Bias, 550 privileged javascript execution, 494 Peer-to-Peer-Classloader, 368 Privilegienanpassung Peer-to-Peer-Classloader-Modell, 369 DecreaseMyRights, 157 Performanceverlust, 226 in Applikationen, 159 Perimeter Security, 115 in Betriebssystemen, 157 Permission, 99, 192, 198, 433, 435 MakeMeAdmin, 158 versus Authority, 583 subtraktives Verfahren, 157 Per-Reference-Semantik, 438 Privilegienmodi, 128 Personal Firewalls, 111 „privilegierte“ Funktionen, 95 Personality Type Bias, 550 problematische Sicherheitswarnung, 546 Personas, 553 Process Attachable Virtual Machines Petnames, 541 (PAVM), 356 Pfadattacke, 223 programmatische Security, 248 Phishing, 63 programmierte Sicherheitsabfragen, 231 Phishing-Angriff auf iTAN-Verfahren, 65 Projection Bias, 550 634 Index prompt tab spoofing, 501 Rechte und Eigentum, 543 Propagation einer serialisierten Form des Rechte- und Informationspropagation, 571 Subjects, 345 Rechteausübung, 533 Propagation of Authority, 448 Rechtedefinitionen Propagation von Identität, 267 feingranular, 110 Propagation von Privilegien, 108 Fließen, 113 Propagation von Rechten, 448 Propagation von Rechten, 114 Properties Rechtemenge, 112 Implementation durch Capabilities, statische Rechtevergabe, 111 575 Rechtekontrolle bei der Ausführung von und Capabilities, 573 Programmen, 118 -Properties;Properties, 155 Rechtereduktion, 430 Protection Rings, 421 Rechtezuweisung Protection State, 584 additiv und subtraktiv, 152 Protection Systems, 584 Recognition Primed Decision Making, Proxy-Zertifikat, 306 552 Vollmacht, 307 Reduktion der Autorität, 110 Proxy-Zertifikat ([RFC3820],, 306 Reduktion von Autorität durch prozessorientierte Security, 618 Softwarebausteine, 173 Prüferidentität, 257 Refaktoring, 479 Prüfung Operationaler Umgebungen, 602 Referenzen, 436 Pseudo Random Numbers (PNRG),, 15 Referenzen als Capabilities, 217 Psychologie der Verteidigung, 84 Referenzmonitor, 109, 435 psychologische Akzeptanz, 226 Referenzmonitore psychologische Basisbedingungen Wildcard Problem, 159 menschlichen Handelns, 550 Refinement Prozess, 611 psychologische Basismechanismen, 552 Reflection und Sicherheit, 457 Psychologische Voraussetzungen, 548 Reflection-Mechanismus, 381 public constructor, 437 reflektive Methode, 192 Publish/Subscribe-Pattern, 235 Registries mit Objekten, 441 Pull-Verfahren, 475 Re-Identifizierung von Objekten auf Purse, 308 Systemebene, 557 Remote Admi, 174 Q Replay, 97 Replay-Attacken, 406 qmail, 477 Repräsentation von Identität, 331 qmail Architektur, 479 Representational State Transfer Quellen von Autorität, 447, 454 Architecture, 407 Query-Interface, 196 RequestDispatcher, 292 Quotas, 101 Reset des Routers Attacke, 21 Residential Gateway, 365 R Ressourcenverwaltung, 101 REST, 407 Race Conditions, 175 Beispiel, 410 Race-Condition, 36, 463 Philosophie, 409 Rahmenbedingungen sicherer Software, Prinzipien, 409 417 Services, 409 Randomisierung des Adressraumes, 33 Reverse Proxy, 280, 458 Rationalisation, 550 RevertToSelf, 355 Ratproxy, 61 revoker-Funktion, 451 Read-Up, 155 Rights Amplification, 453 Realm, 258 Risikowahrnehmung, 85 Re-Authentication, 358 Rule Engine, 268 Rechte des Codes verringern, 258 run-as, 258 Index 635

S Security und Usability, 103, 533 Security Usability Fundamentals, 549 Safe Collaboration Language, 580 Security vs. Safety, 615 Safety, 3 Security vs. Usability, 616 Safety vs. Security, 416 Security-Infrastruktur, 232 Saltzer und Schroeder, Grundprinzipien Security-Policy, 185 Same-Origin-Prinzip, 508 SEH, 33 SAML, 403 seL4, 133, 142, 611 Advice, 405 SELinux, 158 Architektur, 405 Semantik, 431 Assertion, 404 Semantik einer Aktion, 97 Assertion Beispiele, 404 Semantik von Integer-Operation, 478 Assertion Element, 404 semantische Kluft, 535 Attribute Statement, 405 semantische Kontrolle, 104 Authentication Statement, 405 separation of Concerns, 581 Authorization Decision, 405 Sequence Numbers, 41 Conditions, 405 Serialisierung von Feldern Subject Statement, 405 Schutz durch transient, 192 Sandbox, 108, 109, 118, 184, 195 Server zu Server Requests Sanitizing, 48 Delegation, 340 Gefahr, 48 Server-Identity, 217 SAP-Architektur Serversicherheit VM, 357 Architektur der Software, 169 Satisficing, 552 Authentisierung eines Requests, 163 Schadensbegrenzung, 121 Datenbanktabelle, 171 Schadensminimierung, 99 Durch Proxy eingeschränkter Zugriff Schadenspotenzial auf Daten eines Services, 172 Autorität, 106 Ein Prozess pro Service, 167 einer Software, 106 Filterresourcen, 170 Schlüssel, 427 Grundkonzepte, 161 Schwachstellen herkömmlicher Identität, 161 Betriebssysteme, 140 multi-threaded Server, 166 Scoll, 592 Objektkapselung, 170 Scoll Programme, 594 privilegierte Operation, 162 Scoll-Ansatz, 580 Registry, Domain, Realm, 162 Scollar, 580, 596 Schadensbegrenzung durch Isolation, Sealed Process Architecture, 134 169 Sealer/Unsealer Pattern, 453 sicherheitsrelevante SECUml, 607 Architekturmerkmale, 165 Secure Channel Confusion, 406 System initialisieren, 170 Secure Classloader, 199 Servicedelegation in SOA, 411 Secure Cookie, 23 serviceorientierte Architekturen, 234 secure embedded L4, 133 setuid, 175 Security Assertion Markup Language „Shared-State“-Konzept, 316 (SAML), 403 Shared State Multi-Threading, 463, 467 Security Constraint, 292 Kritikpunkte, 467 Security Context sichere Delegation an Dritte, 308 Application-Server, 322 sichere Erweiterung von Software, 457 Diagramm, 321 sichere Exception Handler, 33 eines Requests, 316 sichere Listenverwaltung, 33 Security Patt, 458 sichere Transaktionen mit FINREAD, Security Policy, 192 370 Security Token Issuer (STI), 319, 398 sichere User-Interfaces, 557 Architektur, 399 sicherer Desktop, 523 636 Index

Sicherheit der Applikation, 477 Bedrohungsmodell, 372 Sicherheit und Zuverlässigkeit, 126 Parteienszenario, 373 Sicherheit von Servern, 160 Terminal, 373 Sicherheitsanalyse, 94, 441 Smartphones, 92 formale, 580 SOA, 234 Kernkonzepte, 582 SOA Security, 411 Verhaltensbasiert, 585 SOAP Security, 396 Sicherheitsanalyse einer Software, 449 Envelope, 396 Sicherheitsarchitektur bei loser Kopplung, SOAP-Fehlercodes, 52, 398 238 Social-Engineering-Techniken, 62 Sicherheitsarchitektur von Socket API Calls, 161 HEALTH@NET, 609 Socket-Design, 314 Sicherheitsbaustein, 449 Socket-Server, 314 Sicherheitsbausteine, 448 Soft-Typing, 303 Modellierung, 575 Software Extension, 457 Sicherheitsdialog, 549, 554 Softwarearchitektur und Sicherheit, 432 Sicherheitsdomänen und Layers, 511 softwarebasierte Isolation, 145 Sicherheitsentscheidung, 550 Software-Interrupt, 127 Sicherheitsexperte, 551 Softwarekomponenten, 232 Sicherheitsfunktionen bei Solitaire, 119 Server-Applikationen, 251 sozialer Trend, 551 Sicherheitsindustrie, 417 Speicherfehler, 190 Sicherheitskonzept des Browsers, 510 Speichern von Passwörtern, 240 Sicherheitskonzepte Speichersicherheit, memory safety Browserarchitektur, 504 spezielle Probleme der Front-End- Netscape/Mozilla Browserlinie, 512 Applikationen, 288 Sicherheitslücke im Cisco-Portal, 239 Sprachbasierte Sicherheit, 187 Sicherheitsmodell für Firmen, 117 Sprache E, 450, 522 Sicherheitsplan, 463 Spring Security, 295 Sicherheits-Policy, 253 Authentisierungs-Objekte, 298 Sicherheitsprobleme der Modus- Authorisierung, 299 Architektur, 128 Interceptor Pattern, 299 sicherheitsrelevante Annotationen, 276 Manipulation von Authentisierungs- Sicherheitsumfeld, 139 Objekten, 299 Sicherheitszone, 95, 437 Philosophie, 295 Sicherheitszonen, 234 Provider Pattern, 300 Signature Block File, 369 SQL-Injection, 20 Signature File, 369 SSO-Token, 338 signierte Token, 196 durch symmetrische Keys, 304 Signierung von Jars, 203 End-to-End-Fluss, 262 Single-Source-Transformationen, 480 Stack-Walk, 206, 445, 582 Singularity, 134, 451 Stack-Walk-Mechanismus von Java, Architektur, 146 201 Compound Principal, 150 State halten, 476 Eigenschaften, 146 State-Attacke im Netzwerk, 477 Exchange Heap, 147 State-Machines, 382 Kontrakt, 149 Status-Quo-Bias, 33 Manifest, 149 Stellvertretungen, 99 Runtime, 147 STI, 398 Transport von Objekten, 147 Strongnames, 203 Typ TRef in Sing#, 148 Struts, 278 Siteminder, 339 ActionServlet, 279 SkyNet-Virus, 545 Aufbau einer Struts-Applikation, 280 Smartcard, 116, 189 Singletons, 289 Index 637

SU, 175 totale Kooperation in einfachen Credentials, 176 Take/Grant Modellen, 572 SELinux, 176 Trademarking, 303 Subject, 286 Trampoline Code, 34 Subject Object in Token-Form, 340 Transaktionssignierung, 370 Subject-Erstellung mithilfe eines Transport- und Security-Aspekte, 238 LTPA-Token, 335 Transportschicht, 248 Subjective Validation Bias, 550 Tree Interface, 441 Subjective-Expected-Utility-Theorie, Trichterprinzip, 269 552 Trust Association Interceptor (TAI), 338 Suche nach Schwachstellen, 474 Trust-Boundary, 528 Superstition Based, 552 Trusted Base, 106 Surf Jacking, 23 Trusted Code, 369 SWORD4J, 223 Trusted Code Base, 204 Symbian-OS Trusted Computing Base, 479, 610 DLL-Labels, 202 Trusted Path, 104, 558 signierte Software, 378 Trusted Third Party, 261, 262, 398 Symbolic-Link, 36 Trust-Store eines Servers, 339 Symbolische Referenzen, 507 Twiki Sicherheitslücke, 511 synchronized, 448 Type Spaces, 149 System Context, 321 Typen und Objekte in SE-Linux, 176 System-Call-Interface, 441 Typsicherheit, 184, 187 Systemdialoge, 559 gebrochen, 189 Systrace, 159 U T Überaggregierung, 477 Tabellenorganisation, 243 Übergang vom User zum Kernel Mode, Tags, 153 127 Tainted Strings, 50 Überlagerung von Dialogen, 559 Tainting, 153, 444, 512, 514 Übersicht der häufigsten Attacken, 13 Tainting-Mechanismus, 49 Übertragung der Userrechte an die Take/Grant Systeme, 568 Applikation, 501 Take/Grant-Modelle, 570, 589 Überwachungsvariablen auf dem Stack, Taming, 448, 526 32 Tausch von Passwörtern, 551 Ubiquitous Computing, 115 technischer Entmündigungsprozess, 618 UDDI, 403 Template/Hook Pattern, 293 Umstellung auf Java 2 Security, 218 Testinstrumente, 60 Umwandlung einer Designation in eine Theorien zur Entscheidungsfindung, 553 Autorität, 524 Threat-Modelling, 126 Unicode-Codepoints, 26 Ticket, 462 universelle Maschine, 419 Ticket Granting Tickets, 308 unklare Prozesse, 539 Time-of-Check-to-Time-of-Use, 37, 102, Unsichere Verwendung von globalen Files, 220 499 TLS-PSK, 536, 554 URLs bypass security checks, 492 TOC2TOU, 102, 175 Usability Fehler, 496 Active Authorization, 558 Mozilla, 440 Expressiveness, 558 Permission Checks, 220 Foresight, 558 Threads, 316 Identifiability, 558 Token Relevant Boundaries, 558 als Kontextinformation, 461 Revocability, 558 Zusatzinformation, 286 Self-Awareness, 558 638 Index

Trusted Path:, 558 virtuelle Organisation, 305 Visibility, 558 Vista Usability, 111 CBT-Hooks, 156 Fehlen einer Information, 541 Integritätslevel, 155 ist für alle Beteiligten, 534 UAC, 154 lokale Namen und ihre Bedeutung, 536 User Access Control, 154 Path of Least Resistance, 558 Visual Spoofing, 26 Serverertifikate in Firefox 3.0, 555 Vollmacht, 462 Verständnisprüfung, 554 vorgelagerte Authentisierung, 337 von Sicherheitsmaßnahmen, 443 durch SSO-Server, 338 Usability und Security als strikte Signaturlösung, 339 Gegensätze, 534 User Conceptual Models, 103 W userbasierte Policies mit JAAS, 207 User-Centered-Design, 554 WAF, 58 User-Interaktion, 548 als zusätzliche Verteidigungslinie, 58 V Vergleich der Produkte, 58 WAS, 318 Vat, 471 Watermark Fallacy, 552 Verantwortung, 418 Web Application Firewall (WAF) Verantwortung für Systeme, 419 Einsatzbedingungen, 58 Vereinzelungsanlagen, 551 Web Server, 280 Verfügbarkeit, 143 Web2.0, 560 Vergleich mit C++, 192 Mashups, 69 Verhalten in einer Menge, 552 Techniken, 69 Verhaltensmaximierung, 591 Web-Applikationen Verhaltensprädikate, 587 Authentisierung und/Autorisierung, Verhaltensregeln, 590 280 verified by VISA, 541 WebSeal, 339 Verlagerung von Zugriffskontrolle „nach Web-Services, 385 vorne, 247 Bedrohungen und Risiken, 406 Vermeidung von Seiteneffekten, 466 Document-Key-Check, 397 Verringerung der Anzahl der Requests, 28 Document-Key-Validation, 397 Verstehen, 554 Key-Identity-Validation, 397 verteilte Enterprise-Applikation, 230 non-repudiation, 386 vertikale vs. horizontale Replay-Attacke, 397 Sicherheitskonfiguration, 603 über REST, 407 Vertrag, 462 Websphere-Application-Server, 318 Vertrauenszone, 231 Web-Trojaner, 21 Verwaltung des Runtime-Systems, 350 Wechsel von Sicherheitsmodi, 23 Verwaltungsobjekte, 354 Wechsel zwischen den Modi, 421 Vier-Augen-Prinzip, 98 Weitergabeidentität, 257 Virenscanner, 417 weltweit eindeutige Inhabernamen, 539 Virtual World, 452 Whitelist, 420 Virtualisierung, 456 Willensbeweis, 424 auf Basis des seL4 Microkernels, Wissensmaximierung, 591 142 Wissensprädikate, 587 Grenzen der Sicherheit, 144 World of Warcraft, 444 Logical Partitions (LPARs), 144 WoW, 444 Tips für den Einsatz von VMs, 145 Wrapper, 134, 474 Verfügbarkeit, 144 Write-Down, 155 Virtualization for embedded Systems, WSDL-Interface-Beschreibung, 53 142 WSS4J, 408 Index 639

WS-SecureConversation, 402 Zerstörung der OO-Kapselung durch WS-Security, 396, 397 Threads, 471 Attacken, 406 Zertifikate Einbindung in Applikationen, 407 Usability, 536 Java Framework (WSS4J), 407 Zertifikatsketten, 379 WS-Trust, 399 Zonen innerhalb der Software, 439 Anfordern und Prüfen von Token, 400 Zufallszahlengeneratoren, 139 Security Token Request, 400, 401 Zugriff auf die SIM-Karte, 194 Security Token Response, 401 Zugriff auf Objekte, 95 Szenarien, 401 Zugriff nur über erhaltene Referenzen, 137 X Zugriffskontrolle, 423, 431 alternative Methoden, 217 XACML, 197, 263, 403 auf Basis eines Subjects, 213 XML auf Basis von ACMs, 568 Appliances, 398 Autoritäten, 197 kanonische Form, 391 Basismechanismen, 431 Signaturen, 391 deklarativ und programmatisch, 272 Signieren von Dokumenten, 392 Gefahr selbst gebauter Autorisierung, verschiedene physische 290 Repräsentationen, 395 Granularität eines „Zugriffs, 291 Verschlüsselung, 392 in der Datenbank, 270 XMLHttpRequest, 74, 75, 76 in lokalen und verteilten Systemen, Einsatz von vorgelagerter 428 Authentisierung, 82 instanzbasiert,Beispiel, 273 XSS Cheat sheets, 57 Rechtemenge vergrößern, 217 rollenbasiert, deklarativ – Beispiel, Z 262 über Fassaden, 271 Zeitdruck, 552 via Interceptor, 268 Zero-Day-Attacken, 117 Zugriffsrechte bei Impersonifikation, 216 Zero-Risk-Bias, 551 Zuverlässigkeit und Verfügbarkeit, 620