1 Einführung und Motivation.................................................................................................................... 9 2 Angriffe................................................................................................................................................... 16 Eine Übersicht der Attacken ............................................................................................................................... 16 2.1.1 ...Wie lassen sich die Angriffe klassifizieren?...................16 2.1.2 ...Eine Übersicht der häufigsten Attacken auf Applikationen 17 2.1.3 ...Lokale Angriffsformen.....................................................18 2.1.4 ...Zeitliche Entwicklung der Attacken ................................19 Die Attacken im Einzelnen ................................................................................................................................. 20 2.1.5 ...Externe Attacken auf Applikationslevel..........................20 Cross-Site-Scripting (XSS) Attacken.................................................................................................20 Cross-Site-Request-Forgery (XSRF) Attacken..................................................................................22 Surf Jacking ......................................................................................................................................24 XML basierte Attacken......................................................................................................................25 Zeichencode Attacken (Alias-Problem und Visual Spoofing) ...........................................................26 Application DOS Attacken ................................................................................................................28 Meta-Attacken: War-Googling ..........................................................................................................29 2.1.6 ...Lokale Attacken auf Applikationslevel............................29 Buffer-Overflow-Attacken.................................................................................................................29 Shatter Attack ...................................................................................................................................33 UNIX Shellscript und Utility Attacken..............................................................................................34 Grundlagen der Input Validierung...................................................................................................................... 36 2.1.7 ...Abwehr auf der Netzwerkschicht....................................36 2.1.8 ... Input/Output Validierung auf Applikationsebene ...........44 Gefahr durch Sanitizing und Filter-Ketten.........................................................................................45 Blacklist-basiertes Filtern ..................................................................................................................45 2.1.9 ...Forms-Validierung...........................................................46 White-List basiertes Filtern am Beispiel mod_security .....................................................................47 Output Encoding am Beispiel Search-Engine Security......................................................................48 Möglichkeiten und Einsatzbedingungen einer Web Application Firewall (WAF) ............................52 Testinstrumente: Fuzzer und (semi) automatisierte Testtools............................................................53 Attacken auf Ebene der Semantik....................................................................................................................... 55 2.1.10 .Die Kunst der Täuschung...............................................55 2.1.11 .Phishing und Multi-Faktor Authentisierung....................55 2.1.12 .Soziale Attacken .............................................................59 WEB 2.0 Techniken und ihre Problematik.......................................................................................................... 60 2.1.13 .Attacken auf Web 2.0 .....................................................60 2.1.14 .Die Techniken hinter Web 2.0........................................62 2.1.15 .Spezielle Aspekte der AJAX Security ............................65 Browser Sicherheit............................................................................................................................65 Sicherheitsprobleme von Community Sites .......................................................................................66 Genuine AJAX/Web2.0 Attacken......................................................................................................67 Probleme des XMLHttpRequests beim Einsatz von vorgelagerter Authentisierung .........................68 Zusammenfassung.............................................................................................................................69 Zur Psychologie der Verteidigung...................................................................................................................... 70 Literatur ............................................................................................................................................................... 73 Kriha/Schmitz Internet Security aus Software Sicht 3 452 12.09.2008 3 Grundprinzipien des Designs sicherer Systeme ................................................................................. 76 Economy of Mechanism (KISS).......................................................................................................................... 77 Fail-safe Defaults ................................................................................................................................................ 77 Complete Mediation............................................................................................................................................ 78 Open Design: The design should not be secret ................................................................................................... 80 Separation of Privilege........................................................................................................................................ 80 Principle of Least Privilege (POLP) .................................................................................................................... 81 Least Common Mechanism................................................................................................................................ 81 Psychological Acceptability................................................................................................................................ 83 Zusammenfassung der Prinzipien von Saltzer/Schroeder................................................................................... 84 Principle of Least Authority - POLA................................................................................................................... 84 3.1.1 ...POLA vs. POLP ..............................................................84 3.1.2 ...Access Control Lists und Sandboxes ............................86 3.1.3 ...Capabilities......................................................................88 3.1.4 ...Zusammenfassung .........................................................90 Literatur ............................................................................................................................................................... 91 4 Platform Security .................................................................................................................................. 91 Platform Security heute....................................................................................................................................... 92 Die „Immutable Laws of Security“: Schadensbegrenzung unmöglich?............................................................. 95 Sicherheit und Zuverlässigkeit von Betriebssystemen........................................................................................ 98 4.1.1 ...Klassische Sicherheitsarchitektur in Betriebssystemen 99 4.1.2 ...Kernel-Architektur: Microkernel vs. Monolithischer Kernel 101 4.1.3 ...Die Sicherheit von Plug-In Architekturen.......................104 Kapselung durch Virtuelle Maschinen .............................................................................................................. 108 4.1.4 ...Sicherheitsumfeld ...........................................................108 4.1.5 ...Paravirtualisierte VM Architekturen................................109 4.1.6 ...Hybride Systeme im Embedded Control Bereich..........110 4.1.7 ...Virtualisierung unter Einschluss der Verfügbarkeit: Mainframes 111 4.1.8 ...Grenzen der Sicherheit durch Virtualisierung................112 Software- basierte Isolation ............................................................................................................................... 113 4.1.9 ...Singularity........................................................................113 Das Least Authority (POLA) Prinzip beim Bau von Systemen ....................................................................... 118 4.1.10 .Additive und Subtraktive Rechtezuweisung ..................118 4.1.11 .Labeling und Tainting .....................................................119 4.1.12 .Authority Reduction in Vista ...........................................120 4.1.13 .Privilegienanpassung in Betriebssystemen...................122 4.1.14 .Privilegienanpassung in Applikationen ..........................124 Die Sicherheit von Servern ............................................................................................................................... 125 4.1.15 .Grundkonzepte der Server-Sicherheit ...........................125 4.1.16 .Sicherheitsrelevante Architekturmerkmale von Servern 128 4.1.17 .Absicherung von Servern am Beispiel des OKWS Web Servers 131 Administration................................................................................................................................................... 135 4.1.18 .Race Conditions..............................................................136 4.1.19 .SU – verschiedene Implementationen...........................136 4.1.20 . Installation .......................................................................138 Literatur ............................................................................................................................................................. 139 5 Java Sprach – und Plattformsicherheit ............................................................................................. 142 Die Evolution der Java Sicherheit..................................................................................................................... 142 Sprachbasierte Sicherheit .................................................................................................................................. 145 5.1.1 ...Memory Protection und Typsicherheit ...........................145 5.1.2 ...Erweiterungen und Ableitungen von Klassen................149 Access Control Policies und ihre Implementation ............................................................................................ 150 5.1.3 ...Grundlegende Aspekte von Policies..............................150 5.1.4 ...Java Code Access Security............................................152 5.1.5 ...Code-basierte Policies....................................................156 5.1.6 ...User-basierte Policies mit JAAS ....................................159 Kriha/Schmitz Internet Security aus Software Sicht 4 452 12.09.2008 Die Erstellung einer geprüften Identität (Principal).........................................................................160 Zugriffskontrolle auf Basis eines Subjects.......................................................................................164 5.1.7 ...Alternative Methoden der Zugriffskontrolle....................167 Designaspekte der Umstellung auf Java2 Security ........................................................................................... 167 Code Security für Enterprise Applikationen ..................................................................................................... 171 Literatur ............................................................................................................................................................. 173 6 Enterprise Security .............................................................................................................................. 175 Grundlagen von Enterprise Security.................................................................................................................. 175 6.1.1 ...Vom Application Tower zur verteilten Enterprise Applikation 175 6.1.2 ...Security Infrastruktur.......................................................177 6.1.3 ...Service-Orientierte-Architekturen (SOA) .......................178 6.1.4 ...Event-Getriebene Systeme und Busse..........................179 Problematik der Ende – zu – Ende Sicherheit ................................................................................................... 182 6.1.5 ...Speichern von Passwörtern in Registries......................183 6.1.6 ...Nicht-authentisierter Zugriff durch den Suchdienst .......184 6.1.7 ...Zugriff durch Patch - Services........................................186 6.1.8 ...Propagation von Identität, Recht und Aufruf..................186 JAVA EE und EJB............................................................................................................................................ 188 6.1.9 ...Grundprinzipien sicherer Software in JAVA EE und EJB 190 6.1.10 .JAVA EE Applikationsinterfaces und ihre Verwendung 190 6.1.11 .Rolle, Permission und Ressource..................................192 6.1.12 .Delegation und Impersonation .......................................195 6.1.13 .Rollenbasierte, deklarative Access Control anhand eines Beispiels 200 6.1.14 .Deklarative und programmatische Zugriffskontrolle......207 6.1.15 .Annotationen für Sicherheit in Java EE .........................210 6.1.16 .Sicherheitsdiskussion der JAVA EE Sicherheit............211 Struts .................................................................................................................................................................. 211 6.1.17 .Authentisierungin Web Applikationen............................212 6.1.18 .Spezielle Probleme der Front-End Applikationen .........218 6.1.19 .Authentisierungsobjekte .................................................218 6.1.20 .Autorisierung...................................................................219 Light-weight Container Security: Das Acegi Framework in Spring ................................................................ 222 6.1.21 .Philosophie......................................................................222 6.1.22 .Grundprinzipien...............................................................222 6.1.23 .Authentisierung...............................................................223 6.1.24 .Das Authentication Objekt..............................................224 6.1.25 .Authorisierung.................................................................225 6.1.26 .Diskussion der Acegi Security........................................226 Grids .................................................................................................................................................................. 227 6.1.27 .Grid Security versus Enterprise Security.......................227 6.1.28 .Grid Security Standards .................................................229 6.1.29 .Qualifizierte Delegation durch Proxy Zertifikate ............229 Integration von Conventional-off-the-Shelf (COTS) Applikationen................................................................ 231 Literatur ............................................................................................................................................................. 232 7 Application Server Security ................................................................................................................ 234 Vom Socket - Server zur Container – Architektur ............................................................................................ 234 7.1.1 ...Authentisierungsframeworks..........................................235 7.1.2 ...Concurrency und Multithreading ....................................235 7.1.3 ...Komponentenarchitektur ................................................236 7.1.4 ...Vom Standalone Server zum Teil eines Verteilten Systems 237 7.1.5 ...Server-Cluster .................................................................238 7.1.6 ...Anforderungen an die Entwickler ...................................238 Beispielarchitektur eines Applikationsservers................................................................................................... 238 7.1.7 ...System Context und Security Context ...........................238 7.1.8 ...Verwaltung von Credentials ...........................................240 7.1.9 ...Formen der Authentisierung...........................................241 Kriha/Schmitz Internet Security aus Software Sicht 5 452 12.09.2008 7.1.10 .Der Classloader ..............................................................242 Security-Interfaces zwischen Server und Applikationen .................................................................................. 244 Repräsentation von Identität: Die Erstellung eines Subjects ............................................................................ 246 7.1.11 .Grundlegende Szenarien................................................246 7.1.12 . Initiale Authentisierung ...................................................247 7.1.13 .Bereits diesem Application Server bekannter User.......248 7.1.14 .Bereits gegenüber einem Application Server bekannter User 248 7.1.15 . Identity Assertion durch vorgelagerte Authentisierung .250 7.1.16 . Identity Assertion und Delegation ..................................252 7.1.17 .Standard Interface für Authorization-Provider: JACC ...253 7.1.18 .Erzeugung von Subjects im Application Server Verbund 254 Probleme zwischen JAAS und JAVA EE......................................................................................................... 255 Absichern von Application Servern („Hardening“) .......................................................................................... 257 7.1.19 .Auslieferungszustand vs. Default-Is-Deny Prinzip ........258 7.1.20 .Absicherung der Verbindungen......................................259 7.1.21 .Absicherung der Ressourcen.........................................259 7.1.22 .Verwaltung des Runtime Systems .................................259 7.1.23 . Isolation ...........................................................................260 7.1.24 .Cross-Cell Trust ..............................................................261 7.1.25 .Code Access Control in Application Servern.................262 7.1.26 . „Fully Trusted“ .NET........................................................263 7.1.27 . Isolierende VMs und Application Server: SAP ..............263 7.1.28 .User Identity Propagation zu Datenbanken...................265 Zusammenfassung............................................................................................................................................. 267 Literatur ............................................................................................................................................................. 267 8 Sichere Multi-Vendor Komponenten-Systeme................................................................................. 269 Dynamische Services und ihre Isolation in OSGI............................................................................................. 269 8.1.1 ...Anwendungsbeispiele in Heimnetzwerken....................270 8.1.2 ...Namespaces durch Class-Loader Architektur...............271 8.1.3 ...Trusted Code und Rechtezuweisung.............................273 Sichere Transaktionen mit FINREAD............................................................................................................... 274 8.1.4 ...Benutzung .......................................................................275 8.1.5 ...Bedrohungsmodell..........................................................276 8.1.6 ...FINREAD Architektur......................................................277 8.1.7 ...Trust und Key Management ...........................................279 8.1.8 ...Software Umgebung zur Isolation..................................282 Literatur ............................................................................................................................................................. 283 9 Webservices und Objektbasierte Sicherheit ..................................................................................... 285 Modelle sicherer Kollaboration ......................................................................................................................... 285 9.1.1 ...Fallstudie: E-voting .........................................................287 9.1.2 ...Grenzen der kanalbasierten Sicherheit .........................288 Objektbasierte Sicherheit .................................................................................................................................. 288 9.1.3 ...XML-Signaturen..............................................................288 9.1.4 ...XML-Verschlüsselung.....................................................290 9.1.5 ... Interoperabilität ...............................................................291 SOAP Security .................................................................................................................................................. 293 9.1.6 ...WS-Security ....................................................................293 9.1.7 ...Security Token Issuer (STI)............................................294 9.1.8 ...WS-Trust Szenarien .......................................................297 9.1.9 ...Autoritäten und Aussagen..............................................297 9.1.10 .Bedrohungen und Risiken..............................................300 9.1.11 .Einbindung in Applikationen...........................................301 9.1.12 .WEB Services über REST..............................................302 SOA Security..................................................................................................................................................... 304 Literatur ............................................................................................................................................................. 306 Kriha/Schmitz Internet Security aus Software Sicht 6 452 12.09.2008 10 Sichere Software: Mechanismen und Konstruktionsprinzipien .................................................... 308 Rahmenbedingungen Sicherer Software ........................................................................................................... 309 10.1.1 .Die Macht des Faktischen..............................................309 10.1.2 .Die Frage der Verantwortung.........................................310 Grundlegende Mechanismen Sicherer Software ............................................................................................... 310 10.1.3 .Filter.................................................................................310 10.1.4 . Isolation ...........................................................................311 10.1.5 .Hierarchische Modi .........................................................311 10.1.6 . Identitäts- vs Autoritätsbasierte Zugriffskontrolle...........313 10.1.7 .Kanalbasierte Sicherheit vs. Objektbasierte Sicherheit 315 10.1.8 .Capabilities......................................................................315 10.1.9 .Schlüssel .........................................................................316 10.1.10Zugriffskontrolle in lokalen und verteilten Systemen....317 10.1.11Infrastruktur vs. Application Level Security....................317 10.1.12Frontend vs. Backend Security ......................................318 10.1.13Föderation .......................................................................318 10.1.14Basismechanismen der Zugriffskontrolle.......................318 Sicherheit und Software-Architektur ................................................................................................................. 319 10.1.15Perspektiven auf Software..............................................319 10.1.16Zur Bestimmung der Gefährlichkeit ...............................320 10.1.17Mikroarchitektur...............................................................320 Klassen, Objekte und Referenzen ....................................................................................................322 10.1.18Funktionaler Ansatz ........................................................324 10.1.19Closures ..........................................................................326 10.1.20Tainting............................................................................328 10.1.21Object Capabilities..........................................................328 10.1.22Sicherheitsbausteine ......................................................330 10.1.23Makro-Architektur............................................................335 Designation und Autorität................................................................................................................336 Virtualisierung ................................................................................................................................336 Software Extensions........................................................................................................................337 Reflection und Sicherheit.................................................................................................................337 10.1.24Design Patterns für Sichere Software............................337 Basispatterns ...................................................................................................................................338 Spezielle Security Patterns...............................................................................................................341 Concurrency ...................................................................................................................................................... 341 Wolken von Non-Determinismus ....................................................................................................345 Die Zukunft der Concurrency: Multi-Core CPUs............................................................................349 Gegenkräfte ....................................................................................................................................................... 350 10.1.25Nachträgliches Eindämmen ...........................................350 10.1.26Globale Navigation..........................................................350 10.1.27Globale Namespaces .....................................................351 10.1.28Alias-Definitionen............................................................351 10.1.29Degeneration von Architektur.........................................351 10.1.30Ambige Interfaces...........................................................351 10.1.31Paarweise Methoden mit State ......................................351 10.1.32State halten .....................................................................352 10.1.33Überaggregierung...........................................................352 Sicherheit der Applikation ................................................................................................................................ 353 Ad 1. Eliminieren von Fehlern.........................................................................................................353 Ad 2. Eliminieren von Code ............................................................................................................354 Ad 3. Eliminieren von Trusted Code ...............................................................................................354 Sind Sicherheit und Nebenläufigkeit „Aspekte“? ............................................................................................. 355 Literatur ............................................................................................................................................................. 356 11 Fehleranalyse ....................................................................................................................................... 358 Fehleranalyse als didaktisches Prinzip .............................................................................................................. 359 Fehleranalyse als theoretisches Prinzip ............................................................................................................. 359 Kriha/Schmitz Internet Security aus Software Sicht 7 452 12.09.2008 Datenbasis und Hypothesenbildung .................................................................................................................. 360 Die Fehler im Einzelnen ................................................................................................................................... 361 11.1.1 .MFSA 2005-44: Privilege Escalation via non-DOM Property overrides 361 11.1.2 .MFSA 2005-43 „Wrapped“ JavaScript: URLs bypass security checks 363 11.1.3 .MFSA 2005-33 Javascript „lambda“ replace exposes memory contents 364 11.1.4 .MFSA 2005-34 PLUGINSPAGE privileged javascript execution 364 11.1.5 .MFSA 2005-36: Cross-site Scripting through global scope pollution 365 11.1.6 .MFSA 2005-37: Code execution through JavaScript: Favicons 365 11.1.7 .MFSA 2005-38 Search Plugin cross-site scripting........366 11.1.8 .MFSA 2005-31/39 Arbitrary code execution from Firefox sidebar panel I + II 367 11.1.9 .MFSA 2005-28: Unsafe /tmp/plugtmp directory exploitable to erase user’s files 367 11.1.10MFSA 2005-25: Image drag and drop executable spoofing 368 11.1.11MFSA 2005-24: http auth prompt tab spoofing .............369 Klassifikation der Schwachstellen Im Mozilla/Firefox Browser...................................................................... 369 11.1.12Übersicht .........................................................................370 11.1.13Fehlermuster ...................................................................370 Browserarchitektur und Sicherheitskonzepte .................................................................................................... 371 11.1.14Was ist ein Browser?......................................................371 11.1.15Gibt es ungefährlichen Input? ........................................372 11.1.16Symbolische Referenzen................................................372 11.1.17Hobbles und Patches – Javascript im Netscape-Browser 373 11.1.18Sicherheitskonzept des Browsers..................................375 11.1.19Data-Tainting...................................................................378 11.1.20Eine alternative Architektur.............................................379 Literatur ............................................................................................................................................................. 379 12 Browser Sicherheit durch Object Capabilities ................................................................................. 380 Beschreibung des Experiments......................................................................................................................... 380 Architektur, Design und Implementation der Lösung....................................................................................... 382 12.1.1 .Makroarchitektur .............................................................382 12.1.2 .Komponenten und Applikation .......................................383 12.1.3 .Taming und Capability Architecture...............................385 12.1.4 .HTML...............................................................................386 Sicherheitsanalyse ............................................................................................................................................. 387 Literatur ............................................................................................................................................................. 388 13 Security und Usability......................................................................................................................... 390 Zum Verhältnis von Usability und Security...................................................................................................... 391 Lokale vs. fremdvermittelte Sicherheit.............................................................................................................. 392 Praktisches Key Management ....................................................393 Namen und ihre eindeutige Verwendung...................................395 Rechte und Eigentum........................................................................................................................................ 397 Discretionary vs. Mandatory – Über Eigentum und Verfügung .397 Bequemlichkeit vs. Sicherheit – der richtige Gegensatz?..........398 Erkennen und Ausführen von Intentionen......................................................................................................... 399 Psychologische Voraussetzungen der User Interaktion ............400 Messen von Intention – Verständnisprüfung.............................405 Autorität aus Designation ............................................................406 Sichere User Interfaces ..................................................................................................................................... 407 Herstellen eines Trusted Path.....................................................408 Web 2.0 und die Frage der Nutzer-Intention..............................409 Literatur ............................................................................................................................................................. 410 14 Bestimmung der Sicherheit durch formale Ansätze........................................................................ 412 Zur Frage der Entscheidbarkeit von Sicherheit ................................................................................................. 412 14.1.1 .Die Access Control Matrix (ACM) ..................................413 14.1.2 .Capabilities modelliert durch Take/Grant Systeme.......416 14.1.3 .Differenzierung des Take/Grant – Ansatzes..................420 Kriha/Schmitz Internet Security aus Software Sicht 8 452 12.09.2008 14.1.4 .Knowledge-Behavior-Models (KBMs)............................423 Prüfung Operationaler Umgebungen................................................................................................................. 426 14.1.5 .Modellierung und Generierung.......................................428 14.1.6 .Model-Checking von Sicherheitsprotokollen .................430 14.1.7 .Modell-getriebenes Security-Engineering......................430 14.1.8 .Lernen und Testen..........................................................431 14.1.9 .Beweisbare Plattformsicherheit......................................432 Input Validation................................................................................................................................................. 432 Literatur ............................................................................................................................................................. 434 15 Schlussbetrachtungen .......................................................................................................................... 435 Security vs. Safety............................................................................................................................................. 435 Security vs. Usability ........................................................................................................................................ 436 Mehr Sicherheit durch Einschränkung der Nutzer? .......................................................................................... 437 Prozessorientierte Security................................................................................................................................ 437 Modellbasierte, integrierte Security................................................................................................................... 438 Zuverlässigkeit und Verfügbarkeit .................................................................................................................... 438 Literatur ............................................................................................................................................................. 439 Index ................................................................................................................................................................. 440